了解Unity编辑器之组件篇Scripts(六)

news2024/12/21 14:38:55

Scripts:有Unity提供的一些脚本插件(自己新建的脚本也会出现在里面)

一、TMPro:有一些与文字显示和排版相关的脚本

1.TextContainer(文本容器):TextContainer 是一个内容框,用于定义文本的显示范围。通过设置 TextContainer 的边界,可以控制文本在屏幕上的位置和大小。

 

(1)Anchor Position(锚点位置):锚点位置决定了父对象(通常是 RectTransform)中文本容器的起始位置。它可以是矩形对象的矩形中的一个点,例如左上角、中心等。文本容器将根据锚点位置进行定位和调整。

(2)Dimensions(尺寸):文本容器的尺寸属性定义了文本在父对象中的可见区域范围。这直接决定了文本在屏幕上的展示大小。

(3)Margins(边距):通过设置边距,你可以在文本和容器边缘之间创建空白区域。边距为文本提供了一定的留白,并可以调整文本的布局位置和间距。

2.TMP_ScrollbarEventHandler(滚动条事件处理器):该脚本用于处理与 TMP_Scrollbar(TMP 滚动条)相关的事件。它可以监听滚动条的滑动事件和按钮点击事件,并根据滚动条的操作进行文本的滚动。

 

(1)Is Selected:可用于检测 TMP_ScrollbarEventHandler 是否处于选中状态,以便在适当时机对滚动条进行响应和操作

3.TMP_SelectionCaret(文本选择光标):TMP_SelectionCaret 脚本用于显示和控制文本的选中光标。它可以根据用户的选择操作来定位和渲染光标。

 

(1)Material(材质):指定选择光标的渲染材质。通过更改材质,可以改变选择光标的外观效果,例如颜色、纹理等。

(2)Color(颜色):用于设置选择光标的颜色。可以通过更改颜色值或使用透明度来调整选择光标的显示方式。

(3)Raycast Target(射线检测目标):指定选择光标是否响应射线检测。当设置为 true 时,选择光标可以被鼠标点击、触摸等输入事件检测到;当设置为 false 时,选择光标将被忽略。

(4)Raycast Padding(射线检测边距):定义选择光标的射线检测边距。可以设定一个边距值,以便为选择光标增加一定的点击区域,这样更易于用户点击。

(5)Maskable(可遮罩):指定选择光标是否被屏蔽。如果选择光标属于可遮罩对象,可以设置为 true,使得选择光标遵循层级遮罩规则。

(6)On Cull State Changed (Boolean)(剔除状态改变时的处理):这是一个布尔类型的事件处理器。当选择光标的剔除状态(是否在裁剪范围之外)发生改变时,该事件将被触发。可以使用此事件来执行自定义操作。

4.TMP_SpriteAnimator(TMP 精灵动画器):TMP_SpriteAnimator 用于播放基于 
TMP_SpriteAsset(TMP 精灵资源)创建的动画序列。它可以控制精灵的播放速度、循环模式等。

 

5.TMP_SubMesh(TMP 子网格):TMP_SubMesh 是 TextMeshPro 渲染系统中用于绘制具体文字的一部分。一个文本对象可以由多个子网格组成,每个子网格负责绘制相应的文字片段。(添加该脚本时会自动添加Mesh Renderer组件)

 

(1)Font Asset(字体资源):指定该子网格使用的字体资源。字体资源定义了用于绘制文本的字符集、字形信息、字距调整等字体属性。

(2)Sprite Asset(精灵资源):用于指定子网格所使用的精灵资源。精灵资源是一种用于插入到文本中以替代字符或图形的图像资源,可以为文本添加额外的样式和视觉效果。

(3)Sorting Layer(排序层级):用于指定子网格在渲染时的排序层级。根据 Sorting Layer 的设置,可以控制不同子网格之间的渲染顺序,确保正确的遮挡关系和显示顺序。

(4)Order in Layer(层级顺序):用于定义在相同 Sorting Layer 内的子网格的绘制顺序。具有较低 Order in Layer 值的子网格将在具有较高 Order in Layer 值的子网格之前进行绘制。

6.TMP_SubMeshUI(TMP 子网格 UI):与 TMP_SubMesh 类似,TMP_SubMeshUI 也是 TextMeshPro 渲染系统中的一部分,用于在UI界面上绘制文字。不同的是,TMP_SubMeshUI 是用于与 Unity 的 UI 系统(Canvas)配合使用的。

 

(1)属性可参考TMP_SubMesh

二、UnityEngine.EventSystems:在Unity中,UnityEngine.EventSystems命名空间是用于处理用户交互事件和管理UI事件系统的一组类。它提供了一种简单而强大的方式来管理和处理用户输入、触摸和点击等事件,并与UI元素进行交互。

