(Unity)読み込んだテキストファイル内の文字を画面に表示する(その2;改行で分割)

*基本設定はその1を参照

1)ゴールイメージ

*テキストの文字列を「改行」で分割して表示する。

あいうえお・・・1行目

かきくけこ・・・2行目

さしすせそ・・・3行目


2)スクリプトの作成

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

public class LoadText2 : MonoBehaviour {

    [SerializeField]
    private Text textLabel;

    [SerializeField]
    private TextAsset textFile;

    private string textData;
    private string[] splitText;

	void Start () {
        textData = textFile.text;

        // 改行で分割して配列に代入
        splitText = textData.Split(char.Parse("\n"));

        // テキストデータの先頭文字列(1行目)を表示する。
        textLabel.text = splitText[0];
	}
}

 


3)再生して確認

*1行目の「あいうえお」だけ表示されれば成功

 


4)スクリプトの改良

*スペースキーを押すたびごとに表示される文字列を切り替える。

*「%」を使ったループ処理アルゴリズムの実装

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

public class LoadText2 : MonoBehaviour {

    [SerializeField]
    private Text textLabel;

    [SerializeField]
    private TextAsset textFile;

    private string textData;
    private string[] splitText;

    // 改良
    private int currentNum = 0;

	void Start () {
        textData = textFile.text;
        splitText = textData.Split(char.Parse("\n"));

        // 最初は「あいうえお」を表示
        textLabel.text = splitText[currentNum];
	}

    // 改良
    // スペースキーを押すたびごとに表示される文字列を切り替える。
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // (発想・考え方)
            // 配列の「添字」の数字(ナンバー)を変更すれば表示される文字列が切り替わる。
            // splitText[0]は「あいうえお」
            // splitText[1]は「かきくけこ」
            // splitText[2]は「さしすせそ」

            // (テクニック)
            // 数字を「0→1→2→0→1→2・・・」でループさせる方法(%;余り算の活用)
            currentNum = (currentNum + 1) % splitText.Length;

            textLabel.text = splitText[currentNum];
        }
    }
}

 


5)再生して確認

*スペースキーを押すたびごとに表示される文字列が切り替われば成功