けいごのなんとか

Unityユーザーとしてのブログ。ギリギリ路線走ってます。

ビルドインのGUISkinを見る - CustomStyle名を知る方法

UnityEditorのスキンはGUISkinとして保存されている。

  • EditorSkin.Game
  • EditorSkin.Inspector
  • EditorSkin.Scene

UnityEditorのスキンは基本この3つ

スクリプトからはこんな感じで取得できる

EditorGUIUtility.GetBuiltinSkin (EditorSkin.Game);

ビルドインのGUISkinにはCustomStyleが大量にあるのだが、style名が何なのか知る術がない。(公開されていない)

なので今回は

ビルドインのCustomStyleを知る方法

手段の1つとしてBuiltinSkinをScriptableObjectとして保存する

まずはScriptableObjectを継承したBuildinSkins.csを作成

BuildinSkins.cs

using UnityEngine;
using UnityEditor;

public class BuildinSkins : ScriptableObject
{
    public GUISkin game = EditorGUIUtility.GetBuiltinSkin (EditorSkin.Game);
    public GUISkin inspector = EditorGUIUtility.GetBuiltinSkin (EditorSkin.Inspector);
    public GUISkin scene = EditorGUIUtility.GetBuiltinSkin (EditorSkin.Scene);
}

CreateBuildinSkins.cs

using UnityEngine;
using UnityEditor;

public class CreateBuildinSkins
{
    [MenuItem("Assets/CreateBuildinSkins")]
    static void Create ()
    {
        BuildinSkins buildinSkins = ScriptableObject.CreateInstance<BuildinSkins> ();
        
        AssetDatabase.CreateAsset (buildinSkins, "Assets/BuildinSkins.asset");
        AssetDatabase.SaveAssets ();
        AssetDatabase.Refresh ();   
    }
}

実行するとBuildinSkins.assetが生成される

f:id:anchan828:20130217024536p:plain

Inspectorを見ると...

f:id:anchan828:20130217023753p:plain

LightSkinをダブルクリック

f:id:anchan828:20130217023837p:plain

CustomStyleが461個あるのがわかる

実際に使うには

EditorGUIUtility.GetBuiltinSkin (EditorSkin.Inspector).FindStyle ("OL Label");

のように取得すると良い。