遊テックプログラミング教室

プログラミングノートNOTE

Unityで〇度に向ける・〇度回す

はじめに

今回はUnityでスプライト(2D)やゲームオブジェクト(3D)の向きを指定したり、回転を行う方法を紹介します。スクラッチの「〇度に向ける」と「〇度回す」に当たるものですね。

〇度に向ける

2Dのスプライトを90度に向ける(=上に向ける)スクリプトです。

(スクラッチの場合は、ネコを上に向ける場合は、「0度に向ける」ですね。)

2Dの場合は、Z軸を回転軸にして回転させます。

    void Start()
    {
        transform.eulerAngles = new Vector3(0, 0, 90);//90度に向ける
    }

〇度回す

90度に向けた後に、45度回してみましょう。結果、135度を向くことになりますね。

    void Start()
    {
        transform.eulerAngles = new Vector3(0, 0, 90);//90度に向ける

        transform.Rotate(0, 0, 45);//45度回転させる
    }

ずっと回転させる

ずっと回転し続けるコードです。1秒間に45度回転します。Update関数内に書いてくださいね。

Time.deltaTimeは前のフレームからの経過時間(秒)を表します。例えば、50fpsの場合は、0.02です。これを掛けることによって、45という数字の意味を1フレーム当たりの回転角度から1秒当たりの回転角度に変換することが出来ます。このTime.deltaTimeを掛けるのは、移動の時もよく使うので是非覚えておいてください。

 

    void Update()
    {
        transform.Rotate(0, 0, 45 * Time.deltaTime);//1秒間に45度回転させる
    }

3Dの回転

基本的に2Dの時と同じです。3Dの犬をY軸を回転軸にして回転させます。

かわいい。

    void Update()
    {
        transform.Rotate(0,120 * Time.deltaTime,0);//1秒間に120度回転させる
    }