Можно ли добавить дочерний элемент или дочерние элементы к сущности без прямого использования мира с локальной системой потока?

У меня есть Entity и Bundle из Componentsчто я хочу быть прикрепленным к сущности, которая будет дочерним элементом первой сущности. я могу использовать Commands чтобы создать объект с моими компонентами, но я не могу получить его Entity, что означает, что я не могу просто построить Childrenкомпонент напрямую. Если я использую World ресурс и сделать мой системный поток локальным, я могу получить Entity моего дочернего объекта, когда я его порождаю, а затем использую его для создания Childкомпонент и добавьте его к самому первому объекту. Я не могу заставить работать локальные системы потоков, и они кажутся излишними для того, что должно быть простой и распространенной операцией.

Могу ли я использовать обычную систему для добавления дочернего объекта к другому объекту?

В качестве небольшого пояснения, вот каков мой идеальный синтаксис для этого:

fn add_children(mut commands: Commands, entity: &Entity) {
    commands.add_children(*entity, ComponentBundle::default());

    // maybe also

    commands.add_child(*entity, Component::default());
}

1 ответ

Решение

Я нашел ответ. Вы сначала создаете объект с помощью commands.spawn(...), затем возьмите этот объект с помощью commands.current_entity().unwrap() (Я не знаю, что делать, если это не удается), тогда commands.push_children(entity, &[children]) добавляет детей.

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