【问题标题】:Component based design基于组件的设计
【发布时间】:2011-05-22 08:23:25
【问题描述】:

假设您制作了一个游戏引擎,并且您有多个GameObjects,并且每个GameObject 都有一个您可以添加或删除的组件列表。

假设有一个MeshComponent 有顶点、法线等。如果几个GameObjects 有相同的MeshComponent,将会有很多内存浪费。当然有很多方法可以实现这一点,但我想要一些好的建议如何解决这个问题?组件如何共享不会被修改的数据?

【问题讨论】:

  • 静态类?你的语言支持这些吗?
  • 语言是 C++,所以支持它,但它是最好的实现方式吗?那么你必须为每个不同的网格做一个网格组件?

标签: components


【解决方案1】:

C++ 没有静态类。

如果多个GameObjects 有相同的MeshComponent,就会有NO内存浪费。 因为当然是同一个MeshComponent...

如果您有许多概念上应该相同的 MeshComponent 副本,则会浪费内存。

如果许多GameObjects 需要引用同一个MeshComponent,那么它们应该各自持有一个指向同一个MeshComponent 的(智能)指针。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多