ILRuntime|01 安装和基础设置
安装
在项目的Packages/manifest.json中,dependencies节点前增加以下代码
"scopedRegistries": [
{
"name": "ILRuntime",
"url": "https://registry.npmjs.org",
"scopes": [
"com.ourpalm"
]
}
],
在PackageManager中导入ILRT,并导入官方DEMO
项目设置中同意使用不安全的代码
基础使用
在项目目录下有一个隐藏文件夹,以“~”结尾的文件夹不会被识别到UNITY的资源列表中
打开文件夹,其实这就是我们的热更项目,虽然也放在了Asset之下,但其实和主工程是没有关联的
- ①热更工程所需要直接依赖的DLL,可以放在任意地方,但项目里必须引用,注意,UNITY相关的DLL比如UnityEnginXX也需要被直接引用
- ②热更工程,就是一个普通的C#工程
整理一下项目结构
首先我们把热更工程放到Assets之外,没啥用,单纯个人喜好
常见报错
-
找不到 .NETFramework,Version=XX 的引用程序集
下一个Visual Studio Installer,修改->单个组件,找到对应的工具包下载下来即可
-
无法编译
Visual Studio Installer中的单个组件里面还有一个MSBuild,安装一下
-
必须添加对程序集“netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”的引用
不要使用NET4.6,用4.7或者以上
引入DLL
打开项目,会有一些类找不到,因为我们移动了项目的路径,需要重新添加对于Assembly-CSharp的
UNITY会把所有的非编辑器脚本都注入到这个DLL中(除非自己额外定义了程序集),所以我们所有的类其实都在这个DLL中,自然必须要引用他
在项目目录中的如下位置
修改编译路径
修改一下IDE默认的编译路径
同时确保必须生成PBD文件
### 编译时不拷贝DLL
回到UNITY,让引擎先编译一下最新程序集
然后Build热更工程,成功导出DLL
最后打开测试场景01,运行,成功输出