iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
自我挑戰組

用unity製作2DRPG雛形-沒有大野狼的小紅帽系列 第 23

23.unity儲存文字內容(List、foreach)

今天要用List來儲存記事本內的對話資料

0.和昨天一樣,先準備好對話.txt

Untitled

1.寫腳本,先檢查有沒有List的命名空間

using System.Collections.Generic;

2.List

//先宣布一個List,型態為<string>,名字為textList
List<string> textList = new List<string>();
//<string>可以改成其他變數型態,也可以設定成class或struct

//在list中添加元素
textList.Add("0-文字內容");
textList.Add("1-文字內容");
textList.Add("2-文字內容");
textList.Add("3-文字內容");

//讀取list項目
foreach (var line in textList) //一項一項讀取
{
	   Debug.Log(line);
}

腳本

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

public class Control : MonoBehaviour
{

  public TextAsset textFile;        //導入文件

	//new一個List,我取名為textList
  private List<string> textList = new List<string>();

	void GetTextFormFile(TextAsset file)
	    {
	    
	        textList.Clear();//確保List裡面沒有東西

			//使用字串陣列儲存文件內容
	        var lineData = file.text.Split('\n');
            //將字串陣列中的每一項添加到List
	        foreach (var line in lineData) //一項一項讀取字串陣列
	        {
	            textList.Add(line);//添加每一項進入List
	        }

			//讀取List內資料
	        foreach (var line in textList) //一項一項讀取List
	        {
	            Debug.Log(line);
	        }
	    }

        void Start()
    {
        GetTextFormFile(textFile);
        Debug.Log("end");
    }

}

3.結果

2.png

Split更多用法,用更多字符切割文字

能分化成更多小數據,之後可以寫成結構或類別

char[] SplitChar ={':','*','\n'};
var lineData = file.text.Split(SplitChar);

3.png


上一篇
22.unity讀取文字文件並分行(TextAsset、Split)
下一篇
24.unity對話處理(List與class)
系列文
用unity製作2DRPG雛形-沒有大野狼的小紅帽30

尚未有邦友留言

立即登入留言