본문 바로가기
유니티/roll_the_ball (미니 프로젝트)

[Unity] 3D 게임 만들기 #5 (UI 디자인)

by 로토마 2021. 7. 16.

와.... 드디어 마지막 흐어어엉 ㅠㅠㅠ

짧고도 긴 유니티 미니 프로젝트 roll_the_ball를 오늘 마무리 했다.

저번 시간까지 게임의 전체적인 틀을 만들었다면,

이제는 이쁘게 포장할 차례다.

어떻게 포장하냐...?!

바로 UI(User Interface)를 통해!!

그렇게 이쁘지는 않지만 최대한 이쁘게 ㅎㅎ 만들어 보았다.

 

< 해야할 것!! >

- item 개수를 알려주는 UI 만들기

- 떨어졌을 때의 Re? 버튼 만들기

- 모든 아이템을 다 먹었을 때, congratulation! 화면 전환과 Re? 버튼 만들기

 

그럼 하나씩 차근찬근히 해 봅시당...!

 

item 개수를 알려주는 UI 만들기)

완성된 UI

우선 기본 틀을 create -> ui -> text 두 개/ image 하나를 생성해 만들어준다.

text1) " / total item " 입력

text2) 0 작성후 변수명 itemC로 지정 후 GameManager와 연결해 itemCount 변수랑 연결

Image) 아이템을 알려주는 UI이라는 것을 표시할 수 있을 정도로만 설정

기본적인 틀은 이렇게 구성한 다음에 itemC.text를 player script의 itemCount 변수랑 연결해준다.

연결 작업은 GameManager script를 새로 만들어 GetItem 함수를 만들고 string형태로 item.Text에 저장 해주면 된다!!

또, player script에서 충돌 함수에서 아이템과 충돌시 GetItem 함수를 돌려라! 라고 코드를 작성해준다.

 

GameManager script)

GameManager script

player script)

player script 충돌 부분

 

떨어졌을 때의 Re? 버튼 만들기)

이번에도 역시 create -> UI -> button 으로 버튼을 생성해준다.

그리고 버튼의 text 부분에 "Fall? Try again!"을 입력해준다.

색상을 연한 빨간색으로 설정하고 클릭하면 빨간색으로 변하게끔 설정해준다.

버튼을 누르면 다시 처음 화면으로 reset하기 위해, 돌아가고자 하는 scene으로 바꿔주는 button script를 작성한다.

 

button script)

button script

그리고 꼭!! button inspector에서의 On Click() 함수에 Button script를 추가해주어야 한다.

button inspector

 

모든 아이템을 다 먹었을 때, congratulation! 화면 전환과 Re? 버튼 만들기)

이것을 구현할 때에도 위의 button에서 쓰였던 SceneChange() 함수를 사용해야 한다.

그러기 위해서 우선 새로운 scene인 Example_1을 만들어주었다.

Example_1 scene

(전혀 안이쁘지만... 뭐 일단은 미니 첫 프로젝트니까... 나름 만족 ㅎ)

 

쨋든...ㅎ 이렇게 만들어준 Example_1을 player script에서 itemCount == TotalItem 과 같아지면

scene 이동을 통해 저 장면이 나오도록 코딩해준다.

 

player script)

player script scene 이동 구현 코드

그리고 아까 button을 했던 방식과 똑같이 Re? 버튼을 추가해주면... 

드뎌!! 미니 게임 roll_the_ball이 완성되었다!!!!

 

프로젝트 후기)

솔직히 말하자면... 

역시 첫 작품 답게... 허접한 부분이 많다..ㅎ

그래도 무언가를 만들었다는 것 자체가 굉장히 뜻깊은 시간이 되었다.

unity 문법도 익혀보고, 전체적인 게임의 구조, 원리에 대해 공부할 수 있는 기회가 되었다.

다음엔 좀 더 발전된 게임으로 찾아뵙도록 하겠슴돵!! ㅎㅎ

 

전체 사용 코드)

palyer script)

 

item script)

button script)

manager script)

main camera script)