void OnGUI()
        {
            if (_buildInfo == null)
            {
                LoadBuildData();
            }

            if (!populatedOptions)
            {
                PopulateSceneOptions();
            }

            GUILayout.Space(20);

            if (_buildInfo == null)
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("BuildInfo not found", GUILayout.Width(120));
                return;
            }

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Company Name", GUILayout.Width(120));
            _buildInfo.CompanyName = EditorGUILayout.TextField(_buildInfo.CompanyName);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Application Name", GUILayout.Width(120));
            _buildInfo.ApplicationName = EditorGUILayout.TextField(_buildInfo.ApplicationName);
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(20);

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Major Version", GUILayout.Width(120));
            _buildInfo.MajorVersion = EditorGUILayout.IntField(_buildInfo.MajorVersion);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Minor Version", GUILayout.Width(120));
            _buildInfo.MinorVersion = EditorGUILayout.IntField(_buildInfo.MinorVersion);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Patch Version", GUILayout.Width(120));
            _buildInfo.PatchVersion = EditorGUILayout.IntField(_buildInfo.PatchVersion);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Build Version", GUILayout.Width(120));
            _buildInfo.BuildVersion = EditorGUILayout.IntField(_buildInfo.BuildVersion);
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(20);

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Build Notes", GUILayout.Width(120));
            _buildInfo.BuildNotes = EditorGUILayout.TextArea(_buildInfo.BuildNotes, GUILayout.Height(50));
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(20);
            EditorGUILayout.LabelField("Scenes", GUILayout.Width(120));

            EditorGUILayout.BeginVertical();

            for (int i = 0; i < scenes.Count; i++)
            {
                EditorGUILayout.BeginHorizontal();
                int sceneSelection = scenes[i].selectedSceneId;
                scenes[i].selectedSceneId = EditorGUILayout.Popup("Scene " + i, sceneSelection, _sceneOptions);
                scenes[i].selectedScene   = _sceneOptions[scenes[i].selectedSceneId];
                EditorGUILayout.EndHorizontal();
            }

            EditorGUILayout.BeginHorizontal();
            if (!_building)
            {
                if (GUILayout.Button("Refresh Scenes"))
                {
                    populatedOptions = false;
                }
                if (GUILayout.Button("Add Scene"))
                {
                    scenes.Add(new SceneSelection());
                }
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.EndVertical();


            GUILayout.Space(20);

            EditorGUILayout.LabelField("Build Settings", GUILayout.Width(120));
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Build Debug"))
            {
                EditorCoroutine.start(BuildProjectRoutine(false));
            }
            if (GUILayout.Button("Build Release"))
            {
                EditorCoroutine.start(BuildProjectRoutine(true));
            }
            EditorGUILayout.EndHorizontal();
        }