1 UGUI 与 GUI 区别

GUI控件 在编译时不能可视化,并且界面不太美观,在实际应用中使用的较少。UGUI 在编译时可视化,界面美观,实际应用较广泛。

2 Canvas 渲染模式(Render Mode)

  • Screen Space - Overlay:画布自动适应屏幕尺寸,不能调整 RectTransform 组件参数属性,UI 元素置于屏幕上方,不需要相机

  • Screen Space - Camera:画布自动适应屏幕尺寸,不能调整 RectTransform 组件参数属性,UI 元素的深度由 Plane Distance 决定

  • World Space:画布不自动适应屏幕尺寸,可以调整 RectTransform 组件参数属性

3 UGUI 控件

​ 在 Hierarchy 窗口右键,选择 UI 列表里的控件,即可创建 UGUI 控件。每个 UGUI 控件必须附着在 Canvas 里才能渲染,可以将多个 UGUI 控件放在一个 Canvas 里面渲染。

  • Text:文本框
  • Image:图框
  • RawImage:原图框
  • InputField:输入框
  • Button:按钮
  • Tooggle:选择框
  • Slider:滑动条
  • Scrollbar:滚动条
  • Dropdown:下拉菜单
  • Panal:面板

​ 选中创建的 UGUI 控件,按键盘【T】键,可以调整控件大小和位置。

4 RectTransform 组件

​ 每个 UGUI 控件都有一个 RectTransform 组件(继承 Transform),它定义了控件的锚点、相对锚点的位置、宽高、中心点、旋转、缩放等属性。

  • Left、Top、Right、Bottom:控件的 4 个顶点围成的边框相对 4 个锚点围成的边框的位置;
  • Width、Height:控件的宽高;
  • Anchors:锚点,每个控件有 4 个锚点,由于 4 个锚点围成的边框始终是矩形,所已只需记录左上角和右下角的 2 个锚点位置;
  • Pivot:中心点位相对置,配合旋转使用;
  • Rotation:旋转角度;
  • Scale:缩放;
  • PosX、PosY、PosZ:中心点绝对位置。

左上和右下锚点在斜线上(无重合)

左上和右下锚点在水平线上(水平拉伸)

左上和右下锚点在竖直线上(垂直拉伸)

左上和右下锚点重合(4合1)

5 锚点(Anchor)

​ 每个 RectTransform 组件中,都有锚点属性,用于限制控件大小、位置,便于适配不同屏幕尺寸。用户可以通过拖拽如下控件调整锚点位置,也可以在 RectTransform 属性面板里调整锚点位置。

​ 每个控件有 4 个顶点和 4 个锚点,它们之间一一对应,由于 4 个锚点围成的边框始终是矩形,所已只需记录左上角和右下角的 2 个锚点位置,锚点可能会重合,根据锚点的重合情况,有以下 4 种状态:

  • 左上和右下锚点在斜线上(无重合):当锚点位置随屏幕尺寸变化时,4 个顶点相对 4 个锚点的位置不变,控件会向四周拉伸;
  • 左上和右下锚点在水平线上(水平拉伸):当锚点位置随屏幕尺寸变化时,左边 2 个顶点相对左边锚点的位置不变,右边 2 个顶点相对右边锚点的位置不变,控件会水平拉伸;
  • 左上和右下锚点在竖直线上(垂直拉伸):当锚点位置随屏幕尺寸变化时,上边 2 个顶点相对上边锚点的位置不变,下边 2 个顶点相对下边锚点的位置不变,控件会垂直拉伸;
  • 左上和右下锚点重合(4合1):当锚点位置随屏幕尺寸变化时,4 个顶点随着锚点的位置一起移动,但相对锚点的位置不变,控件不会变形。

​ 用户可以在 RectTransform 属性面板选择锚点的重合状态以及锚点在屏幕中的位置,如下图:

​ 按住 Alt 键,同时调整控件在屏幕中的位置,如下图:

