오늘은 유니티와 엑셀을 연동하여,
엑셀 내부 데이터를 가져와 사용하는 법에 대해 알아보고자 합니다.
이를 위한 확장 프로그램이 깃허브에 올라와 있습니다.
https://github.com/mikito/unity-excel-importer

Code를 누르면 파일을 다운 받으실 수 있습니다.
사용 방법
프로그램을 다운 받았다면 압축을 푼 후 내용을 유니티로 옮겨주면 됩니다.

이제 엑셀 파일을 만들어야겠죠?
Dialog라는 엑셀 파일을 만들고, 다음과 같이 내용을 넣어주었습니다.
시트의 이름은 NPC_Text라고 정해주었습니다.
엑셀의 1 행에 들어가는 내용은 나중에 변수명으로 사용되므로
반드시 영어로 작성해야 합니다.

엑셀을 유니티로 넣어 주었습니다.

이젠 엔티티 클래스 스크립트를 만들어야 합니다.


스크립트의 이름은 '엑셀의 이름' + '원하는 시트 이름'으로 붙여야 합니다.
그래서 DialogNPC_Text가 된 걸 확인 할 수 있습니다.
내용은 다음과 같습니다.

엑셀을 만들때 설명했다시피 1 행에 들어간 A,B,C가 변수명이 됩니다.
열에 들어가는 값은 행에 해당하는 타입의 값들이 되어야 합니다.
int, string ,string인 걸 확인하실 수 있습니다.
이제 유니티에 넣었던 엑셀 위에서 우클릭을 한 후 Create->ExcellAssetScript를 수행하여
엑셀을 활용하기 위한 ScriptableObject를 만들어 줍니다.

아래 사진을 보면 엑셀 파일과 같은 이름의 Dialog 스크립트가
만들어 진 걸 확인 할 수 있습니다.
코드 내용은 다음과 같습니다.

그 다음 Dialog 스크립트의 코드를 아래와 같이 수정했습니다.

List<>안에 이전에 만들었던 스크립트 이름인 DialogNPC_Text를 넣었고,
Entities라고 적힌 부분을 시트 이름인 NPC_Text로 수정했습니다.
엑셀 파일을 우클릭하여 Reimport 하면


다음과 같이 Dialog 에셋이 생성되고,
엑셀에 적었던 내용들이 나오게 됩니다.

깃허브에 들어가면 여기에서 추가로
엑셀에서 원하는 행 생략,
유니티 내 생성 경로 설정, 로그 가져오기,
이름이 다른 엑셀 파일 연동하는 법이 나와 있습니다.
직접 다루진 않았지만 참고하시면 좋을 것 같습니다.
참고한 영상
https://youtu.be/2oip0H7VgPM?si=nwsEx_9Az3pyO6qa
당장 생각나는 것만 해도 방치형 게임의 레벨에 따른 아이템 가격,
대화에 필요한 내용 등 굉장히 유용하게 사용할 수 있을 거란 생각이 드네요.
이렇게 오늘은 간단하게 엑셀을 유니티에 연동하는 법에 대해 알아보았습니다.