【Unity】スクリプトから画像を分割して読み込む
アイコンとかは1つの画像にして分割するといいと思います
下準備
- 読み込みたい画像をResources以下に置く(自分はさらにImgフォルダを作ってその下に格納)
- Texture TypeをSprtiteに変更
- 画像を分割したい場合は、Sprite modeをMultipleに変更
- ちょい下にある「Sprite Editor」を押下
- 下図のように任意のサイズ(今回は32x32)でスライスする
C#
Sprite[] icon_skill; // 分割した画像を格納する配列を定義
icon_skill = Resources.LoadAll<Sprite>("Img/skill_icon"); // LoadAllで分割された画像を一斉に読み込む
SkillButton[0].GetComponent<Image>().sprite = icon_skill[1]; // 任意のGameObjectに張り付ける====
注意
何度やってもうまく読み込めなくてうーんと唸ったところ。
当初、
a = Resources.LoadAll("Img/skill_icon") as Sprite[];
とas~を後ろにつけていたが何度読み込んでも真っ白。デバッグで見たけどNullってるぽかった。
a = Resources.LoadAll<Sprite>("Img/skill_icon");
と、
理由はわからないし、as~としてるソースもあったのでこれで良いのかと思ってたけれど、Unityのバージョンとか関係あるのかな。
とりあえずVer.5.6.3p2ではこれでうまくできたので備忘録として。