【发布时间】:2015-01-04 13:32:21
【问题描述】:
我有两个组件,核心组件和可视组件。核心组件完成所有游戏逻辑并完成所有客户端/服务器计算。该组件始终位于对象上,包括客户端和服务器端。
然后我有了可视化组件,它只是客户端。
我的问题是,核心组件应该告诉可视组件它需要的信息而可视组件完全不知道核心组件的存在,还是可视组件总是更新并从核心组件获取信息并拥有核心组件完全不知道存在的视觉组件?
【问题讨论】:
标签: c# unity3d unity-components
我有两个组件,核心组件和可视组件。核心组件完成所有游戏逻辑并完成所有客户端/服务器计算。该组件始终位于对象上,包括客户端和服务器端。
然后我有了可视化组件,它只是客户端。
我的问题是,核心组件应该告诉可视组件它需要的信息而可视组件完全不知道核心组件的存在,还是可视组件总是更新并从核心组件获取信息并拥有核心组件完全不知道存在的视觉组件?
【问题讨论】:
标签: c# unity3d unity-components
我认为最直接的方法是核心组件不应该知道视觉组件。可视组件应该知道核心组件,以便查询它、监听事件、更新它等。这样可视组件可以在不影响核心组件的情况下被替换,并且系统可以支持许多不同的可视组件,如果你选择多平台游戏,只要核心组件也是多平台的。此外,保持组件松散耦合也很重要。为了轻松更换组件,从一开始就以松散耦合的方式设计系统。
要获得灵感,请查看这些对 id 的一些开源游戏的优秀评论http://fabiensanglard.net/quake3/。我相信评论提到了每款游戏的架构。
【讨论】: