public override void OnInspectorGUI()
        {
            serializedObject.Update();

            EditorGUILayout.PropertyField(buildTarget);

            if (Foldout(advancedSettings))
            {
                var prop = advancedSettings.FindPropertyRelative("networkManager");
                EditorGUILayout.PropertyField(prop);

                int numOptions = System.Enum.GetNames(typeof(BuildOptions.Target)).Length;
                if (script.targetOptions.Length != numOptions)
                {
                    Debug.LogWarning("BuildOptions: Looks like the number of build options changed, updating internal build options list.");
                    // don't lose previous options
                    var newOptions = new BuildOptions.TargetOptions[numOptions];

                    if (script.targetOptions.Length > 0)
                    {
                        for (int i = 0; i < script.targetOptions.Length; i++)
                        {
                            if (i >= numOptions)
                            {
                                break;
                            }

                            newOptions[i] = script.targetOptions[i];
                        }
                    }

                    script.targetOptions = newOptions;
                }


                serializedObject.ApplyModifiedProperties();
                serializedObject.Update();

                EditorGUI.indentLevel += 1;

                for (int i = 0; i < numOptions; i++)
                {
                    EditorGUILayout.PropertyField(targetOptions.GetArrayElementAtIndex(i), new GUIContent(((BuildOptions.Target)i).ToString() + " Target Options"), true);
                }

                EditorGUI.indentLevel -= 1;
            }

            serializedObject.ApplyModifiedProperties();

            if (GUI.changed)
            {
                script.UpdateBuildTarget();
                //var test = new SerializedObject(script.advancedSettings.networkManager);
                //test.ApplyModifiedProperties();
            }
        }
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            EditorGUILayout.PropertyField(buildTarget);

            if(Foldout(advancedSettings)) {
                var prop = advancedSettings.FindPropertyRelative("networkManager");
                EditorGUILayout.PropertyField(prop);

                int numOptions = System.Enum.GetNames(typeof(BuildOptions.Target)).Length;
                if(script.targetOptions.Length != numOptions) {

                    Debug.LogWarning("BuildOptions: Looks like the number of build options changed, updating internal build options list.");
                    // don't lose previous options
                    var newOptions = new BuildOptions.TargetOptions[numOptions];

                    if(script.targetOptions.Length > 0) {
                        for(int i = 0; i < script.targetOptions.Length; i++) {
                            if(i >= numOptions)
                                break;

                            newOptions[i] = script.targetOptions[i];
                        }
                    }

                    script.targetOptions = newOptions;
                }

                serializedObject.ApplyModifiedProperties();
                serializedObject.Update();

                EditorGUI.indentLevel += 1;

                for(int i = 0; i < numOptions; i++) {
                    EditorGUILayout.PropertyField(targetOptions.GetArrayElementAtIndex(i), new GUIContent(((BuildOptions.Target)i).ToString() + " Target Options"), true);

                }

                EditorGUI.indentLevel -=1;
            }

            serializedObject.ApplyModifiedProperties();

            if(GUI.changed) {
                script.UpdateBuildTarget();
                //var test = new SerializedObject(script.advancedSettings.networkManager);
                //test.ApplyModifiedProperties();
            }
        }