Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEditor;
- namespace IdealGf.DialogueEditor
- {
- ///======================================================================================
- /// IMPORTANT:::::::
- /// PLZ FOLLOW https://templategfdev.tumblr.com/
- ///======================================================================================
- public class IdealGfDialogueEditorWindow : EditorWindow
- {
- public string dialogueId;
- public string sinopsis;
- public GameObject target;
- #region GUI_PROPERTIES
- public virtual GUIStyle MenuStyle
- {
- get
- {
- return EditorStyles.helpBox;
- }
- }
- public virtual GUIStyle TextAreaStyle
- {
- get
- {
- return EditorStyles.textArea;
- }
- }
- public const int barHeight = 20;
- public const int menuWidth = 200;
- Rect barRect;
- Rect menuRect;
- Rect nodeRegionRect;
- #endregion
- [MenuItem("IdealGf/Dialogue Editor")]
- public static void ShowDialogueEditor()
- {
- // Get existing open window or if none, make a new one:
- IdealGfDialogueEditorWindow window = (IdealGfDialogueEditorWindow)EditorWindow.GetWindow(typeof(IdealGfDialogueEditorWindow));
- window.Show();
- window.name = "Ideal Gf Dialogue Editor";
- window.titleContent = new GUIContent("Dialogue Editor");
- }
- public void OnGUI()
- {
- // Areas properties
- barRect = new Rect(0, 0, position.width, barHeight);
- menuRect = new Rect(2, barHeight, menuWidth, position.height - barHeight);
- nodeRegionRect = new Rect(menuRect.width + menuRect.x, barRect.height, position.width - (menuRect.width + menuRect.x), position.height - barHeight);
- // Handle events
- HandleEvents();
- // Creating bar layout
- GUILayout.BeginArea(barRect, EditorStyles.toolbar);
- RenderBarMenu();
- GUILayout.EndArea();
- // Creating menu layout
- GUILayout.BeginArea(menuRect, MenuStyle);
- RenderLateralMenu();
- GUILayout.EndArea();
- GUILayout.BeginArea(nodeRegionRect, MenuStyle);
- GUILayout.EndArea();
- }
- public virtual void RenderNodes()
- {
- }
- public virtual void RenderBarMenu()
- {
- EditorGUILayout.BeginHorizontal();
- target = (GameObject)EditorGUILayout.ObjectField("Target: ", target, typeof(GameObject), true);
- EditorGUILayout.EndHorizontal();
- }
- public virtual void RenderLateralMenu()
- {
- EditorGUILayout.BeginVertical();
- EditorGUILayout.LabelField("Dialogue data", EditorStyles.boldLabel);
- EditorGUILayout.LabelField("Id name");
- dialogueId = EditorGUILayout.TextField(dialogueId);
- EditorGUILayout.LabelField("Sinopsis");
- sinopsis = EditorGUILayout.TextArea(sinopsis, GUILayout.Height(75));
- EditorGUILayout.Separator();
- EditorGUILayout.EndVertical();
- }
- public virtual void HandleEvents()
- {
- Event click = Event.current;
- if (nodeRegionRect.Contains(click.mousePosition) & click.type == EventType.ContextClick)
- {
- GenericMenu genericMenu = new GenericMenu();
- genericMenu.AddItem(new GUIContent("Add dialogue"), false, new GenericMenu.MenuFunction(Action));
- genericMenu.AddItem(new GUIContent("Add character"), false, new GenericMenu.MenuFunction(Action));
- genericMenu.AddItem(new GUIContent("Add action"), false, new GenericMenu.MenuFunction(Action));
- genericMenu.ShowAsContext();
- }
- }
- public void Action()
- {
- Debug.Log("Click");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement