public override void OnInspectorGUI() { base.OnInspectorGUI(); var t = (DialogueOwner)target; if (t.dialogueCamera == null) { var d = t.gameObject.GetComponentInChildren <DialogueCamera>(); if (d != null) { if (GUILayout.Button("Set child dialogue camera")) { t.dialogueCamera = d; EditorUtility.SetDirty(t); } } } if (GUILayout.Button("Create new dialogue")) { var path = EditorUtility.SaveFilePanelInProject("Save location", "Dialogue" + DateTime.Now.ToFileTime(), "asset", "Save new dialogue object location"); if (string.IsNullOrEmpty(path) == false) { var asset = ScriptableObject.CreateInstance <Dialogue>(); // string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/New " + typeof(Dialogue).ToString() + ".asset"); AssetDatabase.CreateAsset(asset, path); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); t.dialogue = AssetDatabase.LoadAssetAtPath <Dialogue>(path); EditorUtility.SetDirty(t); DialogueEditorWindow.Edit(t); } } if (GUILayout.Button("Edit dialogue")) { DialogueEditorWindow.Edit(t); } var trigger = t.gameObject.GetComponent <TriggerBase>(); if (trigger == null) { GUILayout.Space(10); GUILayout.Label("You can add a trigger to set the use distance."); foreach (var type in ReflectionUtility.GetAllTypesThatImplement(typeof(TriggerBase))) { var tempType = type; if (GUILayout.Button("Add: " + tempType.Name)) { t.gameObject.AddComponent(tempType); } } } }
public void Configure(DialogueEditorWindow _editorWindow, DialogueGraphView _graphView) { editorWindow = _editorWindow; graphView = _graphView; pic = new Texture2D(1, 1); pic.SetPixel(0, 0, new Color(0, 0, 0, 0)); pic.Apply(); }
private void DrawNodeEditor(ref Rect rect, DialogueEditorWindow editor) { var a = editor.selectedNodeEditors.FirstOrDefault(); if (a != null) { a.DrawSidebar(ref rect); } }
protected virtual void OnGUI() { searchQuery = EditorStyles.SearchBar(searchQuery, this, isSearching); foreach (var kvp in lookups) { if (isSearching) { if (kvp.Value.Any(o => o.Name.ToLower().Contains(searchQuery.ToLower())) == false) { continue; } } else { GUI.color = Color.cyan; if (GUILayout.Button(kvp.Key, expandedKeys.Contains(kvp.Key) ? normalButtonStyle : selectedButtonStyle)) { if (expandedKeys.Contains(kvp.Key)) { expandedKeys.Remove(kvp.Key); } else { expandedKeys.Add(kvp.Key); } } } GUI.color = Color.white; if (expandedKeys.Contains(kvp.Key) || isSearching) { foreach (var type in lookups[kvp.Key]) { EditorGUILayout.BeginHorizontal(); GUILayout.Space(20); if (GUILayout.Button(type.Name)) { var node = DialogueEditorWindow.CreateAndAddNodeToCurrentDialog(type); if (node != null) { DevdogLogger.LogVerbose("Add new node of type " + type.Name + " with index: " + node.index); } else { DevdogLogger.Log("Couldn't add node, no dialogue selected."); } } EditorGUILayout.EndHorizontal(); } } } }
private void DrawEdgeEditor(ref Rect rect, DialogueEditorWindow editor) { if (editor.selectedEdges.Count > 0) { foreach (var edgeDrawer in _edgeDrawers) { edgeDrawer.Draw(ref rect); } } }
public override void Init(NodeBase node, DialogueEditorWindow editor) { base.Init(node, editor); if (_types == null) { _types = ReflectionDrawerUtility.GetDerivedTypesFrom(typeof(SetVariableNode <>), null); } _typeIndex = Mathf.Max(Array.IndexOf(_types.types, node.GetType()), 0); }
private void Update(DialogueEditorWindow editor) { _editor = editor; _nodeEditor = editor.selectedNodeEditors.FirstOrDefault(); _edge = editor.selectedEdges.FirstOrDefault(); _edgeDrawers.Clear(); if (_edge != null) { _edgeDrawers = ReflectionDrawerUtility.BuildEditorHierarchy(_edge.GetType(), _edge).ToList(); } }
public virtual void Init(NodeBase node, DialogueEditorWindow editor) { this.node = node; this.editor = editor; _childFields.Clear(); drawers = ReflectionDrawerUtility.BuildEditorHierarchy(node.GetType(), node); foreach (var drawer in drawers) { _showInNodeDict[drawer] = drawer.fieldInfo.GetCustomAttributes(typeof(ShowInNodeAttribute), true).Length == 0; } }
// Overrides the Inspecotr GUI for the Dialogue Script public override void OnInspectorGUI() { var Script = target as DialogueScript; CGHeader(); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Open Editor")) { DialogueEditorWindow.ShowWindow(); } if (GUILayout.Button("Documentation")) { //Application.OpenURL(""); } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); GUILayout.Space(10f); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("File Active: ", GUILayout.Width(65)); Script.File = (DialogueFile)EditorGUILayout.ObjectField(Script.File, typeof(DialogueFile), false); EditorGUILayout.EndHorizontal(); GUILayout.Space(10f); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Name Txt: ", GUILayout.Width(80)); Script.NameTxt = (Text)EditorGUILayout.ObjectField(Script.NameTxt, typeof(Text), false); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Dialogue Txt: ", GUILayout.Width(80)); Script.DialTxt = (Text)EditorGUILayout.ObjectField(Script.DialTxt, typeof(Text), false); EditorGUILayout.EndHorizontal(); GUILayout.Space(10f); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Display Mode: ", GUILayout.Width(85)); Script.DisplayStyle = (Styles)EditorGUILayout.EnumPopup(Script.DisplayStyle, GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); base.OnInspectorGUI(); }
public StartNode(Vector2 _position, DialogueEditorWindow _editorWindow, DialogueGraphView _graphView) { editorWindow = _editorWindow; graphView = _graphView; title = "Start"; SetPosition(new Rect(_position, defaultNodeSize)); NodeGuid = Guid.NewGuid().ToString(); AddOutputPort("Output", Port.Capacity.Single); RefreshExpandedState(); RefreshPorts(); }
protected override object DrawInternal(Rect rect) { foreach (var child in children) { child.Draw(ref rect); } rect.y += ReflectionDrawerStyles.singleLineHeight; if (GUI.Button(rect, "Edit")) { DialogueEditorWindow.Edit((Dialogue)value); } return(value); }
public override void Draw(Rect rect, DialogueEditorWindow editor) { if ((_editor != null && _editor.dialogue != editor.dialogue) || (editor.selectedNodeEditors.Count > 0 && editor.selectedNodeEditors.Contains(_nodeEditor) == false) || (editor.selectedEdges.Count > 0 && editor.selectedEdges.Contains(_edge) == false)) { Update(editor); } if (editor.selectedNodeEditors.Count == 0 && editor.selectedEdges.Count == 0) { GUI.Label(rect, "Select a node or edge (line) to edit it."); rect.y += EditorGUIUtility.singleLineHeight; } DrawEdgeEditor(ref rect, editor); DrawNodeEditor(ref rect, editor); }
// Spawning StartNode public StartNode(Vector2 position, DialogueEditorWindow newEditorWindow, DialogueGraphView newGraphView) { // Adding and loading this node .css from /Resources StyleSheet styleSheet = Resources.Load <StyleSheet>("NodeStyleSheet"); styleSheets.Add(styleSheet); editorWindow = newEditorWindow; graphView = newGraphView; title = "Start"; SetPosition(new Rect(position, defaultNodeSize)); nodeGuid = Guid.NewGuid().ToString(); AddOutputPort("Output", Port.Capacity.Single); RefreshExpandedState(); RefreshPorts(); }
public DialogueGraphView(DialogueEditorWindow _editorWindow) { editorWindow = _editorWindow; StyleSheet tmpStyleSheet = Resources.Load <StyleSheet>(styleSheetsName); styleSheets.Add(tmpStyleSheet); SetupZoom(ContentZoomer.DefaultMinScale, ContentZoomer.DefaultMaxScale); this.AddManipulator(new ContentDragger()); this.AddManipulator(new SelectionDragger()); this.AddManipulator(new RectangleSelector()); this.AddManipulator(new FreehandSelector()); GridBackground grid = new GridBackground(); Insert(0, grid); grid.StretchToParentSize(); AddSearchWindow(); }
public override void Draw(Rect rect, DialogueEditorWindow editor) { // Little bit of caching.. if (_lastDialogue != editor.dialogue || _isDirty) { _lastDialogue = editor.dialogue; _drawer = ReflectionDrawerUtility.BuildEditorHierarchy(typeof(Dialogue).GetField("variables"), _lastDialogue); _isDirty = false; } _drawer.Draw(ref rect); // rect.y += EditorGUIUtility.singleLineHeight; // if (GUI.Button(rect, "Add generic type")) // { // var l = new List<Variable>(_lastDialogue.variables.Cast<Variable>()); // l.Add(new Variable<Vector2>()); // _lastDialogue.variables = l.ToArray(); // // _isDirty = true; // } }
public override void UpdateIssue() { var dialogues = UnityEngine.Resources.FindObjectsOfTypeAll <Dialogue>(); foreach (var dialogue in dialogues) { foreach (var node in dialogue.nodes) { var v = node.Validate(); if (v.validationType != ValidationType.Valid) { var d = dialogue; var n = node; issues.Add(new GameRuleIssue(v.message, v.validationType == ValidationType.Warning ? MessageType.Warning : MessageType.Error, new GameRuleAction("Select node", () => { DialogueEditorWindow.Edit(d); DialogueEditorWindow.FocusOnNode(n); DialogueEditorWindow.PingNode(n); }))); } } } }
public override void Init(NodeBase node, DialogueEditorWindow editor) { base.Init(node, editor); maxOutgoingEdges = 2; }
public abstract void Draw(Rect rect, DialogueEditorWindow editor);
public override void Init(NodeBase node, DialogueEditorWindow editor) { base.Init(node, editor); this.nodeSize = new Vector2(200f, 50f); }
// Overrides the Inspecotr GUI for the Dialogue Script public override void OnInspectorGUI() { var Script = target as DialogueScript; //EditorGUILayout.BeginHorizontal(); //GUILayout.FlexibleSpace(); //// Carter Games Logo //if (GUILayout.Button(Resources.Load<Texture2D>("CarterGames/Logo"), GUIStyle.none, GUILayout.Width(50), GUILayout.Height(50))) //{ // GUI.FocusControl(null); //} //GUILayout.FlexibleSpace(); //EditorGUILayout.EndHorizontal(); //EditorGUILayout.BeginHorizontal(); //GUILayout.FlexibleSpace(); //EditorGUILayout.LabelField("Dialogue Manager | V: 1.0"); //GUILayout.FlexibleSpace(); //EditorGUILayout.EndHorizontal(); GUILayout.Space(20); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Open File Editor")) { DialogueEditorWindow.ShowWindow(); } //if (GUILayout.Button("Documentation")) //{ // //Application.OpenURL(""); //} GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); GUILayout.Space(10f); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("File in use: ", GUILayout.MaxWidth(65)); Script.File = (DialogueFile)EditorGUILayout.ObjectField(Script.File, typeof(DialogueFile), false); EditorGUILayout.EndHorizontal(); GUILayout.Space(10f); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Character Name: ", GUILayout.MaxWidth(100)); Script.DialName = (Text)EditorGUILayout.ObjectField(Script.DialName, typeof(Text), false); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Character Text: ", GUILayout.MaxWidth(100)); Script.DialText = (Text)EditorGUILayout.ObjectField(Script.DialText, typeof(Text), false); EditorGUILayout.EndHorizontal(); GUILayout.Space(10f); EditorGUILayout.BeginHorizontal(); //Script.DisplayStyle = (Styles)EditorGUILayout.EnumPopup("Display Mode: ", Script.DisplayStyle); EditorGUILayout.EndHorizontal(); // Base inspector - Disabled as this isn't used really. base.OnInspectorGUI(); }
private void drawControls() { GUILayoutOption[] styles = new GUILayoutOption[1]; styles[0] = GUILayout.MinHeight(25); // Editor //GUILayout.BeginArea(new Rect(10,180,(Screen.width*0.5f)-10, 1000)); GUILayout.BeginArea(new Rect(10, 180, Screen.width - 20, 1000)); //GUILayout.Label("Editor:", EditorStyles.boldLabel); if (GUILayout.Button("Open Dialogue Editor", styles)) { DialogueEditorWindow.Init(); } GUILayout.Space(10); if (GUILayout.Button("Force Load Dialogues", styles)) { DialogueEditorDataManager.load(); } GUILayout.Label("Reload the Dialogues object. Forces Dialoguer to reload all Dialoguer info.", EditorStyles.wordWrappedMiniLabel); GUILayout.Space(10); if (GUILayout.Button("Generate Dialogues Enum", styles)) { DialoguerEnumGenerator.GenerateDialoguesEnum(); } t.data.generateEnum = GUILayout.Toggle(t.data.generateEnum, "Automatically Generate Dialogues Enum", EditorStyles.toggleGroup); GUILayout.Label("Generate the DialoguerDialogues enum, used for starting Dialogues by name.", EditorStyles.wordWrappedMiniLabel); GUILayout.EndArea(); // Help //GUILayout.BeginArea(new Rect(10 + (Screen.width*0.5f),180,(Screen.width*0.5f)-15, 1000)); GUILayout.BeginArea(new Rect(10, 400, Screen.width - 20, 1000)); GUILayout.Label("Help:", EditorStyles.boldLabel); if (GUILayout.Button("Dialoguer Website", styles)) { DialogueEditorHelp.Website(); } if (GUILayout.Button("Getting Started", styles)) { DialogueEditorHelp.GettingStarted(); } if (GUILayout.Button("Nodes", styles)) { DialogueEditorHelp.Nodes(); } if (GUILayout.Button("Code Documentation", styles)) { DialogueEditorHelp.Code(); } if (GUILayout.Button("Frequently Asked Questions", styles)) { DialogueEditorHelp.Faq(); } if (GUILayout.Button("Contact/Feedback", styles)) { DialogueEditorHelp.Contact(); } GUILayout.EndArea(); }