Quaternion.Slerp を使用して Unity でオブジェクトの回転を実装します
Unity エンジンを使用してオブジェクトを操作する場合、時間の経過に伴うオブジェクトの回転を制御する方法を理解することが重要です。この記事では、一般的に使用される方法である Quaternion.Slerp について説明します。
Quaternion.Slerp の役割
Quaternion.Slerp は、2 つのソース クォータニオン間を補間する新しいクォータニオンを生成するメソッドです。ある回転から別の回転への移行を制御するため、オブジェクトのスムーズな回転によく使用されます。
よくある誤解
Quaternion.Slerp に関するよくある誤解は、最後のパラメーター (t) が時間を表すということです。しかし、そうではありません。 t パラメータは、ソース クォータニオン間の補間のスケールを表します。値 0 は補間の開始を示し、値 1 は補間の終了を示します。
正しい実装
オブジェクトを特定の角度 (90、180、270) に回転させるための、改良された実装です:
<code class="language-c#">public float speed = 0.1F; private float rotation_x; void Update() { if (Input.GetButtonDown("Fire1")) { rotation_x += 90; // 旋转增量为 90 度 rotation_x = rotation_x % 360; // 保持旋转在 0-360 度之间 } transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(rotation_x, transform.eulerAngles.y, transform.eulerAngles.z), Time.deltaTime * speed); }</code>
その他の注意事項
以上がQuaternion.Slerp は Unity でオブジェクトのスムーズな回転をどのように実現しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。