Unityでのゲーム開発では、ポーズ機能やスローモーション演出などゲーム内の時間をコントロールすることが必要な場面が多くあります。 今回は、Time.timeScaleを活用して、時間の進むスピードを変更する方法を解説します。
Time.timeScaleは、Unityにおけるゲーム内時間の進み具合を調整するための変数です。この変数を変更することで、ゲーム全体の時間の流れを制御できます。 デフォルトでは値は1になっています。0にしたら時間が停止します。
下のコードではスペースキーを押すと時間が停止し、もう一度押すと停止が解除されます。
using UnityEngine;
public class Sample : MonoBehaviour
{
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
if (Time.timeScale == 1)
{
// タイムスケールを0に設定
Time.timeScale = 0f;
}
else
{
// それ以外の場合、タイムスケールを1に戻す
Time.timeScale = 1f;
}
}
}
}
また、Time.timeScaleの値を2にすると早送り、0.5でスローモーション演出が出来ます。