버전은 2021.3.8f1을 사용하였습니다.
와우 오늘부턴 간단하게 똥 피하기 게임을 만들어 봅시다!
매우 매우 쉬우니 겁먹지 마시고 한번 같이 해보죠!!
먼저 똥 피하기 게임이 뭐냐!
똥 피하기 게임은 위에서 내려오는 오브젝트에 플레이어가 맞지 않도록 조작을 해야 하는 게임입니다.
만들기 전에 먼저 정리를 해보죠
순서도로 만들면 이렇게 나오겠군요!
그럼 우리는 이제 타이틀씬과 메인 게임 씬, 게임 오버 씬을 만들 겁니다.
이제 유니티 프로젝트를 열어보죠, 저번 시간에 만들었던 프로젝트를 사용하셔도 괜찮고 아니면 새 프로젝트를 만드셔도 됩니다!
프로젝트를 열고 타이틀씬부터 만들어주겠습니다.
타이틀 씬에는 시작 버튼과 게임 종료 버튼이 있어야 합니다.
하이라키 창에서 우클릭> UI> Button을 클릭하면 버튼과 캔버스가 하이라키 창에 생기는 걸 보실 수 있습니다!
이 방식으로 버튼 두 개와 Text 한 개를 생성한 후 각각 StartButton과 QuitButton, Title로 이름을 변경해줍시다.
이렇게 하는 이유는 오브젝트의 이름을 목적에 맞게 바꾸지 않으면 나중에 유지보수가 힘들기도 하고 알아보기 힘들어 지기 때문입니다.
여기까지 따라 하셨으면 이제 각자 글씨를 넣어줄 겁니다.
하이라키 창에서 버튼들의 오른쪽에 있는 화살표를 눌러주시면 Text오브젝트가 보일 겁니다.
그 안에서 원하는 글을 써주시면 됩니다.
저는 이런 식으로 작성하였습니다.
이제 버튼을 눌렀을 때 상호작용을 만들어봅시다.
프로젝트 창에서 우클릭> Create > C#Script를 눌러 스크립트를 생성 후 이름을 ButtonManager로 선언해주겠습니다.
이후 스크립트를 더블클릭해서 열어주시면...
C# 코드를 짤 수 있습니다!
어렵지 않으니 찬찬히 해나가죠!
이번 씬에서 사용할 버튼의 기능은 게임의 시작과 종료이니 각각 함수를 하나씩 만들어주겠습니다.
StartGame에서는 버튼 클릭 시 현재 씬에서 다음 씬으로 넘겨주는 역할을 하게 됩니다.
씬을 변경하기 위해 선 LoadScene이라는 함수의 매개 값으로 원하는 씬의 번호나 이름을 넣어주면 됩니다.
마지막 QuitGame에서는 게임을 종료하는 기능을 만들어주겠습니다.
게임의 종료 같은 경우 Application.Quit을 이용하면 되지만, 이 방식의 경우 빌드 이후에만 동작을 하기 때문에 에디터에선 동작하지 않습니다.
그렇기에 저희는 예외처리를 해줌으로서 에디터에서도 기능이 동작하는지 확인해보도록 하겠습니다.
#if 전처리기를 사용하여 예외처리를 해줬습니다.
이제 이걸 각각 버튼에 연결해주기만 하면 코드가 정상적으로 실행될 겁니다!
버튼에 실행할 코드를 넣는건 굉장히 쉽습니다.
유니티 에디터로 돌아와서 빈 오브젝트를 생성 후 스크립트와 같은 이름을 넣어줄 겁니다.
오브젝트를 생성하였으면 오브젝트 클릭 후 인스펙터 창에서 AddComponent를 누르고 스크립트 이름을 검색 후 추가해줍시다.
거의 다 왔습니다!
이제 버튼 클릭 > 인스펙터 창에서 아래로 내려가다 보면 Button이라는 컴포넌트가 있을 텐데 OnClick()의 아래에 있는 + 버튼을 눌러 추가해줍시다.
그럼 이런 식으로 변할 텐데 None이라고 적혀있는 부분에 하이라키 창에 있는 ButtonManager 오브젝트를 드래그&드랍 해줍시다.
이제 마지막으로 No Function을 클릭하여 아까 만들어둔 함수를 넣어준 후 실행을 시켜보면...
Quit버튼은 잘 작동하는데 Start버튼에서 오류가 나는군요..
이러한 오류가 생긴 이유는 저희가 이다음 씬을 만들어주지 않았기 때문입니다.
File > New Scene을 클릭 후 Basic2D로 다음 씬을 만들겠습니다.
씬이 생성됐으면 GameScene이라는 이름으로 저장해주겠습니다.
이참에 SampleScene이라고 저장되어있는 씬도 TitleScene으로 바꿔보죠.
프로젝트 창에서 샘플 씬 우클릭 후 Rename을 눌러서 바꿔주겠습니다.
이제 File > Build Settings로 들어가서 GameScene을 추가해주면 동작할 겁니다!
이렇게 Title씬을 완성했습니다!
다음 시간에는 본격적인 게임 구현으로 들어가겠습니다!
'ㄱㅔ임 ㄱㅐ발' 카테고리의 다른 글
(유니티) 싱글톤 패턴에 대해 알아보ㅈㅏ! (0) | 2022.10.08 |
---|---|
코루틴에 대해 알아보ㅈㅏ! (0) | 2022.10.07 |
똥 피하기 게임을 만들어보ㅈㅏ!(3. Instantiate를 사용하여 똥을 만들기, 게임 빌드하기) (0) | 2022.10.05 |
똥 피하기 게임을 만들어보ㅈㅏ!(2. 플레이어와 똥 오브젝트 만들기, Rigidbody와 Collider 이해하기) (0) | 2022.10.04 |
유니티 인터페이스를 공부해보ㅈㅏ! (0) | 2022.10.02 |