ブログ

一定時間ごとにゆっくり90度ずつ角度を変化させる

(スクリプト)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotate90 : MonoBehaviour
{
    private int num;
    private int count;
    private Quaternion targetRot;

    void Update()
    {
        count += 1;

        if(count % 500 == 0)
        {
            // 数字が1>2>3>0>1>2・・・とループする。
            num = (num + 1) % 4;
        }

        var step = Time.deltaTime * 30f;

        // Y座標を軸として、ゆっくり90度ずつ角度を変える。
        // 90にnumを掛けることで、90>180>270>0>90>180・・・と角度がループする(ポイント)
        targetRot = Quaternion.AngleAxis(90 * num, Vector3.up);

        transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRot, step);
    }
}

(実行結果)