NGUI使い始めました。Assets下の特定のフォルダに入った画像を全部読み込んで、UI Spriteを作成してみました。nullチェックとかしてなくてサーセン。
手順はこんな感じでいけた。
NGUIセットアップ
NGUIのページからどうぞ。下の方にFree Edition of NGUIとか書いてあるのでそこからダウンロードしてImportしてください。
まったく使ったことない人は、ここで一旦基本を覚えてください。UI Panelができた状態から次に進みます。
NGUIのチュートリアル「Part 1 ー Basics」
Atlasの作成
Assets下の画像フォルダ(例えばperfume/フォルダがあるとする)にある画像をすべて選択した上で、Unityのメニューの[NGUI] -> [Atlas Maker]をクリック。そのまま[Create]ボタンでテクスチャとマテリアルとアトラスオブジェクトが生成されると思います。
UI Spriteの作成
Widgetツールから、[template]に[Sprite]、[Atlas]にさっきつくったAtlasオブジェクトをD&D。これで[Add to]ボタン。そうするとSpritオブジェクトの出来上がり。インスペクタの[Sprite]フィールドで画像一覧を選べると思います。
Prefabの作成
できあがったオブジェクトはPrefab化して消します。
スクリプトから生成
下記のjacketAtlasはさっきのPrefab化したオブジェクトを入れます。それで普通にそのGameObjectをInstantiateし、UISpriteにファイル名(SpriteのID)を突っ込めば目的達成。座標は下記のコードだと同じ場所なので適当にずらしてね。
using UnityEngine; using System.Collections; using System.IO; public class JacketGenerator : MonoBehaviour { public GameObject jacketAtlas; // Use this for initialization void Start () { DirectoryInfo dir = new DirectoryInfo("Assets/perfume/"); FileInfo[] info = dir.GetFiles("*.*"); foreach (FileInfo f in info) { var obj = Instantiate(jacketAtlas, transform.position, Quaternion.identity) as GameObject; obj.transform.parent = transform; UISprite sprite = obj.GetComponent<UISprite>(); sprite.spriteName = f.Name.Split('.')[0]; } } // Update is called once per frame void Update () { } }