Должен ли я добавить компонент владельца на каждую сущность, у которой есть родитель?

Должен ли я добавить компонент владельца на каждую сущность, у которой есть родитель? если да, то каков правильный термин для этого компонента. В настоящее время я использую AttachmentComponent которые состоят из владельца Entityи используйте его как в приведенном ниже коде.

AttachmentComponent ...
ItemComponent ...

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

1 ответ

Если ваши сущности могут иметь иерархическую природу, зачем вводить компонент для представления родительской сущности, а вместо этого представлять его как атрибут самой сущности?

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 со всеми его соответствующими потомками, если вам нужно обходить иерархию сущностей сверху вниз, а не снизу вверх.

Другие вопросы по тегам