diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-13 11:25:20 +0100 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-13 11:25:20 +0100 |
| commit | fbe8a1dfa27c8aadba7c5beae0255c1aa75ed992 (patch) | |
| tree | f891976e088374265bf70c93955d534d44eb2ae2 /editor | |
| parent | fb688b38d11cf03d3c639247de1a1cc748af73e8 (diff) | |
| parent | 123dbdb4af22bc26686a9da20b5f5ddd620292db (diff) | |
| download | redot-engine-fbe8a1dfa27c8aadba7c5beae0255c1aa75ed992.tar.gz | |
Merge pull request #88269 from MajorMcDoom/live-debug-local-transform
Fix an edge case bug in drag-and-drop Node3D spawning.
Diffstat (limited to 'editor')
| -rw-r--r-- | editor/plugins/node_3d_editor_plugin.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 4dc7222b74..eb840fcb51 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -4364,7 +4364,16 @@ bool Node3DEditorViewport::_create_instance(Node *parent, String &path, const Po Node3D *node3d = Object::cast_to<Node3D>(instantiated_scene); if (node3d) { - undo_redo->add_do_method(instantiated_scene, "set_transform", node3d->get_transform()); + Transform3D parent_tf; + Node3D *parent_node3d = Object::cast_to<Node3D>(parent); + if (parent_node3d) { + parent_tf = parent_node3d->get_global_gizmo_transform(); + } + + Transform3D new_tf = node3d->get_transform(); + new_tf.origin = parent_tf.xform_inv(preview_node_pos); + + undo_redo->add_do_method(instantiated_scene, "set_transform", new_tf); } return true; |
