using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class DialogueManager : MonoBehaviour { public Animator animator; [SerializeField] GameObject leftNameBox; [SerializeField] TextMeshProUGUI leftNameText; [SerializeField] GameObject rightNameBox; [SerializeField] TextMeshProUGUI rightNameText; [SerializeField] Image DialogueBG; [SerializeField] TextMeshProUGUI dialogueText; [SerializeField] Queue sentences; void Start() { sentences = new Queue(); } public void StartDialogue(DialogueData dialogueData) { animator.SetBool("IsOpen", true); if (dialogueData.speakerIndex == 1) { leftNameBox.SetActive(true); leftNameText.text = dialogueData.speakerName; rightNameBox.SetActive(false); } else if (dialogueData.speakerIndex == 2) { rightNameBox.SetActive(true); rightNameText.text = dialogueData.speakerName; leftNameBox.SetActive(false); } sentences.Clear(); foreach (string sentence in dialogueData.sentences) { sentences.Enqueue(sentence); } DisplaySentence(dialogueData); // BG settings but its not working cuz we need sprites - might need to be placed in DisplaySentence DialogueBG.sprite = dialogueData.BGSprite; DialogueBG.color = dialogueData.BGMaterial.color; } public void DisplaySentence(DialogueData dialogueData) { if (sentences.Count == 0) { if (dialogueData.nextDialogue) { StartDialogue(dialogueData.nextDialogue); } else if (!dialogueData.nextDialogue) { EndDialogue(); return; } } string sentence = sentences.Dequeue(); dialogueText.text = sentence; } void EndDialogue() { animator.SetBool("IsOpen", false); } }