개발 TIL

내일배움캠프TIL 58일차 정리

yun-wj1126 2025. 4. 15. 21:16

구글 스프레드시트의 아이템 데이터를 Scriptable Object로 변환하기 위해 여러 에셋들과 많은 글들을 찾아봤지만 뭔가 미묘하게 아쉬워서 직접 순서를 정해 만들어보기로 했다.

일단 구글 스프레드 시트의 공유 설정을 보기로 설정했다.

그리고 링크의 /d/ 와 /edit 사이의 ID값을 가져오고 변환하고자 하는 Sheet의 이름을 가져왔다.

그리고 만든 https://opensheet.elk.sh/시트ID/시트이름 url이 json으로 정상적으로 변환되는지 링크를 브라우저에 넣어 나오는 것을 확인 후 url에 넣어줬다.

 

그리고 url로 Http GEt 요청을 해서 yield return www.SendWebRequest();를 통해 요청을 보내고 응답을 기다린다.

요청의 성공여부에 따라 성공하면 아래 www.downloadHandler.text를 를 통해 받은 json을 가져오고 File.WriteAllText는 savepath 경로에 파일을 생성하고 데이터를 쓴다. 그리고 기존파일이 있다면 덮어쓴다.

그리고 AssetDatabase.Refresh()를 통해 에셋 데이터베이스를 강제로 갱신한다.

이코드가 없다면 에디터에서 수동으로 Refresh를 눌러야 변경사항이 적용된다.

 

그리고 이것을 윈도우 에디터로 만들었는데 윈도우 에디터에서는 코루틴이 실행이 불가능했다. 그래서 패키지 매니저에서 Editor Coroutines를 설치하고 using Unity.EditorCoroutines.Editor;를 추가 후 

 EditorCoroutineUtility.StartCoroutineOwnerless로 에디터 스크립트에서만 사용가능한 코루틴을 사용했다.

이렇게 하니 정상적으로 json파일을 저장하였다.

내일은 json파일을 SO로 만드는 작업을 진행할 예정이다.