Unity3D

A collection of 1256 posts
Unity3D

Unity3D :焦点事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 焦点事件 当元素获得或失去焦点时将发生焦点事件。 当您需要更改焦点,使其进入和离开视觉元素时,焦点事件非常有用。控件通常使用焦点事件来更改其内容,具体取决于焦点状态。例如,文本字段可以在未获得焦点时显示占位文本,或者对 FocusInEvent 作出反应以清除占位文本。 焦点可通过用户交互操作(例如 Tab 键或单击)或使用带有 element.Focus() 的 C# 脚本转到某个视觉元素上。 焦点事件分为两种不同的类型: * 在焦点发生变化之前沿着传播路径发送的 FocusOutEvent 和 FocusInEvent 事件。 * 在焦点变化后立即发送到事件目标的 FocusEvent 和 BlurEvent 事件。 所有焦点事件的基类是 FocusEventBase。 事件描述涓滴冒泡可取消FocusOutEvent某一元素失去焦点前发送。✔✔FocusInEvent某一元素获得焦点前发送。✔✔BlurEvent某一元素失去焦点后发送。✔FocusEvent某一元素获得焦点后发
3 min read
Unity3D

Unity3D :布局事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 布局事件 GeometryChangedEvent 是目前唯一的布局事件。 GeometryChangedEvent 的基类是 EventBase 类。 事件描述涓滴冒泡可取消GeometryChangedEvent当元素的位置或尺寸发生变化时发送。 独特的属性 oldRect:元素先前的位置和尺寸。 newRect:元素的新位置和尺寸。 GeometryChangedEvent GeometryChangedEvent 在元素的位置或尺寸发生变化时发送。此类型的事件仅发送到事件目标。 收到回调后,必须从 GeometryChangedEvent 事件中注销,这是因为额外的布局更改将再次触发回调。 target:具有新几何形状的元素。 由3D建模学习工作室整理翻译,转载请注明出处! 上一篇:Unity3D :拖放事件 (mvrlink.com) 下一篇:Unity3D :焦点事件 (mvrlink.com)
1 min read
Unity3D

Unity3D :拖放事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生. 拖放事件 拖动事件在操作期间发送视觉元素 具有拖放行为。这是一个仅限编辑器的事件。 若要实现拖放功能,请确保可视元素注册特定事件的回调。 支持拖动操作的可视元素分为两种类型: * 可拖动的视觉元素 * 可放置的视觉元素 您可以选择可拖动的可视元素,将其拖动到可放置的可视元素,然后释放该元素以将其拖放。 所有拖放事件的基类都是 DragAndDropEventBase。 事件描述涓涓细流冒泡可取消拖动退出事件拖放过程结束时发送。✔✔拖动更新事件当拖动的元素移动到放置目标上时发送。✔✔✔拖动执行事件当拖动的元素落到目标上时发送。✔✔✔拖动输入事件当拖动的元素进入新的 .VisualElement✔拖拽事件当拖动的元素退出当前放置目标时发送。✔ 使视觉元素可拖动 若要使可视元素可拖动,需要对以下三种事件类型注册回调: * 指针向下事件 * 指针上事件 * 指针移动事件 对拖动操作使用以下步骤: 1. 将其状态设置为“被拖动”。 2. 将适当的数据添加到拖放中。 3
4 min read
Unity3D

Unity3D :命令事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 命令事件 为命令事件发送的事件类型。 事件描述涓滴冒泡可取消ValidateCommandEventIMGUI 可确定该命令是否由面板中的某一元素处理时发送此事件。✔✔✔ExecuteCommandEvent当面板中的某一元素应执行命令时,IMGUI 发送此事件。✔✔✔ 独特的属性 target:获得键盘焦点的元素。如果没有元素获得焦点,此值为 null。 commandName:用于验证或执行的命令。 事件列表 ValidateCommandEvent IMGUI 可确定该命令是否由面板中的某一元素处理时发送此事件。 ExecuteCommandEvent 当面板中的某一元素应执行命令时,IMGUI 发送此事件。 由3D建模学习工作室整理翻译,转载请注明出处! 上一篇:Unity3D :点击事件 (mvrlink.com) 下一篇:Unity3D :拖放事件 (mvrlink.com)
1 min read
Unity3D

