(スクリプト)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TextController2 : MonoBehaviour
{
    public string[] talks;
    private string[] words;
    public Text textLabel;
    public AudioClip sound;
    public GameObject talkButton;
    private int talkNum = 0;
    // ボタンを押すと会話スタート
    public void OnTalkButtonClicked()
    {
        // 会話フィールドをリセットする。
        textLabel.text = "";
        StartCoroutine(Dialogue());
        // トークボタンを非表示にする。
        talkButton.SetActive(false);
    }
    // コルーチンを使って、1文字ごと表示する。
    IEnumerator Dialogue()
    {
        // 半角スペースで文字を分割する。
        words = talks[talkNum].Split(' ');
        foreach (var word in words)
        {
            // 0.1秒刻みで1文字ずつ表示する。
            textLabel.text = textLabel.text + word;
            AudioSource.PlayClipAtPoint(sound, Camera.main.transform.position);
            yield return new WaitForSeconds(0.1f);
        }
        // 次のセリフがある場合には、トークボタンを表示する。
        if(talkNum + 1 < talks.Length)
        {
            talkButton.SetActive(true);
        }
        
        // 次のセリフをセットする。
        talkNum = talkNum + 1;
    }
}
(設定ポイント)
- セリフは「半角スペース」を入れて設定する。
 

(実行結果)
- ボタンを押すと、複数のセリフが一行ずつ(かつ一文字ずつ)順番に表示されればOK
 



- 最後のセリフの場面では、「ボタン」は表示されない。
 
