/// <summary> /// Continues this conversation if the dialogue UI matches. /// </summary> /// <param name="dialogueUI"></param> public void OnConversationContinue(IDialogueUI dialogueUI) { if (dialogueUI == this.ui) { HandleContinueButtonClick(); } }
private void DrawUIStage() { EditorGUILayout.LabelField("User Interface", EditorStyles.boldLabel); EditorWindowTools.StartIndentedSection(); EditorGUILayout.HelpBox("Assign a dialogue UI. You can find pre-built Unity GUI dialogue UI prefabs in Prefabs/Unity Dialogue UIs. To assign a prefab for a different GUI system, import its support package found in Third Party Support. You can also assign a UI scene object.", MessageType.Info); if (DialogueManager.Instance.displaySettings == null) { DialogueManager.Instance.displaySettings = new DisplaySettings(); } DialogueManager.Instance.displaySettings.dialogueUI = EditorGUILayout.ObjectField("Dialogue UI", DialogueManager.Instance.displaySettings.dialogueUI, typeof(GameObject), true) as GameObject; if (DialogueManager.Instance.displaySettings.dialogueUI == null) { EditorGUILayout.HelpBox("If you continue without assigning a UI, the Dialogue System will use a very plain default UI.", MessageType.Warning); } else { IDialogueUI ui = DialogueManager.Instance.displaySettings.dialogueUI.GetComponent(typeof(IDialogueUI)) as IDialogueUI; if (ui == null) { DialogueManager.Instance.displaySettings.dialogueUI = null; } } EditorWindowTools.EndIndentedSection(); DrawNavigationButtons(true, true, false); }
public override void OnEnter() { IDialogueUI ui = DialogueManager.DialogueUI; if ((ui == null) && DialogueDebug.LogWarnings) { Debug.LogWarning(string.Format("{0}: Unable to load the dialogue UI.", DialogueDebug.Prefix)); } Finish(); }
/// <summary> /// Initialize a UI and sequencer with displaySettings. /// </summary> /// <param name='ui'> /// Dialogue UI. /// </param> /// <param name='sequencer'> /// Sequencer. /// </param> /// <param name='displaySettings'> /// Display settings to initiate the UI and sequencer with. /// </param> public void Initialize(IDialogueUI ui, Sequencer sequencer, DisplaySettings displaySettings, DialogueEntrySpokenDelegate dialogueEntrySpokenHandler) { this.ui = ui; this.sequencer = sequencer; this.settings = displaySettings; this.dialogueEntrySpokenHandler = dialogueEntrySpokenHandler; ui.Open(); sequencer.Open(); ui.SelectedResponseHandler += OnSelectedResponse; sequencer.FinishedSequenceHandler += OnFinishedSubtitle; }
public static IDialogueConfig CreateYarnSpinnerConfig(IDialogueUI ui, YarnProgram[] scripts, IDictionary <string, object> defaultVariables = null) { var config = new YarnSpinner.YarnSpinnerConfig(); if (!ui.IsNull()) { config.SetUI(ui); } if (!defaultVariables.IsNullOrEmpty()) { config.SetDefaultValue(defaultVariables); } if (!scripts.IsNullOrEmpty()) { config.SetScripts(scripts); } return(config); }
public void SetUI(IDialogueUI ui) { _configs[UI] = ui; }
/// <summary> /// Initialize a UI and sequencer with displaySettings. /// </summary> /// <param name='ui'> /// Dialogue UI. /// </param> /// <param name='sequencer'> /// Sequencer. /// </param> /// <param name='displaySettings'> /// Display settings to initiate the UI and sequencer with. /// </param> public void Initialize(IDialogueUI ui, Sequencer sequencer, DisplaySettings displaySettings, DialogueEntrySpokenDelegate dialogueEntrySpokenHandler) { this.ui = ui; this.sequencer = sequencer; this.settings = displaySettings; this.dialogueEntrySpokenHandler = dialogueEntrySpokenHandler; ui.Open (); sequencer.Open (); ui.SelectedResponseHandler += OnSelectedResponse; sequencer.FinishedSequenceHandler += OnFinishedSubtitle; }
private void SetDialogueUI(IDialogueUI ui) { MonoBehaviour uiBehaviour = ui as MonoBehaviour; if (uiBehaviour != null) { displaySettings.dialogueUI = uiBehaviour.gameObject; currentDialogueUI = null; ValidateCurrentDialogueUI(); } }
/// <summary> /// If currentDialogueUI is <c>null</c>, gets it from displaySettings.dialogueUI. If the /// value in displaySettings.dialogueUI is a prefab, loads the prefab. Then updates /// displaySettings.dialogueUI. /// </summary> private void ValidateCurrentDialogueUI() { if (currentDialogueUI == null) { GetDialogueUIFromDisplaySettings(); if (currentDialogueUI == null) { currentDialogueUI = LoadDefaultDialogueUI(); } MonoBehaviour uiBehaviour = currentDialogueUI as MonoBehaviour; if (uiBehaviour != null) displaySettings.dialogueUI = uiBehaviour.gameObject; } }
private void RestoreOriginalUI() { if (originalDisplaySettings != null) displaySettings = originalDisplaySettings; if (originalDialogueUI != null) { if (isOverrideUIPrefab) { MonoBehaviour uiBehaviour = currentDialogueUI as MonoBehaviour; if (uiBehaviour != null) Destroy(uiBehaviour.gameObject); } currentDialogueUI = originalDialogueUI; displaySettings.dialogueUI = (originalDialogueUI as MonoBehaviour).gameObject; } isOverrideUIPrefab = false; originalDialogueUI = null; originalDisplaySettings = null; }
/// <summary> /// Looks for any dialogue UI or display settings overrides on the conversant. /// </summary> /// <param name='conversant'> /// Conversant. /// </param> private void SetConversationUI(Transform conversant) { if (conversant != null) { OverrideDialogueUI overrideDialogueUI = conversant.GetComponentInChildren<OverrideDialogueUI>(); OverrideDisplaySettings overrideDisplaySettings = conversant.GetComponentInChildren<OverrideDisplaySettings>(); if ((overrideDialogueUI != null) && (overrideDialogueUI.ui != null)) { isOverrideUIPrefab = Tools.IsPrefab(overrideDialogueUI.ui); originalDialogueUI = DialogueUI; displaySettings.dialogueUI = overrideDialogueUI.ui; currentDialogueUI = null; } else if (overrideDisplaySettings != null) { if (overrideDisplaySettings.displaySettings.dialogueUI != null) { isOverrideUIPrefab = Tools.IsPrefab(overrideDisplaySettings.displaySettings.dialogueUI); originalDialogueUI = DialogueUI; currentDialogueUI = null; } originalDisplaySettings = displaySettings; displaySettings = overrideDisplaySettings.displaySettings; } ValidateCurrentDialogueUI(); } }
private void GetDialogueUIFromDisplaySettings() { if (displaySettings.dialogueUI != null) { currentDialogueUI = Tools.IsPrefab(displaySettings.dialogueUI) ? LoadDialogueUIPrefab(displaySettings.dialogueUI) : displaySettings.dialogueUI.GetComponentInChildren(typeof(IDialogueUI)) as IDialogueUI; if ((currentDialogueUI == null) && DialogueDebug.LogWarnings) Debug.LogWarning(string.Format("{0}: No Dialogue UI found on '{1}'. Is the GameObject active and the dialogue UI script enabled? (Will load default UI for now.)", new System.Object[] { DialogueDebug.Prefix, displaySettings.dialogueUI }), displaySettings.dialogueUI); } }
/// <summary> /// Sets the dialogue UI. (Deprecated; just set DialogueUI now.) /// </summary> /// <param name='gameObject'> /// Game object containing an implementation of IDialogueUI. /// </param> public void UseDialogueUI(GameObject gameObject) { currentDialogueUI = null; displaySettings.dialogueUI = gameObject; ValidateCurrentDialogueUI(); }
public void SetUI(IDialogueUI ui) { this._ui = ui; }
public YarnSpinnerUI(IDialogueUI ui = null) { this._ui = ui; }
internal void SetUI(IDialogueUI ui) { _ui.SetUI(ui); }