Develop_Log

[ScriptableObject Loader] Excel에서 SO로 만들기

리네엔 2024. 11. 24. 22:18

엑셀에서 데이터를 불러와서 ScriptableObject를 만드는 프로젝트를 만들었다.

1suyb/ScriptableObject-Maker:

[GitHub - 1suyb/ScriptableObject-Maker: Csv로부터 scriptableObject를 만드는 기능

Csv로부터 scriptableObject를 만드는 기능. Contribute to 1suyb/ScriptableObject-Maker development by creating an account on GitHub.

github.com](https://github.com/1suyb/ScriptableObject-Maker)

엑셀 데이터를 불러오는 것은 ExcelDataReader를 활용하였다.

ExcelDataReader/ExcelDataReader: Microsoft Excel 파일을 읽기 위해 C#으로 작성된 가볍고 빠른 라이브러리

[GitHub - ExcelDataReader/ExcelDataReader: Lightweight and fast library written in C# for reading Microsoft Excel files

Lightweight and fast library written in C# for reading Microsoft Excel files - ExcelDataReader/ExcelDataReader

github.com](https://github.com/ExcelDataReader/ExcelDataReader)

구현상세

  1. custom editor
    Unity의 CustomEditor을 활용하여 Tool을 사용할 수 있는 Interface를 구현하였음.


구현코드

https://github.com/1suyb/ScriptableObject-Maker/blob/main/CSVParser/Assets/ExceltoSO/Scripts/Editor/ExcelLoaderWindow.cs

  1. scripts maker
    using ExcelDataReader를 활용하여 Excel을 파싱하고, data클래스와 enum 클래스, so 클래스를 만들고 엑셀 데이터로부터 so클래스의 리스트를 채워줄 도우미 역할을 하는 loader 클래슬르 만들어준다.
    구현 코드

    https://github.com/1suyb/ScriptableObject-Maker/blob/main/CSVParser/Assets/ExceltoSO/Scripts/ExcelParser.cs

  2. Excel data loader
    C#의 reflection을 활용하여 엑셀 데이터로부터 Data인스턴스를 만들고, list로 담아서 저장해 반환함
    해당 list는 so 클래스에 담겨 저장되게됨.
    구현코드

    https://github.com/1suyb/ScriptableObject-Maker/blob/main/CSVParser/Assets/ExceltoSO/Scripts/ExcelDataLoader.cs

사용법은 readme.md참조.