(Unity) GoogleSheet Get
포스트
취소

(Unity) GoogleSheet Get

로컬에서 엑셀파일을 유니티 폴더에 넣어 관리하기가 불편해서 구글시트와 연결하여 쉽게 사용해보려고 한다.

GoogleSheet

구글시트는 백엔드 서버처럼 사용 가능하며 Get, Post 등이 가능하다.

구글시트의 장점은 무료라는 점이고, 매우 편리하게 백엔드 서버를 사용할 수 있다.

협업에서도 엑셀파일을 보내는 불편함을 없앨 수 있고 수정하는 즉시 반영되며 1인 개발에서도 매우 도움이 될 것이다.

GoogleSheet 사용법

📝 GoogleSheet 값

GoogleSheet

💻 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// 시트 형식과 같게 생성
public class StartData
{
    public int Id;
    public int exp;
    public int level;
    public int maxHp;
    public int maxMp;
    public int STR;
    public int Speed;
    public int LUK;
    public int gold;
}

class GoogleSheetManager : MonoBehaviour
{
    // "https://docs.google.com/spreadsheets/d/구글시트ID/export?format=csv&gid=0"
    // ?format=csv : csv로 출력됨.
    // &gid=       : 시트 번호 지정 가능
    const string URL = ""; // 구글 시트 주소 작성

    // 구글 시트의 데이터를 받을 곳
    public Dictionary<int, StartData> Start = new Dictionary<int, StartData>();

    void Start()
    {
        StartCoroutine(DataRequest());
    }

    public IEnumerator DataRequest()
    {
        UnityWebRequest www = UnityWebRequest.Get();

        yield return www.SendWebRequest();

        string data = www.downloadHandler.text;

        // 데이터 딕셔너리에 저장시키기
        string[] lines = data.Split("\n");
        for(int y=1; y < lines.Length; y++)
        {
            string[] row = lines[y].Replace("\r", "").Split(',');
            if (row.Length == 0)
                continue;
            if (string.IsNullOrEmpty(row[0]))
                continue;

            StartData startData = new StartData()
            {
                Id = int.Parse(row[0]),
                exp = int.Parse(row[1]),
                level = int.Parse(row[2]),
                maxHp = int.Parse(row[3]),
                maxMp = int.Parse(row[4]),
                STR = int.Parse(row[5]),
                Speed = int.Parse(row[6]),
                LUK = int.Parse(row[7]),
            };

            Start.Add(startData.Id, startData);
        }

        // 잘 들어갔나 확인
        for(int i=1; i<=Start.Count; i++)
        {
            if (Start.TryGetValue(i, out StartData value) == false)
                Debug.Log($"{i} : false");
            else
                Debug.Log(value.level + " " + value.exp + " " + value.maxHp);
        }
    }
}


💡 참고

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

(3D RPG) 기본 기능

(3D RPG) Google Sheet 연결