Unity - UI入门



在本节中,我们将学习Unity中用户界面或UI元素的设计过程。这包括基本设置,以及Unity自带的常用元素概述。

在Unity中设计UI的工作流程与我们之前所经历的流程略有不同。首先,UI元素不是标准的游戏对象,不能像游戏对象那样使用。UI元素的设计方式不同;如果设置不正确,在4:3分辨率下看起来正确的菜单按钮,在16:9分辨率下可能会看起来拉伸或变形。

Unity中的UI元素不会直接放置到场景中。它们始终作为名为画布的特殊游戏对象的子对象放置。画布就像场景中UI的“绘图纸”,所有UI元素都将在其中渲染。在没有现有画布的情况下从创建上下文菜单创建UI元素将自动生成一个画布。

Canvas

现在让我们看看画布游戏对象,了解一些新的组件:

Canvas GameObject

顶部的矩形变换似乎有很多标准游戏对象的Transform没有的新属性。

这是因为,虽然普通游戏对象的Transform描述了3D空间中的一个虚,但RectTransform定义了一个虚矩形。这意味着我们需要额外的属性来精确定义矩形的位置、大小和方向。

我们可以看到矩形的一些标准属性,如高度和宽度,以及两个名为锚点的新属性。锚点是画布上其他实体可以“锁定”到的点。这意味着,如果一个UI元素(例如,一个按钮)锚定到画布的右侧,调整画布大小将确保按钮始终位于画布的相对右侧

默认情况下,您将无法修改画布区域的形状,它将在您的场景周围形成一个相对巨大的矩形。

Gigantic rectangle

接下来是画布组件。这是主组件,它包含一些关于如何绘制UI的通用选项。

Canvas Component

我们看到的第一个选项是渲染模式。此属性定义用于将画布绘制到游戏视图中的方法。

在下拉列表中,我们有三个选项。让我们在后续章节中了解这些选项。

屏幕空间 - 叠加

此模式对于菜单、HUD等是最标准的模式。它在场景中所有其他内容的顶部渲染UI,完全按照其排列方式,并且没有例外。它还在屏幕或游戏窗口大小发生变化时很好地缩放UI。这是画布中的默认渲染模式。

屏幕空间 - 相机

屏幕空间 - 相机创建一个虚投影平面,该平面与相机保持一定距离,并将所有UI投影到该平面。这意味着场景中UI的外观在很大程度上取决于相机使用的设置;这包括透视、视野等。

Screen Space Camera

世界空间

在世界空间模式下,UI元素的行为就像放置在世界中的普通游戏对象一样。然而,它们类似于精灵,因此通常用作游戏世界的一部分,而不是用于玩家,例如游戏内监视器和显示器。由于这种性质,您可以在此模式下直接修改画布RectTransform的值。

画布缩放器是一组选项,允许您以更明确的方式调整UI元素的比例和外观;它允许您定义当屏幕大小发生变化时UI元素如何调整大小。例如,UI元素可以保持相同的大小,而不管屏幕大小如何以及与屏幕大小的比例,或者它们可以根据参考分辨率进行缩放。

图形射线投射器主要处理UI元素的射线投射(指向Unity文档中射线投射的链接),并确保用户发起的事件(如点击和拖动)正常工作。

广告