diff --git a/Source/Engine/Physics/Colliders/CapsuleCollider.cpp b/Source/Engine/Physics/Colliders/CapsuleCollider.cpp index 7728e6a3e..19a44cc52 100644 --- a/Source/Engine/Physics/Colliders/CapsuleCollider.cpp +++ b/Source/Engine/Physics/Colliders/CapsuleCollider.cpp @@ -9,7 +9,7 @@ CapsuleCollider::CapsuleCollider(const SpawnParams& params) , _height(100.0f) , _direction(ColliderOrientationDirection::YAxis) { - SetDirection(_direction); + SetColliderDirection(_direction); } void CapsuleCollider::SetRadius(const float value) @@ -34,6 +34,24 @@ void CapsuleCollider::SetHeight(const float value) UpdateBounds(); } +void CapsuleCollider::SetColliderDirection(ColliderOrientationDirection value) +{ + _direction = value; + switch (value) + { + case ColliderOrientationDirection::XAxis: + SetColliderOrientation(Quaternion::Identity); + break; + case ColliderOrientationDirection::YAxis: + SetColliderOrientation(Quaternion::Euler(0, 0, 90)); + break; + case ColliderOrientationDirection::ZAxis: + SetColliderOrientation(Quaternion::Euler(0, 90, 0)); + break; + default: ; + } +} + #if USE_EDITOR #include "Engine/Debug/DebugDraw.h" @@ -58,24 +76,6 @@ void CapsuleCollider::DrawPhysicsDebug(RenderView& view) DEBUG_DRAW_WIRE_TUBE(_transform.LocalToWorld(_center), rot, radius, height, Color::GreenYellow * 0.8f, 0, true); } -void CapsuleCollider::SetDirection(ColliderOrientationDirection value) -{ - _direction = value; - switch (value) - { - case ColliderOrientationDirection::XAxis: - SetColliderOrientation(Quaternion::Identity); - break; - case ColliderOrientationDirection::YAxis: - SetColliderOrientation(Quaternion::Euler(0, 0, 90)); - break; - case ColliderOrientationDirection::ZAxis: - SetColliderOrientation(Quaternion::Euler(0, 90, 0)); - break; - default: ; - } -} - void CapsuleCollider::OnDebugDrawSelected() { Quaternion collRot; @@ -119,7 +119,7 @@ void CapsuleCollider::Deserialize(DeserializeStream& stream, ISerializeModifier* DESERIALIZE_MEMBER(Radius, _radius); DESERIALIZE_MEMBER(Height, _height); DESERIALIZE(_direction); - SetDirection(_direction); + SetColliderDirection(_direction); } void CapsuleCollider::UpdateBounds() diff --git a/Source/Engine/Physics/Colliders/CapsuleCollider.h b/Source/Engine/Physics/Colliders/CapsuleCollider.h index 210a49450..ef910df32 100644 --- a/Source/Engine/Physics/Colliders/CapsuleCollider.h +++ b/Source/Engine/Physics/Colliders/CapsuleCollider.h @@ -10,8 +10,19 @@ /// API_ENUM() enum class ColliderOrientationDirection { + /// + /// Orient to the X-Axis. + /// XAxis, + + /// + /// Orient to the Y-Axis. + /// YAxis, + + /// + /// Orient to the Z-Axis. + /// ZAxis }; @@ -66,9 +77,8 @@ public: /// /// Gets the orientation direction of the capsule collider. /// - /// The capsule height will be scaled by the actor's world scale. API_PROPERTY(Attributes="EditorOrder(111), DefaultValue(typeof(ColliderOrientationDirection), \"YAxis\"), EditorDisplay(\"Collider\")") - FORCE_INLINE ColliderOrientationDirection GetDirection() const + FORCE_INLINE ColliderOrientationDirection GetColliderDirection() const { return _direction; } @@ -76,8 +86,7 @@ public: /// /// Sets the orientation direction of the capsule collider. /// - /// The capsule height will be scaled by the actor's world scale. - API_PROPERTY() void SetDirection(ColliderOrientationDirection value); + API_PROPERTY() void SetColliderDirection(ColliderOrientationDirection value); public: // [Collider]