Я хочу спросить о Photon Network в Unity3D.Я только недавно начал изучать его, и я хочу попытаться создать экземпляр объекта в сети.
Я пытаюсь создать экземпляр каждого объекта с помощью RPC (поэтому он будет вызываться локально и может легко изменять свойства проигрывателя, я думаю,).И вот мой код для создания экземпляра объекта с помощью RPC, очень простой, хотя.
public MultiplayerManager instance;
private void Awake()
{
if (instance == null)
instance = this;
else
{
Destroy(this.gameObject);
}
}
void Start()
{
photonView.RPC("RPC_CreatePlayer", RpcTarget.All);
}
[PunRPC]
private void RPC_CreatePlayer()
{
Vector3 instantiatedPosition;
instantiatedPosition.x = Random.Range(45f, 70f);
instantiatedPosition.y = 40f;
instantiatedPosition.z = Random.Range(220f, 260f);
GameObject instantiatedPlayer = PhotonNetwork.Instantiate("player", instantiatedPosition, Quaternion.identity, 0);
instantiatedPlayer.GetComponent<MeshRenderer>().material = LocalPlayerManager.instance.mat;
}
Результат на самом деле успешен.Каждый объект создан, но ошибка:
Когда в комнате N игроков, объект создается N раз.Например, в комнате 3 игрока, и когда я начну игру, будет создано 9 объектов.
Есть ли у каждого игрока свой MultiplayerManager, поэтому каждый из них будет отправлять RPC другим игрокам?Должен ли я просто поставить условие PhotonNetwork.isMasterClient , тогда он будет отправлять RPC?(ну, на самом деле это сработало, но разве это лучшее решение?)
Я пытаюсь это выяснить, но я не могу: "Д-ха, что-то не так? Спасибо.