UnityでRPGを作ってみる

UnityでRPGを作ってみる

【Unity】スクリプトから画像を分割して読み込む

アイコンとかは1つの画像にして分割するといいと思います

下準備

  1. 読み込みたい画像をResources以下に置く(自分はさらにImgフォルダを作ってその下に格納)
  2. Texture TypeをSprtiteに変更
  3. 画像を分割したい場合は、Sprite modeをMultipleに変更f:id:allmoreidea:20180715140418j:plain
  4. ちょい下にある「Sprite Editor」を押下
  5. 下図のように任意のサイズ(今回は32x32)でスライスする

f:id:allmoreidea:20180715140710j:plain

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ではこれでうまくできたので備忘録として。