【Unity】 HTFramework框架(五十一)代码片段执行器

更新日期:2024年6月8日。
Github源码:[点我获取源码]
Gitee源码:[点我获取源码]

索引

  • Code Snippet Executer 代码片段执行器
  • 使用 Code Snippet Executer
    • 打开 Code Snippet Executer
    • 动态执行(代码片段)
    • 静态执行(方法)

Code Snippet Executer 代码片段执行器

自定义执行器更名为代码片段执行器,并做出相关优化,因为它更合适的定位是:代码片段测试单元测试等。

当我们写完一段代码(或一个方法),想要测试它的准确性,切回Unity编辑器中运行整个场景的过程虽然靠谱,但过程比较繁琐且费时,所以我们需要能够实时且快速验证代码准确性的工具。

使用 Code Snippet Executer

Code Snippet Executer不受到编辑器模式的限制(运行时或非运行时皆可),它采用C#动态编译,可实时编译并执行任何一段正确的C#代码,且不会触发Unity编辑器的编译。

打开 Code Snippet Executer

从如下菜单路径打开Code Snippet Executer
在这里插入图片描述

动态执行(代码片段)

动态执行常用于执行C#代码片段,比如我们写好了如下的一些代码:

    public void Test(){string strA = "abcDEFGHIJKLMN";string strB = "abc";string strC = strA.Replace(strB, strB.ToUpper());Log.Info(strC);}

我们想要立即验证它的准确性,则复制代码内容(不复制函数名,动态执行代码片段中不能包含函数定义),将其粘贴到Code Snippet中:

在这里插入图片描述

然后点击Execute按钮执行,查看控制台输出:

在这里插入图片描述
OK,很显然,这段代码的验证测试通过。

当然,我们还可以输入各种复杂但正确的代码:

在这里插入图片描述

然后点击Execute按钮执行,查看控制台输出:
在这里插入图片描述

静态执行(方法)

静态执行常用于执行C#方法,比如我们写好了如下的一个方法:

public class NewBehaviourScript : HTBehaviour
{public int Test(int a, int b){return (a + b) * (a - b);}
}

我们想要立即验证它的准确性,则切换到Static界面:

在这里插入图片描述

Entity为挂载脚本的物体。
Target为目标脚本(也可为其他任意组件)。
Method为目标方法。
Parameters为传入的实参列表。

将脚本NewBehaviourScript 挂载到一个物体上,再将挂载脚本NewBehaviourScript 的物体拖到Entity上,然后Target选择我们的脚本NewBehaviourScript Method选择执行的目标方法Test:

在这里插入图片描述

Test的参数为2个int,这里支持任意输入进行测试,比如我们输入:

在这里插入图片描述

然后点击Execute按钮执行,查看控制台输出:

在这里插入图片描述

如上,控制台会打印本次执行的结果。

这便是动态执行静态执行这两种方法,均可进行一定的片段(单元)测试效果。

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

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

相关文章

MySQL——C语言连接数据库

MySQL Connection ​ 连接数据库的客户端除了命令行式的还有图形化界面版本,网页版本,当然也包括语言级别的库或者是包,能够帮助我们直接连接数据库; 一、语言连接库下载 方式一:不建议使用,需要自己配置…

记录项目使用ts时引入js文件后导致项目运行空白问题

主要原因: 使用ts后开启了eslint检测,而js压缩文件引入的位置在eslint检测的文件内。导致eslint检测认为该文件为很大的文件,或eslint认为此文件内存在无法处理的语法结构等问题。 解决方法: 1、把文件移到eslint检测外的文件引入…

R语言数据探索和分析23-公共物品问卷分析

第一次实验使用最基本的公共物品游戏,不外加其他的treatment。班里的学生4人一组,一共44/411组。一共玩20个回合的公共物品游戏。每回合给15秒做决定的时间。第十回合后,给大家放一个几分钟的“爱心”视频(链接如下)&a…

物证管理系统|DW-S404实现物证科学化管理

随着社会的进步和科技的发展,信息化和数字化已经成为各个行业的必然趋势。在众多领域中,物证管理系统逐渐受到广泛的关注和应用。 物证是公安机关处理案件的关键凭证,针对过去物证管理分散、损毁遗失等严重问题,集驰电子JIONCH推…

0.3 数字电视(Digital television)简介

0.3 数字电视简介 数字电视是指采集、播出、传输、接收等环节中全面采用数字信号的电视系统。现代数字电视分辨率比模拟电视更高。通常使用宽屏(宽高比为 16:9),与模拟电视的窄屏(宽高比为 4:3)形成鲜明对比。 数字电…

python : map list 切片 推导式

print 语句 # 打印 1 print(1) # 打印字符串 print(Test) # 拼接字符串 print(age: 12)map 函数 map 是 Python 中的一个内置函数,用于将一个函数应用到一个可迭代对象(如列表、元组等)的每一个元素,并返回一个迭代器&#xf…

