【发布时间】:2014-06-08 00:00:44
【问题描述】:
我需要在 C# 和 Unity 中将字节 [] 转换为字符串,而不会丢失太多每秒帧数。我目前正在使用 WWW 类来获取文本文件,但是当我使用 WWW.text 时,由于文件太大并导致 FPS 下降。有什么方法可以逐步进行转换,而不会延迟太久。
WWW file = new WWW(path);
yield return file;
string text= file.text;
我用它来读取一个完整的文件(一个 .OBJ),我需要读取所有文本。行到行或所有文本到一个字符串后拆分。为了在不降低 FPS 的情况下阅读文本,我这样做了。
WWW file = new WWW(path);
yield return file;
byte[] text= file.bytes;
如果文件太大,WWW.text,丢弃 FPS,那么我需要使用 WWW.bytes。在 Unity 中 useyield 返回 null;处理另一个帧。如果进程需要太多时间来执行,则丢弃 FPS(如果是 WWW.text);
Ex 文件:http://people.sc.fsu.edu/~jburkardt/data/obj/cessna.obj
【问题讨论】:
-
那么,你想怎么转换呢?字符串和字节数组是完全不同的野兽。
-
文件实际上是文本,还是二进制数据?
-
是一个文本文件,但是是一个在线网址。例如:people.sc.fsu.edu/~jburkardt/data/obj/cessna.obj
-
yield的使用很奇怪...看起来像await。 -
团结一致的是单线程。然后你使用
yield return null来处理另一个帧。另一种形式是WWW file = new WWW(path); while (!file.isDone) { yield return null; } byte[] text= file.bytes;
标签: c# unity3d bytearray unityscript