Unity3D :点击事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 点击事件 当用户在可视元素上单击鼠标左键(或定点设备上的第一个按钮)时,将发生 ClickEvent。 单击由指针向下事件组成,后跟同一可视元素上的指针向上事件。允许指针在两个事件之间移动,只要向下和向上事件发生在同一个可视元素上。 此事件可用于检测点击次数视觉元素 那不是按钮。例如,控件的实现使用 来显示或隐藏复选标记,以及更改控件的值。ToggleClickEvent 的基类是 PointerEventBase。有关详细信息,另请参阅有关指针事件的文档。ClickEvent 事件描述涓涓细流冒泡可取消点击事件单击鼠标左键时发生。✔✔✔ 独特的属性 没有唯一属性,但继承其基类中的所有属性。可以在“指针事件”页上找到属性列表。ClickEvent 事件列表 点击事件 Unity 在视觉元素上单击鼠标左键时发送此事件。 目标:发生单击时鼠标或指针设备下方的元素。 下面的示例在可视元素上注册 :ClickEvent btnClose.RegisterCallback
2 min read
Unity3D

Unity3D :更改事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 更改事件 当某个元素值更改时,发送 ChangeEvent 事件。通常在控件的字段值发生更改时发送。例如,当用户切换复选框时。 ChangeEvent 是一个类型化事件,包含视觉元素的前一个值和新值。 该事件在更改行为将新值指定给视觉元素后触发。您不能通过取消更改事件来阻止视觉元素上的值更改。 ChangeEvent 的基类是 EventBase 类。 事件描述涓滴冒泡可取消ChangeEvent当某个元素的值更改时发送的通用事件。✔✔ 独特的属性 previousValue:目标控件的先前值。 newValue:目标控件的新值。 事件列表 ChangeEvent ChangeEvent 是一个通知事件,允许您对视觉元素的值变化做出反应。例如,当您在游戏中切换复选框以将音乐静音时,游戏应停止所有音乐。 此事件适用于所有实现 INotifyValueChanged,其中 是 ChangeEvent 的类型。此事件也内部用于对通过绑定链接到 UI 的对象内属性进
4 min read
Unity3D

Unity3D :捕获事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 捕获事件 捕获事件通知您鼠标捕获状态的变化。UI 工具包有两种类型的捕获事件: * 鼠标捕获事件 * 指针捕获事件 当一个元素捕获鼠标或指针时,它是唯一从指针设备接收事件的元素,直到设备释放或丢失捕获。 例如,如果您在文本框中单击,则该文本框会捕获鼠标。鼠标仍然可以在屏幕上移动,但不会触发文本框外的事件。只要文本框捕获了您的鼠标,它就不会触发其他事件。当用户在文本框外按下鼠标上的按钮时,该框会释放其鼠标捕获。 事件描述涓滴冒泡可取消MouseCaptureEvent当某一元素接受鼠标捕获时发送。✔✔MouseCaptureOutEvent当某一元素释放鼠标捕获或以其他方式失去鼠标捕获时发送。✔✔PointerCaptureEvent当某一元素捕获指针时发送。✔✔PointerCaptureOutEvent当某一元素释放指针时发送。✔✔ 行为 鼠标捕获 鼠标捕获事件是指物理鼠标或模拟物理鼠标的虚拟鼠标上的事件。捕获鼠标也会导致鼠标指针的 PointerCaptureEvent。
3 min read
Unity3D

