유니티

유니티 무작정 시작하기 - 6. 유튜브 영상으로 간단한 게임 제작2 (하)

모나오랭 2024. 8. 25. 12:40

개강을 일주일 앞두고 방학 중 마지막 유니티 활동. 물론 개강하고 난 뒤에도 꾸준히 할 생각이지만.. 학회를 들어는 등의 어떤 동기부여가 있으면 더 좋을 텐데. 아무튼 AA 모티브 게임 제작을 이어서 해보자면, 텍스트와 게임 종료 처리를 통해 게임의 완성도를 높일 것이다. 해당 유튜브 영상의 링크는 다음과 같다.

 

https://www.youtube.com/watch?v=g3xKeBkGGRU

 

 


 

 

우선 게임을 시작했을 때 핀을 총 몇 개를 꽂아야 하는지 정하고, 이를 표시해줄 텍스트를 생성해준다. hierarchy 뷰에서 UI text - meshpro를 생성해준다. 텍스트 칸 크기를 화면 비율에 맞게 조정해주고, 코드 작성을 통해 목표 개수가 화면에 뜨도록 한다. 이 과정은 empty object인 Gamemanager를 통해 진행한다.

 

그리고 게임을 클리어했을 때와 실패했을 때 배경 화면의 색을 다르게 변경해줄 것이다. 클리어 시 초록색, 실패 시 빨간색으로 조정해준다. 이를 위해 지역 변수로 Color 자료형을 사용해준다. 이를 SerializeField를 통해 유니티 inspector 뷰에서 색을 직접 조절해줄 수 있다. 코드만으로 모든 걸 정하는 것이 아닌, 유니티 상에서 실시간으로 조정을 할 수 있는 점이 편하다.

 

다음은 목표 개수 출력과 게임 종료 시 배경 색을 바꾸는 함수다. 핀의 소스코드에서 핀끼리 충돌했을 경우 SetGameOver(false)를 실행한다.

 

 

 

아래와 같이 목표 개수가 줄은 모습과, 실패했을 시 배경 화면 색이 바뀌는 모습을 볼 수 있다.

 

 

위의 이미지에서 보듯 이제 재시작 버튼을 만들어줄 차례다. hierarchy 뷰에서 UI로 만들었던 Canvas의 하위에 button 오브젝트를 만들어준다. 내용과 크기, 폰트 등은 insepctor 뷰에서 조정해주면 된다. 이후 가려준 후 소스 코드에서 게임에 실패했을 경우 활성화해주고, 버튼을 눌렀을 시 재시작하는 기능을 추가해준다.

 

 

 

SerializeField를 한 GameObject 자료형인 btnRetry를 통해 활성화를 해준다. 이는 hierarchy 뷰의 gamemanager의 inspector 뷰의 btnRetry 항목에 텍스트 오브젝트인 button을 드래그해 넣어주면 된다. SerializeField의 아주 편리한 특징이다!! 마지막으로 button의 inspector 뷰에서 click() 부분을 위의 Retry 함수로 설정해주면 된다.

 

이제 진짜 마지막으로, 약간의 난이도 조정을 해준다. 지금 타겟 원은 한 방향으로 느긋하게(?) 회전하는 상태다. 물론 이 속도를 높이면 난이도가 올라가겠지만, 이 경우에 animation 편집을 활용해 일정 패턴을 만들어줄 것이다.

 

TargetCircle의 widow - animation을 들어가 add property를 해준다. 그 후 Target Circle Rotation을 불러온다. 이후 동영상 편집하듯이 시점을 정해 속도를 변환시켜준다. 두 곳에 변칙을 줬는데, 기존 속도는 -140에서 출발, 1초가 지나면 60으로 바뀌고, 다시 1초가 지나면 -140으로 반복해서 속도가 바뀐다. 이렇게 애니메이션 편집을 통해 패턴을 만들 수 있다.

 

 

 

플레이 영상을 넣음으로써 두 번째 프로젝트를 마무리한다.

 

 

 


 

 

내 본연의 역량으로 만들 지 않았으나, 보고 배우고 손으로 직접 만들어가면서 유니티에 익숙해지고 C#에 익숙해지고 있다는 점은 내게 큰 보람이다. 그래도 방학 동안 조금이나마 유니티와 친해질 수 있어 다행이라고 생각한다. 일주일 뒤면 개강이라니.. 열심히 해야겠지..

 

돌이켜보니 이번 방학은 생각 외로 성과가 컸다. 여행, 아르바인트, 연애, 공부, 운동 다섯 가지를 모두 균형있고 만족스럽게 이루어냈다. 남은 일주일은 백준 골드2 달성 후 푹 쉴 생각이다. 운동은 꾸준히 해야겠지. 아무튼 또 금방 좋은 게임 제작 강의를 접하고 만들 기화가 생기기를.