在Unity中通过网络同步Gameobjects

时间:2015-05-18 19:40:35

标签: networking unity3d multiplayer

我正在制作一款基于回合制的在线纸牌游戏,但我在同步GameObjects方面遇到了麻烦。

我使用父母对牌组之间的牌进行排序并对每个玩家进行交易。套牌和所有玩家都是游戏对象,这些玩家将成为游戏中的孩子,具体取决于他们在游戏中的位置。

初始化服务器时,网卡会在网络上实例化。可以在所有连接的客户端上看到它们,但只有主机具有父信息,这就是我的问题所在。

void Update () {
     if (Network.isServer) {
         // Send RPC to all non-host clients
         networkView.RPC("setParentName", RPCMode.Others, cardParent);
     } else {
         switch (cardParent) {
             case "pHand":
                 card.transform.SetParent(pHand.transform);
                 break;
             case "pBoard":
                 card.transform.SetParent(pBoard.transform);
                 break;
             case "oHand":
                 card.transform.SetParent(oHand.transform);
                 break;
             case "oBoard":
                 card.transform.SetParent(oBoard.transform);
                 break;
             case "tmpDeck":
                 card.transform.SetParent(tmpDeck.transform);
                 break;
             case "deck":
                 card.transform.SetParent(deck.transform);
                 break;
             default:
                 break;
         }
     }
 }

 [RPC] void setParentName (string parent) {
     cardParent = card.transform.parent.name;
     Debug.Log ("Sent parent info : " + cardParent);
 }

希望你能从代码中看出我试图发送一个包含一个String的RPC,该String将每个卡的父名称从主机保存到所有其他客户端。但是,我不了解RPC,我显然没有正确使用它。我应该提一下,这似乎会导致接收客户端崩溃。

我已经被这一段时间困扰了,任何帮助都将不胜感激!

0 个答案:

没有答案