ロバメモ - 素人のUnity覚書と奮闘記

素人のUnity覚書と奮闘記

シートごとに.assetを作成した場合 [ Unity-Excel-Importer-Maker ]

robamemo.hatenablog.com これの続きです。
上記記事では、エクセルファイルを丸ごと.assetにしたけど、今度は分けてみる。

エクセルファイルをインポートする

この時に、 sepalate sheet にチェックを入れる。
f:id:nico-taniku:20170908113112p:plain:w400

ファイルをリソースに移す

Reimportすると.assetファイルがシートごとに生成される。
それをリソースに移す。
f:id:nico-taniku:20170908113238p:plain:w200

_importerファイルのパスを修正しておく。

//30行目
var exportPath = "Assets/Resources/MobList/" + sheetName + ".asset";

生成されたクラスの構造

生成されたクラスの中身は、シート1枚分なのでシンプルになってる。
paramリストから該当するデータを引き出せばいいだけ。

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class MobList : ScriptableObject
{   
    public List<Param> param = new List<Param> ();

    [System.SerializableAttribute]
    public class Param
    {
        
        public string name;
        public float interval;
        public int quantity;
    }
}

データを参照する

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PopMob : MonoBehaviour
{
    [SerializeField]int stage;
    [SerializeField]int route;


    // Use this for initialization
    void Start ()
    {
        MobList mobList = Resources.Load ("MobLists/Stage" + stage + "_" + route) as MobList;

        Debug.Log ("総数 = " + mobList.param.Count);
        Debug.Log ("0番目 name=" + mobList.param [0].name);
        Debug.Log ("1番目 name=" + mobList.param [1].name);

    }
        
}

出力結果
f:id:nico-taniku:20170908114037p:plain:w300

こんな感じで、stageとrouteを変数に置き換えて読み込むことができるので、かなり便利♪

以上。