Unity热更方案之ILRuntime怎么用【五】

一、前言

通常来讲,当我们使用热更调用Unity主工程的代码时,是需要通过反射来实现的,对反射有了解的朋友应该都知道,这玩意挺好用,但就是比较费性能,如果用得多了,GC就得飚上来,那这谁敢用啊是吧!为了解决这个问题,ILRuntime提出了这样的解决方案:

没错,就是通过CLR方法绑定机制(简称:CLR绑定)可以解决这个问题!这时候就有朋友要问了,啥是CLR绑定呀?这位朋友问得非常好,那接下来就让我们深入地浅浅地研究下这个玩意吧!

二、CLR重定向

在了解CLR绑定前,我们得先来了解下CLR重定向,这时候又有朋友要问了,啥是CLR重定向呀?CLR重定向,顾名思义就是当IL解析器发现调用CLR方法时会将其重定向到另外一个方法里去重写,好像说得有点官方哈,举个栗子就明白了:

比如我在热更中调用了Debg.Log,但是可以通过CLR重定向挟持该方法,并重写该方法。

我们先在热更中写一个Debug.Log:

正常来说,运行后应该就是输出“热更的Log”,但这次不一样,这次我们要挟持这行代码,改变他的输出结果!

第一步,在主工程中编写重定向方法(项目需要允许unsafe代码)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值