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:
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) {
|
void Spatial::set_transform(const Transform &p_transform) {
|
||||||
data.local_transform = p_transform;
|
data.local_transform = p_transform;
|
||||||
data.dirty |= DIRTY_VECTORS;
|
data.dirty |= DIRTY_VECTORS;
|
||||||
|
data.dirty &= ~DIRTY_LOCAL;
|
||||||
_change_notify("translation");
|
_change_notify("translation");
|
||||||
_change_notify("rotation");
|
_change_notify("rotation");
|
||||||
_change_notify("rotation_degrees");
|
_change_notify("rotation_degrees");
|
||||||
|
|
Loading…
Reference in New Issue