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
'🧩 코딩 > 코드 메모' 카테고리의 다른 글
unity 배열 []과 리스트 List의 개념 (0) | 2022.12.02 |
---|---|
선형 보간 / Lerp로 부드럽게 움직이기 (MoveTowards,Lerp, SmoothDamp 비교 ) (0) | 2022.11.29 |
Unity2D 물리 충돌이 되지 않을때 여러가지 해결 방법 (0) | 2022.10.23 |
Unity2D 물리 충돌이 되지 않을때(Trigger,Collider충돌) (2) | 2022.10.11 |
Unity 오류 CS0642: Possible mistaken empty statement (0) | 2022.09.27 |