0

Unity 3D で Vector3 回転を作成したいと考えています。ただし、回転軸は正しく回転しません。これは、x と y の 2 つの軸を同時に回転させるためです。2 つの回転を分離する必要があります。私に何ができる?助けてくれてありがとう。

Vector3 start = new Vector3(0,0,0) Vector3 target = new Vector3(0,0,0) transform.localEulerAngles = Vector3.Lerp(start,target,time)

4

1 に答える 1

1

Vector3.Lerp を介して Vector3 回転を使用すると、ジンバル ロックの問題が発生する可能性があります。

回転を lerp する最良の方法は、transform.Rotate();関数を使用することです。

Quaternion.Lerp();または、 を使用して、を使用して開始クォータニオンと終了クォータニオンを作成することもできますQuaternion.Euler();Quaterion回転はより複雑でVector3あり、回転で発生する問題をキャンセルするため、これにより最も信頼性の高い結果が得られますVector3

編集: コードのスニペット全体を投稿することを忘れないでください。Lerp は Linear Interpolation の略で、0 から 1 までの値が必要です。ここで、0 は開始点、1 は終了点です。多くの人がこの機能を間違って使用し、問題を引き起こします。私はあなたのコードを見ることができないので、私はあなたがこれを正しくやったと思いましたが、実際のコードを見ない限りわかりません:)

于 2016-04-25T20:44:40.040 に答える