이번 시간에 똥 피하기 게임을 완성하도록 하겠습니다!
시작하기 앞서 저희는 Prefab이라는 개념을 배우고 들어가겠습니다.
Prefab이란?
재사용이 가능한 GameObject를 말합니다.
프리펩은 보통 같은 컴포넌트가 붙어있는 여러 오브젝트(적 몬스터, 나무, 건물 등)를 만들 때 사용됩니다.
왜냐하면 오브젝트를 만든 이후 수정이 필요할 때 Prefab의 경우에는 부모 프리펩에서 바꾼 값이 자식 프리펩에 적용되기 때문에 매우 편리하게 여러 오브젝트의 값을 바꿀 수 있습니다.
이제 직접 만들어봅시다!
만드는 방법은 간단합니다.
하이라키창에서 Poop 오브젝트를 프로젝트 창으로 끌어다 두시면..
오른쪽 하이라키 창에 있는 poop의 아이콘이 파란색 상자로 변했으면 Prefab화 된 겁니다!
이번엔 Poop을 일정한 간격으로 생성할 PoopFactory스크립트를 작성해봅시다.
여기서 maxTime은 똥을 생성하는 시간이 될 것이고, currentTime은 현재 시간을 계산해줄 겁니다.
poopObject에는 Poop오브젝트를 넣어주시면 됩니다.
Factory의 코드입니다. currentTime에 deltaTime을 더해주다가 maxTime보다 커진 시점에 Instantiate를 하여 오브젝트를
x 좌표는 -8.55부터 8.55중 랜덤 한 위치에, y는 5.7의 지점에 생성을 하게 됩니다.
여기까지 되셨다면 Factory코드를 빈 오브젝트에 넣고 변수를 채워줍니다.
이후 실행을 해 보면..
Poop오브젝트가 잘 떨어지긴 하지만 오류가 발생했네요...
Scene 'GameOverScene' couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded.
To add a scene to the build settings use the menu File->Build Settings...
hp가 0이 되어 GameOverScene으로 넘어가야 하지만 GameOverScene이 없기 때문에 발생한 오류였습니다.
저는 빠르게 고치기 위해 TitleScene을 복사하여 GameOverScene이라는 이름을 붙였고, 텍스트와 버튼의 동작을 약간씩 바꿔주었습니다.
이제 Title부터 실행하여 GameOverScene에서 다시 Title로 돌아오는지 확인해봅시다.
드디어 만든 게임이 정상적으로 굴러갑니다!!!!
마지막으로 Hp 확인용 UI를 만들고 마치도록 하겠습니다.
이제 플레이어 스크립트에 내용을 추가하겠습니다.
만약 Poop이 바닥보다 위에 위치한 게 불편하신 분들은 Ground의 Order in Layer를 1로 변경해주시면 바닥이 Poop보다 위에 위치하게 됩니다!
이제 Build를 하고 최종 플레이를 해봅시다!
이상으로 똥 피하기 프로젝트를 마치도록 하겠습니다!
질문이나 부족한 부분이 보이시면 댓글 달아주세요! 최대한 빠르게 답장하도록 하겠습니다!
'ㄱㅔ임 ㄱㅐ발' 카테고리의 다른 글
(유니티) 싱글톤 패턴에 대해 알아보ㅈㅏ! (0) | 2022.10.08 |
---|---|
코루틴에 대해 알아보ㅈㅏ! (0) | 2022.10.07 |
똥 피하기 게임을 만들어보ㅈㅏ!(2. 플레이어와 똥 오브젝트 만들기, Rigidbody와 Collider 이해하기) (0) | 2022.10.04 |
똥 피하기 게임을 만들어보ㅈㅏ!(1. 타이틀씬 만들기) (2) | 2022.10.03 |
유니티 인터페이스를 공부해보ㅈㅏ! (0) | 2022.10.02 |