Unity3D企业项目转版本遇到的坑

最近接手一个项目,遇到了几个坑,记录一下。

项目简介:这是一个最后跑在PC上的3D沙盒的游戏级企业应用,里面有些3D巡游,有些企业教学,有些企业演练。用Unity3D制作,需要连接企业的数据库。

接手情况:项目使用unity3D 4.3制作,一些组件的拼凑,一些功能已经可以用了,但是毛病一堆。有一些会用C#的做了网络的dll,放到unity里来用。

接手后的第一项工作就是转成Unity5最新版,毕竟4已经不再维护了,如果能转,早转了还是很好的。

遇到的问题:

1 更新NGUI 到Unity5,里面的屏幕匹配有些问题,UISprite的width和height在屏幕大小不全屏的时候有问题,有时需要匹配下 sp.width = 480 * 1920 / Screen.width

    UIPopupList弹出的列表位置不匹配,这个类的末尾把offset的几行删了就可以了,这个应该在后续的版本中会被修正。

2 更新PlayMaker到Unity5,主要有一个API变更了,UnityEngineInternal.APIUpdaterRuntimeServices.AddComponent  替换成var t = System.Type.GetType(component.Value); addedComponent = go.AddComponent(t);就OK了。

3 烘焙的方式在Unity5全部更新了,场景中的模型文件有些UV展得很不均匀,导致灯光照射时各种问题。

4 连接数据库原来必须要客户端安装 oracle客户端,现在把这个客户端里的那些dll拿过来,设置成x86的就可以了,注意64位的Unity还是会有问题,暂时还用32位的吧。

5 原来的网络部分是同步的,敲代码修改为异步,注意锁公用的消息队列。

6 原来的配置文件位置错误,现在扔到StreamingAssets目录下,log文本输出,现在扔到 persistentDataPath目录下。

7 shader可以替换为现在通用的 Standard 。越来越傻瓜了

就这些吧,已经可以在unity5下正常打包了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章