Unity 热更新方案
wangyonghui1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity项目热更新(ILRunTime 热更新老项目第五篇)
对于老项目来说 全部修改是不现实,那么我们可以实现部分热更新1.对于一些重要的逻辑函数可以移到人更新dll项目中,返回个结果2.对于一些重要的逻辑函数可以提前埋好接口,一胆出问题,可以在热更新dll项目库中拦截这个函数3.新的功能,尽可能的往热更新dll项目中放4.提前将可能用到的主工程中的方法,类,变量提前调用一遍,让主工程提前把需要绑定的代码绑定好...原创 2021-08-19 11:49:31 · 541 阅读 · 0 评论 -
Unity项目热更新(ILRunTime 热更新DLL打包Assets Bundle第五篇)
1.使用File.ReadAllBytes加载数据流并用一个变量临时暂存下2.新建一个文件以".bytes”结尾3.使用 使用 AssetDatabase.LoadAssetAtPath()加载".bytes”文件4.使用 AssetsBoundleHelper.Build()打包代码如下: public static void BeginBundle() { //打包模块 string dllPath = Applicat原创 2021-08-19 10:31:55 · 618 阅读 · 0 评论 -
Unity项目热更新(ILRunTime中跨域继承第四篇)
热更新的dll项目想要继承主工程的类或者接口必须在主工程中写一个适配器接口类的代码如下:using System;using Game.CocoRenderer;using ILRuntime.CLR.Method;using ILRuntime.Runtime.Enviorment;using ILRuntime.Runtime.Intepreter;using UnityEngine;namespace ILRuntime.Adapters.GameAdaptor{ pub原创 2021-08-19 10:14:49 · 816 阅读 · 0 评论 -
Unity项目热更新(ILRunTime中的反射第三篇)
(拷贝的官方文字)用C#开发项目,很多时候会需要使用反射来实现某些功能。但是在脚本中使用反射其实是一个非常困难的事情。因为这需要把ILRuntime中的类型转换成一个真实的C#运行时类型,并把它们映射起来默认情况下,System.Reflection命名空间中的方法,并不可能得知ILRuntime中定义的类型,因此无法通过Type.GetType等接口取得热更DLL里面的类型。而且ILRuntime里的类型也并不是一个System.Type。为了解决这个问题,ILRuntime额外实现了几个用于反射的辅转载 2021-08-19 10:05:14 · 500 阅读 · 0 评论 -
Unity项目热更新(ILRunTime中使用委托第二篇)
ILRuntime中使用委托假如你是在热更新的dll项目内部使用委托,可以直接使用如果你的委托事件需要在主工程与热更新的dll项目交叉使用,这时候就需要在主工程里注册某个指定类型的委托适配器或者转换器,ILRuntime会抛出相应的异常 ,同时会提示你需要添加的代码,你只需要拷贝复制到对应的注册函数中例如: appDomain.DelegateManager.RegisterFunctionDelegate<int, float, bool>(); app.DelegateManage原创 2021-08-19 09:53:06 · 237 阅读 · 0 评论 -
Unity项目热更新(ILRunTime第一篇)
ILRunTime 的的功能:实现代码的热更新(Unity)ILRunTime 接入下载包https://github.com/Ourpalm/ILRuntime.git拷贝Mono.Cecil.20, Mono.Cecil.Pdb, ILRuntime三个文件夹到项目中(现在最新的版本可能已经找不到Mono.Cecil.20 ,但是相对应的文档没有更新,建议使用版本早一点的)...原创 2021-08-19 09:31:10 · 556 阅读 · 0 评论
分享