본문 바로가기
Unity

2024/03/29 Unity 기초 프로젝트 Rall-A-Ball 게임 만들기 3

by 민정e 2024. 3. 29.

앞선 내용들은 아래 링크를 누르면 볼 수 있다.

 

Roll A Ball 게임 만들기 1

Roll A Ball 게임 만들기2

Timer 만들기

오늘은 Timer를 추가해 보려고 한다.

프로젝트 창에서 3.Scripts 폴더 안에 Timer스크립트를 만든다.

 

남은 시간을 표시해줄 leftTime, 시간이 전부 갔을때 표시가 나올 LoseText, 타이머의 시간을 표시해줄 timerText항목을 만들어주고, 다음과 같이 스크립트를 작성한다.

타이머의 시간표시는 어제 진행하였던 점수표시를 응용하였다.

 

그후,  Hierarchy에서 새로운 캔버스를 생성, 그 안에 Panel을 생성해준다. 이 Panel은 시간이 다 지나갔을때 Lose텍스트와 함께 Replay, Exit버튼이 등장할 Panel이다. text를 추가해서 배치를 해준다.

 

Lose Panel을 만들어주었다. 어제 만들어준 일부 텍스트도 새로운 캔버스로 옮겨주었다.

 

그 다음, Timer 텍스트에 Timer스크립트를 드래그해서 넣어주고, Lose Panel에 방금 만든 Lose Panel를,  Timer Text에 Timer텍스트를 집어넣어준다.

 

 

 

플레이를 하면 다음과 같은 상황이 벌어진다.

플레이 영상. 숫자가 소숫점 아래쪽 까지 나와서 엄청 지저분해 보인다.

 

 

타이머의 시간이 정수로 깔끔하게 표현하도록 바꿔주기 위해 스크립트 내용을 다음과 같이 변경해준다.

 

시간초가 0.00단위까지만 표시되도록 설정하였다.

 

 

이렇게 하면 좀더 깔끔한 타이머를 볼 수 있다.

 

플레이 영상

하지만만 이렇게 하면, 시간이 다가더라도 게임이 끝나지 않는다. 따라서 시간이 다 소요되었을때 Player를 움직이지 못하게 설정을 해 주어야 한다.

 

player controller 스크립트로 들어가서  timer 스크립트의 leftTime을 불러온 후, leftTime이 0이상일때만 움직이도록 update구문에 if문으로 작성해준다.

 

이렇게 하면, 시간이 다 되었을때 player가 움직이지 않게 된다.

 

Replay Button 만들기

이제 게임 클리어에 실패 했을때, replay를 할 수 있도록 버튼을 만들어줄 것이다.

canvas에 우클릭을 하여 button을 추가해준다.

 

버튼을 꾸며주고,  SceneLoad라는 스크립트를 만든후 다음과 같이 작성해준다.

 

그 이후, 버튼에 스크립트를 넣어주고 on click에 +를 눌러 항목을 추가 해 준 후, 자기자신을 드래그해서 넣어준다.

그 이후 No Function의 화살표를 클릭, SceneLoad > SceneLoad1()을 클릭 해 준다.

 

이렇게 하면 replay 버튼을 눌렀을 때, 게임이 다시 시작하게 된다.

 

 

버튼이 잘 작동하는 것을 볼 수 있다.