​ 读者可以查看 Unity3D API 文档里关于 Anchor 介绍的动图,依次选择【Help→Scripting Reference→Manual】打开API 文档,再依次选择【UI→Basic Layout】即可查看。笔者路径:[file:///D:/Program%20Files/Unity/Editor/Data/Documentation/en/Manual/UIBasicLayout.html](http://file///D:/Program Files/Unity/Editor/Data/Documentation/en/Manual/UIBasicLayout.html)。

​ 以下是官方 API 解释锚点的动图:

4 个锚点在屏幕中心重合

4 个锚点在屏幕右下角重合

左边 2 个锚点在屏幕左下角重合,右边 2 个锚点在屏幕右下角重合

左边 2 个锚点在屏幕底部控件下方重合,右边 2 个锚点在屏幕底部控件下方重合

​ 声明:本文转自【Unity3D】UGUI概述

【Unity3D】UGUI概述的更多相关文章

  1. Unity3d UGUI 通用Confirm确认对话框实现(Inventory Pro学习总结)

    背景 曾几何时,在Winform中,使用MessageBox对话框是如此happy,后来还有人封装了可以选择各种图标和带隐藏详情的MessageBox,现在Unity3d UGui就没有了这样的好事情 ...

  2. Unity3D UGUI之ScrollView弹簧效果

    unity3d版本5.3.2p4 UGUI中ScrollView包含Viewport(Content) ScrollView包含脚本.其Movement Type一共3个选项.Elastic就是弹簧效 ...

  3. Unity3D UGUI下拉菜单/Dropdown组件用法、总结

    Unity3D中UGUI实现下拉菜单 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  4. unity3d 材质概述 ---- shader

    学习笔记:      材质概述:  物体呈现在我们前面除了形体外,还包括“固有颜色”和“质地”(质感与光学性质).固有颜色让物体的表面看起来是什么颜色,而质感决定了该物质是使用什么材质的.在三维建模软 ...

  5. Unity3d uGUI适配

    Cavas: 1.Render Model设置为:Screen Space- Camera.如果想在UI前面加特效我可以在创建一个摄像机(UIForward)深度大于这个UICamera就行了. 2. ...

  6. Unity3D UGUI学习系列索引(暂未完成)

    U3D UGUI学习1 - 层级环境 U3D UGUI学习2 - Canvas U3D UGUI学习3 - RectTransform U3D UGUI学习4 - Text U3D UGUI学习5 - ...

  7. Unity3D UGUI窗口拖拽

    在开发UGUI时 我们时常需要做一个窗口拖拽的功能 先上代码 using UnityEngine; using UnityEngine.EventSystems; public class DragW ...

  8. Unity3D UGUI强制刷新Layout(布局)组件

    UGUI的Layout布局组件确实节省了我们很多代码 如果不使用Layout组件 那么光在计算UI的布局上就要花费很大的功夫 特别是动态生成其组件的时候 当然,Layout组件在大多数时候是非常好用的 ...

  9. Unity3D UGUI实现Toast

    项目中有些信息需要以Toast的形式体现出来,不需要交互,弹出后一段时间后消失,多个Toast会向上重叠,下面是一个UGUI Toast的实现,动画部份用到了Dotween来实现 首先需要制作Toas ...

  10. Unity3D — — UGUI之简易背包

    Uinity版本:2017.3 最近在学Siki老师的<黑暗之光RPG>教程,由于教程内用的是NGUI实现,而笔者本人用的是UGUI,所以在这里稍微写一下自己的实现思路(大致上和NGUI一 ...

随机推荐

  1. CDC设计实例-02

    CDC设计实例 加速器 假设要处理一项业务比如图像处理,有两种方向,第一种选择一些通用的处理器CPU\GPU\DSP等通用的处理器,第二种是将算法映射成IP,直接使用IP进行处理图像处理等专门的业务就 ...

  2. [转帖]TIKV扩容之刨坑填坑​

    01 背景 某tidb集群收到告警,TIKV 节点磁盘使用率85%以上,联系业务无法快速删除数据,于是想到扩容TIKV 节点,原先TIKV 节点机器都是6TB的硬盘,目前只有3TB的机器可扩,也担心r ...

  3. [转帖]Rocksdb的优劣及应用场景分析

      研究Rocksdb已经有七个月的时间了,这期间阅读了它的大部分代码,对底层存储引擎进行了适配,同时也做了大量的测试.在正式研究之前由于对其在本地存储引擎这个江湖地位的膜拜,把它想象的很完美,深入摸 ...

  4. [转帖]SIMD指令集 SSE/AVX

    SIMD指令集 SSE/AVX 概述 参考手册 Intel Intrinsics Guide Tommesani.com Docs Intel 64 and IA-32 Architectures S ...

  5. [转帖]rclone将本地文件或文件夹导入minio中

    1.背景:公司数据迁移涉及到文件迁移,原有文件服务器没有使用minio,但是现在的新系统使用了minio.所以这就需要我们将文件上传到minio文件服务器中:由于历史文件数据量大,甲方要求可以通过服务 ...

  6. [转帖] 记一次使用gdb诊断gc问题全过程

    记一次使用gdb诊断gc问题全过程   原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 上次解决了GC长耗时问题后,系统果然平稳了许多,这是之前的文章<G ...

  7. Sysbench的简单学习-编译与安装

    sysbench的简单学习-编译与安装 摘要 github上面获取一下最新版本 https://github.com/akopytov/sysbench 注意现在 2023.2.17 最新版是 sys ...

  8. python批量上传文件到七牛云

    导航 引子 棘手的需求 化繁为简 实战案例 结语 参考 本文首发于智客工坊-<python批量上传文件到七牛云>,感谢您的阅读,预计阅读时长3min. 古之立大事者,不惟有超世之才,亦必有 ...

  9. 第二届数字化经济与管理科学国际学术会议(CDEMS 2024)

    [经济&管理|录用率高]第二届数字化经济与管理科学国际学术会议(CDEMS 2024) 2024 2nd International Conference on Digital Economy ...

  10. 强化学习从基础到进阶--案例与实践[7.1]:深度确定性策略梯度DDPG算法、双延迟深度确定性策略梯度TD3算法详解项目实战

    强化学习从基础到进阶--案例与实践[7.1]:深度确定性策略梯度DDPG算法.双延迟深度确定性策略梯度TD3算法详解项目实战 1.定义算法 1.1 定义模型 !pip uninstall -y par ...