gpt4 book ai didi

rust - 是否可以在不直接通过线程本地系统使用“世界”的情况下将一个或多个子代添加到实体?

转载 作者:行者123 更新时间:2023-12-03 11:36:59 26 4
gpt4 key购买 nike

我有一个EntityBundleComponents,我想附加到将成为第一个实体的子实体的实体上。我可以使用Commands生成带有我的组件的实体,但是我无法获得实际的Entity,这意味着我不能直接构造Children组件。如果我使用World资源并使系统线程本地化,则可以在生成它的子实体时获取我的子实体的Entity,然后使用它来制作Child组件,并将其添加到第一个实体中。我无法使线程本地系统正常工作,它们似乎对于应该是一个简单而通用的操作来说过于矫kill过正。
有什么方法可以使用常规系统将子实体添加到另一个实体?
需要澄清的是,这是我理想的语法:

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

// maybe also

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

最佳答案

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

关于rust - 是否可以在不直接通过线程本地系统使用“世界”的情况下将一个或多个子代添加到实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63893947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com