


첫 개인 프로젝트 때는 시일에 맞추지 못해 허둥지둥대며 챗지피티의 도움을 빌렸다.
다음 협업 프로젝트에서는 전체적인 틀은 짰지만 세부적인 구성이 그려지지 않아 분량 배분에 불균형이 있었고 필수 기능 완성 기한의 마지노선에 맞추지 못해 아슬아슬하게 완성할 수 있었다.
내 머릿속에 프로젝트 전체에 대한 그림을 그리고 짜맞추려는 시도가 없었기 때문에 하루는 이거 하고 하루는 저거 하고 허송세월 보내다가 뒤늦게 세상에서 제일 바쁜 사람이 됐던 것이다.
와이어프레임이라고 하기 민망할 정도지만 지금부터 프로젝트의 전체적인 틀과 그 안의 세부 구성을 파악하고 계획을 짜는 연습을 해야 이후의 분량 배분과 마감, 작업속도 조절에 큰 도움이 되지 않을까.
이번 개인과제에서는 전체적인 틀을 따라 세부 내용들을 붙여가는 방식으로 체계적인 습관을 만들어보고자 한다.

불안하다.. 2D 오브젝트 하나를 만들고 지운 것 뿐인데 뭐가 막 생긴다.
.vscode는 협업과 관련 없는 개인 에디터 설정이라 .ignore에 추가해도 된다고 한다.
프로젝트 파일 내의 .gitignore로 들어가서 .vscode/ 추가

맵은 상호작용 NPC, 캐릭터 변경, 미니게임으로 이동할 포탈을 배치할 별도 공간, 이외 장식물까지 고려해서 TileMap을 이용해 만들었다.

캐릭터 이동에 관련된 스크립트는 강의 내용을 토대로 BaseController로 기본적인 틀을 만들고 playerController에 상속해서 사용했다.
BaseController : 캐릭터 전반적인 설정(스프라이트, 속도 등)을 자식 클래스에 상속


PlayerController : 상속받은 멤버를 토대로 실제 동작을 담당

강의 내용을 토대로 부모 클래스에서 전체적인 기능 틀을 만들고 자식 클래스는 필요한 부분만을 재구성해서 사용하는 형식을 만들었다.
평상시 상태와 이동 상태의 애니메이션을 만들었다.

Make Transition을 통해 연결점을 만들고 Parameter에서 조건 추가, 인스펙터 창에서 조건 설정과 세부 설정

카메라 타입 변수를 선언하고 변수에 메인 카메라를 넣고 업데이트에서 마우스 위치를 카메라 위치로 바꿀 수 있게 했다.
문제는 이렇게 하면 카메라를 켰을 때 휙 날아가버리면서 x,y가 1000자리 수를 넘나들며 정신을 못차린다.
원인은 카메라는 기본적으로 z -10의 위치에 있는데 Vector2를 사용해서 z축을 무시해버렸으므로 z = 1이 돼서 제대로 된 위치를 못잡는 것으로 보인다.

마우스 따라가기에서 캐릭터 따라가기로 방식을 바꿨고 플레이어 캐릭터를 가져와서 z축은 직접 맞춰주는 걸로 해결했다.
미니게임 공간으로 입장할 수 있게 하려면 먼저 들어갈 수 있는 문을 만들어야 한다. 제공된 에셋 중 버튼을 사용해 만들기로 했다.

파란 버튼을 누르면 FlapBird 게임이 나오게 할 거고 빨간 버튼은 혹시 시간이 남으면 따로 만들 미니게임이 나오게 할 거다.
버튼이 2개니까 캐릭터 애니메이션처럼 파라미터에 넣어서 Trigger로 작동할 수 있게 하면 되겠지만 스크립트로 만들었을 때의 장점도 있지 않을까?
스크립트를 통해 하나의 오브젝트가 하위 버튼 오브젝트들을 관리하는 형태로 만들어보기로 했다.

모든 버튼들을 관리할 ButtonManager. 하위 버튼 오브젝트들의 스프라이트를 배열에 담아서 저장해놓는 기능만 구현했다.

각 버튼들의 실제 기능을 담당하게 할 자식 클래스.
아직 미완성본이긴 하지만 자식 클래스에 많은 걸 부담시켜서 스크립트를 두 개로 나눈 의미가 없는 건 아닌가 싶다.
필수기능 완성 후에도 부모 클래스가 의미가 없으면 제거하는 걸 고려해봐야겠다.