Skip to content

Bug: LookTargetControl でうまく回転させることができない #8

@nayuta-cr

Description

@nayuta-cr

LookTargetControl で向きを変えたい場合、 Target と自身の y 座標に乖離があればあるほど、うまく角度が変わりません。
これは、 Vector3.SignedAngle() でヨーを計算する際に回転軸が傾いてしまうためです。

以下のパッチで修正することが可能です:

diff --git a/Packages/com.utj.charactercontroller/Runtime/Components/Control/LookTargetControl.cs b/Packages/com.utj.charactercontroller/Runtime/Components/Control/LookTargetControl.cs
index f81fd3f..36d456e 100644
--- a/Packages/com.utj.charactercontroller/Runtime/Components/Control/LookTargetControl.cs
+++ b/Packages/com.utj.charactercontroller/Runtime/Components/Control/LookTargetControl.cs
@@ -52,6 +52,7 @@ namespace Unity.TinyCharacterController.Control
                     return 0;

                 var delta = Target.position - transform.position;
+                delta.y = 0;

                 return (delta.sqrMagnitude > 0) ?
                         Vector3.SignedAngle(Vector3.forward, delta, Vector3.up) :

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions