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

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

猜你喜欢

转载自blog.csdn.net/falsedewuxin/article/details/131921525