profile image

L o a d i n g . . .

반응형

오늘 한 작업

  • 필드 씬 레벨 디자인
  • 던전 씬 레벨 디자인
  • 플레이어 스탯 JSON 연동
  • 플레이어 인벤토리 JSON 연동
  • 퀘스트 오류 수정
  • 보스 및 스켈레톤 오류 수정
  • 로딩 씬 안 보이는 오류 수정

 

내일 목표

  • 3타 딜 안 들어가는 오류 수정
  • 드래곤 사운드 체크(어긋나는 게 있었던 것 같음)
  • 인벤토리 구현 마무리
  • 상점 구현
  • 드래곤 파이어볼 충돌 수정

 

구현 중 막힌 것

처음에 레벨 디자인이 너무 귀찮아서 그냥 애셋에 있는 샘플 씬을 사용했더니 모바일 환경에 맞지 않았고, 최적화를 해도 프레임 드랍 현상이 너무 심했다. 그래서 필드 씬과 던전 씬을 각각 구현해 봤다. 최적화하는 김에 Batch도 사용해 보았다.

 

JSON은 유니티에서 처음 사용해 봤던 것이라서 좀 헤맸었다. 또한 어느 시점에서 해당 파일을 읽어 와서 처리해야 할지 많은 고민이 되었다. 씬을 전환할 때랑 세이브 버튼 눌렀을 때 자동으로 저장하게 처리했다. 또한, HP가 0이 되어서 죽었을 때는 HP를 MaxHP로 저장되게끔 했다. 레벨이나 경험치 초기화는 더 확장할 생각이 없어서 굳이 처리하지 않았다.

 

현재 충돌 처리 방식은 Game Manager에서 Enemy를 전체적으로 관리하고, 플레이어가 때렸을 때 해당 Enemy HashSet을 받아와서 거리 체크 및 각도 체크를 진행한다. 슬라임은 스폰 지역에서 생성되는 방식으로 구현했기 때문에 괜찮았는데, 이벤트를 위해서 하이어라키에 미리 드래곤과 스켈레톤을 배치해 놓은 상황이라서 HashSet에 추가하는 타이밍이 중요했다. 드래곤은 또 해당 지역에 들어가면 Timeline 기능을 이용해서 컷씬 연출을 넣어 놨기 때문에 조금 더 처리하기가 까다로웠다. OnEnabled에 해당 코드를 넣으니까 뭔가 자꾸만 꼬였다.

결국 빈 GameObject로 한 번 더 감싸고, 해당 상위 GameObject의 Active를 컨트롤하는 방식으로 구현하니까 괜찮아졌다. 또한, 드래곤의 경우에는 Init 과정에서 HashSet에 등록되게끔 구현했다.

 

 

내일이나 모레면 최종 영상 찍을 수 있지 않을까? 포트폴리오 문서도 얼른 갱신해야겠다.

처음에는 추가하고 싶었던 기능이 많았는데, 최적화 관련해서 추가하면 안 될 기능도 있어서 하던 것만 마무리 짓고 끝내려고 한다. 파이팅! ^0^)9

반응형
복사했습니다!