LoginSignup
15
13

More than 5 years have passed since last update.

Excel Importer Makerを使ってみた

Last updated at Posted at 2017-04-02

Unity-Excel-Importer-Makerを利用してみました。

Unity-Excel-Importer-Makerとは?

ExcelファイルからScriptable Objectを生成してくれるUnity用ツールです。
作成はテラシュールブログ( http://tsubakit1.hateblo.jp/entry/2016/07/28/073000 )のtsubaki_t1さんです。

Unity-Excel-Importer-Makerを使うことにした理由

まず、試作中のミニゲームのマスタ作成の方針が次のようになっておりました。

  • 原本となるデータはExcelで作成する。
    • なんだかんだUIの使い勝手がいい。
    • 後日CSVに吐き出して、といった方針転換もできる。
    • ややこしいことをしたくなったときもVBAやC#連携でかなり乗りきれる。
  • Scriptable Objectを利用する。
    • 安心安定の公式。速度も十分らしい。
    • 今回は他のプログラムとデータ形式を共通化する必要がない。
    • データの確認は若干やり辛いが、規模が小さいため大丈夫と判断。

JSONやMessagePackでシリアライズする手もありますが、今回は公式の仕組みを使うことにしました。大抵それが一番安定する上、開発速度も処理速度も早い傾向があります――もちろん何事にも例外はありますが、何かあったらそのときはそのときです:)

そこで、「ExcelファイルからScriptable Objectを生成するまでの手順をどうするかなあ」と悩んでいたところ、そのものズバリのツールがあったので飛びついた次第です。

利用開始までの流れ

インストール

GitHubの該当ページから最新ソースをダウンロード。展開後、インポートしたいプロジェクトをUnityで開いてxlsx import.unitypackageを起動します。

image.png

インポート

無事インポートされたら、今度はページ下部の説明を参考にしてReimportまで実行します。
このようなExcelファイルから

image.png

データとクラスが生成されます。
image.png

image.png

読み込み

これだけで、作成されたクラスをアタッチしたコンポーネントからLINQで取得することができます。お手軽。

image.png

LoadMasterTest.cs
using System.Linq;
using UnityEngine;

public class LoadMasterTest : MonoBehaviour
{
    public Entity_Monster MonsterMaster;

    void Start()
    {
        var monster = MonsterMaster.param.Where(data => data.MonsterId == 1)
                                         .FirstOrDefault();

        if (monster != null)
        {
            Debug.Log(monster.MonsterId);
            Debug.Log(monster.Name);
            Debug.Log(monster.Hp);
        } else
        {
            Debug.Log("読込失敗");
        }
    }
}

手間のかかるマスタデータのコンバートを簡単に実現できました。作者様に感謝!

Link

15
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13