多人 Unity 游戏单独运行

Posted

技术标签:

【中文标题】多人 Unity 游戏单独运行【英文标题】:Multiplayer Unity Game is running individually 【发布时间】:2021-09-29 08:48:29 【问题描述】:

使用 Photon Network 和 PUN 2 我创建了一个游戏,我可以让人们一起加入大厅,但是当我加载游戏时,每个玩家单独运行游戏脚本,导致每个玩家玩自己的游戏。

我正在尝试使用 Photon View 将每个玩家的屏幕同步到 Master。如何只在主服务器上运行脚本,然后与客户端共享屏幕。

【问题讨论】:

不要让每个人都运行相同的脚本,只需让主客户端运行您想要同步的游戏部分,并使用RPC's and other techniques 让其他人保持最新状态。 【参考方案1】:

如果将 [PunRPC] 标签添加到函数并使用 PhotonView.RPC("functionName", RpcTarget.All); 调用它然后它将在播放器的所有计算机上运行。示例:

public PhotonView view;

[PunRPC]
public void ExampleFunction()

    Debug.Log("hi")

void Start()
    view.RPC("ExampleFunction", RpcTarget.All);

示例函数每次被调用时都会在每个玩家的计算机上运行。

此外,如果您想将参数传递给函数,则将参数添加到 view.RPC 调用示例:

public PhotonView view;
private int number = 1;

[PunRPC]
public void ExampleFunction(int exampleNumber)

    Debug.Log(exampleNumber)

void Start()
    view.RPC("ExampleFunction", RpcTarget.All, number);

This function will log 1 every time.

【讨论】:

我已开始收到此错误。 RPC method 'newQuestion()' not found on object with PhotonView 1. Implement as non-static. Apply [PunRPC]. Components on children are not found. Return type must be void or IEnumerator (if you enable RunRpcCoroutines). RPCs are a one-way message.

以上是关于多人 Unity 游戏单独运行的主要内容,如果未能解决你的问题,请参考以下文章

Unity 中的 AI 角色与 Photon View

在 Unity Billiard 游戏上实现多人游戏的最佳方法是啥?

Unity 中的多人游戏

Unity Gun Ammo 在多人游戏中没有减少问题(可能与我的多人游戏系统:光子有关)

我可以在 Unity Android Free 中使用 Google Play 游戏服务 - 实时多人游戏吗?

使用 Photon Unity Network(多人游戏)在 Unity 中实时同步