Unity读取txt文件(C#脚本)

一.静态内部读取txt文本

这是最简单的方式,建立TextAsset,直接把文本文件拖上,就可以用了,具体步骤如下

(1)首先把要读取的txt文件导入Assets下(如图中的Data.txt)


Unity读取txt文件(C#脚本)_第1张图片


(2)建立C#脚本,代码如下

using UnityEngine;
using System.Collections;

public class LoadTxt : MonoBehaviour {

    public TextAsset TxtFile;   //建立TextAsset
    private string Mytxt;       //用来存放文本内容
// Use this for initialization
void Start () {
        Mytxt = TxtFile.text;
        print(Mytxt);           //输出验证
}
// Update is called once per frame
void Update () {
}
}

注意:C#脚本中的类名必须与文件名保持一致,改文件名的同时也要进入脚本相应改掉类名

(3)把脚本拖给一个游戏对象,并把文本文件托至Inspector面板中该脚本的Txt File一栏


Unity读取txt文件(C#脚本)_第2张图片

(4)运行(成功输出文档内容“123456789”)


Unity读取txt文件(C#脚本)_第3张图片


注意:txt文本的编码格式要改为UTF-8格式,否则读不出来,虽然不会报错


二.动态内部读取txt文本

(1)在 Assets下新建一个 Resources文件夹,把 要读取的txt文件导入 Resources 下(如图中的Data.txt)

Unity读取txt文件(C#脚本)_第4张图片


(2)建立C#脚本,代码如下

using UnityEngine;
using System.Collections;

public class LoadTxt : MonoBehaviour {

    public TextAsset TxtFile;   //建立TextAsset
    private string Mytxt;       //用来存放文本内容
// Use this for initialization
void Start () {
         Mytxt = ((TextAsset)Resources.Load("Data")).text;
        print(Mytxt);           //输出验证
}
// Update is called once per frame
void Update () {
}
}

(3)把脚本拖给一个游戏对象, 运行(成功输出文档内容“987654321”)


Unity读取txt文件(C#脚本)_第5张图片



三.外部读取txt文本

实际运用中上述的两种方法使用的并不多,大多都是用的外部读取,具体步骤如下:

(1) 建立C#脚本,代码如下

using UnityEngine;
using System.Collections;

using System.IO;        //需要导入System.IO,主要使用它的File类

public class LoadTxt : MonoBehaviour {

    private string Mytxt;       //用来存放文本内容

// Use this for initialization
void Start () {
        Mytxt = ReadFile("C:\\Users\\Eniac\\Desktop\\Data.txt",1);  //txt文件的绝对路径
        print(Mytxt);           //输出验证

}
// Update is called once per frame
void Update () {
}

    //按路径读取txt文本的内容,第一个参数是路径名,第二个参数是第几行,返回值是sring[]数组
    string ReadFile(string PathName, int linenumber)
    {
         string[] strs = File.ReadAllLines(PathName);// 读取txt文本的内容,返回sring数组的元素是每行内容
        if (linenumber == 0)
        {
            return "";
        }
        else
        {
            return strs[linenumber - 1];   //返回第 linenumber行内容
        }
    }
}

(2)运行, (成功输出文档内容“abcdefghi”)

Unity读取txt文件(C#脚本)_第6张图片


注:关于路径又有绝对路径和相对路径,绝对路径就不解释了,相对路径要注意下,如果用Application.dataPath除了要注意移动平台之外,特别要注意Application.dataPath在编辑环境下和在生成exe之后是不一样的,编辑状态下,返回的是Asset位置,生成后Assets不再存在,返回位置是_Data文件夹

你可能感兴趣的:(Unity读取txt文件(C#脚本))