Fix overwriting of Spatial's local transform
Modifies when 'DIRTY_LOCAL' flag is set to prevent a transform applied using `set_transform` to be overwritten by previous calls to change the node's rotation, translation or scale. Fixes #43130.
This commit is contained in:
committed by
Rémi Verschelde
parent
df39eacec2
commit
7958ceaab8
@ -274,6 +274,7 @@ void Spatial::set_global_rotation(const Vector3 &p_euler_rad) {
|
||||
void Spatial::set_transform(const Transform &p_transform) {
|
||||
data.local_transform = p_transform;
|
||||
data.dirty |= DIRTY_VECTORS;
|
||||
data.dirty &= ~DIRTY_LOCAL;
|
||||
_change_notify("translation");
|
||||
_change_notify("rotation");
|
||||
_change_notify("rotation_degrees");
|
||||
|
||||
Reference in New Issue
Block a user