Unity | Script Hot Reload

news2025/7/20 2:13:22

官网地址: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、必须要完全编译?

  • 添加、修改、删除 .asmdef 文件。请注意,如您所料,程序集定义中的脚本是受支持的,只有对 .asmdef 文件本身的修改需要完全重新编译
  • 修改 .csproj 或 .sln 文件中的定义符号或其他内容

三、参考

https://docs.unity3d.com/cn/2021.1/Manual/ConfigurableEnterPlayMode.html
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/347131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring ⑦ 循环引用问题

Spring ⑦ 循环引用问题 Spring 源码系列文章会遵循由浅入深,由易到难,由宏观到微观的原则,目标是尽量降低学习难度,而不是一上来就迷失在源码当中. 文章会从一个场景作为出发点,针对性的目的性极强的针对该场景对 Spring 的实现原理,源码进行探究学习。…

时间轮(TimingWheel)

一、什么是时间轮时间轮其实就是一种环形的数据结构,可以想象成时钟,分成很多格子,一个格子代表一段时间(这个时间越短,Timer的精度越高)。并用一个双向链表存储放在该格子上的延时任务,同时一个…

下一个排列-力扣31-java

一、题目描述整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地&…

记一次20撸240的沙雕威胁情报提交(2019年老文)

0x01 起因 这是一篇沙雕文章,没什么技术含量,大家娱乐一下就好 前几个月,我的弟弟突然QQ给我发来了一条消息,说要买个QQ飞车的cdk,我作为一个通情达理的好哥哥,自然不好意思回绝,直接叫他发来…

跟着团子学SAP PSS: 如何实现物质在不同法规下的准入管理(配置篇)

全球各地针对化学品的监管出台了很多法规,有相当一部分的法规都是输入准入制:只有在法规中列示的化学物质在当地才具有适销性,未列示的物质只有在一些特殊条件下才能销售。加拿大的DSL(加拿大本国物质清单)&#xff0c…

【Python入门第九天】Python 字符串

字符串字面量 python 中的字符串字面量由单引号或双引号括起。 ‘hello’ 等同于 “hello”。 可以使用 print() 函数显示字符串字面量: 实例 print("Hello") print(Hello)运行实例 用字符串向变量赋值 通过使用变量名称后跟等号和字符串&#xff0…

yolov3-tiny模型转trt的一个实例

感谢作者分享,仓库地址:https://github.com/zombie0117/yolov3-tiny-onnx-TensorRT?tdsourcetags_pcqq_aiomsg该仓库的代码没有使用现有的神经网络框架,如pytorch,tensorflow等,因此环境搭建相对比较容易。仓库作者是…

Docker逃逸

文章目录原理环境搭建Docker 环境判断Docker 容器逃逸特权模式逃逸如何判断是否为特权模式逃逸docker.sock挂载逃逸逃逸Remote API未授权访问未授权访问逃逸容器服务缺陷逃逸影响版本环境搭建逃逸脏牛漏洞逃逸参考原理 docker其实就是一个linux下的进程,它通过Name…

RV1126笔记二十八:RKNN上部署OCR测试

若该文为原创文章,转载请注明原文出处。 本篇文章只是记录下测试OCR的效果,想了解全过程,参考: 【工程部署】手把手教你在RKNN上部署OCR服务(上)_opencv rknn_ocr_三叔家的猫的博客-CSDN博客 【工程部署】手把手教你在RKNN上部署OCR服务(下)_三叔家的猫的博客-CSDN博…

ROS2中使用gazebo仿真时找不到libgazebo_ros_openni_kinect.so

因为ros2的gazebo_ros_pkgs中,已经将该插件移除,或者说将该插件的功能合并到libgazebo_ros_camera.so中, 这里是作者的说明。 合并后,深度相机的用法参考这里。 主要是将type改成depth。还有其他类型的相机,可以参考具…

如何优雅的实现回调函数?

本篇文章又是一期优雅的代码编程介绍———回调函数。 传统的nodejs编程都是这样的 const fs require(fs) fs.readFile(test.txt,utf8, function(err, dataStr){if(err){} }) 嵌套层级如果多了就成回调地狱了。如果我们将这种风格的代码转换成这样呢? const fs …

Word论文排版(1)样式设定

前言:现在很多学校都有 LaTeX 模板了,但是也有很多渣渣学校/学院没提供,而且要求必须提供 Word 版本的大论文!那就只能从 Word 下手了。 Requirements Windows11、Word2016 样式设定 为什么要设置:和 LaTeX 一样&am…

MobaXterm详细使用教程

这一篇MobaXterm详细使用教程,我们来介绍一下如何设置并用MobaXterm来连接Linux服务器。MobaXterm 又名 MobaXVT,是一款增强型终端、X 服务器和 Unix 命令集(GNU/ Cygwin)工具箱。MobaXterm 可以开启多个终端视窗,以最新的 X 服务器为基础的 …

【笔试强训】Day_01

目录 一、选择题 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 二、编程题 1、组队竞赛 2、删除公共字符 一、选择题 1、 以下for循环的执行次数是&#xff08;&#xff09; for(int x 0, y 0; (y 123) && (x < 4); x); A 、是无限循环 B 、循环次…

从零开始学C

以下是 该如何学习C语言的【思维导图】以及部分重点知识点的【博客链接】。其实C语言并不难&#xff0c;难的是没有人去教&#xff0c;没有耐心去学。不知道从哪下手学习&#xff0c;我将C的知识点做成一个思维导图&#xff0c;以供迷茫的小白参考&#xff0c;哪里不会&#xf…

快速且有效减小代码包的方法

前言当我们在发布一些APP或者小程序等比较小的程序时候&#xff0c;常常会对其主包大小进行一定的规定&#xff0c;若超过推荐的主包大小则性能会被大大影响&#xff0c;或者再严重一点就不给你过审。如微信小程序中也对主包有一定的大小要求。对此一些比较复杂的小程序就需要考…

【机器学习】P1 Cost Function

Cost Functione.g.e.g.e.g. 假设你想要卖一个房子&#xff0c;希望可以用人工智能来算出能卖多少钱。机器学习可以根据提供的数据集合构建出很多模型&#xff0c;但是到底哪种模型最好的拟合你的数据&#xff1f;或者说&#xff0c;哪种模型可以最准确的算出你的卖多少钱&#…

TikTok曝高危漏洞允许一键式帐户劫持,回应称已修复

据The Verge 8月31日消息&#xff0c; TikTok安卓版存在一个高危漏洞&#xff0c;攻击者可能借此实现一键式账户劫持&#xff0c;影响数亿用户 。 微软365防御研究小组在一篇博文中披露了该漏洞的细节&#xff0c; 影响范围为23.7.3之前的安卓版本 。在微软向TikTok报告后&…

如何用 JavaScript 编写你的第一个单元测试

前言 测试代码是使代码安全的第一步。做到这一点的最好方法之一是使用单元测试&#xff0c;确保应用程序中的每个小功能都能发挥其应有的作用–特别是当应用程序处于边缘情况&#xff0c;比如无效的输入&#xff0c;或有潜在危害的输入。 为什么要单元测试 说到单元测试&…

测试开发之Django实战示例 第十章 创建在线教育平台

第十章 创建在线教育平台在上一章&#xff0c;我们为电商网站项目添加了国际化功能&#xff0c;还创建了优惠码和商品推荐系统。在本章&#xff0c;会建立一个新的项目&#xff1a;一个在线教育平台&#xff0c;并创内容管理系统CMS&#xff08;Content Management System&…