Как повернуть 3D-сетку вокруг локального источника в Bevy

#bevy

#bevy

Вопрос:

Так что, похоже, в Bevy, когда я использую функцию поворота, 3D-объекты вращаются вокруг глобального источника. Мое текущее решение заключается в следующем: сначала я устанавливаю положение объектов в глобальное начало координат, поворачиваю его, а затем возвращаю в исходное положение:

 fn rotator_system(time: Res<Time>, mut query: Query<(amp;Rotator, amp;mut Transform)>) {
    for (_rotator, mut transform) in amp;mut query.iter() {
        let position = transform.translation().clone();
        transform.set_translation(Vec3::new(0.0, 0.0, 0.0));
        transform.rotate(Quat::from_rotation_y(time.delta_seconds));
        transform.translate(position);
    }
}
  

Это правильное решение или есть лучший способ?

Похоже, это связанный запрос на извлечение: https://github.com/bevyengine/bevy/pull/564