Unity3d dll 热更新 基础框架
2018-01-13 13:04
225 查看
APK包装到用户手机上后,代码如何更新,总不能全用LUA吧?特别是代码非常多的战斗手游
昨晚上有了dll 热更新的想法,今天做了一天的实验,也遇到些坑,这里总结下
工作环境: U3D5.3.2 + vs2010 +mono
下面要模拟的是一个登陆环境,点击按钮,就加载一个iGameObjec的Item, Item 上得到更新的文本内容。具体如下图
1> 程序集管理
2> Dll管理与加载
3> 逻辑代码和UI的实现
4> 打包dll+打包Assetbundle
限制1:在Android手机里动态加载dll不能使用Assembly.LoadFile(string path),只能使用Assembly.Load(byte[] rawAssembly)这个接口,所以要自己想办法先读出来。
限制2:动态加载的脚本不能在编辑器里挂在prefab上。
限制3:如果脚本在动态dll里,调用AddComponent()挂此脚本上prefab上时不能使用AddComponent(“SomeScript”)的方式调用,要用AddComponent(Type.GetType(“SomeScript”))。
限制4:在动态dll里使用[RequireComponent(typeof(SomeScript))]无效,所以不能使用。
昨晚上有了dll 热更新的想法,今天做了一天的实验,也遇到些坑,这里总结下
工作环境: U3D5.3.2 + vs2010 +mono
下面要模拟的是一个登陆环境,点击按钮,就加载一个iGameObjec的Item, Item 上得到更新的文本内容。具体如下图
1> 程序集管理
2> Dll管理与加载
3> 逻辑代码和UI的实现
4> 打包dll+打包Assetbundle
限制1:在Android手机里动态加载dll不能使用Assembly.LoadFile(string path),只能使用Assembly.Load(byte[] rawAssembly)这个接口,所以要自己想办法先读出来。
限制2:动态加载的脚本不能在编辑器里挂在prefab上。
限制3:如果脚本在动态dll里,调用AddComponent()挂此脚本上prefab上时不能使用AddComponent(“SomeScript”)的方式调用,要用AddComponent(Type.GetType(“SomeScript”))。
限制4:在动态dll里使用[RequireComponent(typeof(SomeScript))]无效,所以不能使用。
相关文章推荐
- Unity dll 热更新 基础框架
- Unity3D热更新全书-脚本(四) 用C#LightEvil搭建实际开发使用的脚本框架
- Wcf通讯基础框架方案(五)——更新通知
- (从零到一)五子棋博弈算法——基础框架(不定期更新)
- Unity3d 基础学习进度(每日更新)
- Unity3DAndroid加密DLL与Unity热更新
- 【Unity基础知识之五】Unity3d-在Unity项目中使用Mono DLL(动态链接库)
- [转]unity3d所要知道的基础知识体系大纲,可以对照着学习,不定期更新 ... ... ... ...
- Unity3D热更新全书-脚本(四) 用C#LightEvil搭建实际开发使用的脚本框架
- [unity基础教程]史上最简单效果最好的unity3D分辨率适应教程!(版本已经更新2013.5.3
- unity3d dll 热更新
- Unity3D 资源热更新之AssetBundle(Unity5.x)基础用法
- 框架基础——全面解析Java注解
- QT Model/View框架中更新Model时View的显示问题
- Unity3d Assembly-CSharp.dll加密
- Android BLE基础框架使用详解
- Java基础——集合框架(二)
- IOS开发基础—关于uikit框架里面uiview类的一些知识点
- android 热更新技术框架地址
- 高度封装FMDB框架:各用一句代码更新(添加&修改),查询,删除用户信息