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

一.静态内部读取txt文本

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

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


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


(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#脚本)

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


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


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


二.动态内部读取txt文本

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

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


(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#脚本)



三.外部读取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#脚本)


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值