🧩 코딩/코드 메모

Unity Time.timeScale로 게임 내 시간 조절하기 🤸🏻‍♀️

코스모스몰리 2022. 10. 30. 22:54
728x90

 

 

 

 

 

 

 

 

게임을 플레이 하다보면

2배속으로 플레이가 된다던가

게임 중단 창으로 게임의 시간을 아예 정지시키는 화면을 볼 수 있습니다.

 

이런 기능을 구현할수 있는 방법으로는

유니티에서

Time.Scale로 구현이 가능한데용.

아래 코드를 보겠습니다 !

 

코드

 

   void Update()
    {
        if(!resultScreen.activeInHierarchy && !StopScreen.activeInHierarchy)
        {
            time += Time.deltaTime;
            Time.timeScale = 1.0f;
            //Mathf.Round로 소수점 제외해서 표현하기.
            TimeText.text = "" + Mathf.Round(time);
        }
        else if(resultScreen.activeInHierarchy || StopScreen.activeInHierarchy)
        {
            Time.timeScale = 0;
        }
    }

 

이 코드는 제가 현재 만들고 있는 게임인 피하기 게임에서 가져온 코드입니다.

해석 해보면

 

결과창과 중단 창이 뜨지 않을때는

Time.timeScale = 1.0f

로 시간이 평범하게(?) 흐른다는 것을 작성해주고

 

아니라, 결과창과 중단창이 떴을때는

Time.timeScale = 0 으로 만들어주어서

시간이 흐르지 않게 하였습니다.

 

이 코드는 시간을 이용한 게임에서도 유용하게 쓰일것 같습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90