如何解决是否可以在不直接通过线程本地系统使用“世界”的情况下将一个或多个子代添加到实体?
我有一个Entity
和一个Bundle
的一个Components
,我想附加到一个实体,该实体将成为第一个实体的子代。我可以使用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])
添加子代。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。