红队神器Evil-winrm的使用

前言 Evil-winrm 工具最初是由 Hackplayers 团队开发的。开发该工具的目的是尽可能简化渗透测试,尤其是在 Microsoft Windows 环境中。 Evil-winrm 使用 PowerShell 远程协议 (PSRP),且系统和网络管理员经常使用Windows Remote Management 协议进行上传和…

DDei在线设计器-DDeiCore-布局插件

DDei-Core-布局 如需了解详细的API教程以及参数说明,请参考DDei文档 标准布局 经典的框架结构布局,包含了顶部菜单栏、控件工具项、画布、属性面板和底部工具栏等功能面板,通过插件配置可以调整每个部分的顺序和内容。 效果截图 使用方式…

基于JSP技术的文物管理系统

你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:IDEA/Eclipse、Navicat、Maven 系统展示 首页 管理员界面 用户前台…

C++基础与深度解析 | 元编程 | 元编程的编写方式 | 减少实例化技巧

文章目录 一、元编程的引入二、顺序、分支、循环代码的编写方式1.顺序代码的编写方式2.分支代码的编写方式3.循环代码的编写方式 三、减少实例化的技巧 这一章写的既浅又乱,为了知识的完整性先传上来,之后会重构 一、元编程的引入 泛型编程提供了一种方式…

【庞加莱几何-02】反演定理和证明

文章目录 一、说明二、 inversion和 reflection三、圆反演的定义四、广义的圆反演成圆 关键词:inversion、reflection 一、说明 这里是庞加莱几何的第二篇文章,是庞加莱基本几何属性的研究。本篇主要说清楚,什么是反演,在反演情况…

【面试官】知道synchronized锁升级吗

一座绵延在水上的美术馆——白鹭湾巧克力美术馆。它漂浮于绿水之上,宛如一条丝带轻盈地伸向远方 文章目录 可重入锁synchronized实现原理 synchronized缺点保存线程状态锁升级锁升级优缺点 1. 可重入锁 面试官:知道可重入锁有哪些吗? 可重入意味着获取…

HTTPS缺失?如何轻松解决IP地址访问时的“不安全”警告

一、问题现象 如果访问网站时出现以下任何一种情况,则说明该网站需要立即整改: 1.浏览器地址栏那里出现“不安全”字样; 2.小锁标志被红叉()、斜线(\)等标志为不可用;…

Python牛市熊市横盘机制 | 缺口分析 | 头寸调整算法

🎯要点 🎯长短期方式:🖊标准普尔指数一年期看涨/看跌走势 | 🖊软银美元基准纳斯达克走势。 🎯市场机制:🖊代码定义市场,彩色图表绘制多种机制 | 🖊牛市熊市…

sub_mch_id 与 sub_appid 不匹配怎么解决

小程序在支付的时候,有时候会碰到:sub_mch_id 与 sub_appid 不匹配的问题。这个问题意味着小程序微信支付时所使用的 sub_mch_id(子商户号)和 sub_appid(小程序的appId)不对应。下面就具体介绍如何核对是否…

AI-知识库搭建(二)GPT-Embedding模型使用

上一篇:AI-知识库搭建(一)腾讯云向量数据库使用-CSDN博客 一、Embedding模型 Embedding模型是一种将高维度的离散数据(如文本、图像、音频等)映射到低维度的连续向量空间的技术。这种技术广泛应用于自然语言处理&…

武汉理工大学嵌入式系统应用之临时抱佛脚复习

其实大学很多课程的期末冲刺复习非常简单,就是在大脑中构建一个redis数据库就行了,缓存下一大堆键值对,然后考试的时候输出,很没意思。 嵌入式系统的定义 以应用为中心,以计算机技术为基础,软件硬件可裁剪…

LabVIEW控制PLC的实现方式

LabVIEW与PLC的结合可以充分发挥两者的优点,实现更高效、灵活和可靠的自动化控制系统。本文将详细介绍LabVIEW控制PLC的实现方式,包括通信接口、数据交换、编程方法及实际应用案例,帮助用户理解并应用这一技术。 通信接口 常见通信协议 La…

WHAT - 富文本编辑器系列(一)

目录 一、介绍1.1 丰富的功能基本功能媒体和文件链接和锚点表格嵌入对象编辑和协作(高级功能)可访问性和国际化(高级功能)插件和扩展安全性集成和兼容性 1.2 流行的前端富文本编辑器1. TinyMCE2. CKEditor3. Quill【大厂推荐】4. …

LabVIEW与PLC的区别

LabVIEW和PLC是工业自动化领域中常见的两种控制和测控方案,各自有独特的优点和适用场景。本文将从多角度比较两者,帮助用户在选择控制系统时做出更明智的决策。 技术背景 LabVIEW LabVIEW是由National Instruments公司开发的图形化编程环境&#xff0…