본문 바로가기
Unity

2024/03/28 Unity 기초 프로젝트 Roll-A-Ball 게임 만들기 2

by 민정e 2024. 3. 28.

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

 

Roll A Ball 게임 만들기 1

Coin먹으면 사라지게 만들기(이어서)

나중에 coin이 아닌 디버프를 부여하는 아이템을 만들 예정이다. 따라서 어제 진행하였던것에 추가로 작업을 해줄것이다.

OnTriggerEnter함수 안에 if문을 사용해서 부딪친 오브젝트의 태그가 'Coin'일때만 비활성화하도록 설정해준다.

여기서 코딩 tip. 코드 줄 이동 =  alt + ↑

 

 

여기서 if문의 괄호안에는 == true 부분이 생략된 상태이다.

정석으로 작성한 코드

== false가 되면 부정문을 뜻한다. 이를 생략하기 위해선 other 앞에 !를 붙여주면된다.

정석
생략

 

이후, Coin 오브젝트를 클릭하고 Tag에 Coin을 만들어 설정해준다.

 

 

이렇게 되면 Coin태그가 적용된 오브젝트만 사라지게 된다.

 

게임 UI 만들기

Hierarchy 에서 +를 누르고 UI > Text - TextMeshPro를 누른다.

그러면 다음과 같이 Canvas와 Text가 추가가 된다.

여기서 Canvas는 게임 화면을 뜻한다.

 

다음과 같이 UI를 꾸며주었다.

 

게임을 플레이하면 화면이 다음과 같이 표시가 된다.

플레이 영상

 

Coin을 먹었을 때 점수가 올라가도록 만들어주기

Coin을 먹엇을때 점수가 올라가도록 해주려고 한다.

Player Controller에 TextMeshProUGUI scoreText와 int타입 score를 추가해 준 후, if문에 트리거충돌 감지시 점수가 올라가도록 설정해 준다. 처음 시작할 때 점수는 0부터 시작해야하므로 start 구문에 해당 항목을 작성한다.

 

 

스크립트를 저장한 후  player의 component 중 script 파트의 scoreText에 아까 만들어준 UI text들 중 Score를 적용시켜준다.

 

게임을 플레이 하면 다음과 같이 된다.

 

 

점수가 잘 올라가는 것을 볼 수 있다.

 

하지만 좀더 예쁘게 Score : 0 형식으로 표현하고싶다.

※ tip) Count 값을 string 타입으로 바꾸는 방법

정석
파이썬의 f스트링과 비슷한 원리이다. 고정된 텍스트에 변화하는 숫자를 같이 표시하고싶을 때 사용한다.

 

위처럼 작업을 해주면, 점수가 예쁘게 표시된다.

 

모든 coin을 다 먹었을때 win 표시가 나오게 하기

Hierarchy에 TextMeshPro로 win text를 만들어주고, text사이즈를 변경해준다.

 

하지만 이렇게만 하면 Win표시가 너무 밋밋하다. 따라서 눈에 확 띄는 테두리를 만들어주려고한다. 이를 위해 Text의 Material을 이용할 것이다.

 

 

TMP_Font Asset이 적힌 부분을 눌러주면 폰트 material이 담긴 폴더로 이동하게 된다.

 

material을 복사해 준 후, win material로 이름을 바꾸고, Face에 드래그해서 드랍해준 후, outline 색을 바꿔주면 다음과 같이 된다.

 

 

 

모든 Coin을 다 획득했을 때 Win 표시 나오게 하기

이번에도 역시 PlayerController 스크립트에 작성을 해 줄것이다.

win 표시가 게임이 시작할 때에는 없어야 하니 start구문에서 비활성화 하는 코드를 작성 해 준다.

전체 코인 개수는 16개이며, 코인을 다 먹었을때 사라지게 해야하므로, int타입인 count를 만들어주고, 트리거 충돌이 발생할때마다 1씩 증가하도록 설정해준다.

그리고 if문에 count가 12개 이상이 되면, win 표시가 활성화되도록 코드를 작성해준다.

 

이렇게 스크립트를 저장해준 후, player의 컴포넌트로 가서, win text object에 TextMashPro로 만든 win text를 설정 해주면, 정상작동하는 것을 볼 수 있다.

 

 

플레이 영상

 

 

게임 빌드 생성

file > build settings에 들어간 후, scenes in build부분에 원하는 scene을 추가한다.

 

창모드로 설정해주기 위해player settings에 들어간 후 Resolution and Presentation파트의 Fullscreen Window를 Windowed로 바꾸어준다. 

 

 

그리고 build를 누르고 원하는 파일을 지정하고 저장한다.

 

저장완료

 

다음 링크에 들어가면 플레이를 해볼 수 있다.

https://play.unity.com/mg/other/roll-a-ball-practice-mj