Unity4.x/5.x/2017.x升级差异总结

目前整理Unity4.x 项目升级Unity5.x以及Unity2017.x 过程中出现的各种常见异常问题,与大家经验共享。按照问题出现的版本分为Unity5.x 升级到Unity2017.x 以及Unity4.x 升级到Unity5.x 两种情形进行总结:

 

  • Unity5.x 升级 Unity2017.x 容易出现的问题:

问题1: Unity开发导航寻路的源代码中原本定义的”NavMeshAgent” 类,系统已经不再识别?

解答: 

 应该是从Unity5.6以上版本,导航寻路中的大量API类,已经封装到新的命名空间“UnityEngine.AI”下。也就是说程序开头使用Using 导入命名空间UnityEngine.AI即可。

 

问题2:  项目升级到Unity2017.x 过程中,源代码中的“Application.LoadLevelAsync()”(也包括“Application.LoadLevel()”) 系统提示已经过时, 如何处理?

解答:

这个问题应该是Unity5.3以上版本就已经发生了变化。以上脚本可以通过导入“Using UnityEngine.SceneManagement”命名控件,然后改为如下代码:

      SceneManager.LoadSceneAsync("");//异步场景转换

      SceneManager.LoadScene("");     //同步场景转换

 

问题3: 项目升级到Unity2017.x 导航寻路失效,不再有反应?

解答;

Unity5.6之后的版本,其导航寻路的底层API做了重写,所以原本导航寻路的NavMesh 是需要重新做导航烘焙才可解决。



问题4: 项目升级到Unity2017.x 后,烘焙的场景变得格外高亮(不正常)?

  解答:

Unity2017.x 的光影系统内部Shader等算法进一步优化与改善,所以在Unity5.x 中烘焙的场景应该再次重新烘焙,就可显示正常光影效果。

 

  •  Unity4.x 升级Unity5.x 容易出现的问题:

问题1:Unity4.x 项目升级到Unity5.x 中, 3D模型其材质丢失,成为“白模”?

解答;

Unity5.x(包含Unity2017.x)中对于材质采用基于物理着色(PBS)的材质系统,所以3D模型升级后需要手工重新赋值材质与贴图等。

 

问题2:Unity4.x 项目中的NavMesh 升级报错:“NavMesh asset format has changed. Please rebake the NavMesh data.”?

解答;

  按照字面含义,重新对静态物体进行新的导航烘焙即可。

 

问题3: Unity4.x 项目天空盒子升级后显示混乱?

解答;

找到项目中“标准资源”(Standard Assets),点击天空盒子的材质,出现提示信息“This texture contains alpha, but is not RGBM(Incompatible with HDR[高动态光照渲染])”点击“Fix Now”进行自动修复即可。。

 

问题4: Unity4.x 在升级后出现某些3D模型不显示的“严重”问题?

 解答;

由于Unity5.x 与Unity4.x版本的底层编码变化较大,Unity5.x已经不能正确识别部分老“预设”,从而造成不显示问题。此时我们找到对应模型的“原型”3D模型,重新建立“预设”在场景中的原位置进行重新加载即可。(注意与原来的方位需要一致才可以)。

 

问题5: Unity4.x 项目升级后部分Animation动画失效(即:不动没有反应)?

解答;

我们把Animation动画在Unity5.x中重新编辑与应用即可。

 

问题6: Unity4.x 的布料模拟升级到Unity5.x 无法应用,也找不到原来的组件了?

解答:

Unity5.x (包含Unity2017.x)中废弃了Interactive Cloth 与Cloth Renderer 组件,转而使用Cloth 与Skinned Mesh Rederer 组件代替。(注:详情请查阅本书籍11.5.5章节)

 

  • 脚本问题汇总, 由于脚本升级过程中造成的各种异常现象汇总如下:
  1. 光标锁定脚本

Screen.lockCursor = true; //Unity4.x传统写法

Cursor.lockState = CursorLockMode.Locked;//Unity5.x(2017.x)等价替换

  2. 脚本AddComponent()、GetComponent() 问题

例如1:

GoNeedAddScriptsObj.AddComponent("类名称");// Unity4.x传统写法

          GoNeedAddScriptsObj.AddComponent();//必须用泛型代替。

例如2:

GoCreatObj.Renderer.Material.color=Color.red;// Unity4.x传统写法

   GoCreatObj.GetComponent().material.color = Color.red//Unity5.x(2017.x)等价替换

例如3:

AddComponent(“脚本字符串”);Unity4.x 中这种API写法,可以实现动态加载脚本功能。而到了Untiy5.x 被否决禁止使用,替代写法如下: GoNeedObj.AddComponent(System.Type.GetType(“脚本字符串”);

 3. 脚本Animation 播放动画问题

例如:

this.animation.Play("xxx"); // Unity4.x传统写法

          this.GetComponent().Play("xxx"); // Unity5.x(2017.x)等价替换

4.脚本刚体组件写法

例如:

           con.gameObject.collider.xx(); // Unity4.x传统写法,已经被否决。

           con.gameObject.GetComponent().xxx();//Unity5.x(2017.x)等价替换

   5. 关于AssetBundle错误信息

   报错信息: “UnityEngine.AssetBundle.Load(string)' is obsolete: `Method Load has been deprecated. Script updater cannot update it as the loading behaviour has changed. Please use LoadAsset instead and check the documentation for details.”

         解答:分析以上错误信息表明AssetBundle.Load(“”) 这个API已经否决不再允许使用。替代写法是:AssetBundle.LoadAsset (“”)

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于Unity5.x升级Unity2017.x的过程中常见的异常问题,可以参考整理的经验共享文档。另外,如果您需要下载Unity5.x的32位版本,可以通过修改下载链接中的数字64为32来获取相应的安装程序。此外,您还可以关注Unity官方的GitHub页面,那里会发布一些示例工程以及处于开发阶段的新功能,可以帮助您了解Unity的发展方向并提升开发技能。希望这些信息对您有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Unity4.x/5.x/2017.x升级差异总结](https://blog.csdn.net/weixin_34206899/article/details/86085382)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [最全UnityHub国际版下载链接Unity2023~2017各版本+Unity5.x【间歇性更新】](https://blog.csdn.net/qq_36829186/article/details/123847081)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [unity 5.x从入门到精通_Unity学习中值得收藏的学习资料(书籍)与博客](https://blog.csdn.net/u013712343/article/details/123378759)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值