多人 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 Billiard 游戏上实现多人游戏的最佳方法是啥?
Unity Gun Ammo 在多人游戏中没有减少问题(可能与我的多人游戏系统:光子有关)