From be0104a129332375bc9ce2e64ca58f648baa79d7 Mon Sep 17 00:00:00 2001 From: Robert Yevdokimov Date: Tue, 13 Feb 2024 12:43:22 -0500 Subject: [PATCH] Fix position and basis of 3D Scenes instantiated via drag and drop --- editor/plugins/node_3d_editor_plugin.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 31166075a7d..89035ca6c19 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); }