unity3d如何动态读取外部的TXT文件到数组?

我现在需要从外部动态读取一个固定格式的TXT文档(通过.CSV转的),并将其数据读入到一个数组。
嗯,我知道是用TextAsset binAsset读取在asset里面的txt文档,但如何读取外部文档?

using UnityEngine;
using System.Collections;

public class test1 : MonoBehaviour {
public UIPanel output;

void Start () {
TextAsset binAsset = Resources.Load("Character1", typeof(TextAsset)) as TextAsset;
guiText.text = binAsset.text;

string [] lineArray = binAsset.text.Split ("\r"[0]);
string [][]Array = new string [lineArray.Length][];
for(int i =0;i < lineArray.Length; i++)
{
Array[i] = lineArray[i].Split (";" [0]);
}
Debug.Log(Array[2][1]);
output.text = Array [2] [2];
}

这是目前写的代码——用TextAsset binAsset读取——求高手赐教!
最新回答
杯别

2024-05-05 00:32:40

无法用外部读取,因为工程目录会被打包。在编辑器模式下能读取到的路径,打包后就不存在了。
追问
那做动态读取呢。我看网上有用XML进行动态读取的方案但是我没看明白……
追答
什么叫动态读取?
首先的问题是路径你不知道你就不能读取,工程目录下只能放在Resources目录下才能用Resources.Load函数读取,如果用streamreader读取,那么打包后的路径必须能找得到。Application类中有关于路径的变量,你可以试试把要读取的文件存放在那里,然后用streamreader读。

你要读取的文件不能放在工程目录下,只能通过网络传输到目标机器的某个目录下,然后再用StramReader读取改文件。
冰月灵狐

2024-05-05 00:58:45

用io的streamreader流读取txt文本,然后把每次读取到的byte数组转换成自己所要的字符串或其他保存起来
威猛的小平胸

2024-05-05 02:40:27

如果txt能置于项目内可以直接声明TextAsset类型 用TextAsset.text读取如果在外部则可以先用WWW载入路径读取。
错在情深

2024-05-05 03:45:10

如果不会www,直接用IO类加绝对路径。
追问
哦哦,那怎么用WWW或者IO类载入啊……我看到一个用JS写的类似代码

var www = new WWW ("file://D:\\pic1.jpg"这里也可以是网络图片地址);

yield www;
bbb.renderer.material.SetTexture("_MainTex",
www.texture
);

(字数限制,不全)
有C#的类似方案么
追答
猫哥以前有一帖,关于“文件读写”,你查一下吧。
好吧,原来猫哥已经宣传了
你依旧那么甜

2024-05-05 02:07:36

找本C#书看看就行了