Я могу легко получить доступ к этому массиву строк из моего основного сценария (RPGDialogueManager.cs), и значение отображалось нормально, но когда я пытаюсь получить доступ к этому массиву к другому сценарию (RPGDialogueHolder.cs), измените его значение и измените "lineNum" обратно в 0, это значение не будет отображаться. Он просто дает сбой (он отображает значение индекса 1, но быстро возвращается к строке по умолчанию, которая называется «Эй, ты, что заставляет тебя идти сюда?»)
Примечание: dialogLines в RPGDialogueHolder.cs отличается от
dialogLines в RPGDialogueManager.cs. Оба строковых массива имеют
разные значения друг от друга
RPGDialogueManager.cs
void Start () {
dialogueBox.SetActive(true);
directionalButtons.SetActive(false);
dialogueText.text = "In the middle of the day, this two young adults volunteer to help and leads me to their town";
nextButton.onClick.AddListener(DialogueLines);
}
public void DialogueLines()
{
if (lineNum >= dialogueLines.Length)
{
dialogueBox.SetActive(false);
directionalButtons.SetActive(true);
lineNum = 0;
}
dialogueText.text = dialogueLines[lineNum];
lineNum++;
}
public void ShowDialogue()
{
dialogueBox.SetActive(true);
directionalButtons.SetActive(false);
}
RPGDialogueHolder.cs
void OnTriggerStay2D(Collider2D collider2D)
{
if (collider2D.gameObject.name == "Player")
{
// dialogueManager.dialogueText.text = dialogue;
dialogueManager.dialogueText.text = "Hey you, What makes you go here?";
dialogueManager.dialogueLines = dialogueLines;
dialogueManager.lineNum = 0;
aButton.onClick.AddListener(dialogueManager.ShowDialogue);
}
}