当前位置: 首页 > news >正文

Unity | Script Hot Reload

官网地址: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
在这里插入图片描述

相关文章:

Unity | Script Hot Reload

官网地址:https://hotreload.net/ 一、作用 Unity在运行时,可以直接修改代码,避免等待过长的编译时间。 二、说明 1、支持的平台? Windows、MacOS、Linux 2、支持的Unity版本? 2018.4 (LTS)2019.4 (LTS)2020.3 (L…...

3|射频识别技术|第五讲:数据通信和编码技术|第九章:编码与调制|重点理解掌握传输介质中的有线传输介质

计算机网络部分:https://blog.csdn.net/m0_57656758/article/details/128943949传输介质分为有线传输介质和无线传输介质两大类;有线传输介质通常包含双绞线、同轴电缆和光导纤维;无线传输介质包含微波、红外线等。传输介质的选择和连接是网络…...

【遇见青山】基于Redis的Feed流实现案例

【遇见青山】基于Redis的Feed流实现案例1.关注推送2.具体代码实现1.关注推送 关注推送也叫做Feed流,直译为投喂。为用户持续的提供"沉浸式”的体验,通过无限下拉刷新获取新的信息。 Feed流产品有两种常见模式: 这里我们实现基本的TimeL…...

【芯片前端】一文搞定|寄存器组织生成与uvm ral_model环境全流程

前言 本文以组织一个系统(或模块)寄存器为例,进行寄存器与ral生成相关的全流程展示。内容包括如下几个部分: 寄存器文档组织 描述文件与辅助RTL代码结构 ralf/ral/rtl文件代码结构 UVM RAL访问环境组织 寄存器文档组织 在windows路径下组织寄存器文档,格式为excel表格。…...

Leetcode力扣秋招刷题路-0061

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 61. 旋转链表 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出&…...

xilinx srio ip学习笔记之axistream接口

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 xilinx srio ip学习笔记之axistream接口前言接口转化前言 srio 的IQ接口都是基于axistream的,以前没怎么用过axistream的接口,或者说没怎么用过复杂条…...

轨迹误差评估指标[APE/RPE]和EVO

轨迹误差评估指标[APE/RPE]和EVO1. ATE/APE2. RPE3. EVO3.1 评估指标3.2 使用3.2.1 轨迹可视化3.2.2 APE3.2.3 RPEReference: 高翔,张涛 《视觉SLAM十四讲》视觉SLAM基础:算法精度评价指标(ATE、RPE) 在实际工程中,我…...

uni-app 消息推送功能UniPush

uni-app 消息推送功能UniPush,这里用的是uni-app自带的UniPush1.0(个推服务),所以只针对UniPush1.0介绍实现步骤。 建议查阅的文章: UniPush 1.0 使用指南[2] Unipush 常见问题[3] 当然现在已经出了UniPush2.0(HBuilde…...

面试题(二十六)场景应用

1. 场景应用 1.1 微信红包相关问题 参考答案 概况:2014年微信红包使用数据库硬抗整个流量,2015年使用cache抗流量。 微信的金额什么时候算? 微信红包的金额是拆的时候实时算出来,不是预先分配的,采用的是纯内存计…...

密码技术在车联网安全中的应用与挑战

随着智慧交通和无人驾驶的快速发展,车联网产业呈现蓬勃发展态势,车与云、车与车、车与路、车与人等综合网络链接的融合程度越来越高,随之而来的安全挑战也更加严峻。解决车联网的安全问题需要一个整体的防护体系,而密码技术凭借技…...

富媒体数据管理解决方案:简化、优化、自动化

富媒体数据管理解决方案:简化、优化、自动化 适用于富媒体的 NetApp 解决方案有助于简化和降低数据管理成本,优化全球媒体工作流并自动执行媒体资产管理。这将有助于减轻您的负担。 为什么选择 NetApp 的富媒体数据管理解决方案? 成本更低…...

QT入门Input Widgets之QFontComboBox、QTextEdit、QPlainTextEdit、QDial、QKeySequenceEdit

目录 一、QFontComboBox的相关介绍 1、实际使用 二、QTextEdit与QPlainTextEdit 三、QDial的相关介绍 四、QKeySequenceEdit的相关介绍 此文为作者原创,创作不易,转载请标明出处! 一、QFontComboBox的相关介绍 1、实际使用 一般使用较…...

Java企业级开发学习笔记

文章目录一、Spring1.1、Slay Dragon1.2、RescueDamselQuest一、Spring 第一周写了两个小项目均使用了原始调用和容器的方法 两个项目&#xff1a;<斩杀大龙与上路保卫战> 配一张文件位置图 1.1、Slay Dragon BraveKnight package net.sherry.spring.day01;public c…...

【算法基础】(一)基础算法 ---高精度

✨个人主页&#xff1a;bit me ✨当前专栏&#xff1a;算法基础 &#x1f525;专栏简介&#xff1a;该专栏主要更新一些基础算法题&#xff0c;有参加蓝桥杯等算法题竞赛或者正在刷题的铁汁们可以关注一下&#xff0c;互相监督打卡学习 &#x1f339; &#x1f339; &#x1f3…...

电源口防雷器电路设计方案

电源口防雷电路的设计需要注意的因素较多&#xff0c;有如下几方面&#xff1a;1、防雷电路的设计应满足规定的防护等级要求&#xff0c;且防雷电路的残压水平应能够保护后级电路免受损坏。2、在遇到雷电暂态过电压作用时&#xff0c;保护装置应具有足够快的动作响应速度&#…...

【零基础入门前端系列】—表单(七)

【零基础入门前端系列】—表单&#xff08;七&#xff09; 一、什么是表单 表单在Web网页中用来给访问者填写信息&#xff0c;从而采集客户信息端&#xff0c;使得网页具有交互功能。一般是将表单设计在一个HTML文档中&#xff0c;当用户填写完信息后做提交操作&#xff0c;于…...

Linux安装python3

Linux安装python3一.介绍二.下载三.配置1.文件夹2.安装依赖3.安装4.配置4.1python关系4.2配置测试-映射python3文件4.2.1 不用设置默认python3为默认版本4.2.2 将python3设置默认版本一.介绍 因为我的Centos7虚拟机里面只有python2.7.5&#xff0c;我想安装一个python3但是还要…...

怎么通过中级职称有窍门吗?

中级职称评审对人才加薪、升职自然不必说&#xff0c;更重要的是职称证书对于公司和企业同样具有重要的价值和意义&#xff0c;因此只要是说公司办理资质或者有项目招投标的公司对于人才参加中级职称评审毫无疑问会给予大力支持&#xff0c;既然工程师职称有这么多的好处&#…...

SAP ABAP根据事务码查找增强最直接的方法

下面是为任意事务代码查找用户出口的步骤&#xff1a; 方法一&#xff1a; 第 1 步&#xff1a;使用 事务代码&#xff1a;SE93。输入您要搜索用户出口的 事务代码。 在我们的场景中&#xff0c;我们将使用 CO11N。 第 2 步&#xff1a;点击显示&#xff1a; 第 3 步&#xf…...

HTTP协议——详细讲解

目录 一、HTTP协议 1.http 2.url url的组成&#xff1a; url的保留字符&#xff1a; 3.http协议格式​编辑 ①http request ②http response 4.对request做出响应 5.GET与POST方法 ①GET ②POST 7.HTTP常见Header ①Content-Type:: 数据类型(text/html等)在上文…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...