using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DialogueTrigger : MonoBehaviour
{
public Dialogue[] dialogue;
private int dialogueNum = 0;
public void TriggerDialogue()
{
if (FindObjectOfType<DialogueManager>() != null)
{
FindObjectOfType<DialogueManager>().StartDialogue(dialogue[dialogueNum]);
}
}
private void Update()
{
if (DialogueManager.dialogueEnded == true)
{
if (dialogueNum == dialogue.Length)
{
return;
}
else
{
dialogueNum += 1;
FindObjectOfType<DialogueManager>().StartDialogue(dialogue[dialogueNum]);
}
}
}
}
Например, если у меня есть 3 диалога в массиве, он создаст первый, затем сгенерирует исключение IndexOutOfRangeException: индекс вышел за пределы массива, а затем выполнит последний.
Если я добавлю -1 в проверке состояния:
if (dialogueNum == dialogue.Length - 1)
Тогда оно не сгенерирует исключение, а выполнит только первое и последнее, второе диалоговое окно никогда не будет выполнено.
А может, лучше сделать это в StartCoroutine, а не в Обновлении?С открытым массивом int, чтобы решить, сколько ждать между каждым диалогом?
Я хочу добавить переменную массива int, чтобы иметь возможность решать, сколько ждать между каждым диалогом.Например, между диалогом 0 и 1 подождите одну секунду, а между диалогом 1 и 2 подождите 5 секунд.