Строковый массив не увеличивается - PullRequest
0 голосов
/ 28 августа 2018

Я могу легко получить доступ к этому массиву строк из моего основного сценария (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);
    }
}

1 Ответ

0 голосов
/ 28 августа 2018

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...