Unity:カスタムアイコンで表示させる

Unityで、自作クラス(MyClass.csとします)のインスタンスアセットやインスペクター上のアイコンを変えたい場合の手順。

デフォルトのアイコンはこんな感じ

デフォルトのアイコンだと自作クラスやそのインスタンスを他のスクリプトと区別しにくいので、これを変えていきます。

Unityのビルトインアイコンを使用する場合

MyClass.csを選択し、左上のカラフルなアイコンの中で好きなものを選択して変更するだけです。
凝ったアイコンは不要で他との区別がつけばいいだけならこれで十分です。

カスタムアイコンを使用する場合①

上のビルトインアイコンを使用する場合と同じ手順で、
Select Iconでビルトインアイコンを選ぶ代わりにOtherボタンからAssetフォルダ内の任意のアイコンを選びます

カスタムアイコンを使用する場合

①の手順による手動のアイコン変更を経由せずに、自作のカスタムアイコンを適用させる方法もあります。
(多分サードパーティアセットなどでアイコンを自動で上書きする用途につかうもの)

MyClass.csの中身のクラス宣言がこうだとします

namespace MyNamespace.MyClasses

{
public class MyClass : MonoBehaviour //※またはScriptableObject
{ }

}

名前空間MyNamespace.MyClassesにあるMyClassクラス。

次のようにします

 

※1 Assets/Gizmos以下のフォルダ構造は名前空間と一致している必要があります。クラスはMyNamespace.MyClasses名前空間にあるので、アイコンを置くフォルダもMyNamespace/MyClasses/。

png画像をGizmos/~/~に入れて

画像のセッティングを変更

TextureType → 「Editor GUI and Legacy GUI」
FilterMode → 「Point」

こうすることで、自動でアイコンが変わります。


変更後↓

Projectビュー上のアセットアイコン

MyClassがScriptableObjectの場合(のアセットインスタンスおよびMyClass.cs自身のアイコン表示がこれになります

インスペクター上のアイコン

MyClassがMonoBehaviourの場合