Unity动态载入文本数据的方法归类
2011-03-25 13:55
309 查看
概述
在游戏中经常需要动态地载入一些数据。例如让玩家定制角色外貌时,需要从数据文件读取各种身体部位的信息;或者玩家访问NPC购买装备时,需要从数据文件读取装备信息等等。为了减少游戏程序的大小,我们往往采用最简单的文本文件来保存这些信息。所以本文总结一下Unity常用的读取文本数据的方法。因为我是边开发项目便记录心得,时间很仓促,只能先把关键点记录下来,留待以后有时间再补全吧。对于没有详细说的内容,一般google一下都能查到更详细的说明。
让Text支持中文
读取TextAsset数据
在开发阶段,将Txt文件放置到Unity项目Asset文件目录下,Unity就会识别该文件成为TextAsset。Unity脚本中专门有TextAsset类来操作文本中的数据。有时候你可能会发现文本中的中文汉字无法显示,这是因为TextAsset只支持UTF-8的缘故。可以用写字板将该txt文件重新存为UTF-8格式即可解决。
TextAsset和其他类型Asset一样,可以拖动到组件面板中用于赋值,我称之为静态载入。如果要在游戏运行中实现动态载入TextAsset,就必须采用Resource.Load()方法,或者用AssetBundle来实现。
需要理解的是,TextAsset是随游戏项目一起编译的。在最终的游戏程序中,是看不到原先的txt文件的。如果想在游戏运行时动态读取一个独立的txt文件数据,就要用下面的“读取外部文本数据”方法。
读取外部文本数据
对于windows平台上的游戏而言,运行中读取外部文本文件的方法非常简单,就是传统的文件读写操作。例如可以用.net的StreamReader类来实现。using System; using System.IO; class Test { public static void Main() { try { // Create an instance of StreamReader to read from a file. // The using statement also closes the StreamReader. using (StreamReader sr = new StreamReader("TestFile.txt")) { String line; // Read and display lines from the file until the end of // the file is reached. while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); } } } catch (Exception e) { // Let the user know what went wrong. Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } } }
相关文章推荐
- Unity3D动态载入文本数据的方法归类
- Unity动态加载文本数据的方法
- MVC4中AJAX Html页面打开调用后台方法实现动态载入数据库中的数据
- Unity动态载入可执行代码的方法
- ofstream/ifstream 文本/二进制 方式 读入/写出 数据方法
- Echarts 饼图,折线图,柱状图,条形图ajax动态渲染数据方法汇总
- javaScript动态创建数组、动态赋值json数据方法之一(持续补充)
- AJAX 动态加载后台数据 绑定select的方法
- 动态数据竞争检测方法实验分析(二)
- Django—Form两种解决表单数据无法动态刷新的方法
- 动态载入数据的无刷新TreeView控件(5)
- PHP实现动态添加XML中数据的方法
- 动态载入数据的无刷新TreeView控件(7)
- extjs的tree的使用(拖动、动态载入json数据、拖动后的事件处理)
- 利用TreeView控件 从数据库中动态载入数据
- jquery动态添加文本并获取值的方法
- Asp.net导出Excel/Csv文本格式数据的方法
- ofstream/ifstream 文本/二进制 方式 读入/写出 数据方法
- 动态更新highcharts数据的实现方法
- JNI动态注册native方法及JNI数据使用