如何在 Unity 的在线多人游戏中改变玩家的回合

How to change the turn of a player in an online multiplayer game in Unity

我是 Unity 的新手,我正在尝试创建在线多人游戏。这场比赛是一场坦克大战。坦克是预制的,它被称为创建两次。当您按下 Space keyCode 时,坦克会发射子弹。我已完成所有网络连接,但现在我想控制玩家的回合。例如,如果 localPlayer 射击一次,则必须轮到第二个玩家,依此类推。

有人能帮帮我吗?

有一个在每回合后更新的公共变量怎么样?根据变量的值,您可以确定轮到谁。你必须在开始游戏之前定义他们轮流的顺序。 假设你有 n 个玩家,并且有一个共同的 int 值 x,它在每回合后增加 1。

if( x%n == turn && Input.GetKeyDown(KeyCode.Space))
  shoot();

除非轮到他们,否则玩家将无法射击。使用简单的 RPC 函数在每个回合后从客户端更新 x。