我目前正致力于生存游戏,其中" zombies"在地图上产生并追逐玩家。僵尸由InstantiateSceneObject
对象zombie_spawner
实例化。
问题是已经连接的玩家可以看到僵尸,而加入的新玩家不会看到它们。新玩家只会看到僵尸在加入游戏后实例化。
当新玩家加入正在进行的游戏时,我应该使用哪种方法为新玩家创建“旧”僵尸?
这是我到目前为止在主客户端上产生新僵尸的原因:
if (!PhotonNetwork.isMasterClient)
return;
GameObject zb = PhotonNetwork.InstantiateSceneObject(zombie_name, transform.position + transform.up, Quaternion.identity, 0, null);
这应该让主客户端管理产卵,并在时机成熟时产生新的敌人。这是正确的方法吗?然后,如何为主客户端以外的其他玩家同步已经实例化的僵尸?
答案 0 :(得分:0)
您可以尝试从主客户端实施RPC调用。
关于播放器脚本:
if (PhotonNetwork.IsMasterClient)
{
photonView.RPC("SpawnZombieFromMaster", RpcTarget.AllBuffered);
}
[PunRPC]
void SpawnZombieFromMaster()
{
ZombieSpawner.instance.SpawnZombie();
}
在您的单例“ ZombieSpawner”脚本上:
public void SpawnZombie()
{
GameObject zb = PhotonNetwork.InstantiateSceneObject(zombie_name, transform.position + transform.up, Quaternion.identity, 0, null)
}