うにてぃブログ

UnityやUnreal Engineの記事を書いていきます

【Unity】EditorSkin を Pro やデフォルトに変更する

昔は Preference から Skin を変更できた気がするのですが、Unity2020.3 には無いようだったので

内部のメソッドを呼び出して、Skin を変更できるようにしてみました

スキンの変更にはコンパイルが必要なので即時には変わりませんが、これを利用することでスキンの変更ができます

using System.Reflection;
using UnityEditor;
using UnityEditor.Compilation;
 
public static class EditorSkinUtility
{
    private static void ChangeSkin()
    {
        typeof(EditorGUIUtility).InvokeMember("Internal_SwitchSkin", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, null, null);
        CompilationPipeline.RequestScriptCompilation();
    }
 
    [MenuItem("Tools/Skin/ChangeDefault")]
    private static void ChangeDefaultSkin()
    {
        if (!EditorGUIUtility.isProSkin)
            return;

        ChangeSkin();
    }
 
    [MenuItem("Tools/Skin/ChangePro")]
    private static void ChangeProSkin()
    {
        if (EditorGUIUtility.isProSkin)
            return;

        ChangeSkin();
    }
}