UnityEngine.EventSystems中常用的类包括:

(1)EventSystem:事件系统,负责接收、处理和分发输入事件。它是整个UI事件系统的核心,负责将输入事件传递给相应的UI元素。

(2)UIBehaviour:UI行为基类,是所有UI组件的基类。它提供了一些通用的方法和属性,用于处理事件、交互和状态管理等操作。

(3)BaseRaycaster:基础射线检测器,用于处理射线检测和事件穿透。它定义了射线检测的基本接口,可以通过继承它来创建自定义的射线检测器。

(4)PointerEventData:指针事件数据,封装了指针(如鼠标、触摸)相关的数据,如位置、按下状态等。它通过EventSystem传递给UI元素,用于处理和响应用户输入。

(5)EventTrigger:事件触发器,可以为UI元素附加事件响应脚本,自定义触发不同事件时的行为

1.Base Input:用于处理输入事件的基类。

 

它作为其他输入脚本的抽象基类,提供了输入事件的统一接口和常用功能:

处理输入事件:Base Input脚本定义了处理常见输入事件的方法,如按下、抬起、拖拽、滚动等。继承Base Input脚本的子类可以通过重写这些方法来处理具体的输入事件。

抽象化输入源:Base Input脚本将具体的输入源抽象化,使得其他脚本可以方便地切换和扩展输入源。可以根据需要创建不同的子类,如键盘输入、鼠标输入、触摸输入等。

输入状态管理:Base Input脚本可以跟踪和记录输入状态,如按键是否按下、鼠标的位置和滚轮值等。这样可以方便地查询和使用输入状态,例如根据按键状态决定角色的移动方向。

事件系统交互:Base Input脚本可以与Unity的事件系统(Event System)进行交互。它可以通过触发相应的事件(如PointerDown、PointerUp等)与其他UI组件和交互系统进行通信。

三、UnityEngine.TestTools.TestRunner.Callback:用于在测试运行期间进行自定义的回调操作。该接口是在Unity Test Framework中为自动化测试提供的。通过实现UnityEngine.TestTools.TestRunner.Callback接口,并将其注册到Unity Test Runner中,可以在测试运行期间实现自定义的回调逻辑。这样可以灵活地扩展测试框架,并在测试过程中执行特定的操作,例如记录日志、自定义断言或进行额外的验证。

1.Player Quit Handler:通常与测试框架和自动化测试相关。在自动化测试中,我们可能需要在游戏执行完测试后,自动关闭游戏并执行后续的验证、报告生成或清理操作。而玩家退出游戏事件是一个常见的触发点。

 

通过编写Player Quit Handler脚本,你可以在玩家退出游戏时执行一些特定的逻辑,例如:

数据保存:在玩家退出游戏前,你可以使用Player Quit Handler脚本保存游戏中的必要数据或状态,以便在下一次运行或重新加载时恢复这些数据。

关闭资源和连接:当游戏结束时,你可以使用Player Quit Handler脚本关闭游戏中打开的资源、连接或其他外部系统,以确保防止资源泄漏或其他不良影响。

清理操作:你可以在Player Quit Handler脚本中执行一些额外的清理操作,例如删除临时文件、释放内存等,以确保测试环境的整洁和稳定。

2.Test Result Renderer Callback:用于自定义测试结果的渲染方式和呈现效果。它是在测试完成后,在测试结果渲染器中执行自定义回调的事件。

 

默认情况下,Unity的测试框架(Unity Test Framework)会将测试结果显示在测试结果渲染器中。测试结果渲染器提供了一个标准的显示方式,通常以树形结构或列表形式展示测试用例的执行结果、通过或失败等信息。

通过实现Test Result Renderer Callback,你可以修改和扩展测试结果渲染器的行为,例如:

自定义显示方式:你可以根据特定需求,改变测试结果的展示形式。可以调整显示样式、添加额外的元数据、改变布局和颜色等,以更好地满足测试报告的需求。

扩展报告功能:你可以通过Test Result Renderer Callback在测试结果中添加额外的信息或功能。例如,在测试结果渲染器中显示附加的日志、截图或其他自定义属性。

统计和汇总:你可以利用Test Result Renderer Callback来汇总和统计测试结果。例如,计算通过率、测试耗时或生成自定义的测试报告。

四、UnityEngine.Timeline:该命名空间提供了一种用于创建和管理时间轴(Timeline)的框架。UnityEngine.Timeline主要用于以下作用:

时间轴编辑:UnityEngine.Timeline允许开发者在Unity中创建和编辑复杂的时间轴,以控制游戏、动画、剧情或其他场景中的事件和动作的播放顺序和时序关系。开发者可以通过时间轴编辑器创建关键帧和轨道,并管理对象在特定时间点上的活动和状态。

