0
目前,我在聯網的2D平臺遊戲的遊戲。我有一個腳本,應該實例化名爲JetpackManager的玩家jetpack。然而,當玩家涌入場景時,代碼只會在主機場景中產生一個噴氣揹包,而不會進入客戶的場景。這導致只有主持人場景正常工作,而客戶場景中的所有玩家都沒有jetpack。這是我對JetpackManager代碼:ClientRpc功能沒有進行對Unity3d所有客戶端的C#
using UnityEngine;
using UnityEngine.Networking;
public class JetpackManager : NetworkBehaviour {
[SerializeField]
private Jetpack[] jetpacks;
[SerializeField]
private Transform jetPackHold;
private PlayerController playerController;
private Jetpack currentJetpack;
void Start(){
playerController = GetComponent<PlayerController>();
if (isLocalPlayer) {
CmdEquipJetpack (0);
}
}
[Command]
void CmdEquipJetpack(int jetpackNumber){
RpcEquipJetpack (jetpackNumber);
}
[ClientRpc]
void RpcEquipJetpack(int jetpackNumber){
if (currentJetpack != null) {
Destroy (currentJetpack.gameObject);
}
currentJetpack = Instantiate (jetpacks[jetpackNumber], jetPackHold.position, jetPackHold.rotation);
currentJetpack.transform.SetParent (jetPackHold);
playerController.InitialiseJetpackVariables (currentJetpack);
}
}
所以基本上我的問題是,RpcEquipJetpack
功能中的代碼是由於某種原因,僅被稱爲主機上,而不是在任何客戶端。
每個客戶端都需要有JetpackManager在他們的現場,以調用這個函數。 – Fiffe
有什麼錯誤?或記錄你收到? –