diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-14 14:07:58 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-14 14:07:58 +0100 |
commit | a1cc37966c4b31606463668fe267f999fe3f4330 (patch) | |
tree | 23b2906eb04739cfa0d7e78ed3c2765f117a5313 /editor | |
parent | 3a2fb42838f790a90c542113fa2c347202ee2c06 (diff) | |
parent | be0104a129332375bc9ce2e64ca58f648baa79d7 (diff) | |
download | redot-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.cpp | 3 |
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); } |