MRが楽しい

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

Unityでシーンの再生時間の速度を早くしたりゆっくりにする

本日は Unity の小ネタ枠です。
Unity でシーンの再生時間の速度を早くしたりゆっくりにする方法についてです。

TimeScale

Unity の再生速度は TimeScale で変更できます。
デフォルト値は 1 でこれは現実時間と同じ速度で Unity 内の時間が経過することを意味します。
0.5 のとき、生成時間はゆっくりと進み、2 のとき、早く進むようになります。
docs.unity3d.com

サンプルシーン

Sphere オブジェクトが 5 秒かけて移動するサンプルシーンで動作を試してみました。

プロジェクト設定からの変更

プロジェクト設定から速度を変更するにはメニューから[Edit -> Project Settings]を開きます。
[Time]タグを開き、[Time Scale]の値を変更します。

スクリプトからの変更

スクリプトから TimeScale を変更する場合は Time.timeScale にアクセスして変更します。
・TimeScaleTest.cs

using UnityEngine;

public class TimeScaleTest : MonoBehaviour
{
    void Start()
    {
        // 時間の進みを2分の1の速度にする
        Time.timeScale = 0.5f;
    }
}

TimeScale が 0.5 のとき、時間の速度は2分の1の速度になり、2 のとき、2 倍の速度になります。
0 のとき、時間の進みは止まるため、オブジェクトは静止し続けます。