/// <summary>
 /// アクティブになった時に呼び出されます
 /// </summary>
 public override void OnActivate(string searchContext, VisualElement rootElement)
 {
     m_settings                  = PlatformCheckerSettings.Load();
     m_serializedObject          = new SerializedObject(m_settings);
     m_buildTargetGroupsProperty = m_serializedObject.FindProperty("m_buildTargetGroups");
     m_logLevelProperty          = m_serializedObject.FindProperty("m_logLevel");
     m_messageProperty           = m_serializedObject.FindProperty("m_message");
 }
        /// <summary>
        /// Unity エディタの現在のプラットフォームが正しいか確認します
        /// </summary>
        private static void Check()
        {
            var settings = PlatformCheckerSettings.Load();

            if (settings == null)
            {
                return;
            }

            var buildTargetGroups = settings.BuildTargetGroups;

            if (buildTargetGroups == null || buildTargetGroups.Count <= 0)
            {
                return;
            }

            var activeBuildTarget = EditorUserBuildSettings.activeBuildTarget;
            var buildTargetGroup  = BuildPipeline.GetBuildTargetGroup(activeBuildTarget);

            if (buildTargetGroups.Contains(buildTargetGroup))
            {
                return;
            }

            var logLevel = settings.LogLevel;
            var message  = settings.Message;

            switch (logLevel)
            {
            case LogLevel.INFO:
                Debug.Log(message);
                break;

            case LogLevel.WARNING:
                Debug.LogWarning(message);
                break;

            case LogLevel.ERROR:
                Debug.LogError(message);
                break;

            default: throw new ArgumentOutOfRangeException();
            }
        }