Unity Networking Client不在服务器上调用函数

时间:2018-03-04 20:46:37

标签: unity3d rpc multiplayer unity3d-unet unet

我有一个2人游戏。一个用户成为另一个客户端的服务器。当他们连接添加塔时,我从两侧调用方法“buttonclicked”。

当从成为服务器的一侧调用“buttonclicked”方法时,代码执行良好,并且在服务器端和客户端都生成敌人。

然而,当从客户端运行相同的代码时,不会在成为服务器的一侧生成敌人。

以下是代码

 public void buttonclicked(int enemyID){
     CmdgenerateEnemies(enemyID);
 }

 [Command]
 public void CmdgenerateEnemies(int enemyID)
 {
    RpcgenerateEnemywithID(enemyID);
 }

 [ClientRpc]
 public void RpcgenerateEnemywithID(int enemyID)
 {
     enemyID = 1; // hardcoded for testing
     for(int i = 0; i < enemiesArray.Length; i++) 
     {
         GameObject enemy = enemiesArray [i];
         if(enemy.GetComponent<EnemyScript>().enemyId == enemyID) 
         {
             GameObject einstance = Instantiate(enemy, spawnPoint1);
             einstance.transform.parent = canvas.transform;
             einstance.GetComponent<splineMove>().pathContainer = topPath[1];
         }
     }
 }

0 个答案:

没有答案