From 17eaddbc8c68f6bb094d48e54e8c5ffb7adda21e Mon Sep 17 00:00:00 2001 From: Orange Date: Mon, 22 Sep 2025 02:10:33 +0300 Subject: [PATCH] fix unity --- .../engines/unity_engine/traits/pred_engine_trait.hpp | 10 ++++------ source/engines/unity_engine/traits/camera_trait.cpp | 7 +++---- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/include/omath/engines/unity_engine/traits/pred_engine_trait.hpp b/include/omath/engines/unity_engine/traits/pred_engine_trait.hpp index 5851e4c..dadcb7e 100644 --- a/include/omath/engines/unity_engine/traits/pred_engine_trait.hpp +++ b/include/omath/engines/unity_engine/traits/pred_engine_trait.hpp @@ -62,17 +62,15 @@ namespace omath::unity_engine [[nodiscard]] static float calc_direct_pitch_angle(const Vector3& origin, const Vector3& view_to) noexcept { - const auto distance = origin.distance_to(view_to); - const auto delta = view_to - origin; - - return angles::radians_to_degrees(std::asin(delta.y / distance)); + const auto direction = (view_to - origin).normalized(); + return angles::radians_to_degrees(std::asin(direction.y)); } [[nodiscard]] static float calc_direct_yaw_angle(const Vector3& origin, const Vector3& view_to) noexcept { - const auto delta = view_to - origin; + const auto direction = (view_to - origin).normalized(); - return angles::radians_to_degrees(std::atan2(delta.z, delta.x)); + return angles::radians_to_degrees(std::atan2(direction.x, direction.z)); }; }; } // namespace omath::unity_engine diff --git a/source/engines/unity_engine/traits/camera_trait.cpp b/source/engines/unity_engine/traits/camera_trait.cpp index e309cd7..b981bef 100644 --- a/source/engines/unity_engine/traits/camera_trait.cpp +++ b/source/engines/unity_engine/traits/camera_trait.cpp @@ -8,11 +8,10 @@ namespace omath::unity_engine ViewAngles CameraTrait::calc_look_at_angle(const Vector3& cam_origin, const Vector3& look_at) noexcept { - const auto distance = cam_origin.distance_to(look_at); - const auto delta = look_at - cam_origin; + const auto direction = (look_at - cam_origin).normalized(); - return {PitchAngle::from_radians(-std::asin(delta.y / distance)), - YawAngle::from_radians(std::atan2(delta.x, delta.z)), RollAngle::from_radians(0.f)}; + return {PitchAngle::from_radians(-std::asin(direction.y)), + YawAngle::from_radians(std::atan2(direction.x, direction.z)), RollAngle::from_radians(0.f)}; } Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3& cam_origin) noexcept {