UnityのEditor拡張でBuiltInのアイコン画像とかを使う


概要

UnityのEditorはなんか頑張って作ってあって、開発者が拡張できるパーツで頑張られている。

んで、Editor上で表示される画像とかはどこかに仕舞ってあって、それを読み込んで使っている。


例えばPlatformのアイコンとか、

スクリーンショット 2015-07-20 0.12.22.png


こういうやつとか。

スクリーンショット 2015-07-20 0.08.25.png



実態はどこにあるか

Macだと下記パスにあった。


/Applications/Unity/Unity.app/Contents/Resources/unity\ editor\ resources

実態は圧縮されてるファイル。

スクリーンショット 2015-07-20 0.23.39.png



Editorからファイルを読み込むには

なんのことはない、Resourcesから取得できる。


var iconResources = Resources.FindObjectsOfTypeAll(typeof(Texture2D));


ってやると、空っぽのプロジェクトで1,000個ちょっとのアイコンが手に入る。

でまあ、名前とか指定して読みたいよね、、?



どうやるんでしょうね? 調べ中。

今のところはとりあえず全部読んでから欲しいやつだけのこしている。

ちなみに


var s = AssetDatabase.GetAssetPath(iconResources[0]);

とかやったら、sには Library/unity editor resources という値が入ったので、

Unityは起動時に unity editor resources ファイルを展開、Libraryフォルダってところに置いてるんだと思う。


たぶん Library/unity editor resources/素材名 で呼び出せるんじゃないかな。