/// <inheritdoc />
        public override void OnInspectorGUI()
        {
            _target.CharacterSettingsIdentity = EditorGUILayoutGameUtility.CharacterSettingsField("Character Settings", _target.CharacterSettingsIdentity);

            // Draw extras!
            EditorGUILayout.Space();
            EditorGUILayout.Space();
            EditorGUILayoutGameUtility.DrawTargetExtras(target);
        }
        /// <inheritdoc />
        public override void OnInspectorGUI()
        {
            if (!CustomEditorStyles.IsCustomStyleLoaded())
            {
                return;
            }
            serializedObject.Update();

            // Draw Identity settings
            _drawIdentitySettings.value = EditorGUILayout.BeginFoldoutHeaderGroup(_drawIdentitySettings.value, "Identity Settings");
            if (_drawIdentitySettings.value)
            {
                EditorGUILayout.Space();
                EditorGUILayout.Space();
                EditorGUI.indentLevel++;
                UniqueGUID.stringValue = EditorGUILayoutGameUtility.GUIDField("Unique GUID", UniqueGUID.stringValue);
                EditorGUI.indentLevel--;
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            // Draw Content
            _drawContent.value = EditorGUILayout.BeginFoldoutHeaderGroup(_drawContent.value, "Content");
            if (_drawContent.value)
            {
                EditorGUILayout.Space();
                EditorGUILayout.Space();
                EditorGUI.indentLevel++;

                GUILayout.Label("Defs", EditorStyles.boldLabel);
                EditorGUILayout.PropertyField(LevelSpawnNames, true);

                GUILayout.Label("Databases", EditorStyles.boldLabel);
                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("Refresh Databases", GUILayout.Height(25)))
                {
                    _target.RefreshDatabases();
                }
                if (GUILayout.Button("Info", GUILayout.Height(25), GUILayout.Width(35)))
                {
                    SharedContentEditorWindow.ShowWindowOnCharacters();
                }

                EditorGUILayout.EndHorizontal();

                EditorGUILayout.PropertyField(UniqueDatabases, true);
                EditorGUI.indentLevel--;
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            // Draw extras
            EditorGUILayoutGameUtility.DrawTargetExtras(target);

            serializedObject.ApplyModifiedProperties();
        }
Exemplo n.º 3
0
        /// <inheritdoc />
        public override void OnInspectorGUI()
        {
            _target.Identity = (short)EditorGUILayout.IntField("Identity", _target.Identity);
            JEMBetterEditor.DrawProperty(" ", () =>
            {
                if (GUILayout.Button("Regenerate Identity"))
                {
                    RefreshIdentity();
                }
            });

            _drawNetworkBehaviour.value = EditorGUILayout.BeginFoldoutHeaderGroup(_drawNetworkBehaviour.value, "Network Behaviour");
            if (_drawNetworkBehaviour.value)
            {
                EditorGUILayout.Space();
                EditorGUILayout.Space();
                EditorGUI.indentLevel++;
                _target.NetworkBehaviour.ActiveOnClient = EditorGUILayout.Toggle("Active On Client", _target.NetworkBehaviour.ActiveOnClient);
                _target.NetworkBehaviour.ActiveOnServer = EditorGUILayout.Toggle("Active On Server", _target.NetworkBehaviour.ActiveOnServer);
                EditorGUI.indentLevel--;
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            _drawReferences.value = EditorGUILayout.BeginFoldoutHeaderGroup(_drawReferences.value, "References");
            if (_drawReferences.value)
            {
                EditorGUILayout.Space();
                EditorGUILayout.Space();
                EditorGUI.indentLevel++;
                _target.References.ModelRoot         = (GameObject)EditorGUILayout.ObjectField("Model Root", _target.References.ModelRoot, typeof(GameObject), true);
                _target.References.CharacterSettings = (CharacterSettingsReference)EditorGUILayout.ObjectField("Character Settings", _target.References.CharacterSettings, typeof(CharacterSettingsReference), false);
                EditorGUI.indentLevel--;
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            if (_target.References.ModelRoot == null)
            {
                EditorGUILayout.HelpBox("ModelRoot of level object is not set!", MessageType.Warning, true);
            }
            else if (_target.References.ModelRoot == _target.gameObject)
            {
                EditorGUILayout.HelpBox("Setting this gameObject as ModelRoot may create problems.", MessageType.Warning, true);
            }

            EditorGUILayoutGameUtility.DrawTargetExtras(_target);
        }