本学期为我的学位获得最高荣誉的纸牌游戏(希望如此)
使用命令->调用RPC->指示另一个客户端调用其函数以使player2将一张牌添加到手中时,获得“尝试向没有权限的对象发送命令”。
我有许多类似的命令和RPC,用于同步每个播放器的变量和板,我担心它们都会出现此问题。
正在使用具有网络标识的playerConnectionObject脚本调用它。这些是碎片。
public void DrawCard()
{
mainCam = FindObjectOfType<Camera>();
string drawnCardName = mainCam.GetComponent<P1DeckController>().p1Deck[0];
mainCam.GetComponent<P1DeckController>().p1Deck.RemoveAt(0);
mainCam.GetComponent<P1DeckController>().SpawnCard(drawnCardName);
mainCam.GetComponent<P1DeckController>().drawnCard.transform.parent = mainCam.GetComponent<GameVars>().p1Hand.transform;
mainCam.GetComponent<P1DeckController>().drawnCard.GetComponent<CardActions>().canPlay = true;
mainCam.GetComponent<P1DeckController>().drawnCard.GetComponent<CardStats>().inHand = true;
CmdIncreaseEnemyHandSize(); //instructs server to instruct other client to add a card to their enemy's hand
}
[Command]
public void CmdIncreaseEnemyHandSize()
{
RpcIncreaseEnemyHandSize();
}
[ClientRpc]
void RpcIncreaseEnemyHandSize()
{
// mainCam.GetComponent<P1DeckController>().FoeDrawCard();
string drawnCardName = mainCam.GetComponent<P2DeckController>().p2Deck[0];
mainCam.GetComponent<P2DeckController>().p2Deck.RemoveAt(0);
mainCam.GetComponent<P2DeckController>().SpawnCard(drawnCardName);
mainCam.GetComponent<P2DeckController>().drawnCard.transform.parent = mainCam.GetComponent<GameVars>().p2Hand.transform;
mainCam.GetComponent<P2DeckController>().drawnCard.GetComponent<CardStats>().faceUp = false;
}