转_读取外部数据
概述
在游戲中經(jīng)常需要動態(tài)地載入一些數(shù)據(jù)。例如讓玩家定制角色外貌時,需要從數(shù)據(jù)文件讀取各種身體部位的信息;或者玩家訪問NPC購買裝備時,需要從數(shù)據(jù)文件讀取裝備信息等等。為了減少游戲程序的大小,我們往往采用最簡單的文本文件來保存這些信息。所以本文總結(jié)一下Unity常用的讀取文本數(shù)據(jù)的方法。
因為我是邊開發(fā)項目便記錄心得,時間很倉促,只能先把關(guān)鍵點記錄下來,留待以后有時間再補全吧。對于沒有詳細(xì)說的內(nèi)容,一般google一下都能查到更詳細(xì)的說明。 讓Text支持中文
讀取TextAsset數(shù)據(jù)
在開發(fā)階段,將Txt文件放置到Unity項目Asset文件目錄下,Unity就會識別該文件成為TextAsset。Unity腳本中專門有TextAsset類來操作文本中的數(shù)據(jù)。 有時候你可能會發(fā)現(xiàn)文本中的中文漢字無法顯示,這是因為TextAsset只支持UTF-8的緣故。可以用寫字板將該txt文件重新存為UTF-8格式即可解決。 TextAsset和其他類型Asset一樣,可以拖動到組件面板中用于賦值,我稱之為靜態(tài)載入。如果要在游戲運行中實現(xiàn)動態(tài)載入TextAsset,就必須采用Resource.Load()方法,或者用AssetBundle來實現(xiàn)。 需要理解的是,TextAsset是隨游戲項目一起編譯的。在最終的游戲程序中,是看不到原先的txt文件的。如果想在游戲運行時動態(tài)讀取一個獨立的txt文件數(shù)據(jù),就要用下面的“讀取外部文本數(shù)據(jù)”方法。
讀取外部文本數(shù)據(jù)
對于windows平臺上的游戲而言,運行中讀取外部文本文件的方法非常簡單,就是傳統(tǒng)的文件讀寫操作。例如可以用.net的StreamReader類來實現(xiàn)。
//
using UnityEngine;
using System.Collections;
using System;
using System.IO;
public class Test : MonoBehaviour {
???????void Start () { ?
????????????????????????????? ?try { ???????????
???????????????????????????????????????? using (StreamReader sr = new StreamReader("c:\\log.txt")) ???????????
???????????????????????????????????? ??? {
??????????????????????????? ????????????????? ?? String line;
??????????????????????????? ??????????????????? ?while ((line = sr.ReadLine()) != null)
??????????????????????????? ??????????????????? {
????????????????????????????? ???????????????????????? ?print (line);
??????????????????????????? ?????????????????? ?}
??????????????????????????????????????? }
??????????????????????????????????}
???????????????????????? ??????? catch (Exception e)
??????????????????????? ??????? {
????????????????????????????? ???????????? Console.WriteLine("The file could not be read:");
???????????????????????????????????????????Console.WriteLine(e.Message);
?????????????????????? ??????? } ?
?????????????? ??}
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/softimagewht/archive/2012/08/14/2638389.html
總結(jié)
- 上一篇: Windows服务的创建、安装、调试
- 下一篇: hdu 2119最小点集覆盖