我应该在每个有父元素的实体上添加一个owner组件吗?如果是,该组件的正确术语是什么?目前我正在使用由所有者Entity
组成的AttachmentComponent
,并像下面的代码一样使用它。
AttachmentComponent ...
ItemComponent ...
entity.add(attachment);
entity.add(item);
如果你的实体本质上可以分层,为什么要引入一个组件来表示父实体,而不是将其作为实体本身的属性来表示呢?
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
上维护一个包含所有相关子节点的列表。