【问题标题】:Unity3D HLAPI networking single player overheadUnity3D HLAPI 网络单人播放开销
【发布时间】:2015-12-16 15:35:04
【问题描述】:

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

我担心的是,HLAPI 东西绝对会在单人模式中导致大量开销,这是游戏的主要焦点。这是一个有效的担忧吗?

我考虑了几种缓解技术,但它们在可维护性和代码复杂性方面都存在问题:

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

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

【问题讨论】:

    标签: unity3d unity-networking


    【解决方案1】:

    这是一个老问题,但我想我还是会解决这个问题。您能否检测到您何时处于单人模式,并在这种情况下使用 Destroy 删除您不需要的组件?例如:

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

    【讨论】:

    • 不幸的是,这不仅仅是删除组件的问题:MonoBehaviours 打算在 HLAPI 中具有网络状态(截至编写此问题时)需要为 NetworkBehaviours 并且可以工作与网络组件。销毁网络组件,您不仅可以删除垃圾,还可以阻止所有启用网络的行为。
    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    相关资源
    最近更新 更多