我在Unity多人游戏中使用Photon PUN网络存在很大问题。
主客户端接收要从服务器创建的联网SCENE对象的列表。
主客户端创建所有场景对象ONCE,如此psudo代码
void OnLevelLoaded()
{
if (MasterClient) {
for (i=0; i<object.Count; i++) {
PhotonNetworking.InstantiateSceneObject(object[i],....)
}
}
CreatePlayer();
}
当其他玩家加入房间时,服务器(或其他一些实体,不知道是谁)会自动在客户端播放器上创建相同的联网场景对象。
让我们说一个玩家拿起一个场景对象,主客户端将其作为缓冲的RPC发送给所有客户端,以便他们也可以接收它。
问题:当新玩家加入时,即使场景对象尚未由服务器自动实例化,他也会立即获得一堆RPC调用来拾取对象,所以当然RPC无法找到对象,因为它们不是已创建,程序失败。
如果有某种程度上服务器可以首先实例化场景对象,那么发送RPC会很棒,但我不知道如何控制它,它似乎是在幕后自动完成的。
有谁知道如何解决这个问题?我非常绝望,我一直在寻找答案两天。
由于
答案 0 :(得分:1)
确保您在退出游戏论坛上发帖,您将有更多机会让知识渊博的人帮助您。
http://forum.photonengine.com/categories/unity-networking-plugin-pun
- 谁发送此RPC,是播放器还是其他? - 你究竟得到了什么错误,是在PUN内部还是在你自己的脚本里面出错?
再见,
让