using TMPro; using UnityEngine; using UnityEngine.UI; public class Dialogue : MonoBehaviour { public PlayerController2D playerController2D; public Timer timer; //UI References [SerializeField] private GameObject dialogueCanvas; [SerializeField] private TMP_Text speakerText; [SerializeField] private TMP_Text dialogueText; [SerializeField] private Image portraitImage; //Dialogue Content [SerializeField] private string[] speaker; [SerializeField] [TextArea] private string[] dialogueWords; [SerializeField] private Sprite[] portrait; private bool dialogueActivated; private int step; // Update is called once per frame void Update() { if (dialogueActivated) { playerController2D.frozen = true; timer.timepaused = true; if (step >= speaker.Length) { dialogueCanvas.SetActive(false); playerController2D.frozen = false; timer.timepaused = false; dialogueActivated = false; } else if (Input.GetButtonDown("Interact")) { step += 1; } else { playerController2D.frozen = true; dialogueCanvas.SetActive(true); if (step < speaker.Length && step < dialogueWords.Length && step < portrait.Length) { speakerText.text = speaker[step]; dialogueText.text = dialogueWords[step]; portraitImage.sprite = portrait[step]; } } } } void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.CompareTag("Player")) { dialogueActivated = true; } } }