最近下了个游戏叫木石世纪(Timber and Stone),沙盒游戏类,看着还不错.
搜了下游戏资料,有人求汉化但是由于是小众游戏,没人出汉化.看了眼是Unity3d的,既然是.Net的,只要资源不是在资源包里,应该都还是蛮简单的.
刚开始做了个字符串替换,发现有些地方还是比较麻烦,还不如拿UnityEngine里面的GUI函数开刀,也就是有了这么一次简单的哦汉化过程.
首先写个简单的类用于注入
public class TxtInjection
{
public static string DoInjection(string txt)
{
return txt + "X";
}
}
注入成功后,所有的被注入的字符串后面都应该出现一个X;
然后写个小的示例,用于IL参考:
public static void Label(object position, string text, object style)
{
text = DoInjection(text);
LabelA(position, text, style);
}
public static void LabelA(object position, string text, object style)
{
}
text = DoInjection(text);
就是我们修改字符串的地方了.
反编译看下IL

本文介绍了如何对Unity3d游戏《木石世纪》进行汉化,利用IL注入技术替换文本。通过创建特殊类并参考IL代码,对 UnityEngine 的 GUI 方法进行操作,实现字符串替换。反编译查看IL,并使用Reflector插件手动注入。最终通过百度在线翻译获取中文文本,并将所有文本导出为txt文件进行翻译。后续计划分享具体程序。

783

被折叠的 条评论
为什么被折叠?



