名古屋でアプリ・VR開発を行っています
ワクワクできるゲームをガンガン開発リリース中!

Unityの「Sprite Atlas」の画像データをスクリプトから取得する方法

みなさん、こんにちは!SAT-BOXのツバメです。

 

以前、Unityで「Sprite Atlas」の作成方法についての記事を書きましたが、

今回は「Sprite Atlas」に登録した画像をスクリプトから取得する方法についてです!

※ 本記事のUnityのバージョンは[Unity2019.3.13f1]になります

 

「Sprite Atlas」作成についての記事はコチラ

sat-box.hatenablog.jp

 

1.「Sprite Atlas」を用意しておく

最初に「Sprite Atlas」が必要なので、作成しておきます。

登録する画像は適当で問題ありません。

 

2.画像データを取得する処理の準備をする

f:id:sat-box:20200827094703p:plain

次に画像データを取得する処理を作成します。Sprite Atlasを参照するには上記の画像の

ように[using UnityEngine.U2D;] の定義が必要なので追加しておいてください。

次に画像データを取得するSprite Atlasを設定するため、

[SerializeField, Header("画像データを取得するスプライトアトラス")]
private SpriteAtlas spriteAtlas;

を記述します。これで画像データを取得する準備は出来ました。

 

3.指定のSprite Atlasから画像データを取得する

Sprite Atlasから画像を取得する場合は

指定のスプライトアトラス.GetSprite("取得する画像名")

で取得することが可能です。試しにログで出すようにしてみます。

f:id:sat-box:20200827100217p:plain

f:id:sat-box:20200827100754p:plain

ログではこのように出てくると思います。ログを良く見て頂くと分かると思いますが、

画像名(Clone)と出ています。Sprite Atlasから画像データを取得した場合、画像データ

新しく生成される仕様となっています。そのため、生成後の画像名も変わっている

ため別の処理で画像名での参照をしている場合は注意してください。

 

また、画像データを取得する際に取得する画像名が間違っている場合はNUllで返って

くるようになっています。エラーは出さないので、正しく画像を取得出来ない場合は

画像名が間違っていないか確認してみてください。

 

以上、ツバメでした!