summaryrefslogtreecommitdiffstats
path: root/editor
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-02-14 14:07:58 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-02-14 14:07:58 +0100
commita1cc37966c4b31606463668fe267f999fe3f4330 (patch)
tree23b2906eb04739cfa0d7e78ed3c2765f117a5313 /editor
parent3a2fb42838f790a90c542113fa2c347202ee2c06 (diff)
parentbe0104a129332375bc9ce2e64ca58f648baa79d7 (diff)
downloadredot-engine-a1cc37966c4b31606463668fe267f999fe3f4330.tar.gz
Merge pull request #87126 from ryevdokimov/fix-84424(2)
Fix position and basis of 3D Scenes instantiated via drag and drop
Diffstat (limited to 'editor')
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index 31166075a7..89035ca6c1 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -4371,7 +4371,8 @@ bool Node3DEditorViewport::_create_instance(Node *parent, String &path, const Po
}
Transform3D new_tf = node3d->get_transform();
- new_tf.origin = parent_tf.affine_inverse().xform(preview_node_pos);
+ new_tf.origin = parent_tf.affine_inverse().xform(preview_node_pos + node3d->get_position());
+ new_tf.basis = parent_tf.affine_inverse().basis * new_tf.basis;
undo_redo->add_do_method(instantiated_scene, "set_transform", new_tf);
}