요즘 UGS로 데이터를 관리하는 것에 관심이 생겨 계속 찾아보다가 UGS로 받아온 Json값을 SO로 관리하면 정말 편하겠다라는 생각이 들어 이것 또한 찾아보았다 그 때 정말 꿀 같은 오픈소스를 발견하였는데 이걸 소개하고자 한다.
https://github.com/NorskaGames/NorskaLib.Spreadsheets
게임회사에서 만든 오픈소스 같다.
에셋 사용법은
https://www.youtube.com/watch?v=DjA3yJVZmtM
해당 유튜브에 자세히 설명이 되어있는데 영어이므로 조금 설명을 덧붙이고자 한다.
우선

다음과 같이 Package Manager에 들어간 뒤

git에 나와있는 해당 주소를 복사하고

+표시를 누르고 URL을 적는 칸에 넣어주면 된다.
이 떄 주의 할 점은 git이 환경변수 path에 포함되어야 있어야 한다. 오류가 발생하면 환경변수 Path에 git의 경로가 적혀있는지 확인해보자
git version을 통해 확인할 수 있다.

그 다음 스프레드 시트를 작성하는데 나는 다음과 같이 작성하였다.

이렇게 작성한뒤
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using NorskaLib.Spreadsheets;
namespace GameData
{
[System.Serializable]
public class PlayerData {
public string Id;
public float Health;
public float Damage;
public float Speed;
public float AtkSpeed;
}
[System.Serializable]
public class DataContainer
{
[SpreadsheetPage("PlayerData")]
public List<PlayerData> playerDatas;
}
[CreateAssetMenu(fileName = "PlayerDataSO", menuName = "DataSO")]
public class PlayerDataSO : SpreadsheetsContainerBase {
[SpreadsheetContent]
[SerializeField] DataContainer dataContainer;
public DataContainer DataContainer => dataContainer;
}
}
다음과 같이 코드를 작성하였다.
그리고 SO를 만들게 되면

다음과 같이 인스펙터에 표시되게 되는데 DocumentId에 구글 시트 주소를 넣으면 된다.

참고로 사진의 저 부분을 넣어야 한다.
import하게 되면

다음과 같이 데이터가 잘 연동된 것을 볼 수 있다.
참고로

다음과 같이 설정한뒤 serialize를 누르게 되면

Json 파일도 만들어 준다. 개꿀이다.
자세한 설명은 위에 첨부해 두었던 유튜브를 확인해보면 도움이 될 것이다.