• ̫• 뱁새 • ̫• [1127282] · MS 2022 · 쪽지

2023-12-30 10:27:52
조회수 1,496

Dog vs Cats (1)

게시글 주소: https://i.orbi.kr/00066244266

안녕하세요 뱁새입니다 (۶•<•)۶❗️


오늘은 생선을 훔치러 오는 못된 고양이들을 혼내주는 갱얼쥐 게임을 만드는 과정을 정리할 예정입니다


그럼 가봅쉬다❗️




첫 번째, startScene 제작


이번 게임은 저번 게임들과는 다르게 인트로를 넣어줄 건데요



MainScene 아래에 StartScene을 추가해주고



StartScene의 background에 이미지 삽입으로 기초 공사를 어느정도 해준 뒤



startBtn에 button 요소 추가 및 cs 삽입을 해주는데


이때, play! 버튼을 눌렀을 때에 mainScene으로 화면 전환이 이루어져야 하므로

startBtn.cs에 아래와 같은 코드를 써주었습니다!



이후 Unity에서 실행 버튼을 눌러보면?



커여운 인트로가 등장하고 Play! 버튼을 눌렀을 때 게임 화면으로 가게 됩니다!




두 번째, 맘마 쏘는 갱얼쥐 구현


생선을 훔치러 슬금슬금 다가오는 못된 고양이들에게 따끔한 참교육을 해주기 위해서는

갱얼쥐의 역할이 아주 중요한데요



먼저 food 라는 이름을 가진 circle 오브젝트를 만들어주고 Sprite를 Knob으로 설정 



이후 food.cs에서 위 사진과 같은 코드를 작성해 맘마를 위로 쏠 수 있도록 했습니다



그런데 이 맘마는 한 번 던지고 끝이 아니라 계속해서 던져야 하므로 Prefab 처리까지 해주었답니다



Prefab 처리는 gameManager를 이용,

makeFood 라는 함수를 만들고 이를 InvokeRepeating를 사용해 코드를 작성해주면 됩니다


여기서 makeFood 함수 안의 Quaternion.identity는 no rotation 즉, 회전 없음 이라는 의미를 지닙니다



이제 Hierarchy 내부 gameManager의 손에 Food와 Dog를 쥐어주면 



갱얼쥐가 맘마를 발사합니다 (히히 맘마 발싸!)


그런데 이 맘마의 clone이 계속 생성되면 게임에 과부하가 걸릴 것이 뻔하므로

clone의 개수를 조절해주어야 하는데



이는 조건문을 활용해 y좌표가 26보다 클 경우 맘마가 삭제되도록 하면 됩니다!




세 번째, 갱얼쥐 움직이기


두 번째 과정까지 진행하고 게임을 실행시켜보면 갱얼쥐가 한 자리에 고정되어 맘마를 발사하는데

나중에 만들 고양이들은 x좌표 어느 한 곳에서 내려오는 것이 아니라 랜덤한 x좌표에서 등장하므로 갱얼쥐를 움직일 수 있도록 해야 합니다



가장 먼저 dog.cs에서 ScreenToWorldPoint를 이용해 마우스의 x좌표를 가져와주고

y좌표는 transform.position.y 내 좌표를 그대로 사용해주었습니다



이때, 미적 효과를 위해 갱얼쥐가 fishShop 외부로 나가지 않도록 조건문을 활용해 코드를 수정하는 것도 잊지 않았답니다



이후 Unity로 돌아와 실행을 해보았더니.. 



Ha.. 쉬볼..

대체 어디서 뭔 실수를 했길래 왜 두 알밖에 안 날아감?



맘마 삭제 코드를 food.cs에 쓴 게 아니라 gameManager.cs에 써서 저지랄 난 거였음!


실수한 부분도 알아냈으니 얼른 수정을 해주고 다시 실행시켜보면



완성_최종본.gif


이제서야 정상 동작하는군요..!


여러분들은 코드 작성 시 저처럼 실수하지 말도록.. 

rare-더 귀여운 비둘기

0 XDK (+0)

  1. 유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.