2016-04-25 16 views
0

Unity3DでVector3回転をしたい。ただし、回転軸は正しく回転しません。これは、2つの軸を同時にxとy回転させるためです。私は2つの回転を分離する必要があります。私に何ができる?助けてくれてありがとう。 Vector3.Lerp経由するVector3回転を使用して Vector3 start = new Vector3(0,0,0) Vector3 target = new Vector3(0,0,0) transform.localEulerAngles = Vector3.Lerp(start,target,time)Vector3 Lerp Rotation

+2

あなたのコードの関連スニペットとあなたがすでに試したものを投稿してください。 –

+0

ベクトル3開始=新しいベクトル3(0,0,0); Vector3 target = new Vector3(x、y、z); transform.localEulerAngles = Vector3.Lerp(開始、ターゲット、時刻); – Acceleboy

+0

質問を編集して追加コードを追加してください。 – buczek

答えて

1

あなたが経験するかもしれないものであるロックの問題をジンバルやすいです。

ローテーションを使用して先読みする最も良い方法は、transform.Rotate();機能を使用することです。

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

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