빛하_ 2023. 12. 22. 22:57

 

Unity 2D 게임 개발 일지

 

Player Input system 에서 Behavior 항목

(1) Send Message

 - OnMove, OnLook 함수를 해당 object에 붙어있는 스크립트에서 찾는다.

 

(2) Broadcast Message

- OnMove, OnLook 함수를 해당 object + 하위 자식들에게 있는 스크립트에서도 찾아온다.

 

(3) Invoke Unity Events

- Event라는 탭이 새로 생성된다. Unity 자체적으로 Move와 Look 함수를 지정해서 이벤트를 연결한다.

  UI 제작 시 버튼 만드는 방식과 유사하다. 엔진을 직접 이용하는 직관적인 방식.

 

(4) Invoke C Sharp Events

- 해당 Input system 에 스크립트를 생성한다. 코드 작성으로 Move, Look 함수와 이벤트를 연결한다.

 

 

게임 데이터를 저장하고 불러오는 방법들

(1) Player.Prefs

로컬(내 컴퓨터)에 저장되는 정보

휘발성이 높기 때문에 중요성이 낮은 데이터를 보관한다.

로컬에서 삭제하면 모든 정보가 삭제될 수 있다.

너무 큰 데이터가 들어가면 성능 저하의 원인이 된다.

사용 예시) 게임에서의 단축키, 플레이어가 조절한 설정 옵션 등

 

 

(2) Scriptable Object

더 많은 데이터를 저장할 수 있다.

파일이 생성되기 때문에 조금 더 안전하다.

영구적으로 저장되는 것이 아니라서.. 앱을 껐다 키면 변동사항이 저장되지 않는다.

읽는 용도로만 사용하게 된다 (변하지 않는 데이터만 입력)

사용 예시) 아이템에 대한 정보, 몬스터 정보

 

 

(3) Json

key - value 형식의 문자열

클래스의 구조를 파악하기 용이함

{키: 값, 키:값, 키:값} 형식으로 보관함.

 

- 직렬화 (JsonUtility.ToJson) : 클래스에서 Json으로 데이터이동

- 역직렬화 (JsonUtilitu.FromJson) : Json에서 클래스로 데이터 이동

 

 

(4) CSV 파일

split(,)을 이용해서 데이터 분할

데이터에 comma 사용 불가능 (오류 방지)

연애 시뮬레이션 게임 등 dialogue 기반 게임에 용이 (글의 양이 많기 때문에)

map 생성 데이터 관리 용이 (벽 = 1, 공간 = 0 형식으로)