Example #1
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);
        }
Example #2
0
        private void OnAssetBundlesSettingsGUI()
        {
            EditorGUIUtility.labelWidth += 25f;
            var cfg = JEMAssetsBuilderConfiguration.Configuration;

            GUILayout.Label("JEM AssetBuilder Settings", EditorStyles.boldLabel);
            cfg.PackageExtension = EditorGUILayout.TextField("Package Extension", cfg.PackageExtension);

            if (cfg.PackageExtension.Length != 0 && cfg.PackageExtension[0] == '.')
            {
                EditorGUILayout.HelpBox("Package extension starts with '.'!", MessageType.Warning, true);
            }

            EditorGUILayout.TextField("Directory", cfg.PackageDirectory);
            JEMBetterEditor.DrawProperty(" ", () =>
            {
                if (GUILayout.Button("Select"))
                {
                    var directory        = EditorUtility.OpenFolderPanel("Select directory of package", cfg.PackageDirectory, "");
                    cfg.PackageDirectory = ExtensionPath.ResolveRelativeFilePath(directory);
                }
            });

            cfg.CompressAssetBundles = EditorGUILayout.Toggle("Asset Bundles Compression", cfg.CompressAssetBundles);
            if (cfg.CompressAssetBundles)
            {
                EditorGUI.indentLevel++;
                cfg.ChunkBasedAssetBundlesCompression = EditorGUILayout.Toggle("Chunk Based", cfg.ChunkBasedAssetBundlesCompression);
                if (cfg.ChunkBasedAssetBundlesCompression)
                {
                    EditorGUILayout.HelpBox("Chunk Compressed (LZ4) compression method.", MessageType.Info, true);
                }
                else
                {
                    EditorGUILayout.HelpBox("Stream Compressed (LZMA) compression method.", MessageType.Info, true);
                }

                EditorGUI.indentLevel--;
            }
            EditorGUIUtility.labelWidth -= 25f;
        }
Example #3
0
        protected void DrawDatabaseItemGUI()
        {
            var item = (DatabaseItem)target;

            _drawDatabaseItemSettings.value = EditorGUILayout.BeginFoldoutHeaderGroup(_drawDatabaseItemSettings.value, "Database Item Settings");
            if (_drawDatabaseItemSettings.value)
            {
                EditorGUILayout.Space();
                EditorGUILayout.Space();
                EditorGUI.indentLevel++;

                EditorGUILayout.LabelField("Unique Identity", item.Identity.ToString());
                JEMBetterEditor.DrawProperty(" ", () =>
                {
                    if (GUILayout.Button("Regenerate"))
                    {
                        bool canRegenerate = true;
                        if (item.Identity != 0)
                        {
                            canRegenerate = EditorUtility.DisplayDialog("Regenerate?",
                                                                        "Are you sure you want to regenerate the identity of this object? All references will be lost!",
                                                                        "Yes", "No");
                        }

                        if (canRegenerate)
                        {
                            RegenerateIdentity();
                        }
                    }
                });

                EditorGUI.indentLevel--;
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndFoldoutHeaderGroup();

            // Draw extras
            EditorGUILayoutGameUtility.DrawTargetExtras(target);
        }
Example #4
0
        private void OnAssetBundlesSettingsGUI()
        {
            var cfg = JEMAssetsBuilderConfiguration.Configuration;

            GUILayout.Label("JEM AssetBuilder Settings", EditorStyles.boldLabel);
            cfg.PackageExtension = EditorGUILayout.TextField("Package Extension", cfg.PackageExtension);

            if (cfg.PackageExtension.Length != 0 && cfg.PackageExtension[0] == '.')
            {
                EditorGUILayout.HelpBox("Package extension starts with '.'!", MessageType.Warning, true);
            }

            EditorGUILayout.TextField("Directory", cfg.PackageDirectory);
            JEMBetterEditor.DrawProperty(" ", () =>
            {
                if (GUILayout.Button("Select"))
                {
                    var directory        = EditorUtility.OpenFolderPanel("Select directory of package", cfg.PackageDirectory, "");
                    cfg.PackageDirectory = ExtensionPath.ResolveRelativeFilePath(directory);
                }
            });
        }