Home

UGUI-Events-Input Modules

Input Modules(输入模块) 输入模块是配置和自定义事件系统主要逻辑的地方。Unity 默认提供了两种输入模块(Input Modules),一种为独立平台(Standalone)设计,另一种为触控输入(Touch Input)设计。每个模块根据其配置接收并分发事件,行为符合预期。 输入模块是事件系统(Event System)中处理“业务逻辑”的地方。当事件系统启用时,它会检查附加了哪些输入模块,并将更新处理交由具体的模块负责。 输入模块被设计为可以根据你希望支持的输入系统进行扩展或修改。它们的目的是将特定硬件的输入(如触摸、操纵杆、鼠标、动作控制器等)映射成通过消息系统发送的事件。 内置的输入模块旨在支持常见的游戏配置,如触摸输入、控制器输入、键盘输入和鼠标输入。...

Read more

UGUI-Rich Text

Rich Text(富文本) UI 元素和 Text Mesh(文本网格)的文本可以包含多种字体样式和字号。Rich Text(富文本) 同时被 UI 系统 和传统的 GUI 系统 所支持。Text、GUIStyle、GUIText 和 TextMesh 类都具有一个 Rich Text 设置,它会指示 Unity 在文本中查找 标记标签(markup tags) 。Debug.Log 函数也可以使用这些标记标签来增强代码的错误报告。标签本身不会显示,但它们表示对文本应用的样式更改。 Markup format(标记格式) 该标记系统受 HTML 启发,但并不打算完全兼容标准 HTML。基本的思想是:一个文本片段可以被一对匹配的标签括起来: We are <b>n...

Read more

UGUI-Events-Messaging System

Messaging System(消息系统) 新的 UI 系统使用了一个消息系统,旨在取代 SendMessage。该系统完全基于 C#,并且旨在解决 SendMessage 存在的一些问题。这个系统通过使用可以在 MonoBehaviour 上实现的自定义接口来工作,以指示组件能够从消息系统接收回调。当发出调用时,会指定一个目标 GameObject;调用会在该 GameObject 上所有实现了指定接口的组件上执行。该消息系统允许传递自定义用户数据,并且可以指定事件在 GameObject 层级结构中传播的范围;也就是说,事件只在指定的 GameObject 上执行,或者也在其子对象和父对象上执行。 除此之外,消息框架还提供了辅助函数,用于搜索并查找实现了特定消息接口的 Gam...

Read more

UGUI-Events

Event System(事件系统) Event System(事件系统)是一种根据输入(无论是键盘、鼠标、触摸还是自定义输入)向应用程序中的对象发送事件的机制。Event System 由一些组件协作组成,用于发送事件。 当你向一个 GameObject(游戏对象)添加 Event System(事件系统)组件时,你会注意到它本身没有暴露太多功能,这是因为 Event System 本身被设计为一个 管理器 ,用于协调 Event System 模块之间的通信。 Event System 的主要职责如下: 管理哪个 GameObject 被视为选中的对象 管理正在使用的 Input Module(输入模块) 管理 Raycasting(射线检测)(如果需要的话)...

Read more

UGUI-Auto Layout

Auto Layout(自动布局) Rect Transform(矩形变换)布局系统足够灵活,能够处理多种不同类型的布局,并允许以完全自由的方式放置元素。然而,有时候可能需要更具结构性的一些方式。 Auto Layout System(自动布局系统)提供了一种在嵌套的布局组中放置元素的方法,例如: Horizontal Groups(水平组) 、Vertical Groups(垂直组) 或 Grids(网格) 。它还允许元素根据其包含的内容自动调整大小。例如,一个 Button(按钮)可以根据其文本内容加上一些填充动态调整尺寸,使其刚好适配。 Auto Layout System 是建立在基本的 Rect Transform 布局系统之上的。它可以选择性地应用于部分或全部元素。...

Read more

UGUI-Visual Components

Visual Components(可视组件) 随着 UI 系统的引入,Unity 添加了一些新的组件,用于实现 GUI(图形用户界面)相关的功能。本节将介绍可以创建的新组件的基础内容。 Text(文本) Text 组件,也被称为 Label(标签),包含一个 Text(文本)区域用于输入将要显示的文本。你可以设置字体(Font)、字体样式(Font Style)、字体大小(Font Size),以及是否启用富文本功能(Rich Text)。 此外,还有文本对齐方式(Alignment)、水平和垂直溢出设置(Horizontal Overflow 和 Vertical Overflow),用于控制当文本超出矩形宽度或高度时的显示方式。Best Fit(最佳适配)选项可以让文...

Read more

UGUI-Interaction Components

Interaction Components(交互组件) 本节介绍 UI 系统中用于处理交互的组件,如鼠标或触摸事件,以及通过键盘或控制器进行的交互。 交互组件本身是不可见的,必须与一个或多个可视组件(Visual Components)结合使用才能正常工作。 Common Functionality(通用功能) 大多数交互组件具有一些共同点。它们都是 Selectables(可选项) ,这意味着它们拥有共享的内建功能,可用于可视化状态间的过渡(Normal(正常)、Highlighted(高亮)、Pressed(按下)、Disabled(禁用)),以及通过键盘或控制器进行的导航。这些共享功能在 Selectable 页面 中有详细描述。 交互组件通常包含至少一个 Uni...

Read more

UGUI-Animation Integration

Animation Integration(动画集成) Animation(动画)允许在控件状态之间的每一次过渡中使用 Unity 的动画系统进行完整的动画表现。由于可以同时对多个属性进行动画处理,这是最强大的 Transition Mode(过渡模式)之一。 要使用 Animation transition mode(动画过渡模式) ,必须在控件元素上附加一个 Animator Component(动画器组件) 。这可以通过点击“ Auto Generate Animation(自动生成动画) ”来自动完成。同时这也会生成一个已配置好状态的 Animator Controller(动画器控制器) ,需要对其进行保存。 新的 Animator Controller 立即...

Read more