Строковый массив не увеличивается

Я могу легко получить доступ к этому массиву строк из моего основного сценария (RPGDialogueManager.cs), и значение отображалось нормально, но когда я пытаюсь получить доступ к этому массиву в другом моем сценарии (RPGDialogueHolder.cs), измените его значение и измените "lineNum" обратно к 0, это не будет отображать значение. Он просто дает сбои (он отображает значение индекса 1, но быстро возвращается к строке по умолчанию: «Эй, ты, что заставляет тебя пойти сюда?»)

Note: The dialogueLines in RPGDialogueHolder.cs is different from dialogueLines in RPGDialogueManager.cs. Both string arrays has different values from each other

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);
    }
}

84
1

Ответ:

Решено

OnTriggerStay2D вызывается каждый кадр, если ваш плеер находится внутри триггера. Таким образом, вы по сути сбрасываете свой диалог на Hey you,... по одному в каждом кадре.

Попробуйте изменить обратный вызов с OnTriggerStay2D на OnTriggerEnter2D или используйте другой подход для диалогов.