diff --git a/lib/private/UnityEngine/Transform.cpp b/lib/private/UnityEngine/Transform.cpp index 7437bde..ba98a2b 100644 --- a/lib/private/UnityEngine/Transform.cpp +++ b/lib/private/UnityEngine/Transform.cpp @@ -46,3 +46,8 @@ app::Quaternion Transform::QuaternionEuler(app::Vector3 eulerAngles) return app::Quaternion_Euler(x, y, z, nullptr); } + +app::Quaternion Transform::QuaternionIdentity() +{ + return app::Quaternion_get_identity(nullptr); +} diff --git a/lib/public/UnityEngine/Transform.h b/lib/public/UnityEngine/Transform.h index 1931c1b..932bbe0 100644 --- a/lib/public/UnityEngine/Transform.h +++ b/lib/public/UnityEngine/Transform.h @@ -2,10 +2,24 @@ namespace Transform { app::Transform* GetTransform(app::GameObject* go); + + // e.g. NolanBehaviour + template + inline app::Transform* GetTransform(T* component); + app::Vector3 GetPosition(app::Transform* transform); app::Quaternion GetRotation(app::Transform* transform); app::Vector3 GetForward(app::Transform* transform); app::Vector3 GetRight(app::Transform* transform); app::Vector3 GetEulerAngles(app::Quaternion rotation); app::Quaternion QuaternionEuler(app::Vector3 eulerAngles); + app::Quaternion QuaternionIdentity(); + + template + app::Transform* GetTransform(T* component) + { + if (!component) return nullptr; + + return app::Component_get_transform((app::Component*)component, nullptr); + } } \ No newline at end of file