示例#1
0
 /// <summary>
 /// Continues this conversation if the dialogue UI matches.
 /// </summary>
 /// <param name="dialogueUI"></param>
 public void OnConversationContinue(IDialogueUI dialogueUI)
 {
     if (dialogueUI == this.ui)
     {
         HandleContinueButtonClick();
     }
 }
示例#2
0
 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);
 }
示例#3
0
        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();
        }
示例#4
0
 /// <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;
 }
示例#5
0
        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);
        }
示例#6
0
 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);
 }