问题描述
我遇到的问题是,当我将玩家 2 的骰子 SetActive 设置为 False 时,玩家 1 的骰子也会消失,因为 PhotonTargets 设置为 All 以便玩家令牌一起移动。下面是我如何尝试的代码。我什至需要在这里编写这个逻辑还是应该在其他地方?提前致谢
public static void MoveSteps(string playerName,int numberOfSteps)
{
ScriptsPhotonView.RPC("MoveStepsRPC",PhotonTargets.All,playerName,numberOfSteps);
}
[PunRPC]
void MoveStepsRPC(string playerName,int numberOfSteps)
{
print("playerName:" + playerName);
print("numberOfSteps:" + numberOfSteps);
if (playerName == "Player1")
{
GameObject.Find(playerName).GetComponent<PlayerController>().Move(numberOfSteps);
dice.SetActive(true);
}
else if (playerName == "Player2")
{
dice.SetActive(false);
}
}
解决方法
我认为您甚至不必为其他玩家禁用骰子,只需让他们使用它的脚本即可。也许设置一个像 "canMove" 和 if (!can move){diceScript.enabled = false;}
这样的布尔值或者,你可以将骰子放在一个单独的层上,轮到它的玩家的相机忽略该层或其他东西。希望这有帮助。