본문 바로가기

Unity/Knowledge

⑧ 타이머 설정 및 게임 끝내기

60초에서 0초로 감소하도록 시간이 흐르는 로직을 구성할 것이다.

우선은 게임이 끝났을 때 나타나는 UI를 생성해 보자

 

텍스트에서 Alt+Shift 누른 상태로 오른쪽 하단

 

다음과 같이 세팅하였다.

 

게임이 끝날때 나오도록 체크를 해제한다

 

GameManager Script로 들어가서 시간을 감속시켜주는 타이머기능을 만들어 보자

변수 totalTime 생성

deltaTime은 모든 기기에서 동일한 속도를 낼수 있도록 하기 위함

60초 라는 전체 시간에서 deltaTime을 지속적으로 빼도록 하였다.

 

 

시간이 흐르는지 확인해 보자

 

소수점 둘째자리까지만 표기하도록 해보자

 

이제 남은 시간이 0이 되었을 때 멈춘 뒤, EndPanel이 나오도록 설정해야 한다.

시간이 0이 되었을 때 멈추는 로직

Time의 크기를 0으로 만들어주는 것으로

첫번째 프레임과 다음 프레임 차이가 0이 되는 것으로 결국 시간이 멈추게 되는 효과 연출이 가능

 

이제 Endpanel 게임 오브젝트를 가져오기 위해 변수를 만들어 주고 드래그 앤 드롭 작업을 하면 된다.

 

남은 시간이 0이 되었을때 체크박스를 다시 켜줘야 한다.

 

Enpanel을 눌렀을 때 게임이 다시 실행시켜주는 로직을 만들어 보자

새로운 스크립트를 생성후 RetryButton이라 명명

이 스크립트를 Enpanel 게임 오브젝트 컴퍼넌트로 추가한다.

그리고 'Button' 이라는 새로운 컴퍼넌트를 추가한다. 

 

Retrybotton의 스크립트

버튼을 클릭했을 때 Public void Retry() 라는 함수를 호출해야 한다.

 

One Click ()  =  마우스로 클릭했을 때

 

Time scale을 0에서 다시 1로 돌려주어야 한다.