我最近开始研究一个以单人游戏模式开发的项目,持续了大约 3 个月。为了添加多人游戏功能(简单的 1v1 服务器-客户端连接),我选择了 Unet,主要遵循 Unity 教程和示例。我能够将单人游戏脚本更改为多人游戏格式,但我现在遇到的问题是它们现在只能在多人游戏中工作(默认情况下,带有网络身份组件的游戏对象被禁用)。据我所知,我有以下选择:
- 在线和离线模式都有不同的脚本/预制件/逻辑。这可能是最简单的解决方案,但也是最糟糕的解决方案(例如,在离线预制件/脚本上进行更改时,我也必须手动更改在线的)
- 由于脚本的大多数更改仅涉及将继承从 MonoBehaviour 更改为 NetworkBehaviour,因此我可以找到在运行时更改继承的方法(我认为这是不可能的)或创建 2 个版本的脚本,其中一个正确的在生成预制件时附加。
- 将离线/单人模式视为与在线相同的模式,只是以单人玩家为主机。不幸的是,我对网络不是很好,只使用了内置的 HLAPI 东西,比如来自 Unity 示例的网络转换/修改脚本,所以如果你有任何关于更高级网络脚本的入门级指南,我将不胜感激。
解决此类问题的最佳方法是什么?如果您有任何其他建议,请随时分享。