方法一:在Unity内部文件中加载(使用相对路径)
1、首先在Unity的 Assets 目录下新建一个 Resources 文件夹,将需要读取的 txt 文件保存到 Resources 文件夹中。(注意:txt 文件必须保存成 UTF—8 的格式 ;内容间的逗号为英文格式)。
2、创建脚本来对 txt 文本的内容进行读取与解析:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LoadText : MonoBehaviour
{
void Start () {
// 将test01 中的内容加载进txt文本中
TextAsset txt = Resources.Load("test01") as TextAsset;
// 输出该文本的内容
Debug.Log(txt);
// 以换行符作为分割点,将该文本分割成若干行字符串,并以数组的形式来保存每行字符串的内容
string[] str = txt.text.Split('\n');
// 将该文本中的字符串输出
Debug.Log("str[0]= "+str[0]);
Debug.Log("str[1]= "+str[1]);
// 将每行字符串的内容以逗号作为分割点,并将每个逗号分隔的字符串内容遍历输出
foreach (string strs in str)
{
string[] ss = strs.Split(',');
Debug.Log(ss[0]);
Debug.Log(ss[1]);
Debug.Log(ss[2]);
Debug.Log(ss[3]);
}
}
}
3、将该脚本挂载到一个GameObject上。(在此处创建一个空物体来挂载各种公用脚本),运行结果如下
方法二:外部读取(使用绝对路径来加载)
1、需要读取的 txt 文件可以放在任何位置,但仍需要保存成 UTF-8 的编码格式
2、创建脚本来对该文件执行读取操作:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO; //必须要引入该命名空间,因为需要使用它的File类
public class LoadText : MonoBehaviour
{
private string[] myText01;
private string myText02;
void Start ()
{
ReadText01();
ReadText02();
}
private void ReadText01() // 01方法
{
//以行为单位,读取文件的所有行,将数据保存到字符串数组(myText)中,每行内容为字符串数组的一个元素
myText01 = File.ReadAllLines("D:\\KR\\test02.txt"); // txt文件的绝对路径
Debug.Log(myText01[0]); //输出第一行内容
Debug.Log(myText01[1]); //输出第二行内容
}
private void ReadText02() // 02方法
{
// 读取文件的所有内容
myText02 = File.ReadAllText("D:\\KR\\test02.txt");
Debug.Log(myText02);
}
}
3、将该脚本挂载在一个 GameObject 上,运行结果如下所示
01方法: 02方法:
参考资料:
[1] unity中四种读取txt文件的方法和一种写入txt方法