Unity Networking:无法在所有客户端上生成场景对象

时间:2016-06-17 09:42:52

标签: c# networking unity3d unityscript unity-networking

我无法弄清楚如何解决我的问题。我一直在寻找答案,但我找不到任何答案。

我的场景中有一个按钮,可以由客户端和主机按下。按下按钮时,它会在场景中创建一个立方体。问题是:立方体只能由主机创建,主机是唯一可以看到并操纵它的用户。 我的代码是:

public class CreateCube : NetworkBehaviour {


        GameObject cubo;
        float lastCollisionTime=0;
        float collisionTime=0;

        void OnCollisionExit(Collision other) {

                collisionTime = Time.time;
                if (collisionTime - lastCollisionTime >1.5) {
                    CmdCreaCubo ();
                    lastCollisionTime = collisionTime;
                }
            }
            }
        }
        [Command]
        void CmdCreaCubo(){
            GameObject cubo=Instantiate(Resources.Load("MyPrefabs\\Oggetti\\CubeGrasp")) as GameObject;
            cubo.transform.position = new Vector3 (-5.88f, 7.51f, -19f);
            cubo.name = "CubeGrasp";
            NetworkServer.Spawn (cubo);

        }
}

有人可以帮我吗? 非常感谢你

1 个答案:

答案 0 :(得分:0)

相反,使用简单的实例化,您需要使用Network.Instantiate

  

给定的预制件将在游戏中的所有客户端上实施。   自动设置同步,因此无需额外工作   参与。