Как повернуть трехмерную сетку вокруг локального источника в Bevy
Так что в Bevy, когда я использую функцию поворота, кажется, что трехмерные объекты вращаются вокруг глобального начала координат. Мое текущее решение заключается в следующем, где я сначала устанавливаю положение объектов в глобальное начало координат, вращаю его, а затем возвращаю в исходное положение:
fn rotator_system(time: Res<Time>, mut query: Query<(&Rotator, &mut Transform)>) {
for (_rotator, mut transform) in &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