Unity热更新笔记(一)ILRuntime基础使用

2023-10-29 23:08

本文主要是介绍Unity热更新笔记(一)ILRuntime基础使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Unity热更新笔记(一)ILRuntime基础使用

  • 简介
  • 一,准备工作
    • 1.创建Unity工程,并添加 ILRuntime 包
    • 2.创建热更工程
    • 3.热更工程添加 unity 库
    • 4.需要修改热更工程打包路径
    • 5.热更工程创建完毕
  • 二,代码调用
  • 三,配合 addressable 使用(coming soon)
    • 后续文章写好后,会在此处添加链接
  • 四,其他
    • 另一种热更工程的创建

简介

官方说明(翻墙)
官方的Unity Demo(中文注释)
通过运行时动态的解析指定的 DLL 中的 IL1 代码来实现热更新(我不确定我描述、用词是否足够精准)。每次更新,只需要像资源一样,替换 DLL 文件,就能改变要执行的代码

一,准备工作

1.创建Unity工程,并添加 ILRuntime 包

正常创建 unity 项目
在 Package Manager 中搜索添加 ILRuntime 包
unity 2019.4.28f1c1

2.创建热更工程

VS 创建 DLL 工程,路径最后是跟 unity 工程放一起
(如果名字后面带 ~ unity不会编译。奇怪的知识增加了.jpg)
在这里插入图片描述
在这里插入图片描述

3.热更工程添加 unity 库

在 VS 项目中添加库的引用
在这里插入图片描述
unity 包的路径。
(如果想在热更项目中用 unity 的 log ,需要引用 UnityEngine.CoreModule.dll)
在这里插入图片描述
在这里插入图片描述

4.需要修改热更工程打包路径

(直接放 StreamingAssets 方便测试,后续会改地方)
在这里插入图片描述

5.热更工程创建完毕

二,代码调用

官方Demo里面有各种调用,规规矩矩,明明白白,中文注释
用法与普通反射的写法非常相似,
在这里插入图片描述
在这里插入图片描述

三,配合 addressable 使用(coming soon)

后续文章写好后,会在此处添加链接

四,其他

另一种热更工程的创建

在 unity 项目中创建 Assembly,unity 也会编译生成对应的 dll
这样有两个问题:

  • 要写脚本搬运编译好的 dll 文件。不会吧,不会吧,不会有程序员想要手动移动文件吧
  • 主项目跟热更项目没有脱离,不确定直接引用会不会有什么坑

在这里插入图片描述
在这里插入图片描述


  1. Intermediate Language (IL)微软中间语言。网上大佬说的很清楚 ↩︎

这篇关于Unity热更新笔记(一)ILRuntime基础使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/303982

相关文章

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3