[25.04.15] TIL( 개인 프로젝트 )

설민우·2025년 4월 15일

내일배움캠프 - Unity

목록 보기
22/85

[ 개인 프로젝트 ]

필수 구현 기능 완성

사전에 제시된 개인 프로젝트는 TextRpg를 구현하는 것 입니다. class 상속, enum, Json 등 평소에 잘 사용하지 않았지만 중요한 개념을 복습하고 활용하는 능력을 기르는 것에 중점을 두었습니다.

구현 내역

1. State 를 통한 GameLoop 관리

  • GameManager의 GameLoop 에서는 위와 같이 기존에 정해둔 Enum 값에 따라서 FSM 구조로 돌아가게 됩니다
  • 이를 통해서 예외 상황이 발생하지 않도록 조절합니다.

2. Define 에서의 별도 Enum 관리

  • 이러한 Enum 값들은 모두 별도의 Define 스크립트를 통해 관리합니다

3. Json을 이용한 DB 관리


  • string 값을 잔뜩 넣는 것이 아닌 Json을 이용해서 데이터를 관리했습니다
  • 특히 Effect의 경우 ',' 로 기능을, ':' 로 항목과 수치를 구분하여 Dictionary 에 저장해 언제든지 불러와서 적용 / 해제 시킬 수 있도록 구현했습니다.

4. Scene String 값을 Json에서 받아와서 사용하기



  • 위와 같은 구조로 Json -> TextData -> string 구조로 원하는 string 값을 Json파일로 저장해 두었다가 가져오는 방법으로 변경했습니다.
  • 이 방법을 통해서 반복되는 WriteLine과 Logic 파트에 덕지덕지 붙어져 있는 string 값들을 줄일 수 있었습니다.

< 오늘의 문시해알 >

발생했던 문제들

  • 너무나 많이 Console.WriteLine 혹은 ReadLine을 하게 되는 문제가 있었습니다.

시도해본 방법

  • 위와 같이 Utils 에 기능들을 묶어 넣어두어서 문제를 해결하고자 했으나 여전히 줄 갯수는 똑같았습니다

해결 방법

  • 별도로도 사용할 수 있지만 UpdateStringBuilder 하나에 기존에 작성한 함수들을 동시에 사용 할 수 있도록 설정해 두었습니다.

알게된 것

  • 자주 사용할 법한 기능들은 Utils 스크립트를 통해 전역에서 사용 할 수 있도록 하는게 편하다는 것을 알게 되었습니다.
  • 또한 특정 기능을 포함하는 함수를 만들고 싶다면, 단순한 함수를 먼저 구현하고, 복합 구조에서 해당 함수를 불러오는 방식으로 구현하면 코드 중복을 피할 수 있었습니다.

+) 추가

개인 프로젝트 진행에 너무 심취해버린 나머지 강의 2강 복습을 진행하려고 했는데 실패했습니다...
내일은 좀더 개념 정리에 근간을 둔 캠프 진행이 되도록 할 예정입니다.

profile
클라이언트 개발자를 지망하고 있습니다.

0개의 댓글