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

[简易教程] Unity ILRuntime 实战教程:搭建ILRuntime开发环境

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



ILRuntime热更新原理


第(1)部分,ILRuntime框架已经为我们实现了.net字节码解释器,我们只要将它的代码拿过来,同时在我们的项目中初始化ILRuntime虚拟机解释器。第(2)部分,我们使用.net开发工具(Microsoft visual studio)创建一个.dll的.net项目,后面我们称为”逻辑热更项目”,同时把unity引擎里面的.dll的库添加引用到逻辑热更项目中,这样我们在开发游戏逻辑的时候就能直接引用到Unity的API和相关的智能提示。这样就让c#开发的Unity开发者最大限度的保留了Unity的开发习惯,上手很快。


ILRuntime开发环境搭建


注: Packages记得选”Unity Registry”, 然后安装ILRuntime即可,同时打开Unity PlayerSetting 选unsafecode模式。安装好ILRuntime开发环境后,接下来在项目中实例化ILRuntime的解释器。编写一个ILRuntimeWrapper.cs的全局单例,引入using ILRuntime.Runtime.Enviorment;ILRuntime名字空间,在Awake中实例化ILRuntime解释器实例: this.appdomain = new ILRuntime.Runtime.Enviorment.AppDomain();
public class ILRuntimeWrapper : UnitySingleton<ILRuntimeWrapper>

{

  private bool isGameStart = false;

  AppDomain appdomain; //

  System.IO.MemoryStream fs;

  System.IO.MemoryStream p;

  public override void Awake() {

  base.Awake();

  this.isGameStart = false;

  this.appdomain = new     ILRuntime.Runtime.Enviorment.AppDomain();

}

}



当我们开发游戏逻辑的时候,使用了Unity的那些库,只要从我们Unity的引擎里面找到这些.dll,然后复制到UnityDlls下面,然后添加引用到热更项目工程就可以了(这样你在热更项目就可以尽情的使用Unity的API,而且还是C#的)。如何找呢?有个小技巧,你打开标准的Unity项目工程,在” Assembly-CSharp”这里的引用就能看到我们使用的Unity的.dll, 例如我们要使用动画播放组件Animation, 它在UnityEngine.AnimationModule.dll里面,你就可以复制路径,找到这个.dll,然后把这个.dll拷贝到”逻辑热更项目”的UnityDlls里面,然后在逻辑热更项目中添加这个.dll的引用。








这样环境就配置好了,在逻辑热更项目中开发逻辑代码,开发完成以后,逻辑热更项目生成.dll给Unity,Unity 加载.dll解释执行。

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-4-27 16:53 , Processed in 0.137122 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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