public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); InstantGuiElement script = (InstantGuiElement)target; Undo.RecordObject(script, "InstantGui Change"); //EditorGUIUtility.LookLikeInspector (); //DrawDefaultInspector (); //text string newText = EditorGUILayout.TextField("Text:", script.text); script.guiLinkText = EditorGUILayout.Toggle("Use Object Name:", script.guiLinkText); if (script.guiLinkText && !EditorApplication.isPlayingOrWillChangePlaymode && script.GetType() != typeof(InstantGuiTextArea)) { if (script.text != newText) //if text changed { if (newText.Length != 0) { script.gameObject.name = newText; } else { script.gameObject.name = "GuiElement"; } script.text = newText; } if (script.text != script.gameObject.name && newText.Length != 0) { script.text = script.gameObject.name; } } else { script.text = newText; } //setting style script.guiStyle = EditorGUILayout.Foldout(script.guiStyle, "Style"); if (script.guiStyle) { EditorGUI.indentLevel = 1; script.styleSet = (InstantGuiStyleSet)EditorGUILayout.ObjectField("Style Set:", script.styleSet, typeof(InstantGuiStyleSet), false); bool customStyle = EditorGUILayout.Toggle("Custom Style:", script.customStyle); //custom style if (customStyle) { if (!script.customStyle) { if (script.style != null) { script.style = script.style.Clone(); } else { script.style = new InstantGuiStyle(); } } script.style.name = EditorGUILayout.TextField("Name:", script.style.name); script.styleName = script.style.name; InstantGuiInspector.DrawStyle(script.style, false); EditorGUILayout.Space(); if (script.styleSet != null && script.style != null && script.style.name.Length > 0) { InstantGuiInspector.DrawSaveToStyleButton("Add to StyleSet", script, true, false); } } //else if (!customStyle && script.styleSet != null) { string[] styleNames = new string[script.styleSet.styles.Length]; int selectedStyle = -1; //default if style could not be found //compiling popup array for (int i = 0; i < script.styleSet.styles.Length; i++) { styleNames[i] = script.styleSet.styles[i].name; } //finding popup selected if (script.style == null) { selectedStyle = 0; } else { for (int i = 0; i < styleNames.Length; i++) { if (styleNames[i] == script.styleName) { selectedStyle = i; } } } styleNames[0] = "None"; int newSelected = EditorGUILayout.Popup("Style:", selectedStyle, styleNames); if (newSelected != selectedStyle) { script.style = script.styleSet.styles[newSelected]; script.styleName = script.style.name; //script.styleNum = newSelected; } } script.customStyle = customStyle; EditorGUI.indentLevel = 0; } //position script.guiPosition = EditorGUILayout.Foldout(script.guiPosition, "Position"); if (script.guiPosition) { EditorGUI.indentLevel = 1; script.useStylePlacement = EditorGUILayout.ToggleLeft("Use Style Placement", script.useStylePlacement); if (!script.useStylePlacement) { int preset = EditorGUILayout.Popup("Preset:", -1, positionPresets); switch (preset) { //case 0: if (script.style!=null) { script.relative.Set(script.style.relative); script.offset.Set(script.style.offset); script.layerOffset = script.style.layerOffset; } break; case 0: script.relative.Set(0, 100, 0, 100); script.offset.Set(0, 0, 0, 0); break; case 1: script.relative.Set(10, 90, 10, 90); script.offset.Set(10, -10, 10, -10); break; case 2: script.offset.right = -script.offset.left; script.offset.bottom = -script.offset.top; break; case 3: script.relative.Set(50, 50, 50, 50); script.offset.Set(20, -20, 20, -20); break; case 4: if (script.style != null) { script.offset.left = (int)(-script.style.fixedWidthSize * 0.5f); script.offset.right = (int)(script.style.fixedWidthSize * 0.5f); } break; case 5: if (script.style != null) { script.offset.top = (int)(-script.style.fixedHeightSize * 0.5f); script.offset.bottom = (int)(script.style.fixedHeightSize * 0.5f); } break; } InstantGuiInspector.DrawElementPosLabels("", "Left", "Right", "Top", "Bottom"); script.relative = InstantGuiInspector.DrawElementPos("Relative:", script.relative); script.offset = InstantGuiInspector.DrawElementPos("Offset:", script.offset); InstantGuiInspector.DrawElementPosLabels("Absolute:", script.absolute.left.ToString(), script.absolute.right.ToString(), script.absolute.top.ToString(), script.absolute.bottom.ToString()); script.layerOffset = InstantGuiInspector.DrawLayerOffset("Layer Offset:", script.layerOffset); script.lockPosition = EditorGUILayout.Toggle("Lock Position", script.lockPosition); if (script.styleSet != null && script.style != null && script.style.name != null && script.style.name.Length > 0) { InstantGuiInspector.DrawSaveToStyleButton("Set as Default in Style", script, false, true); } } EditorGUI.indentLevel = 0; } script.guiAttributes = EditorGUILayout.Foldout(script.guiAttributes, "Attributes"); if (script.guiAttributes) { EditorGUI.indentLevel = 1; //EditorGUI.indentLevel = 20; script.dynamic = EditorGUILayout.Toggle("Dynamic", script.dynamic); script.editable = EditorGUILayout.Toggle("Editable", script.editable); script.pointed = EditorGUILayout.Toggle("Pointed", script.pointed); script.disabled = EditorGUILayout.Toggle("Disabled", script.disabled); script.activated = EditorGUILayout.Toggle("Activated", script.activated); script.pressed = EditorGUILayout.Toggle("Pressed", script.pressed); //script.checkbutton = EditorGUILayout.Toggle("\tCheckbutton", script.checkbutton); script.check = EditorGUILayout.Toggle("Checked", script.check); script.instant = EditorGUILayout.Toggle("Instant", script.instant); script.password = EditorGUILayout.Toggle("Password", script.password); EditorGUI.indentLevel = 0; } if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(script); InstantGui.instance.Update(); } else { Undo.ClearUndo(script); } }