private void DrawIconHeader(Rect r, Platform platform)
        {
            var   t    = BuildUtility.FindIcon(platform);
            float s    = Mathf.Min(r.width, r.height);
            var   imgr = new Rect(0, 0, s, s);

            imgr.center = r.center;
            imgr.x      = r.x;
            GUI.Box(imgr, GUIContent.none, EditorStyles.helpBox);
            if (t != null)
            {
                GUI.DrawTexture(imgr.Resize(-10f, -10f), t, ScaleMode.ScaleToFit);
            }
            else
            {
                GUI.DrawTexture(imgr.Resize(-20f, -20f), EditorGUIUtility.FindTexture("console.warnicon"), ScaleMode.ScaleToFit);
            }
        }
        private void OnEnable()
        {
            _supportedBuildTargets = BuildUtility.GetSupportedTargets();

            _platformMenuOptions.Add(new MenuOption(Platform.None, "None"));
            if (_supportedBuildTargets.Contains(BuildTarget.StandaloneWindows))
            {
                _platformMenuOptions.Add(new MenuOption(Platform.Windows, "Windows/x86"));
                _platformMenuOptions.Add(new MenuOption(Platform.Windows64, "Windows/x64"));
            }

            if (_supportedBuildTargets.Contains(BuildTarget.StandaloneLinux))
            {
                _platformMenuOptions.Add(new MenuOption(Platform.Linux, "Linux/x86"));
                _platformMenuOptions.Add(new MenuOption(Platform.Linux64, "Linux/x64"));
                _platformMenuOptions.Add(new MenuOption(Platform.LinuxUniversal, "Linux/Universal"));
            }

            if (_supportedBuildTargets.Contains(BuildTarget.WebGL))
            {
                _platformMenuOptions.Add(new MenuOption(Platform.WebGL, "WebGL"));
            }

            _script = (BuildConfiguration)target;
            var sceneProp = serializedObject.FindProperty("_scenes");

            _onPostBuild         = serializedObject.FindProperty("_onPostBuild");
            _compressionMethod   = serializedObject.FindProperty("_compressionMethod");
            _overrideName        = serializedObject.FindProperty("_overrideName");
            _executableName      = serializedObject.FindProperty("_executableName");
            _overridePath        = serializedObject.FindProperty("_overridePath");
            _buildPath           = serializedObject.FindProperty("_buildPath");
            _developmentBuild    = serializedObject.FindProperty("_developmentBuild");
            _autoconnectProfiler = serializedObject.FindProperty("_autoconnectProfiler");
            _scriptDebugging     = serializedObject.FindProperty("_scriptDebugging");
            _scriptsOnlyBuild    = serializedObject.FindProperty("_scriptsOnlyBuild");

            _assetList = new ReorderableList(serializedObject, sceneProp, true, true, true, true);
            _assetList.drawElementCallback = DrawElement;
            _assetList.drawHeaderCallback  = DrawHeader;
            // _assetList.elementHeight = EditorGUIUtility.singleLineHeight * 1.5f;
            Undo.undoRedoPerformed -= OnUndo;
            Undo.undoRedoPerformed += OnUndo;
        }