通信
当您制作多人游戏时,除了同步网络游戏对象的属性之外,您可能还需要发送、接收和响应其他信息片段 - 比如比赛开始时、玩家加入或离开比赛时,或者特定于您的游戏类型的其他信息,例如向所有玩家发送通知,表示在“夺旗”风格游戏中已捕获旗帜。
在 Mirror 网络高级 API 中,有三种主要方式来传递这种类型的信息。
远程操作 (Remote Actions)
远程操作允许您在网络中调用脚本中的方法。您可以让服务器调用所有客户端或特定客户端上的方法。您还可以让客户端调用服务器上的方法。使用远程操作,您可以将数据作为参数传递给您的方法,方式非常类似于在本地 (非多人游戏) 项目中调用方法。
网络回调 (Networking Callbacks)
网络回调允许您连接到游戏过程中发生的内置 Mirror 事件,例如玩家加入或离开时,游戏对象创建或销毁时,或加载新场景时。您可以实现两种类型的网络回调:
网络管理器回调,用于与网络管理器本身相关的回调 (例如客户端连接或断开连接时)
网络行为回调,用于与单个网络游戏对象相关的回调 (例如调用其 Start 函数时,或者如果新玩家加入游戏时此特定游戏对象应执行的操作)
网络消息 (Network Messages)
网络消息是一种“较低级别”的发送消息方法(尽管它们仍被归类为网络“高级 API”的一部分)。它们允许您使用脚本直接在客户端和服务器之间发送数据。您可以发送基本类型的数据 (int、string 等),以及大多数常见的 Unity 类型 (例如 Vector3)。由于您自己实现这一点,这些消息不直接与任何特定游戏对象或 Unity 事件相关联 - 它取决于您决定它们的目的并实现它们!
最后更新于
这有帮助吗?