1

我有一个Entity和一个BundleComponents想附加到一个将成为第一个实体的子实体的实体。我可以用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());
}
4

1 回答 1

1

我找到了答案。您首先使用 生成实体,然后使用(我不知道如果失败该怎么办)commands.spawn(...)抓取该实体,然后添加子项。commands.current_entity().unwrap()commands.push_children(entity, &[children])

于 2020-09-15T13:55:38.737 回答