使用Unity3D引擎的高级网络API(HLAPI)似乎是一种全有或全无的方法。对于预期在多人游戏中使用的任何游戏对象,(大多数)行为需要实现为NetworkBehaviour,并且需要网络组件。此外,在所有场景中都需要网络管理器。我宁愿没有所有单人游戏资产的网络版本完全相同,并且似乎预期的做法是将单人游戏实现为仅具有一个(本地主机)的基于LAN主机的网络游戏。客户。

我担心的是,在所有内容之上运行的HLAPI东西将导致单人游戏模式下的大量开销,这是游戏的主要重点。这是一个有效的担忧吗?

我考虑过几种缓解技术,但是它们在可维护性和代码复杂性方面带来了自己的问题:


两种模式所需的预制件将被复制(违反DRY:对一个预制件的更改需要在另一种预制件中手动镜像)
动态修改单人资产或将其替换为多人资产,反之亦然(复杂且容易出错)


有哪些更好的缓解技术?还是他们甚至需要?

最佳答案

这是一个古老的问题,但我认为无论如何我还是会尝试。您能否检测到处于单人游戏模式,何时使用Destroy删除不需要的组件?例如:

http://answers.unity3d.com/questions/378930/how-delete-or-remove-a-component-of-an-gameobject.html

10-04 22:22
查看更多