用于在 Unity 中制作网络游戏的高级 API,利用 RevenantX/LiteNetLib
TinyBirdNet 的目标是创建一个环境,您可以在其中轻松地将网络添加到 Unity 游戏中,同时在幕后使用 LiteNetLib。
支持Unity 2017及以上版本
当前版本已经在 Windows 和 Linux 上进行了测试,如果发现任何错误,请提出问题。
将 Assets 下的 TinyBirdNet 文件夹添加到您的项目将为您提供在游戏中启动网络所需的一切。
在 Examples 文件夹中,您将找到一个网络游戏的简单工作演示。
您需要在游戏中始终启用TinyNetGameManager
或派生实例,因此请将其添加到您的第一个场景中并将其标记为“加载时不销毁”。您的游戏需要一个唯一的“ConnectKey”才能连接,最好在密钥字符串中包含应用程序的当前版本。
建议的工作流程是创建一个从TinyNetPlayerController
派生的类,并在那里实现玩家控制逻辑,对于游戏中的每个新玩家都会生成一个新的TinyNetPlayerController
。您可以使用TinyNetInputMessage
在客户端玩家控制器和服务器控制器之间发送输入。
您希望包含网络代码的每个GameObject
必须包含一个TinyNetIdentity
,之后,希望包含网络代码的类必须实现ITinyNetComponent
,或者您可以将其设为TinyNetBehaviour
的子级,以访问许多功能,例如[TinyNetSyncVar]
和 RPC方法。
通过创建从TinyNetBehaviour
派生的类,您可以享受自动序列化和反序列化,尽管手动序列化/反序列化和使用ITinyNetMessage
仍然是可能的。
通过使用[TinyNetSyncVar]
属性,每个TinyNetBehaviour
最多可以同步 64 个属性。您可以随时通过实现自己的TinySerialize
和TinyDeserialize
方法来绕过此限制。
给定包含TinyNetIdentity
的有效 GameObject,您只需在服务器上调用TinyNetServer.instance.SpawnObject
和TinyNetServer.instance.DestroyObject
即可在网络中生成和销毁对象。
请记住手动或通过单击TinyNetGameManager
检查器上的“注册所有 TinyNetIdentity 预制件”按钮来注册TinyNetGameManager
上具有TinyNetIdentity
的所有预制件。