public static void CreateDialog(CS_DialogGraph curGraph, Vector3 mousePosition) { if (curGraph == null) { return; } CS_DialogBase currentDialog = null; currentDialog = ScriptableObject.CreateInstance <CS_DialogBox>(); currentDialog.DialogName = "Name"; if (currentDialog != null) { currentDialog.InitDialog(); Rect charRect = GetBoxPosition(curGraph); currentDialog.DialogRect = charRect; currentDialog.ParentGraph = curGraph; curGraph.Dialogs.Add(currentDialog); AssetDatabase.AddObjectToAsset(currentDialog, curGraph); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } }
private void ProcessEvents(Event e, Rect viewRect) { if (viewRect.Contains(e.mousePosition)) { if (e.button == 0 && e.type == EventType.MouseDown) { DeselectAllDialogs(); ShowProperties = false; bool setDialog = false; WantsConnection = false; selectedDialog = null; for (int i = 0; i < Dialogs.Count; i++) { if (Dialogs[i].DialogRect.Contains(e.mousePosition)) { Dialogs[i].IsSelected = true; selectedDialog = Dialogs[i]; setDialog = true; } } if (!setDialog) { DeselectAllDialogs(); } } } }
public static void DeleteDialog(int DialogID, CS_DialogGraph curGraph) { if (curGraph != null) { if (curGraph.Dialogs.Count >= DialogID) { CS_DialogBase deleteDialog = curGraph.Dialogs[DialogID]; if (deleteDialog != null) { curGraph.Dialogs.RemoveAt(DialogID); GameObject.DestroyImmediate(deleteDialog, true); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } } } }