public override void OnGUI() { base.OnGUI(); CanvasGUI.BeginGroup(Position, GUI.skin.box, actor.Tint, HasControl); if (Locked) { GUI.Label(new Rect(5, 5, 240, 20), name); } else { string nodeName = name; if (CanvasGUI.TextField(new Rect(5, 5, 240, 20), ref nodeName)) { name = DialogueEditorGUI.Cache.Nodes.ItemNames[DialogueEditorGUI.Cache.Nodes.ItemNames.IndexOf(name)] = nodeName; } } if (CanvasGUI.Button(new Rect(Position.size.x - 50, 5, 20, 20), new GUIContent("L"), GUI.skin.button)) { Locked = !Locked; } if (CanvasGUI.Button(new Rect(Position.size.x - 25, 5, 20, 20), new GUIContent("X"), GUI.skin.button)) { Delete(); } textArea = CanvasGUI.TextArea(new Rect(5, 30, 290, 65), textArea); CanvasGUI.EndGroup(); }
public override void OnGUI() { Event current = Event.current; Rect tolerance = new Rect(position); tolerance.xMin -= 20; tolerance.xMax += 20; tolerance.yMin -= 20; tolerance.yMax += 20; bool hasFocus = tolerance.Contains(current.mousePosition); CanvasGUI.BeginGroup(position, GUI.skin.box, hasFocus); string nodeName = obj.name; if (CanvasGUI.TextField(new Rect(5, 5, 240, 20), ref nodeName)) { obj.name = DialogueEditorGUI.Cache.Actors.ItemNames[DialogueEditorGUI.Cache.Actors.ItemNames.IndexOf(obj.name)] = nodeName; } obj.Tint = UnityEditor.EditorGUI.ColorField(new Rect(5, 30, 140, 20), obj.Tint); CanvasGUI.EndGroup(); if (current.type == EventType.MouseUp && !hasFocus) { close = true; } if (!obj || close) { UpdateOverlays(obj); } }
void ToolBar() { CanvasGUI.BeginGroup(CanvasGUI.ToolBarRect, GUI.skin.box, cache.States.curSpace == EventSpace.Toolbar); GUI.Label(new Rect(5, 5, CanvasGUI.ToolBarRect.width - 10, 20), new GUIContent(cache.CanvasName + (cache.AutoLoaded ? " (Last Session)" : ""))); if (CanvasGUI.Button(new Rect(5, 30, CanvasGUI.ToolBarRect.width - 10, 20), "Save")) { cache = (cache.IsFileSaved && !cache.AutoLoaded) ? EditorCache.SaveCache(cache.SavePath ?? AssetDatabase.GetAssetPath(cache), cache) : SaveCanvas(); } if (CanvasGUI.Button(new Rect(5, 55, CanvasGUI.ToolBarRect.width - 10, 20), "Save As")) { SaveCanvas(); } if (CanvasGUI.Button(new Rect(5, 80, CanvasGUI.ToolBarRect.width - 10, 20), "Load")) { LoadCanvas(); } if (CanvasGUI.Button(new Rect(5, 105, CanvasGUI.ToolBarRect.width - 10, 20), "New Canvas")) { cache = EditorCache.NewCache(); } if (CanvasGUI.Button(new Rect(5, 130, CanvasGUI.ToolBarRect.width - 10, 20), "Settings")) { Setting(); } CanvasGUI.EndGroup(); }
public static void OnGUI(EditorStates states) { States = states; EditorState curState = states.curState; CanvasGUI.BeginGroup(new Rect(curState.panDelta, curState.canvasSize), (states.curSpace | EventSpace.CanvasSpace) == EventSpace.CanvasSpace); for (int i = 0; i < Cache.Nodes.Count; i++) { Cache.Nodes.Get(i).DrawConnection(); } if (curState.connectionIndex > -1) { BaseNodule startNodule = curState.selectedObject as BaseNodule; if (curState.connectionIndex > startNodule.Nodules.Count - 1) { InputHandlers.OnSelectConnection(states); } else { CanvasGUI.DrawConnection(startNodule, startNodule.Nodules.Get(curState.connectionIndex), Color.red); } } Cache.Nodes.OnGUI(); CanvasGUI.EndGroup(); CanvasGUI.BeginGroup(CanvasGUI.OptionRect, GUI.skin.box, states.curSpace == EventSpace.Actor); switch (tab) { case OptionTab.actor: Cache.Actors.OnGUI(); break; case OptionTab.condition: Cache.Conditions.OnGUI(); break; } if (CanvasGUI.Button(new Rect(5, 5, 70, 20), "Conditions")) { tab = OptionTab.condition; } else if (CanvasGUI.Button(new Rect(80, 5, 50, 20), "Actors")) { tab = OptionTab.actor; } CanvasGUI.EndGroup(); }
public override void OnGUI() { base.OnGUI(); CanvasGUI.BeginGroup(Position, GUI.skin.box, actor.Tint, HasControl); if (Locked) { GUI.Label(new Rect(5, 5, 240, 20), name); GUI.Label(new Rect(5, 30, 240, 20), actor.name); } else { EditorCache cache = DialogueEditorGUI.Cache; string nodeName = name; if (CanvasGUI.TextField(new Rect(5, 5, 240, 20), ref nodeName)) { name = cache.Nodes.ItemNames[cache.Nodes.ItemNames.IndexOf(name)] = nodeName; } ActorDatabase actors = cache.Actors; actor = actors.Get(CanvasGUI.DropDownMenu(new Rect(5, 30, 240, 20), position, actors.GetIndex(actor), actors.ItemNames.ToArray())); } if (CanvasGUI.Button(new Rect(Position.size.x - 50, 5, 20, 20), new GUIContent("L"), GUI.skin.button)) { Locked = !Locked; } if (CanvasGUI.Button(new Rect(Position.size.x - 25, 5, 20, 20), new GUIContent("X"), GUI.skin.button)) { Delete(); } textArea = CanvasGUI.TextArea(new Rect(5, 55, 290, 115), textArea); if (CanvasGUI.Button(new Rect(5, 175, 290, 20), new GUIContent("Add Dialogue Option"), GUI.skin.button)) { options.Add(OptionNode.Create(options.NextItemName("Option"), this)); } CanvasGUI.EndGroup(); options.OnGUI(); }
public override void OnGUI() { Event current = Event.current; Rect tolerance = new Rect(position); tolerance.xMin -= 20; tolerance.xMax += 20; tolerance.yMin -= 20; tolerance.yMax += 20; bool hasFocus = tolerance.Contains(current.mousePosition); CanvasGUI.BeginGroup(position, GUI.skin.box, hasFocus); ConditionDatabase conditions = DialogueEditorGUI.Cache.Conditions; obj.Condition = conditions.Get(CanvasGUI.DropDownMenu(new Rect(5, 5, position.width - 10, 20), position, conditions.GetIndex(obj.Condition), conditions.ItemNames.ToArray())); for (int i = 0; i < obj.ConditionValues.Count; i++) { var val = obj.ConditionValues[i]; CanvasGUI.TextLabel(new Rect(30, 30 + 25 * 1, 20, 20), val.userParam.ToString()); string[] names = Enum.GetNames(typeof(EqualityState)); val.equality = (EqualityState)Enum.Parse(typeof(EqualityState), names[CanvasGUI.DropDownMenu(new Rect(5, 30 + 25, 100, 20), (int)val.equality, names)]); } CanvasGUI.EndGroup(); if (current.type == EventType.MouseUp && !hasFocus) { close = true; } if (!obj || close) { UpdateOverlays(obj); } }
protected override void OnGUI() { for (int i = 0; i < groupsToDraw.Count; i++) { ItemGroup itemGroup = groupsToDraw[i]; Rect tolerance = new Rect(itemGroup.position); tolerance.xMin -= 20; tolerance.yMin -= 20; tolerance.xMax += 20; tolerance.yMax += 20; bool hasFocus = tolerance.Contains(Event.current.mousePosition); CanvasGUI.BeginGroup(itemGroup.position, GUI.skin.box, hasFocus); foreach (MenuItem item in itemGroup) { if (item.content.text.Equals("Saparator")) { GUI.Label(item.position, "----------"); } else if (item.position.Contains(Event.current.mousePosition)) { if (Event.current.type == EventType.MouseUp && Event.current.button == 0) { if (item.Group) { groupsToDraw.Add(item.subItems); } else { item.Execute(); close = true; } Event.current.Use(); } if (item.Group && groupsToDraw.Exists(j => j == item.subItems)) { item.subItems.forceFocus = true; } CanvasGUI.Box(item.position, item.content); } else { if (item.Group && groupsToDraw.Exists(j => j == item.subItems)) { item.subItems.forceFocus = false; } GUI.Label(item.position, item.content); } if (item.Group) { GUI.Label(new Rect(item.position.position + new Vector2(item.position.size.x - GroupIconSize, 0), new Vector2(GroupIconSize, minHeight)), ">"); } } CanvasGUI.EndGroup(); if (!hasFocus && !itemGroup.forceFocus) { if (i != 0) { groupsToDraw.Remove(itemGroup); } else if (Event.current.type == EventType.MouseUp) { close = true; } } } if (groupsToDraw.Count == 0 || close) { OnClose(); } DialogueEditorGUI.OnRepaint(); }