Unity3D :合成和发送事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 合成和发送事件 在合成和发送自定义事件之前,请了解 UI 工具包事件系统如何分配和发送操作系统事件。 事件系统使用事件池来避免重复分配事件对象。 要合成并发送您自己的事件,请执行以下操作: 1. 从事件池中获取事件对象。 2. 填写事件属性。 3. 将事件包含在一个块中,以确保它返回到事件池。using 4. 将事件传递给 。panel.visualTree.SendEvent() 您可以发送操作系统事件,例如键盘和鼠标事件。为此,请使用 初始化UnityEngine.Event用户界面 工具包事件。 以下示例演示如何合成和发送事件: void SynthesizeAndSendKeyDownEvent(IPanel panel, KeyCode code, char character = '\0', EventModifiers modifiers = EventModifiers.None) { // Create a UnityEngine.
1 min read
Unity3D

Unity3D :处理事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 处理事件 UI 工具包中的事件类似于 HTML 事件 。 事件发生时,将沿着视觉元素树中的传播路径发送事件。 事件不仅发送到目标视觉元素,而且发送到传播路径中的所有元素。 事件处理顺序如下: 1. 在从根元素往下到事件目标父级的元素上执行事件回调。 这是分发过程的涓滴阶段。 2. 在事件目标上执行事件回调。 这是分发过程的目标阶段。 3. 在事件目标上调用 。ExecuteDefaultActionAtTarget() 4. 从事件目标父级往上到直到根部的元素上执行事件回调。 这是分发过程的冒泡阶段。 5. 在事件目标上调用 。ExecuteDefaultAction() 在沿着传播路径发送事件时, 属性更新为当前正在处理事件的元素。 在事件回调函数中:Event.currentTarget * Event.currentTarget 是回调注册的视觉元素。 * Event.target 是原始事件发生的视觉元素。 有关更多信息,请参阅分发事件。 注册事件回调 通过注册
9 min read
Unity3D :调度事件
Unity3D

Unity3D :调度事件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 调度事件 UI 工具包事件系统监听来自操作系统或脚本的事件,并使用 EventDispatcher 将这些事件分发到视觉元素。事件分发程序为发送的每个事件确定相应分发策略。一旦确定后,分发程序就会执行该策略。 视觉元素实现了几个事件的默认行为。这可能涉及额外事件的创建和执行。例如,一个 MouseMoveEvent 可以生成一个额外的 MouseEnterEvent 和一个 MouseLeaveEvent。这些事件进入队列并在当前事件之后处理。例如,MouseMoveEvent 在 MouseEnterEvent 和 MouseLeaveEvent 事件之前完成处理。 事件类型的分发行为 每个事件类型都有自己的分发行为。每种事件类型的行为分为三个阶段: * 涓滴:在涓滴阶段发送到元素的事件。 * 冒泡:在冒泡阶段发送到元素的事件。 * 可取消:此类事件可以取消、停止或阻止默认操作的执行。 有关每种事件类型的分发行为的列表,请参阅事件参考页面 。 事件传播 事件分发程序选择事件
6 min read
Unity3D

Unity3D :USS 属性数据类型

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 USS 属性数据类型 使用 Unity 样式表 (USS) 时,可以在 USS 文件中指定属性的值。还可以使用 的 C# 属性在 C# 中分配属性值。在 C# 中分配的值将覆盖 USS 文件中的值。VisualElementVisualElement 可使用自定义属性 来扩展 USS。 自定义 USS 属性需要 前缀。-- 本页介绍支持的数据类型。 USS 数据类型定义 USS 属性接受的值和关键字。 财产描述表示距离值。表示整数或带有小数部分的数字。表示整数。表示一种颜色。您可以使用代码、或函数或颜色关键字(例如 or )定义颜色。#hexadecimalrgb(
5 min read
Unity3D

Unity3D :从 C# 脚本加载 UXML

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 从 C# 脚本加载 UXML 要根据 UXML 模板构建用户界面,必须先将模板加载到 中:VisualTreeAsset var template = EditorGUIUtility.Load("path/to/file.uxml") as VisualTreeAsset; 或者采用更直接的方式: var template = AssetDatabase.LoadAssetAtPath("path/to/file.uxml"); 然后可以构建表示的视觉树并将其附加到父元素: template.CloneTree(parentElement, slots); 在上面的语句中,模板中的 元素被转换为 。 相反,其所有子项都附加到 指定的元素。VisualElementparentElement 实例化模板后,即可使用 UQuery(
1 min read
Unity3D

Unity3D :设置文本样式

在线工具推荐:三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 -  3D模型预览图生成服务 设置文本样式 基本文本样式 文本属性是常规的 USS 样式属性。可以在任何元素上设置文本样式属性,无论它是否是文本元素(从 C# 类型继承)。与大多数 USS 样式属性不同,文本样式属性传播到子元素。例如:TextElement 在上面的示例中,文本将为粗体、斜体,字体大小为 .下图显示了检查器中可用的文本样式属性:Lab
2 min read
Unity3D

Unity3D :设置背景图像

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 设置背景图像 UI 生成器没有专用的“图像”元素。要创建映像,请执行以下操作: 1. 将背景图像导入到项目中。 2. 在 UI 生成器中创建常规可视元素。 3. 将元素的背景图像设置为导入的图像。 设置背景图像时,必须选择支持的背景图像类型: * 纹理 * 精灵 * 渲染纹理 * SVG 矢量图像 注: 要将 SVG 图像用作可视元素的背景,必须安装软件包。为此,请在“包管理器”窗口中,从 git URL 安装包。com.unity.vectorgraphics 图像导入设置 将图像导入项目后,为了获得最直观的结果,Unity 建议您先应用纹理、精灵和矢量图像的某些导入设置,然后再将它们用作 UI
4 min read
Unity3D :定位元件
Unity3D

Unity3D :定位元件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 定位元件 相对位置和弹性框 UI Toolkit使用Yoga的修改版本,这是Flexbox布局引擎的实现。Flexbox 是一个常见的 CSS 布局引擎。一些主要的样式属性是: * Flex > Direction(在 USS 中):设置哪些元素的布局方向或主轴。默认值为 ,这意味着,在没有任何其他重写的情况下,具有此样式属性的父元素下的子元素将显示在列中第二个子元素的上方。flex-directioncolumn * Flex > Grow(在 USS 中):此属性定义元素在主轴上应如何增长。这是一个与同一父母的所有其他兄弟姐妹共享的比例。当尝试使元素拉伸以占用其父元素的整个大小(减去任何同级)时,此属性很有用。为此,请将“弹性>增长”值设置为 。如果有两个同级设置为,则它们将沿主轴分别占用父级可用大小的 50%。flex-grow1flex-grow1 * 对齐>对齐项目(在 USS 中)
7 min read
Unity3D

Unity3D :UI 生成器中的 USS 变量

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 UI 生成器中的 USS 变量 USS 变量是常规的 USS 样式属性,具有自定义的用户定义名称,可以保存任何样式值类型。然后,可以使用它们来代替任何其他 USS 样式属性上的值。USS 变量主要用于主题,默认的 Unity 主题公开一长串标准变量,以使 UI 与标准控件更加一致。下面的示例演示了 USS 中的变量定义和用法: * { --my-var: 20px; } .my-button { width: var(--my-var); } 赋值变量 在 UI 生成器中将变量分配给样式表 USS 样式属性: 1. 导航到“检查器”窗格,然后右键单击样式字段 2. 选择“设置变量”。 此选项将临时将样式字段转换为文本字段,
3 min read
Unity3D

Unity3D :使用 UI 生成器设置 USS 选择器的样式

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 使用 UI 生成器设置 USS 选择器的样式 管理USS选择器 Unity 样式表 (USS) 选择器是对元素层次结构的查询。它们在USS中看起来像这样: .my-button { background-color: blue; } 上面的USS选择器查找具有类或标签的所有元素,任何匹配的元素都将获得蓝色背景色。.my-button 您可以使用样式表中的 USS 选择器在元素和 UI 文档 (UXML) 之间共享样式。您可以通过“样式表”窗格顶部的“添加新选择器...”字段创建新的 USS 选择器。 当您具有“添加新选择器...”字段时,USS 选择器语法参考将显示在视口顶部,如下图所示: 操纵USS选择器 对于“样式表”窗格中的一个或多个 USS 选择器,选择组,单击鼠标右键,然后选择所需的操作。
3 min read
Unity3D

Unity3D :创建和管理 UI 文档 (UXML)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 创建和管理 UI 文档 (UXML) 当前打开和活动的 UI 文档 (UXML) 资产名称在“层次结构”窗格中作为根树项以及视口内的 Canvas 标头中显示。名称旁边的星号 * 表示未保存的更改。 默认情况下,UI 生成器将始终以空白的未保存 UI 文档 (UXML) 启动。这将显示为 。您可以开始在此 UI 文档 (UXML) 中工作,然后在稍后首次保存时将其创建为磁盘上的资产。*.uxml 打开 UI 文档 您可以通过多种方式打开现有 UI 文档: 1. 使用 UI 生成器视口窗格工具栏中的“文件”菜单,然后选择“打开...”。 2. 在“
2 min read
Unity3D

Unity3D :工作流概述

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 工作流概述 在 UI 生成器中创建 UI 的一般方法是以下迭代周期: 1. 打开现有 UI 文档或创建新的 UI 文档 (UXML)。 2. 将元素或其他 UI 文档 (UXML)(使用此相同的迭代周期创建)从库拖到层次结构中以创建 UI 层次结构。 3. 在层次结构或画布中选择元素以在检查器中访问其属性和样式属性。 4. 通过检查器的属性部分设置每个元素的属性,如文本或工具提示。LabelButton 5. 通过检查器的“内联样式”部分设置每个元素的样式属性,包括布局和位置属性。 6. 当多个元素开始需要相同的样式属性时,请使用“样式表”窗格向 UI 文档 (UXML) 添加或创建样式表。 7. 选择元素后,通过检查器的样式表>样式类列表部分将其内联样式属性提取到样式表,
2 min read
Unity3D

Unity3D :UI 工具包调试器

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 UI 工具包调试器 这用户界面 工具包调试器是一种可用于实时检查和调试 UI 元素的工具。它提供 UI 层次结构的可视化表示形式。您可以使用它来检查每个 UI 元素的状态和属性。 打开 UI 工具包调试器时,它会显示一个窗口,其中显示了 UI 层次结构的实时视图。可以选择层次结构中的任何元素来检查其属性和状态。调试器还会显示与 UI 元素相关的任何错误或警告。 UI 工具包调试器的主要功能之一是能够查看和编辑应用于 UI 元素的样式。这是通过样式完成的检查员 ,这允许您查看应用于特定元素的所有样式属性。还可以实时编辑这些属性,以查看它们对 UI 的影响。 注意:在调试器中编辑样式只会更改实时元素本身的内联样式,并且更改不会保存在任何位置,并且在下次重新生成 UI 时会丢失。 若要使用 UI 工具包调试器,请执行以下操作: 1. 选择“> UI
3 min read
Unity3D

Unity3D :主题样式表 (TSS)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 主题样式表 (TSS) 主题样式表 (TSS) 文件是常规的 USS 文件。用户界面 Toolkit 将 TSS 视为一种独特的资产类型,并将其用于管理目的。 常规 USS 语法和格式适用于 TSS 文件,但通常,主题文件包含通过规则对其他 USS 文件的引用。@import 注意:USS 文件也支持该规则。@import 创建 TSS 您可以为不同的主题创建不同的 TSS 文件,并在运行时在它们之间切换。可以使用 TSS 自定义不同平台或设备的外观。如果您的游戏或应用程序支持多种语言,您还可以创建 TSS 以对不同的语言使用不同的字体。 当您将第一个 UIDocument 添加到游戏对象 在您的项目中,它会在 生成默认的运行时主题资源。
3 min read
Unity3D

Unity3D :USS 的最佳实践

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 USS 的最佳实践 在编写 USS 以样式时遵循以下最佳实践视觉元素 . 避免内联样式 尽可能使用 USS 文件而不是内联样式,以提高内存使用效率。 内联样式是按元素计算的,可能会导致内存开销。在 C# 脚本或 UXML 文件中对许多元素使用内联样式时,内存使用率会很快变高。 选择器体系结构注意事项 所有 USS 选择器都在运行时应用,因此体系结构会影响初始化性能。当元素首次出现或其类更改时,将应用USS选择器: * 选择器是选择器导致交互性问题和重新样式的罪魁祸首。:hover * 性能影响显示在分析器 . 通常,如果您有很多选择器,这不是问题,因为每个 USS 文件都变成了一个查找表。但是,当您向元素添加类时,性能会线性下降。列表中的每个类都用于查询查找表。复杂度为 ,其中:N1 x N2 * N1是元素上的类数 * N2是当前适用的 USS
5 min read
Unity3D

Unity3D :USS 内置变量简介

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 USS 内置变量简介 USS 内置变量指定编辑器和运行时的默认值用户界面 .您可以在自己的 USS 中使用这些变量,以将自定义界面与 Unity 样式相匹配。 每个内置变量的名称指示变量的使用方式和位置。变量名称由一个或多个部分组成,用连字符分隔。每个部分由一个或多个由下划线分隔的单词组成。 --unity-{group}-{role_and_control}-{sub_element}-{pseudo_state_sequence} 名称的每个部分都显示使用该变量的 USS 规则的类型。 * 组:变量表示的数据类型。 * 角色/控件:变量影响的元素的概念分组。 * 子元素:变量影响的元素或控件。 * 伪状态:列出 Unity 使用变量的状态。 例如,以下变量名称: --unity-colors-button-text-hover 提供有关 Unity
5 min read
Unity3D

Unity3D :创建 USS 变量

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 创建 USS 变量 您可以创建一个 USS 变量并在其他 USS 属性中使用它。更新 USS 变量时,使用该变量的所有 USS 属性都会更新。您还可以为 USS 变量指定默认值。 创建和使用 USS 变量 要创建 USS 变量,请在其名称前面加上双连字符 ()。-- --color-1: red; 若要在另一个 USS 规则中使用 USS 变量值,请使用函数调用它。var() var(--color-1); 更新变量时,它会更新使用该变量的所有 USS 属性。 例如,以下 USS 代码段定义了一个声明两个颜色变量的样式规则,以及两个使用这些变量的样式规则。 :root
2 min read
NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号