[SerializeField] private GameObject DialoguePanel;
[SerializeField] private Text DialogueText;
[SerializeField] private string[] Usually_dialogue;
private int index;
[SerializeField] private GameObject player;
[SerializeField] private GameObject contButton;
[SerializeField] private float WordSpeed;
private bool PlayerIsClose;
[SerializeField] private bool StopDialogue = false;
private void Start()
{
Quest_script = Quest_Panel.GetComponent();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.E) && !PlayerIsClose)
{
if (DialoguePanel.activeSelf == false)
{
zeroText();
DialoguePanel.SetActive(true);
StartCoroutine(Typing());
player.GetComponent().Stay(false);
}
}
}
public void zeroText()
{
DialogueText.text = "";
if (StopDialogue == true)
{
DialoguePanel.SetActive(false);
}
}
IEnumerator Typing()
{
foreach (char letter in Usually_dialogue[index].ToCharArray())
{
DialogueText.text += letter;
yield return new WaitForSeconds(WordSpeed);
}
contButton.SetActive(true);
}
public void NextLine()
{
contButton.SetActive(false);
Debug.Log(Usually_dialogue.Length);
if (index < Usually_dialogue.Length - 1)
{
index++;
zeroText();
StartCoroutine(Typing());
}
else
{
DialogueStop();
}
}
private void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
player = other.gameObject;
PlayerIsClose = true;
}
}
private void OnTriggerExit2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
PlayerIsClose = false;
zeroText();
}
}
public void DialogueStop()
{
zeroText();
DialoguePanel.SetActive(false);
}