привет, я пытаюсь создать диалоговое окно с использованием массива, но у меня, похоже, есть небольшая проблема.вместо того, чтобы показывать разные строки в классе DialogHolder, он продолжает показывать DialogueManager.
Из моего понимания я хотел сделать так, чтобы DialogHolder содержал этот диалог, и у меня появилась идея сделать его примерно таким ->
[DialogHolder = DialogueManager]
но отображается только DailogueManager с тестовыми строками, которые я поместил, чтобы увидеть, изменится ли диалог
DailogHolder
public string dialogue;
private DialogueManager sentence;
public string[] NPC_name;
[TextArea(3, 10)]
public string[] dialogueLines;
void Start()
{
}
public void TriggerDialogue()
{
FindObjectOfType<DialogueManager>().ShowDialogue(dialogueLines);
FindObjectOfType<DialogueManager>().ShowName(NPC_name);
}
DialogueManager
//holds the text GameObject
public Text NPC_nameText;
public Text NPC_DialogueText;
public string[] names;
[TextArea(3, 10)]
public string[] dialogueLines;
public int currentlines;
void Start () {
//lets the box types the char individual
StopAllCoroutines();
}
void Update()
{
StartDialog();
}
public void StartDialog()
{
if (currentlines >= dialogueLines.Length)
{
currentlines = 0;
EndDialogue();
return;
}
NPC_DialogueText.text = "";
StartCoroutine(TypeSentence());
}
public void ShowDialogue(string[] dialogueLines)
{
NPC_DialogueText.text = dialogueLines[currentlines];
}
public void ShowName(string[] NPC_name)
{
//selected a name
NPC_nameText.text = NPC_name[0];
//this part works for some reason since it's taken from the DialogHolder class
}
//pressed by a button
public void NextLine()
{
currentlines++;
StopAllCoroutines();
}
void EndDialogue()
{
Debug.Log("End of Conversation");
}
IEnumerator TypeSentence()
{
//types the characters for each sentence
foreach (char letter in dialogueLines[currentlines].ToCharArray())
{
NPC_DialogueText.text += letter;
yield return null;
}
}
если я удаляю [размер] массива в классе DailogHolder, я получаю ошибку, в которой говорится, что [индекс массива выходит за пределы диапазона], но если я просто удаляю строки, которые были сохранены в этом массиве, это не имеет значения, так какон просто продолжает использовать массив в классе DialogueManager.
Пожалуйста, помогите, это работает, если я использую только одну строку, а не массив, но мне нужно научиться печатать несколько строк