Fix one frame visual transform delay #89
+15
-4
@@ -171,20 +171,31 @@ pub fn animation_debug(
|
|||||||
&FighterTranslation,
|
&FighterTranslation,
|
||||||
&FighterFacingDirection,
|
&FighterFacingDirection,
|
||||||
&FighterBoneMatrices,
|
&FighterBoneMatrices,
|
||||||
|
&Fighter,
|
||||||
)>,
|
)>,
|
||||||
mut gizmos: Gizmos,
|
mut gizmos: Gizmos,
|
||||||
|
fighter_manifests: Res<Assets<FighterManifest>>,
|
||||||
) {
|
) {
|
||||||
for (global_transform, facing_dir, matrices) in query {
|
for (global_transform, facing_dir, matrices, fighter) in query {
|
||||||
|
let Some(manifest) = fighter_manifests.get(&fighter.manifest) else {
|
||||||
|
continue;
|
||||||
|
};
|
||||||
let global_transform = global_transform.get_3d_transform(facing_dir);
|
let global_transform = global_transform.get_3d_transform(facing_dir);
|
||||||
let marker_transform = global_transform.to_mat4();
|
let marker_transform = global_transform.to_mat4();
|
||||||
for (_, matrix) in matrices.iter() {
|
for (bone_name, matrix) in matrices.iter() {
|
||||||
let pos = marker_transform.transform_point(Vec3::new(
|
let pos = marker_transform.transform_point(Vec3::new(
|
||||||
matrix.cols[3][0].to_num(),
|
matrix.cols[3][0].to_num(),
|
||||||
matrix.cols[3][1].to_num(),
|
matrix.cols[3][1].to_num(),
|
||||||
matrix.cols[3][2].to_num(),
|
matrix.cols[3][2].to_num(),
|
||||||
));
|
));
|
||||||
gizmos.cross(pos, 0.5, bevy::color::palettes::css::RED);
|
|
||||||
gizmos.axes(marker_transform, 1.0);
|
if manifest.ecb_bones.iter().any(|ecb_bone_name| ecb_bone_name == bone_name) {
|
||||||
|
gizmos.cross(pos, 1.0, bevy::color::palettes::css::GREEN);
|
||||||
|
} else {
|
||||||
|
gizmos.cross(pos, 0.5, bevy::color::palettes::css::RED);
|
||||||
|
gizmos.axes(marker_transform, 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user