Unity: 스프레드시트를 이용해보자 - 1

이재형·2024년 7월 5일
0
post-thumbnail
post-custom-banner

Unity 공부

스프레드시트를 이용해보자

진행 전 > 스프레드시트는 총 2번으로 정리해서 올릴 것입니다!

문제 발생: 스크립터블오브젝트를 대신해서 데이터를 활용하는 방법을 찾음

문제 진행: 스프레드시트를 이용해서 데이터를 활용 수 있는 것을 알게 됨

문제 해결: 검색을 하면서 스프레드시트를 이용하는 방법을 찾음

1. 구글 시트의 액세스를 해제하기

구글 시트를 생성 후 오른쪽 상단에 공유 버튼을 눌러 액세스를 제한에서 모든 사용자로 변경을 합니다.


2. 시트에 활용할 데이터 추가하기

스프레드시트의 셀에 데이터에 대한 정보를 적어둡니다.


3-1. 시트에 적용한 정보를 저장해두기

시트의 사이트 주소인 adress, 셀의 위치인 range, 시트의 아이디인 sheetID를 활용

3-2. 시트 정보 확인하기

SheetID 정보: 1488976208

시트 주소: 해당 시트 주소에서 /edit?전까지의 주소

셀의 위치: A2:J

A2:J6이지만 두번째 주소인 J만 입력하여 A2:J로 넣어줘야한다.


4. 스프레드시트의 주소를 반환하자

public static string GetCSVAddress(string address, string range, long sheetID)
{
    return $"{address}/export?format=tsv&range={range}&gid={sheetID}";
}

위에서 설정했던 3가지(주소, 위치, 아이디)를 이용하여 주소를 반환해준다.


5-1. UnityWebRequest를 이용하여 웹 정보를 받아오자

UnityWebRequest는 웹의 주소에서 값을 받아오게하는 기능인데 이것으로 스프레드시트정보를 받을 것입니다.
1. UnityWebRequest.get() > 인자에 사이트 주소를 넣어서 받아오는 기능
2. www.SendWebRequest() > 웹에서 데이터를 보냈는지 확인하는 기능

private void Start()
{
    StartCoroutine(LoadData());
}

public IEnumerator LoadData()
{
    UnityWebRequest www = UnityWebRequest.Get(GetCSVAddress(adress, range, sheetID));
    yield return www.SendWebRequest();

    Debug.Log(www.downloadHandler.text);
}

5-2. 코루틴을 이용한 이유

코루틴을 사용하지 않고 아래 처럼 진행을 한다면

UnityWebRequest www = UnityWebRequest.Get(GetCSVAddress(adress, range, sheetID));
Debug.Log(www.downloadHandler.text);

정보를 보내기전에 바로 log를 찍히기 때문에 로그가 찍히지 않는 문제가 발생하므로
코루틴을 이용하여 yield return www.SendWebRequest()를 사용하여 값을 받아온 이후 실행하게 해야합니다.


6. 문제 없이 들어왔는지 확인하기

콘솔창에서 시트에 적은 내용이 문제 없이 들어왔는지 확인한다.

7. 다음 진행 내용


1. 시트의 내용으로 직렬화한 클래스와 연결
2. 들어온 데이터를 토대로 정보를 읽고 오브젝트에 연결하기

정리

배운 내용

1. 코딩을 하다보면 시트에서 데이터를 활용하는 것을 본적이 있었는데 직접 해보니 계속 해보면서 익숙해져야할 것 같다.

해결 못한 문제

1. 없음

문제점

1. 없음

profile
한국사람
post-custom-banner

0개의 댓글