我正在制作一款基于回合制的在线纸牌游戏,但我在同步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,我显然没有正确使用它。我应该提一下,这似乎会导致接收客户端崩溃。
我已经被这一段时间困扰了,任何帮助都将不胜感激!