반응형
Time.timescale을 이용하여 정지하는 방법
Time.timescale?
시간이 경과하는 크기를 나타냅니다. 슬로우 모션 효과에 사용될 수 있습니다.
/timeScale/이 1.0인 경우에, 실제 시간과 같은 속도로 경과합니다. /timeScale/이 0.5인 경우에, 실제 시간과 비교해서 2배 느리게 경과합니다.
/timeScale/이 0으로 설정되는 경우에, 일반적으로 프레임비율(framerate)과 독립적으로, 모든 기능을 일시정지 합니다.
public void TogglePauseMenu ()
{
if (GameManager.GameState == GameState.running)
GameManager.SetGameState(GameState.pause);
else if (GameManager.GameState == GameState.pause)
GameManager.SetGameState(GameState.running);
}
public static void SetGameState (GameState newState)
{
GameState = newState; //update the state
if (MultiplayerGame == false) //only in single player games
{
//if the new state is set to running:
if (GameState == GameState.running)
Time.timeScale = 1.0f; //set the time scale to 1.0 to allow the game to run
else if (GameState == GameState.pause) //if the game is paused
Time.timeScale = 0.0f; //to freeze the game
}
CustomEvents.OnGameStateUpdated(); //and trigger the custom event
}
https://docs.unity3d.com/kr/530/ScriptReference/Time-timeScale.html
반응형
'Unity > Asset 분석' 카테고리의 다른 글
[Lux Water] 물 속 구현 (0) | 2021.06.13 |
---|---|
[RTS Engine] 유닛이 제대로 작동하지 않을 때 체크리스트 (0) | 2021.06.12 |
[RTS Engine] 더블탭으로 SelectionBox 그리기 (0) | 2021.06.08 |
[RTS Engine] 공격 사거리 (0) | 2021.06.04 |
[RTS Engine] AttackObject의 Mesh가 재생성 되지 않을 때 (0) | 2021.06.02 |