[유니티(Unity)] excel importer 엑셀 임포터

728x90
목표

유니티에서 엑셀 파일에 데이터를 불러오는 방법을 고민했습니다. 그러다 인터넷에서 유용한 기능을 발견하게 되어서 정리합니다.

https://github.com/mikito/unity-excel-importer

 

GitHub - mikito/unity-excel-importer

Contribute to mikito/unity-excel-importer development by creating an account on GitHub.

github.com

excel importer를 사용하여하는 방법인데요. 안에 git을 다운로드하고 프로젝트 에셋 폴더 안에 넣으면 됩니다. 안에 설명도 잘 되어있어 git만 보셔도 따라 하기 쉽습니다.

준비

일단 저기 git에 들어가서 다운로드합니다.

2023-05-30-1.PNG

다운로드하고 압축을 풀면 파일 구성이 이렇게 되어있는데 Assets 폴더 안에 있는 ExcelImporter폴더 파일을 프로젝트 Assets 안에 넣어 줍니다.

2023-05-30-2.PNG
2023-05-30-3.PNG

이렇게 Assets 안에 ExcelImporter 폴더 전체를 넣어 주면 준비는 끝입니다.

2023-05-30-4.PNG

시작

먼저 데이터를 추출할 엑셀 파일이 필요합니다. 

따라서 엑셀 파일을 만들어 줍니다.

2023-05-30-6.PNG
2023-05-30-5.PNG

엑셀의 첫 번째 행은 스크립트에서 변수 명으로 사용되기 때문에 영어로 작성하셔야 합니다. 그리고 밑에 값을 넣어 줍니다. 

2023-05-30-7.PNG
2023-05-30-8.PNG

그다음 엑셀을 선택한 후 Create 메뉴에서 ExcelAssetScript를 실행하고 이 엑셀용 ScriptableObject 스크립트를 만들어 줍니다.

2023-05-30-9.PNG
2023-05-30-10.PNG

실행하면 이렇게 ScriptableObject 스크립트가 만들어지고 엑셀에 시트 이름과 동일한 변수가 추가가 됩니다.

그다음 List 안에 EntityType 대신에 들어갈 Serializable 객체를 만들어 줍니다.

2023-05-30-11.PNG
2023-05-30-12.PNG

스크립트 이름은 편한 데로 사용하시면 되고 대신 안에 있는 변수 이름과 같은 경우는 엑셀에 행의 첫 번째 줄에 이름과 동일해야 합니다. 그다음 변수 타입은 안에서 사용한 데이터 타입과 동일해야 합니다.

변수명 id name
  0 테스트1
  1 테스트2
  2 테스트3
  3 테스트4
  4 테스트5
변수 타입 int string

그다음에 이렇게 만들어진 객체를 List 안에 EntityType 대신 넣어 줍니다.

2023-05-30-14.PNG

그러고 나서 에디터로 돌아와 엑셀 파일을 Reimport 해 주면 스크립트 이름과 동일한 Scriptable object 가 생기게 됩니다.

2023-05-30-13.PNG

이렇게 생성이 되고 데이터가 들어가 있는지 확인됩니다.

2023-05-30-15.PNG
2023-05-30-16.PNG

하지만 데이터를 저 같은 경우 데이터가 확인되지 못하게 잠겨 있습니다. 그래서 코드를 짜서 확인해 보겠습니다.

2023-05-30-17.PNG

이렇게 코드를 짜고 실행해서 확인해 본 결과 밑에 처럼 데이터가 잘 들어간 것을 확인했습니다.

2023-05-30-18.PNG

고급
1. 생략

값 중간에 # 으로 시작하면 그 행은 생략이 됩니다. 밑에 처럼 넣고 테스트해본 결과 # 으로 시작하는 행은 생략 되고 나머지는 잘 출력이 됩니다. 참고 : 변수 이름이 나오기 전에 생략을 하면 생략이 안되고 값이 안 들어갑니다. 

2023-05-30-19.PNG
2023-05-30-20.PNG

2. 경로 변경

아래와 같이 AssetPath를 지정하여 ScriptableObject 생성 위치를 변경할 수 있습니다.

2023-05-30-21.PNG
2023-05-30-22.PNG

3. 로그 가져오기

LogOnImport를 true로 설정하면 프로세스가 실행될 때 로그가 출력됩니다.

2023-05-30-23.PNG
2023-05-30-24.PNG

4. 엑셀 이름 연결

ExcelName을 설정해 클래스 이름과 엑셀 이름이 같지 않아도 엑셀과 연결을 할 수 있습니다.

2023-05-30-25.PNG

5. 복합

위에서 나온 속성들을 썩어서 사용할 수 있습니다.

2023-05-30-26.PNG

728x90