找回密码
 立即注册
查看: 224|回复: 0

[简易教程] Unity ILRuntime 实战教程:ILRuntime开发原则与接口如何绑定

[复制链接]
发表于 2022-11-30 07:37 | 显示全部楼层 |阅读模式
前言



ILRuntime开发的基本原则
在使用ILRuntime开发之前大家要有一个基本认识,虽然都是C#,ILRuntime的逻辑热更项目中的类不能直接继承Unity C#项目中的类,Unity C#项目中也不能直接识别逻辑热更项目中开发的”组件类”, 因为他们是两个不同的执行环境,你可以理解为是两个域,技术原理都不一样。我们在逻辑热更项目中使用的Unity C#的对象实例与接口,我们叫做native对象实例与native接口,这些c# native的对象实例我们不能直接在逻辑热更项目中new 出来,而是通过Unity C#项目传递过来或者直接调用unity C#项目的接口生成的。比如GameObject, 我们可以调用GameObject.Instantiate实例化出来,但是不能在逻辑热更项目中 new GameObject();因为GameObject属于Unity C#的native对象实例,不是逻辑热更项目域中的”对象实例”。有了这个基本认识以后,我们得出做热更开发的几个基本认识:


我们上几个截图,来看下一个ILRuntime的热更的案例Demo:










如何做到热更项目工程解释使用C#工程的接口


当我们使用逻辑热更项目进行逻辑开发的时候,我们要把使用的Unity引擎相关的.dll的引用用,要拉入到我们逻辑热更项目中,这样当我们在逻辑热更项目中调用Unity引擎相关的组件函数的时候,会生成”依赖符号”到生成的逻辑热更.dll中。这样也就解释了为什么逻辑热更项目中要添加Unity .dll库的引用,其实就是为逻辑热更.dll生成Unity引擎的引用符号。


当ILRuntime加载逻辑热更.dll的时候,会把逻辑热更.dll的符号表重新定向到运行中的对应的位置,这样在用户毫无察觉的情况下完成了逻辑热更项目可以调用Unity 引擎接口的绑定。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 19:12 , Processed in 0.069306 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表