QuickSheet를 통해 Google 스프레드시트로 Google Spread Sheet로 게임 데이터를 관리하면 편리하다.

QuickSheet는 로컬에 있는 Excel도 지원해주는데 나는 Google 스프레드시트를 사용했다.

다른 플러그인들과 비교해봤을 때 QuickSheet의 가장 좋은 점은 Enum 타입과 Array도 지원해준다는 것!!

 

- 설치 / 연동

다운은 아래 GitHub 링크에서 받을 수 있다.

github.com/kimsama/Unity-QuickSheet

 

kimsama/Unity-QuickSheet

Unity-QuickSheet enables you to use spreadsheet file data within Unity editor. - kimsama/Unity-QuickSheet

github.com

 

연동하는 방법은 다루지 않고 데이터를 관리하는 방법만 다루겠다.

연동하는 방법은 아래 블로그에 자세히 나와있다.

 

lhh3520.tistory.com/345

 

[Unity3D] 유니티에 Google Spread Sheet 연동하는 방법

게임을 만들다 보면 케릭터 레벨 별 경험치 라던지 레벨 별 몬스터 데지미 라던지 등등의 수치를 서버에서 받아와야 하는 경우가 있습니다. 물론 서버가 연동이 된다면 서버에 등록해서 받아오

lhh3520.tistory.com

 

- 구글에서 스프레드시트 만들기

 

구글 드라이브 -> 새로 만들기 -> Google 스프레드시트 클릭

 

상단의 스프레드시트 이름과 하단의 시트 이름을 변경해준다.

시트에서 첫번째 행은 속성(Attirbute)들이 온다.

이때 각 행(레코드)을 구별하기 위해서 고유한 속성을 하나 만든다. (추후에 Unity에서 딕셔너리로 관리하기 위해)

여기선 ID가 그 역할을 한다. 따라서 ID는 중복될 수 없다.

 

스프레드시트 이름 : MyGameData

시트 이름 : TestTable

속성:  ID(int), Name(String), Species(Enum), Item(int Array)

 

- Unity에서 Table 받아오기

이제 Unity에서 테이블을 받아오기만 하면 된다.

Enum 타입의 속성을 사용했기다면 미리 해당 Enum을 선언해야한다.

미리 선언하지 않고 Import를 한다면 당연히 에러가 난다.

 

 

Enum 타입을 사용하지 않았거나 이미 선언해놨다면 위의 과정은 필요 없다.

 

Assets -> Create -> QuickSheet- > Tools- > Google을 클릭해서 새로운 Import Setting을 생성해준다.

 

 

SpreadSheetName과 WorkSheet Name을 넣어준다.

그리고 Import를 누르면 아래와 같이 설정한 속성들이 로드된다.

 

 

Type을 지정해주고 Generate 버튼을 누른다.

아래와 같은 로그가 뜨면 성공적으로 Generate된 것이다.

 

 

 

Assets -> Create -> Google -> TestTable(각자 설정한 시트 이름)을 클릭한다.

Download버튼을 누르면 아래처럼 데이터가 Array로 로드한다.

 

이 파일은 이후 사용되니 위치를 기억해둔다.

 

- Dictionary로 테이블 데이터 관리

이제 각 스크립트에서 데이터를 사용하기 편하게 싱글톤 스크립트에서 데이터를 Dictionary로 저장하여 관리하도록 하겠다.

 

게임의 데이터를 관리해주는 TableData라는 싱글톤 클래스를 만들었다.

그리고 위에서 말한 TestTable 파일을 Inspector를 통해 _testTable이라는 변수에 받아온다.

그리고 이 데이터를 저장할 딕셔너리를 선언한다.

나는 ID의 타입이 int 이기 때문에 딕셔너리 Key의 타입을 int로 하였다.

 

Awake나 Start함수 등 게임이 시작됐을 때 위의 코드를 실행한다.

 

다른 클래스에서 데이터를 받아오기 위한 함수

 

이제 다른 클래스에서 위 코드처럼 간편하게 사용할 수 있다.

+ Recent posts