최종 프로젝트를 진행하면서 느낀 것이 하나 있다.

DB를 관리하면서 너무 불편했던 경험이 있다.

GitHub를 이용해서 데이터 관리를 하니 데이터가 변경 되었을때 해당 작업자가 상위 브런치에 Merge를 해야만

변경된 데이터를 확인할수가 있어서 너무 불편했었다. 

 

해당 프로젝트에서는 메인 기획자라고 할 사람이 없었지만 , 내가 회사에 취직했을때는 기획자가 데이터 값을 변동만하면 바로 적용 하게 해야할 필요를 느꼇다.

 

구글 스프레드 시트를 이용하여 온라인으로 외부 데이터를 읽어오는 방식이다.

현재 방법은 구글 스프레드 시트 API를 이용하지 않는 방법으로 간단한 프로젝트를 구성할때 좋은 방식이다. 

 

 

 

해당 구글 스프레드 시트에 데이터를 기입하자.

 

구글 스프레드시트에 데이터를 기입하고 [공유] 버튼을 눌러 링크를 활성화 하자.

 

공유에 있는 링크를 가져오자

 

이렇게 가져온 링크를 밑에 스크립트 코드에 붙여 넣는다. 

using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

//복사해온 URL : URL주소

//1.복사해 온 주소에서 끝에 있는 "edit?usp=sharing" 삭제한다.
//2.삭제 한 주소에 다음을 추가한다 "export?format=tsv&range=A2:E";
//2-1. 설명 : 모드와 포맷 그리고 시트의 범위를 뜻함, =A2:E 를 엑셀 연산식에 적용시 범위를 알수 있음 

//사용할 URL :  URL주소 + export?format=tsv&range=A2:E


public class GoogleSheetDBLoader : MonoBehaviour 
{
    private string sheetData; // URL에서 불러온 데이터를 저장하는 변수
    private readonly string googleSheetURL = "사용할 URL";

    public string SheetData { get => sheetData; set => sheetData = value; }

    IEnumerator Start()
    {
        //UnityWebRequest 인스턴스 리소스 해제를 위한 using
        using(UnityWebRequest www = UnityWebRequest.Get(googleSheetURL))
        {
            yield return www.SendWebRequest();

            if(www.isDone)
            {
                sheetData = www.downloadHandler.text;
            }
        }

        DisplayText();
    }

    public void DisplayText()
    {
        //Split 함수로 데이터 처리하기
        string[] rows = sheetData.Split('\n'); //행 데이터 (카드의 데이터 모음)

        string str = "";
        for (int j = 0; j < rows.Length; j++)
        {
            string[] columns = rows[j].Split('\t'); // 열 데이터 (카드의 데이터 중 하나)

            //첫번째 행의 카드 데이터를 출력한다.
            for (int i = 0; i < columns.Length; i++)
            {
                str += columns[i] + " ";
            }

            str += "\n";
        }

        Debug.Log(str);
    }
}

 

이렇게하면 해당 스크립트에 범위에 표시된 데이터를 다 문자열로 파싱해온다.

 

범위는 추가되는 URL의 ( A2:E ) 이 부분을 수정해서 사용하면된다.

물론 이 코드는 확장성에서 많이 떨어지는 부분이 있기에 나중에 프로젝트가 커지면 API를 사용하는게 더 효율적일것이다. 

URL에 추가할때 해당 빨간상자 친 부분을 수정해주면된다.

 

 

불러온 구글 스프레드 시트 데이터가 출력된다.

 

해당 기능을 이용하여 나중에 게임에 DB를 구성하여 사용 할수 있을것이다. 

+ Recent posts