読者です 読者をやめる 読者になる 読者になる

テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Resourcesフォルダからパック済みSpriteを取得する際、文字列検索ではなくenumで呼び出したい

Resourcesからスプライトを取得する際、普通はいかのように入手する必要があります。これは、単純にパック済みスプライトの一つを抜き出すことが出来ないためです*1。取り方は以下のとおり。


[Unity] Resourcesに配置したパック済みのSpriteを取得する


ResourcesからスライスしたSpriteを取得する3つの方法 - テラシュールブログ

しかし、正直文字列Findは余り良くありません。なので、事前に値を列挙しておき数値で取得できるようにするエディタ拡張を作ってみました。

パック済みスプライトが持つスプライト情報を列挙する


UnityのResourcesに配置したテクスチャのAtlasが持つスプライトを列挙型にする

 

まずは列挙の作り方です。

  1. Editorフォルダいかに上のコードを配置
  2. MultipleのスプライトをResources以下でインポートする

これで、Enumフォルダにスプライトと同名のソースコードが作成されます。

f:id:tsubaki_t1:20141216004851p:plain

使う場合は、以下のように指定します。

var sprite = Resources.LoadAll<Sprite>("Icons/Hoge")[(int)Hoge.stop]; 

 

*1:個別に取得するのはパックする意味が無い