官网地址:https://hotreload.net/
一、作用
Unity在运行时,可以直接修改代码,避免等待过长的编译时间。
二、说明
1、支持的平台?
Windows、MacOS、Linux
2、支持的Unity版本?
- 2018.4 (LTS)
- 2019.4 (LTS)
- 2020.3 (LTS)
- 2021.3 (LTS)
- 2022.1
- 2022.2
- 2023.1 (alpha)
3、支持的特性?
- 编辑单一行为、普通类或静态类中的函数
您可以使用任何有效的 C# 方式编辑函数的主体。我们重新编译整个函数,因此它的工作方式与您已经习惯的一样。 - 编辑 lambda 方法
如果您修改 lambda,我们会热重新加载现有的 lambda。因此,例如,在启动期间将 lambda 存储在静态字段中,然后在不运行启动代码的情况下编辑 lambda,您对 lambda 的更改仍将立即应用。 - 使用闭包编辑 lambda 方法
如果您在 lambda 中使用外部变量,您的 lambda 将照常工作。如果你使用一个新的外部变量,那么只有当你再次创建它时,你的 lambda 才会被热重载。例如,每次运行代码时都会重新创建 Array.Sort(() => …) 中的 lambda,因此它将始终按预期工作。 - 编辑异步/等待方法
- 编辑属性(获取/设置)
- 编辑事件(添加/删除)
- 编辑索引器(方括号访问,如字典)
- 编辑运算符方法(显式和隐式运算符)
- 编辑转换运算符方法,例如“==”和“+=”
- 添加/编辑/删除类和结构的构造函数
- 添加/编辑/删除局部函数
- 将方法从异步更改为同步,或从同步更改为异步
- 删除任何方法、属性、字段、类
- 添加/编辑/删除“使用”指令。例如“使用 UnityEngine”
- 添加/编辑变量初始值设定项。例如类中的’private int x = 1’
例如“int myField = 10”。请注意,只有在创建新类实例时才会初始化变量。我们不会为已经实例化的类重新运行变量初始值设定项,因为它可能会破坏现有代码。 - 使用更新的 C# 语法。switch 表达式、using 语句、模式匹配、null 合并语句等。默认情况下,我们支持 C# 编译器支持的所有语法。
- 添加/删除属性。请注意,您的代码可以编译,但 System.Reflection 不会接受属性更改。
- 在任何地方使用 nullable
- 添加新方法
- 添加、编辑、删除方法中的参数
- 更改任何方法的返回类型。包括实例、静态、属性、事件、索引器、泛型等。
- 更改可访问性,例如将方法从“私有”更改为“公共”
- 静态关键字更改,例如使方法静态
- 重命名方法
- 像普通方法一样编辑泛型方法
- 添加/编辑/删除通用参数
- 添加/编辑/删除泛型方法的约束子句(例如’where T : class, new()')
- 在参数上添加/替换/删除“ref”、“out”、“in”修饰符
ps:真的挺强了,基本能够满足日常开发所需
4、路线图?
- 添加、编辑、删除字段
- 添加新类/结构
- 添加/编辑枚举
- 编辑泛型类方法
- 编辑部分类型的变量初始值设定项
- 编辑返回类型为“dynamic”的方法,或使用“dynamic”的参数之一
- 编辑具有匿名类型的方法体
- 添加或删除以下方法关键字之一:partial、abstract、virtual、override、extern
- 删除类的构造函数不会删除构造函数逻辑。作为解决方法,考虑保留一个空的构造函数而不是将其删除,并可能在下一次完全重 新编译时删除该构造函数。
- 已经执行的异步方法没有被修补——只有新的调用才会使用更新后的逻辑
- 支持编辑由 Unity Multiplayer hl-api、Photon、Bolt、Mirror 等库动态生成的代码
- 支持使用 [BurstCompile] 编辑代码(如果注释掉该属性,Hot Reload 将按预期工作)
- 添加 C# 文件
5、必须要完全编译?文章来源:https://www.toymoban.com/news/detail-427258.html
- 添加、修改、删除 .asmdef 文件。请注意,如您所料,程序集定义中的脚本是受支持的,只有对 .asmdef 文件本身的修改需要完全重新编译
- 修改 .csproj 或 .sln 文件中的定义符号或其他内容
三、参考
https://docs.unity3d.com/cn/2021.1/Manual/ConfigurableEnterPlayMode.html
文章来源地址https://www.toymoban.com/news/detail-427258.html
到了这里,关于Unity | Script Hot Reload的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!