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