MRが楽しい

MRやVRについて学習したことを書き残す

Unityで親オブジェクトの回転にかかわらずワールド軸に合わせて回転を固定する

本日はUnityの小ネタ枠です。
Unityで親オブジェクトの回転にかかわらずワールド軸に合わせて回転を固定する方法です。

Quaternion.identity

Quaternion.identityは「回転していない」状態の回転を示します。
docs.unity3d.com

サンプルスクリプト

Quaternion.identityを以下のようにワールド軸の回転に反映すれば常にワールド軸に揃った回転方向になります。

using UnityEngine;
public class RotationBalancer : MonoBehaviour
{
    void Update()
    {
        // 毎フレームでワールド軸に合わせる
        transform.rotation = Quaternion.identity;
    }
}

以下のように親オブジェクトを回転させてもスクリプトを適用したオブジェクトはワールド軸に合った回転を維持し続けます。

また以下のようにローカル軸の回転にQuaternion.identityを設定すれば、常に親オブジェクトの軸沿った回転方向を維持します。

transform.localRotation = Quaternion.identity;