コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Mute Audio を Unity メニューから切り替えられるエディタ拡張

ソースコード

using UnityEditor;
using UnityEngine;

namespace Kogane.Internal
{
    [InitializeOnLoad]
    internal static class MuteAudioMenuItem
    {
        private const string MENU_ITEM_NAME = "Kogane/Mute Audio";

        static MuteAudioMenuItem()
        {
            EditorApplication.delayCall += () => UpdateChecked();
        }

        [MenuItem( MENU_ITEM_NAME )]
        private static void Lock()
        {
            EditorUtility.audioMasterMute = !EditorUtility.audioMasterMute;

            foreach ( var editorWindow in Resources.FindObjectsOfTypeAll<EditorWindow>() )
            {
                editorWindow.Repaint();
            }

            UpdateChecked();
        }

        private static void UpdateChecked()
        {
            Menu.SetChecked( MENU_ITEM_NAME, EditorUtility.audioMasterMute );
        }
    }
}

使用例

Unity メニューで「Mute Audio」を切り替えられるようになります