博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity4 升级到 Unity5 更新小记
阅读量:6679 次
发布时间:2019-06-25

本文共 1157 字,大约阅读时间需要 3 分钟。

为了某一个Bug,把游戏工程从Unity4.6 升级到Unity5 测试,中间出现了一些问题,小记。

 

(1) Plugin的使用变化

在Unity5.0中,对于每一个导入的DLL、SO、Jar这些看起来像 Plugin 文件的文件,都会有一个选项设置其作用平台。从Unity4.6 升级到 Unity5.0 的时候,有一些文件不能被正确的判断平台,就会在Platform 选项上设置为 所有 ,就出现了下面的错误。

我们只要找到 对应的文件,然后设置其作用的平台就可以解决这个BUG。

 

对于DLL,如果这个DLL文件并不是Plugin文件,就取消掉 Platform 的任何勾选。

 

(2) 废弃了 AddComponent(string) 接口 

从Unity4.6 更新到Unity5.0 ,打开工程后,Unity会自动检测代码并且转换代码到新的API。AddComponent(string) 这个API被转换到下面的样子。

 

addedComponent = UnityEngineInternal.APIUpdaterRuntimeServices.AddComponent(go, "Assets/PlayMaker/Actions/AddComponent.cs (56,21)", component.Value);

在UnityEditor 环境下能正常运行居然,但是在导出Xcode工程时报错:

 

  1.  
    Assets/PlayMaker/Actions/AddComponent.cs(56,88):
  2.  
    error CS0619: `UnityEngineInternal.APIUpdaterRuntimeServices.AddComponent(UnityEngine.GameObject, string, string)' is obsolete:
  3.  
    `Method is not meant to be used at runtime. Please, replace this call with GameObject.AddComponent
    <T>()/GameObject.AddComponent(Type).'

意思就是说这个API呗废弃了,现在只能使用 AddComponent(T) 了。

于是修改,先用System.Type.GetType(string) 获取Type,然后在AddComponet 。

但是这样在IL2CPP上可能会有问题,因为IL2CPP是会裁剪代码的,所以可能出现AOT编译问题导致运行时出现类型找不到的BUG。

如果出现这种情况,之前的文章有解决方法:

 http://blog.csdn.net/huutu/article/details/43986079

 

你可能感兴趣的文章
apache + tomcat 集群
查看>>
C# ComboBox自动完成功能的示例
查看>>
VC++6.0和VS2005在编写MFC应用程序时,操作方面的差异
查看>>
从tableview中拖动某个精灵
查看>>
AE读取CAD图层包括注记
查看>>
误区30日谈16-20
查看>>
【ASP.NET Web API教程】6.4 模型验证
查看>>
Android 实现书籍翻页效果----完结篇
查看>>
JS实现页面打印
查看>>
广州市例外服饰有限公司_百度百科
查看>>
2014年3月新鲜出炉的最佳 JavaScript 工具库
查看>>
Android特性与系统架构
查看>>
java基础学习总结——Object类
查看>>
(转)2009-05-25 22:12 Outlook2007选择发送帐号
查看>>
WPF合并资源字典
查看>>
SPOJ 3273 - Order statistic set , Treap
查看>>
samba客户端配置及实例应用详解
查看>>
设计模式 -- 单例模式(Java&&PHP)
查看>>
安卓高手之路之 WindowManager
查看>>
监视键盘来获得密码
查看>>