动画剪辑和混合:通过UnityEngine.Timeline,开发者可以将动画剪辑(Animation Clip)和时间轴混合在一起,创建复杂的动画序列。时间轴可以调整动画剪辑的播放速度、循环次数、交叉淡入淡出以及动画剪辑之间的过渡效果等。

音频剪辑和混合:除了动画剪辑,开发者还可以在时间轴中管理音频剪辑(Audio Clip)。可以将多个音频剪辑混合在一起,控制它们的播放顺序、音量和过渡效果,从而创建电影、游戏场景或其他多媒体作品中的音频效果和背景音乐。

事件触发和交互:时间轴可以用于触发和管理游戏中的事件、动作和交互行为。通过设置时间轴上的关键帧和事件,开发者可以在特定的时间点上执行代码、触发粒子效果、切换场景或执行其他自定义的逻辑。

剧情设计和演出:借助UnityEngine.Timeline,开发者可以在游戏或其他互动体验中创建和设计复杂的剧情和演出。通过时间轴编辑器,可以安排角色对话、相机切换、特殊效果和剧情事件的发生,从而创造出丰富、有序和生动的故事体验。

1.Signal Receiver:用于接收和处理信号的组件或对象。它通常与事件系统结合使用,用于监听和响应特定的信号或事件。

 

Signal Receiver的主要作用包括:

监听事件:Signal Receiver可以注册监听器,用于监听和接收特定类型的信号或事件。当某个信号被触发时,Signal Receiver会相应地执行预定义的行为或方法。

响应信号:一旦Signal Receiver监听到信号或事件触发,它会相应地执行事先定义的操作、行为或方法。这使得开发者能够以响应式的方式处理和处理特定的信号。

解耦代码:Signal Receiver提供了一种解耦代码的方式,即事件源和事件处理之间的解耦。通过信号和Signal Receiver,组件或对象可以将自己的信号发送给Signal Receiver,而不需要直接调用其他对象或组件的方法。

灵活性和可扩展性:Signal Receiver的设计使得应用程序的逻辑可以轻松扩展和修改。通过添加或删除Signal Receiver,以及定义新的信号类型,可以很容易地实现新的功能或逻辑。

事件驱动编程:使用Signal Receiver可以实现事件驱动编程的模式。应用程序中的不同组件或对象可以通过发送和接收信号的方式进行交流和协作,以实现更灵活、松耦合和可复用的代码结构。

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

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

相关文章

5分钟掌握接口自动化测试,4个知识点简单易学!

一. 什么是接口测试 接口测试是一种软件测试方法,用于验证不同软件组件之间的通信接口是否按预期工作。在接口测试中,测试人员会发送请求并检查接收到的响应,以确保接口在不同场景下都能正常工作。 就工具而言,常见的测试工具有…

代码随想录-108-背包问题

目录 前言思路3. 算法实现4. 算法坑点 前言 我在刷卡哥的“代码随想录”,自己的总结笔记均会放在“算法刷题-代码随想录”该专栏下。 代码随想录此题链接 思路 前提,当前的物品有i1个,编号为0~i,重量weight和价值value数组如下…

FreeRTOS(软件定时器)

一、什么是定时器 简单可以理解为闹钟,到达指定一段时间后,就会响铃。 STM32 芯片自带硬件定时器,精度较高,达到定时时间后会触发中断,也可以生成 PWM 、输入 捕获、输出比较,等等,功能强大&am…

springMVC--中文乱码处理(新思路--化繁为简)

文章目录 springMVC--中文乱码处理(新思路--化繁为简)编码过滤器自定义中文乱码过滤器举例应用实例1. 创建过滤器springmvc\src\com\web\filter\MyCharacterFilter.java实现思路 2. 配置web.xml完成测试 Spring MVC--过滤器处理中文修改web.xml完成测试 springMVC–中文乱码处理…

Go语言导入本地文件包

Go语言导入本地文件包 ​ 在Go程序中,每一个包通过称为**导入路径(import path)**的唯一字符串来标识。它们出现在import声明中, 一个导入路径标注一个目录,目录中包含构成包的一个或多个Go源文件。 举例:…

数据库应用:Redis主从复制、哨兵、cluster集群

目录 一、理论 1.Redis高可用 2.Redis主从复制 3.部署Redis主从复制 4.Redis哨兵模式 5.部署Redis哨兵模式 6.Redis集群模式 7.部署Redis集群 二、实验 1.部署Redis主从复制 2.部署Redis哨兵模式 3.部署Redis集群 三、问题 1.开启Redis群集失败 四、总结 一、理…

