我应该在每个拥有父级的实体上添加所有者组件吗?

时间:2016-10-14 23:40:13

标签: libgdx generalization entity-system

我应该在每个拥有父级的实体上添加所有者组件吗?如果是,该组件的正确用语是什么。目前我正在使用由所有者AttachmentComponent组成的Entity,并在下面的代码中使用它。

AttachmentComponent ...
ItemComponent ...

entity.add(attachment);
entity.add(item);

1 个答案:

答案 0 :(得分:0)

如果您的实体本质上可以是分层的,为什么要引入一个组件来表示父实体,而是将其表示为实体本身的属性?

public class Entity {
  private Set<Component> components;
  private Entity owner;

  public final boolean hasOwner() {
    return owner != null;
  }

  public void setOwner(Entity owner) {
    this.owner = owner;
  }
}

如果您需要从上到下而不是自下而上遍历实体层次结构,您还可以在每个Entity上维护一个包含所有相关子项的列表。