(единство) диалог отсутствует при повторном воспроизведении - PullRequest
0 голосов
/ 05 октября 2019

это мой код. после нажатия следующей кнопки переслать разговор. когда я добрался до последнего разговора, я переназначил index = 0, чтобы вернуться к первому разговору и скрыть его. Но когда он столкнулся со мной. Если он отображается снова, диалоговое окно index = 0 не отображается, то нажатие следующей кнопки продолжится с index = 1

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class dialog : MonoBehaviour
{
    public Text text;
    public string[] sentence;
    public int index;
    public float typedelay;
    public GameObject buttonnext;
    public static dialog instance;
    public bool active = true;
    private void Awake()
    {
        makeinstance();
    }
    public void Start()
    {
        StartCoroutine(Type());
    }
    private void Update()
    {
        if (text.text == sentence[index])
        {
            buttonnext.SetActive(true);
        }
    }
    IEnumerator Type()
    {
        if(active)
        {
            foreach (char letter in sentence[index].ToCharArray())
            {
                text.text += letter;
                yield return new WaitForSeconds(typedelay);
            }
        }
    }


    public void nextchat()
    {

        buttonnext.SetActive(false);

        if(index < sentence.Length - 1)
        {
            index++;
            text.text = "";
            StartCoroutine(Type());
        }else
        {
            text.text ="" ;
            buttonnext.SetActive(false);
            index = 0;
            active = false;

        }

    }

    void makeinstance()
    {
        if(instance == null)
        {
            instance = this;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...