From f3cb02ac924489f74577ea1438a121df0f90760e Mon Sep 17 00:00:00 2001 From: Robert Yevdokimov <105675984+ryevdokimov@users.noreply.github.com> Date: Sun, 28 Dec 2025 20:08:53 -0500 Subject: [PATCH] Fix rotation gizmo line position --- editor/scene/3d/node_3d_editor_plugin.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/editor/scene/3d/node_3d_editor_plugin.cpp b/editor/scene/3d/node_3d_editor_plugin.cpp index 624051f537..43581f6f93 100644 --- a/editor/scene/3d/node_3d_editor_plugin.cpp +++ b/editor/scene/3d/node_3d_editor_plugin.cpp @@ -5877,7 +5877,13 @@ void Node3DEditorViewport::update_transform(bool p_shift) { Vector3 current_rotation_vector = (intersection - _edit.center).normalized(); if (_edit.initial_click_vector == Vector3()) { - _edit.initial_click_vector = (click - _edit.center).normalized(); + Plane rotation_plane(global_axis, _edit.center); + Vector3 click_on_rotation_plane; + if (rotation_plane.intersects_ray(_edit.click_ray_pos, _edit.click_ray, &click_on_rotation_plane)) { + _edit.initial_click_vector = (click_on_rotation_plane - _edit.center).normalized(); + } else { + _edit.initial_click_vector = (click - _edit.center).normalized(); + } _edit.previous_rotation_vector = current_rotation_vector; _edit.accumulated_rotation_angle = 0.0; _edit.display_rotation_angle = 0.0;