From 45e56e86d112f73c82119854994ed45abb2376a0 Mon Sep 17 00:00:00 2001 From: Rendo Date: Fri, 18 Jul 2025 18:12:54 +0500 Subject: [PATCH] Directional sprite now should kinda work --- base/scripts/enemies/directional_sprite3d.gd | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/base/scripts/enemies/directional_sprite3d.gd b/base/scripts/enemies/directional_sprite3d.gd index 0ea3170..da67d86 100644 --- a/base/scripts/enemies/directional_sprite3d.gd +++ b/base/scripts/enemies/directional_sprite3d.gd @@ -8,10 +8,11 @@ func _process(delta: float) -> void: var camera = get_viewport().get_camera_3d() if Engine.is_editor_hint(): camera = EditorInterface.get_editor_viewport_3d().get_camera_3d() - var rotation_to_camera = -vec3_to_vec2(global_transform.basis.z).angle_to(vec3_to_vec2(camera.global_position)) + PI + # Angle between camera's -basis.z (forward direction) and direction to camera + var angle = vec3_to_vec2(-global_transform.basis.z).angle_to(vec3_to_vec2(global_position - camera.global_position)) + PI var chosen_index = 0 for i in rotations.keys(): - if abs(rotation_to_camera-i) < abs(rotation_to_camera-chosen_index): + if abs(angle-i) < abs(angle-chosen_index): chosen_index = i texture = rotations[chosen_index] @@ -24,4 +25,4 @@ func entry_generator(): rotations[TAU/rotation_count*i] = Texture2D.new() func vec3_to_vec2(vector : Vector3) -> Vector2: - return Vector2(vector.x,vector.z).normalized() + return Vector2(vector.z,vector.x).normalized()