Unity - 从 UI 开始

  • 简述

    在本节中,我们将了解 Unity 中用户界面或 UI 元素的设计过程。这包括基本设置,以及 Unity 附带的常见元素的概述。
    在 Unity 中设计 UI 的工作流程与我们目前所经历的路径略有不同。对于初学者来说,UI 元素不是标准的游戏对象,不能这样使用。UI元素设计不同;如果设置不正确,在 4:3 分辨率下看起来正确的菜单按钮可能会在 16:9 分辨率下看起来被拉伸或扭曲。
    Unity 中的 UI 元素不会直接放置在场景中。它们总是作为特殊游戏对象的子对象放置,称为Canvas. Canvas 就像是场景中 UI 的“绘图表”,所有 UI 元素都将在其中呈现。从Create没有现有 Canvas 的上下文菜单将自动生成一个。
    帆布
    现在让我们看看 Canvas GameObject 以了解其他新组件 -
    画布游戏对象
    Rect Transform顶部似乎有许多标准 GameObject 的 Transform 所没有的新属性。
    这是因为虽然普通游戏对象的变换描述了一个虚构的point在 3D 空间中,一个RectTransform定义一个想象的rectangle. 这意味着我们需要额外的属性来准确定义矩形的位置、大小以及方向。
    我们可以看到矩形的一些标准属性,例如高度和宽度,以及两个名为Anchors. 锚点是其他实体可以在画布中“锁定”的点。这意味着如果一个 UI 元素(例如,一个按钮)锚定到右侧的 Canvas,调整 Canvas 的大小将确保 Button 始终位于相对位置right的画布。
    默认情况下,您将无法修改画布区域的形状,它将是一个比较gigantic围绕场景的矩形。
    巨大的矩形
    接下来是Canvas零件。这是一个主组件,它拥有几个关于如何绘制 UI 的通用选项。
    画布组件
    我们看到的第一个选项是Render Mode. 此属性定义用于将 Canvas 绘制到游戏视图上的方法。
    我们在下拉列表中有三个选项。让我们在后续部分中了解这些选项。
  • 屏幕空间 - 叠加

    此模式是菜单、HUD 等最标准的模式。它将 UI 渲染在场景中的所有其他内容之上,完全按照它的排列方式,无一例外。当屏幕或游戏窗口大小发生变化时,它还可以很好地缩放 UI。这是画布中的默认渲染模式。
  • 屏幕空间 - 相机

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

    在世界空间模式下,UI 元素的行为就像放置在世界中的普通游戏对象一样。然而,它们类似于精灵,因此它们通常用作游戏世界的一部分,而不是供玩家使用,例如游戏中的监视器和显示器。由于这种性质,您可以在此模式下直接修改 Canvas RectTransform 的值。
    Canvas Scaler是一组选项,可让您以更明确的方式调整 UI 元素的比例和外观;它允许您定义 UI 元素的方式resize当屏幕大小发生变化时。例如,UI 元素可以保持相同的大小,而不管屏幕大小以及与屏幕大小的比例,或者它们可以根据Reference Resolution.
    Graphics Raycaster 主要处理 UI 元素的光线投射(链接到用于光线投射的 Unity 文档)并确保用户启动的事件(如点击和拖动)正常工作。