如何获得子实体在bevy中的绝对位置?

How to get the absolute position of a child entity in bevy?

我正在使用 Bevy 游戏引擎。

在 Bevy 中将变换传播给子项的功能很方便,但是当我在游戏中执行碰撞检查时,我一直在使用对象的 Translation 来计算其位置。现在我的场景中有一些父子层次结构,每个子实体的 Translation 是相对于其父实体的。

有没有办法获取实体相对于世界原点的位置,而不是实体的父级?

“世界”位置存储在 GlobalTransform 组件中。内部变换是 4x4 矩阵,其中 translation() 函数 returns 位置。您可以这样访问它:

fn system(global_transform: &GlobalTransform) {
  let position = global_transform.translation(); 
}