robamemo.hatenablog.com
これの続きです。
上記記事では、エクセルファイルを丸ごと.assetにしたけど、今度は分けてみる。
エクセルファイルをインポートする
この時に、 sepalate sheet にチェックを入れる。
ファイルをリソースに移す
Reimportすると.assetファイルがシートごとに生成される。
それをリソースに移す。
_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); } }
出力結果
こんな感じで、stageとrouteを変数に置き換えて読み込むことができるので、かなり便利♪
以上。