unity3d有办法用任何方法弄出一个TextAsset 吗?
是这样的,我在汉化某个恶心的游戏, 然后这个游戏是用unity3d做的,GUI用了EZGUI。默认的字库里面没有中文,所以我们不得不通过插件手动替换字体。 但是EZGUI用的bitmap font,好吧,这就算了,问题在于,SpriteText.SetFont (UnityEngine.TextAsset newFont, UnityEngine.Material fontMaterial) 也就是,这里不吃string,要一个TextAsset。那么,我的问题是,有没有办法在plugins里面,通过某个手段,加载一个txt文件为TextAsset。这个txt文件可以通过标准的IO方式读入,但是那样是string的。
我尝试修改u3d的TextAsset类,把TextAsset.get_text设成虚函数,然后有了如下代码:
public class MyTextAss : TextAsset{
public byte[] cbytes;
public override byte[] bytes
{
get{
return cbytes;
}
}
public string ctext;
public override string text
{
get{
return ctext;
}
}
public override string ToString()
{
return this.text;
}
}
但是,这样的代码,在:
public TextAsset fontDef(){
MyTextAss mtass = new MyTextAss();
mtass.ctext = System.IO.File.ReadAllText (sFilePath);
mtass.cbytes = System.IO.File.ReadAllBytes (sFilePath);
return mtass;
}
的时候,导致了整个函数返回null!这又是为什么,能通过这样的手段解决问题吗?(EZGUI只用到了text,别的都没有用到) sFilePath是修正了的文件地址,肯定能读到。
姐给你kj
10 years, 11 months ago