【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按钮执行,查看控制台输出:

在这里插入图片描述

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从 Android 恢复已删除的备份录

本文介绍了几种在 Android 上恢复丢失和删除的短信的方法。这些方法都不能保证一定成功,但您可能能够恢复一些短信或其中存储的文件。 首先要尝试什么 首先,尝试保留数据。如果你刚刚删除了信息,请立即将手机置于飞行模式,方法是…

CSAPP Lab02——Bomb Lab完成思路详解

看见的看不见的 瞬间的永恒的 青草长啊大雪飘扬 ——月亮之上 完整代码见:CSAPP/bomb at main SnowLegend-star/CSAPP (github.com) 01 字符串比较 简单的把输入的字符串和地址“0x402400”内早已存储的字符串相比较。如果两个字符串相等则函数返回,否…

比亚迪正式签约国际皮划艇联合会和中国皮划艇协会,助推龙舟入奥新阶段

6月5日,比亚迪与国际皮划艇联合会、中国皮划艇协会在深圳共同签署合作协议,国际皮划艇联合会主席托马斯科涅茨科,国际皮划艇联合会秘书长理查德派蒂特,中国皮划艇协会秘书长张茵,比亚迪品牌及公关处总经理李云飞&#…

【计算视觉】学习计算机视觉你不得不膜拜的CVPR大神:何凯明

目录 第一章:CVPR——计算机视觉的终极擂台 第二章:何凯明——计算机视觉领域的耀眼星辰 第三章:高引用论文——计算机视觉研究的璀璨星辰 第四章:何凯明的CVPR论文——深度学习的探索之旅 第五章:结语——向何凯…

多样本上下文学习:开拓大模型的新领域

大模型(LLMs)在少量样本上下文学习(ICL)中展现出了卓越的能力,即通过在推理过程中提供少量输入输出示例来学习,而无需更新权重。随着上下文窗口的扩展,我们现在可以探索包含数百甚至数千个示例的…

线性表和链表

一,线性结构 1.Array Array文档:可以自行阅读相关文档来了解Array class array.array(typecode[, initializer]) array.append(x):添加元素到数组末尾 array.count(x):计算元素出现次数 array.extend(iterable):将迭代…

数据库(27)——多表查询——自连接

语法 SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件...; 自连接可以是内连接查询也可以是外连接查询。 演示 我新增了字段friend便于演示 查询所有人的名字以及他们的friend的人的名字: select a.name,b.name from user a,user b where a.friendb.id; 其…

LeetCode72编辑距离

题目描述 解析 一般这种给出两个字符串的动态规划问题都是维护一个二维数组,尺寸和这两个字符串的长度相等,用二维做完了后可以尝试优化空间。这一题其实挺类似1143这题的,只不过相比1143的一种方式,变成了三种方式,就…

构建数字社会:Web3时代的社会治理与价值重构

随着数字化技术的飞速发展,我们正逐渐迈入Web3时代,这是一个以去中心化、开放性和透明性为特征的新时代。在这个时代,数字技术将不仅仅改变我们的生活方式和商业模式,还将对社会治理和价值观念产生深远影响。本文将探讨Web3时代下…

今天是放假带娃的一天

端午节放假第一天 早上5点半宝宝就咔咔乱叫了,几乎每天都这个点醒,准时的很,估计他是个勤奋的娃吧,要早起锻炼婴语,哈哈 醒来后做饭、洗锅、洗宝宝的衣服、给他吃D3,喂200ml奶粉、给他洗澡、哄睡&#xff0…

Unity2D游戏制作入门 | 12(之人物受伤和死亡的逻辑动画)

上期链接:Unity2D游戏制作入门 | 11(之人物属性及伤害计算)-CSDN博客 上期我们聊到了人物的自身属性和受伤时的计算,我们先给人物和野猪挂上属性和攻击属性的代码,然后通过触发器触发受伤的事件。物体(人物也好敌人也行&#xff…

信息系统项目管理师0148:输出(9项目范围管理—9.3规划范围管理—9.3.3输出)

点击查看专栏目录 文章目录 9.3.3 输出 9.3.3 输出 范围管理计划 范围管理计划是项目管理计划的组成部分,描述将如何定义、制定、监督、控制和确认项 目范围。范围管理计划用于指导如下过程和相关工作: ①制定项目范围说明书;②根据详细项目范…

【树莓派内核版本降级】笔记

【树莓派内核版本降级】笔记 文章目录 【树莓派内核版本降级】笔记一、起因二、降级流程1.降级失败经验(使用一体化的降级命令)2.手动下载固件(降级成功) 一、起因 我在学习树莓派内核开发以及驱动开发的时候,树莓派在…

【uni-app】申请高德地图key,封装map.js,实现H5、iOS、Android通过getlocation获取地图定位信息

文章目录 map组件基础使用封装map.js,实现定位1、使用第三方地图:高德,申请对应平台key1、申请H5 key2、申请微信小程序 key3、申请android key查看证书详情,可以看到SHA1查看/设置Android包名 4、申请ios key 2、封装map1、lib/m…

例54:Draw使用

建立一个控制台工程,输入代码: Screen 13 移动到(50,50)而不绘图 Draw "BM 50,50" B:移动但不绘制,M:移动到指定位置 将绘图颜色设置为2(绿色) Draw "C2" C将颜色改为n …

2024最新 Jenkins + Docker实战教程(八)- Jenkins实现集群并发构建

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

SEO之关键词分布

初创企业搭建网站的朋友看1号文章;想学习云计算,怎么入门看2号文章谢谢支持: 1、我给不会敲代码又想搭建网站的人建议 2、新手上云 经过核心关键词确定与关键词扩展,应该已经得到一个至少包含几百个相关关键词的大列表。这些关键…

解决 There is no getter for property named ‘null‘ in ‘class 报错

1. 问题 mybatis-plus在更新删除操作时报错 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession750ee72a] 2024-06-08 21:03:07 [http-nio-8080-exec-3] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servl…

人工智能在【肿瘤生物标志物】领域的最新研究进展|顶刊速递·24-06-08

小罗碎碎念 本期文献速递的主题是——人工智能在“肿瘤生物标志物”领域的最新研究进展。 重点关注 今天推荐的6篇文献中,第二篇和第三篇是小罗最喜欢的,因为对于临床来说,比较具有实际意义,也和自己的想法很契合。 尤其是第三篇…

python 多任务之多进程

多任务 优势 多个任务同时执行可以大大提高程序执行效率,可以充分利用CPU资源,提高程序的执行效率 概念 是指在同一时间内执行多个任务 多进程 概念 进程(process)是资源分配的最小单位,他是操作系统进行资源分配…