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

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

1)ゴールイメージ

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

あいうえお・・・1行目

かきくけこ・・・2行目

さしすせそ・・・3行目


2)スクリプトの作成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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)スクリプトの改良

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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)再生して確認

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