미니 프로젝트

유니티 : 미니프로젝트 #2 - 2 우주 수박게임을 따라 만들어 보자 (완)

근본넘치는개발자 2024. 9. 6. 19:37

 

저번 수박 게임에 이어서 응용 버전인

우주 수박 게임(Sputnika games) 제작 과정을 정리하며

미니 프로젝트 2를 마무리 할까 한다.

 

원하는 기능들은 대부분 구현했으나, 에러가 많아서 아마 더 수정할 것 같긴 하다.

기능들을 새롭게 배우면서 추가하는 식으로 진행하다 보니

생각보다 시간이 오래 걸린 감이 있었다.

 

미니 프로젝트 시리즈는 1주일에 1개의 게임 기능을 완성해 보는 거로

목표를 잡고 진행할 계획이다.

 

플레이 영상 

 

 

 

이미지는 빙 이미지 크리에이터를 이용하여 만들었다.

 

구조를 간단하게 설명하자면 

수박 게임과 마찬가지로 운석끼리 충돌하면 커지고,

범위를 벗어나면 게임 오버가 되는 형식의 게임이다.

 

운석은 오브젝트 풀링을 통해 관리 할 수 있도록 했다.

 

코루틴을 통해 운석을 발사하고 난 후,

운석이 발사대에 생기기 전까지는 드래그를 하지 못하도록 설정했다.

 

드래그 선은 LineLenderer를 활용해 표현했다.  

 

OnTrigger나 collision으로는 일부만 벗어난 판정을 처리할 수 없었다. 

그래서 게임오버 범위를 설정하기 위해 운석의 반지름,

운석과 대기(착지하는 원)사이 거리를 잰 후,

더한 값이 바깥 대기 반지름보다 크다면 벗어난 것으로 계산하도록 코드를 작성했다. 

 

말로 설명하면 복잡해 보이지만 그림으로 보면 이해하기 훨씬 쉽다. 

 

 

운석이 충돌했을때 나오는 이펙트와,

대기가 작아지는 애니메이션은 파티클 시스템을 활용해 만들었다.

 

진행하면서 겪었던 문제 사항 

 

 

대기에 안착 후 계속해서 굴러가는 문제 발생

-> RigidBody2D에서 Constraints의 Freeze Rotation z축을 활성화 해 해결했다. 

 

 

씬 전환 다루며 겪은 문제

->DontDestroyOnLoad를 사용할 오브젝트는 항상 최상위 오브젝트여야 한다. 

 

 

 

참고했던 자료들 

 

https://youtu.be/kVH5reaAyII?si=FrFXeAxZ1tsDt5h_

https://youtu.be/7QryoLhD7aw?si=VhTJURtqvdRI76Dp

중력을 추가한 것 외에는 기능적으로 이전 수박게임과 비슷해

큰 어려움은 없었던 거 같다. 

 

개선 할 점

씬 전환과정에서 에러 발생 

-> 씬 변환하는 작업을 많이 안 다뤄봐서 시간이 해결해 줄 것으로 예상

 

인트로 및 UI 만들기

- DoTween을 활용해 여러 효과 만들 예정

 

 

블로그에 올리는 내용은 이 정도 선에서 마무리될 것 같다.