HTML5+CSS3+JS小实例:翻滚吧乔巴自定义滑块控件

实例:翻滚吧乔巴自定义滑块控件 技术栈:HTML+CSS+JS 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" cont…

Docker 安装 Nacos

简介 Nacos 是一个轻量级的服务发现、配置管理和服务管理平台&#xff0c;它支持多种语言&#xff08;Java、Go、Node.js 等&#xff09;和多种协议&#xff08;HTTP、gRPC、DNS 等&#xff09;&#xff0c;能够帮助开发者构建微服务体系结构&#xff0c;简化了应用程序在不同…

入门前端监控

背景 前端监控是指通过一系列手段对Web页面或应用程序进行实时监控和数据采集&#xff0c;以了解页面或应用程序的性能状况、用户行为等等&#xff0c;并及时发现和解决潜在的问题。一个完整的前端监控平台可以包括&#xff1a;数据收集与上报、数据整理与存储、数据展示这里仅…

去重排序2——set

题目描述 输入 个正整数 ​ &#xff0c;按照从大到小的顺序输出不重复的数。 输入格式 第一行一个整数 n 。 第二行 个用空格隔开的正整数 ​ 。 输出格式 每行一个正整数&#xff0c;为从大到小排序后的不重复的数。 样例 #1 样例输入 #1 8 1 3 4 2 2 2 3 1样例输出 #1 4 3…

Linux Mint 21.2 “Victoria “现已可供下载

导读Linux Mint 21.2 “Victoria “发行版今天出现在该项目全球稳定镜像上&#xff0c;这意味着开发者将很快发布官方公告&#xff0c;通知想要下载最新Linux Mint版本的用户。 Linux Mint 21.2从2023年6月21日开始进行公开测试&#xff0c;这给了开发者足够的时间来修复剩余的…

redis(11):springboot中使用redis

1 创建springboot项目 2 创建pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:/…

同样是测试点工,他凭啥薪资比我高?

如果别人在功能测试方面薪资比你高那是因为做得比你好&#xff0c;别人功能测试做的比你好可能有以下几个原因&#xff1a; 测试策略和方法&#xff1a;别人可能采用了更有效的测试策略和方法&#xff0c;能够更全面地覆盖功能的各个方面。他们可能有更深入的测试计划和设计&a…

【云驻共创】CodeArts Repo ---高效代码协同开发之旅

目录 一、代码托管发展史 1.1 第一代 1.2 第二代 1.3 第三代 二、CodeArts Repo 介绍 二、CodeArts Repo 功能架构 2.1 研发协同 2.2 代码管理功能 2.3 代码存储特性 三、CodeArts Repo 技术能力 三、华为云代码托管技术发展历程 四、CodeAr…

《重构的时机和方法》一本值得程序员都认真读的书

写在前面 《重构的时机和方法》是一本关于软件开发中重构技术的书籍。它以独特的风格和内容优势&#xff0c;为读者提供了全面而易于理解的指导&#xff0c;帮助他们在实际项目中应用重构技术&#xff0c;提高代码质量和开发效率。这本书由两个不同风格的部分组成&#xff0c;…

前端面试题-浏览器相关

1 cookie和localSrorage、session、indexDB 的区别 从上表可以看到&#xff0c; cookie 已经不建议⽤于存储。如果没有⼤量数据存储需求的话&#xff0c;可以使⽤ localStorage 和 sessionStorage 。对于不怎么改变的数据尽量使⽤ localStorage 存储&#xff0c;否则可以⽤ se…

java项目之人事管理系统(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的人事管理系统。技术交流和部署相关看文章末尾&#xff01; 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&…

【力扣每日一题】2023.7.24 宝石与石头

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码运行结果&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一个字符串表示宝石的类型&#xff0c;再给我们一个字符串表示我们已经拥有的石头&#xff0c;问我们在石头中能找到多少宝…

一文助你快速提高嵌入式软件的代码质量【下】

一文助你快速提高嵌入式软件的代码质量 文章目录 一文助你快速提高嵌入式软件的代码质量&#x1f468;‍&#x1f3eb;前言1️⃣写直观的代码2️⃣写无懈可击的代码3️⃣正确处理错误4️⃣正确处理null指针5️⃣防止过度工程&#x1f647;文末小结 &#x1f468;‍&#x1f3eb…

Python 快速简单搭建HTTP本地服务器,内网通过浏览器访问

1 下载python https://www.python.org/downloads/ 2 安装python&#xff0c;安装时候选择把path加入电脑环境变量 3 由于python内建了简单http服务包&#xff0c;因此对于python来说&#xff0c;只需输入一行命令&#xff0c;就能轻松打开http服务。当然&#xff0c;要运行网页…