纳金网

标题: [技术问答]unity3d升级到unity 4.0后_中文显示出现问题 [打印本页]

作者: 铁锹    时间: 2012-12-17 14:17
标题: [技术问答]unity3d升级到unity 4.0后_中文显示出现问题
问:

本人的UnityPro(正版)从unity3d 3.5升级到unity3d4.0后,发现win7下运行正常的游戏到xp下运进时,中文有些字符不显示!

于是重新做了个最简单的工程,显示2行文件,结果还是一样:win7下运行正常中,xp下有些字符不显示。

以下是win7下运行的结果:





以下是xp下的运行结果:





测试工程中用的是unity默认的字体,本以为是win7中的字体与xp中不一样,就把win7中的字体拷到了xp中,结果问题依旧!

unity从3.5升级到4.0后,出了一堆问题,其它的都一一解决了,就是这个让人摸不着头脑!

请解决过此问题的高人指点,多谢哈!



疑问:哥们,你都解决了什么问题,给分享一下先!!!



回复疑问:



1、调用外部dll时出现异常退出!原因:有个dll函数返回字符串,importdll时把引入的函数的返回值直接定义成string,unity3.5中没问题,到unity4.0就异常;解决方案,把返回值定义成IntPtr,再用Marshal.PtrToStringAnsir把这个指针转成string.



2、以前界面上的GUIText全乱了!原因:以前为了GUIText好像,Font中的字符用了CustomSet,然后把用到的字符转出到texture,用photoshop美化,再在unity里显示;但是unity4.0把Font的机制给改了,以前做的texture全错位了,并且unity4.0中font生成的字符texture为了省空间,字符被旋转存贮,有个转了90度,有的没转,用photoshop没法统一处理某些效果!只好写了代码,把unity4.0生成的字符texture转化成另一个不带旋转的texture,photoship处理后,再转回来(悲摧啊!)



3、SetActiveRecursively到了unity4.0有警告,说是将不再支持,改用新的SetActive函数,为了消除警告,引入了一堆坑爹的错误!



4、有个GameObject设置了换关不被清除,在unity3.5中,换关时该GameObject的OnDisable会被调用,但到了unity4.0中,OnDisable居然不被调用了,引出的问题定位了好久!unity4.0的更新说明里也没有提这个特性更改!



5、有的特效不见了!原因:该特效是绑在GameObject上的,该GameObject由于模型做的太大,被缩小到原来的0.001,因此特效绑定上去后,特效的缩放值被设置成了1000,这样特效的给定放值继承你对像的0.001后,相乘风好是1,在unity3.5中正常!到了unity4.0,缩放值似乎不被继承了,必须把特效的缩放值改为1,才能正常显示!







终极解答:



终于解决!原来arial里不带中文,然后win7用默认的“微软雅黑”代替了!然而xp中没有“微软雅黑”字体,把win7中的“微软雅黑”字体拷到xp下就OK了.



更多技术问答分享尽在Web3D纳金网http://www.narkii.com/







作者: .    时间: 2012-12-17 21:20

好棒哦!哈哈~期待楼主有更多的作品分享给我们!
作者: ptymsx1@163.com    时间: 2015-2-9 19:08
只等正式版本了,




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5