バッテラが如く

プログラミングしましょ!

【Unity】3Dオブジェクトを回転させる方法

今更ですがゲームオブジェクトの回転をどうやるのかを覚えていなかったので自分の脳への定着化も兼ねて記事化していこうと思います。

■開発環境

  • MacOS Monterey (12.1) Unity (2021.3.2f1)
  • 指定の角度に設定する (絶対値)

    transform.localRotation = Quaternion.Euler(x, y, z);
    transform.localRotation = Quaternion.Euler(Vector3);
    

    transform.rotationだとグローバル座標での角度

    Quaternion.Eulerはオイラー角です

    指定の角度分回転する (相対値)

    Transform.Rotateを使います。

    transform.Rotate(x, y, z);
    

    x,y,zに各軸で回転させる度数を指定します。

    Rotateメソッドはオーバーライドが結構あります。詳しくは公式サイトで!

    docs.unity3d.com

    一応上記のRotateはローカル座標での回転ですが、ワールド座標での回に転させたい場合は下記のようにします。

    transform.Rotate(x, y, z, , Space.World);
    

    ※Space.Self(デフォルト)だとローカル座標

    うーん。ワールド軸で回転させる必要性がよく分かりませんが。。