카테고리 없음

유니티 - '엑셀'과 연동 해보자

근본넘치는개발자 2024. 9. 19. 17:00

 

오늘은 유니티와 엑셀을 연동하여,

엑셀 내부 데이터를 가져와 사용하는 법에 대해 알아보고자 합니다.

 

 

이를 위한 확장 프로그램이 깃허브에 올라와 있습니다. 

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

 

당장 생각나는 것만 해도 방치형 게임의 레벨에 따른 아이템 가격,

대화에 필요한 내용 등 굉장히 유용하게 사용할 수 있을 거란 생각이 드네요.

 

 

이렇게  오늘은 간단하게 엑셀을 유니티에 연동하는 법에 대해 알아보았습니다.