Time.timeScale 프로퍼티는 게임 월드에서 실시간을 기준으로 전달되는 속도를 정의합니다. Time.timeScale 값이 1.0이면 게임 내 시간이 실시간과 일치합니다. 값이 2.0이면 게임에서 시간이 실제보다 두 배 빠르게 경과되어 게임의 액션 속도가 빨라집니다. 값이 0.5면 게임플레이 속도가 절반으로 느려집니다. 값이 0이면 게임 내 시간이 완전히 중지됩니다.
Time.timeScale은 실행 속도를 줄이지는 않지만 대신 Time.deltaTime 및 Time.fixedDeltaTime의 Update 및 FixedUpdate 함수에 보고되는 시간 단계를 변경합니다.
시간 스케일을 줄이면 Update 함수가 똑같이 자주 호출될 수 있지만, 각 프레임의 Time.deltaTime 값은 더 작아집니다. 다른 스크립트 함수는 시간 스케일에 영향을 받지 않으므로, 예를 들어 게임이 일시 중지될 때 정상적으로 상호 작용할 수 있는 GUI를 표시할 수 있습니다.
슬로우 모션 같은 특수한 시간 효과의 경우 게임 시간의 흐름을 느리게 하여 코드의 애니메이션과 시간 기반 계산이 더 느리게 수행되도록 하는 것이 유용할 때도 있습니다. 또한 게임이 일시 정지되는 것처럼 게임 시간을 완전히 멈추게 할 수도 있습니다.
Time 창에는 시간 스케일을 전역으로 설정할 수 있도록 해 주는 프로퍼티가 있지만 일반적으로 Time-timeScale 프로퍼티를 사용하여 스크립트에서 값을 설정하는 것이 더 유용합니다.
//C# script example
using UnityEngine;
using System.Collections;
public class ExampleScript : MonoBehaviour {
void Pause() {
Time.timeScale = 0;
}
void Resume() {
Time.timeScale = 1;
}
}