@youkerni
Unity3D developer

Почему в фильтре ECS дублируется компонент?

Сделал свою элементарную систему на новом unityECS.
Система ищет entities вот таким образом:

public class MovementSystem : ComponentSystem
{
    public struct Filter
    {
        public Transform m_Transform;
        public MoveComponent m_MoveComponent;
    }

    protected override void OnUpdate()
    {
        var entities = GetEntities<Filter>();
        Debug.Log(entities.Length);
    }
}


Судя по дебаггеру система почему-то ищет по другому фильтру, где 2 компонента MoveComponent
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
@youkerni Автор вопроса
Unity3D developer
Проблема была не в том месте, где я ожидал ее увидеть.

Дело в том, что данный компонент (MoveComponent) я вешал на объект в рантайме.
Из-за этого он не был зарегистрирован в системе MovementSystem.

Буду искать способ решить проблему, после чего дополню ответ.

UPD. Для тех кому интересно: нужно было зарегистрировать новосозданную Entity в EntityManager.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы