2Dオブジェクトを回転する場合のQuaternion【Unity】

今回はUnityでオブジェクトの回転を行う「Quaternion」についてのメモです。

はじめに

Unityのバージョンは2021.3.3f1です。

スクリプトでオブジェクトを回転させるQuaternionについてです。

実装開始

まずは「2D Object」→「Sprites」→「Square」を追加。

Rotationの数値を動かすとオブジェクトが回転します。

シーンを3Dにして数値を変えると、どこを軸にオブジェクトが回転しているか分かりやすいです。

2Dの場合、Zの値を変化させてオブジェクトを回転するケースが多いです。

スクリプトで実装

下記のスクリプトを作成してオブジェクトにアタッチすると、インスペクター画面で値をセットしたのと同じになります。

using UnityEngine;

public class RotateSample : MonoBehaviour
{
    void Start()
    {
        transform.rotation = Quaternion.Euler(0, 0, 45);
    }
}

徐々にオブジェクトを回転させる場合は、下記の様なスクリプト。

using UnityEngine;

public class RotateSample : MonoBehaviour
{
    [SerializeField] private float _rotateSpeed;
    private float angle;

    private void Update()
    {
        angle += _rotateSpeed * Time.deltaTime;
        transform.rotation = Quaternion.Euler(0, 0, angle);
    }
}

パラメータをセット。

公式リファレンスは下記。

タイトルとURLをコピーしました