Unity3D学习之UI系统——UGUI

文章目录

  • [1. 前言](#1. 前言)
  • [2 六大基础组件概述](#2 六大基础组件概述)
  • [3 Canvas------渲染模式的控制](#3 Canvas——渲染模式的控制)
    • [3.1 Canvas作用](#3.1 Canvas作用)
    • [3.2 Canvas的渲染模式](#3.2 Canvas的渲染模式)
      • [3.2.1 Screen Space -Overlay 覆盖模式](#3.2.1 Screen Space -Overlay 覆盖模式)
      • [3.2.2 Screen Space - Camera 摄像机模式](#3.2.2 Screen Space - Camera 摄像机模式)
      • [3.2.3 World Space](#3.2.3 World Space)
  • [4 CanvasScaler ------画布缩放控制器](#4 CanvasScaler ——画布缩放控制器)
    • [4.1 Constant Pixel Size 恒定像素模式](#4.1 Constant Pixel Size 恒定像素模式)
    • [4.2 Scale With Screen Size 缩放模式](#4.2 Scale With Screen Size 缩放模式)
    • [4.3 Constant Physical Size 恒定物理模式](#4.3 Constant Physical Size 恒定物理模式)
    • [4.4 3D模式](#4.4 3D模式)
  • [5 Graphic Raycaster图形射线投射器](#5 Graphic Raycaster图形射线投射器)
  • [6 EventSystem和Standalone Input Module](#6 EventSystem和Standalone Input Module)
  • [7 RectTransform](#7 RectTransform)
  • [8 三大基础控件](#8 三大基础控件)
    • [8.1 Image 图像控件](#8.1 Image 图像控件)
    • [8.2 Text 文本控件](#8.2 Text 文本控件)
    • [8.3 RawImage 原始图像控件](#8.3 RawImage 原始图像控件)
  • [9 组合控件](#9 组合控件)
    • [9.1 Button 按钮](#9.1 Button 按钮)
      • [9.1.1 代码控制](#9.1.1 代码控制)
      • [9.1.2 监听点击事件的两种方式](#9.1.2 监听点击事件的两种方式)
    • [9.2 Toggle 开关控件](#9.2 Toggle 开关控件)
      • [9.2.1 代码控制](#9.2.1 代码控制)
      • [9.2.2 监听事件](#9.2.2 监听事件)
    • [9.3 InputField 文本输入控件](#9.3 InputField 文本输入控件)
      • [9.3.1 代码控制](#9.3.1 代码控制)
      • [9.3.2 事件监听](#9.3.2 事件监听)
    • [9.4 Slider 滑动条控件](#9.4 Slider 滑动条控件)
      • [9.4.1 代码控制](#9.4.1 代码控制)
      • [9.4.2 事件监听](#9.4.2 事件监听)
    • [9.5 ScrollBar 滚动条](#9.5 ScrollBar 滚动条)
    • [9.6 ScrollView 滚动视图](#9.6 ScrollView 滚动视图)
      • [9.6.1 代码控制](#9.6.1 代码控制)
    • [9.7 Dropdown 下拉列表控件](#9.7 Dropdown 下拉列表控件)
  • [10 图集制作](#10 图集制作)
  • [11 UI事件监听接口](#11 UI事件监听接口)
    • [11.1 继承接口和函数](#11.1 继承接口和函数)
    • [11.2 事件监听父类](#11.2 事件监听父类)
    • [11.3 练习题](#11.3 练习题)
  • [12 EventTrigger 事件触发器](#12 EventTrigger 事件触发器)
    • [12.1 练习题](#12.1 练习题)
  • [13 屏幕坐标转UI相对坐标](#13 屏幕坐标转UI相对坐标)
    • [13.1 练习题](#13.1 练习题)
  • [14 Mask遮罩](#14 Mask遮罩)
  • [15 模型和粒子显示在UI之前](#15 模型和粒子显示在UI之前)
    • [15.1 3D模型在UI之前](#15.1 3D模型在UI之前)
    • [15.2 粒子特效在UI之前](#15.2 粒子特效在UI之前)
  • [16 异形按钮](#16 异形按钮)
  • [17 自动布局组件](#17 自动布局组件)
    • [17.1 布局属性](#17.1 布局属性)
    • [17.2 水平垂直布局组件](#17.2 水平垂直布局组件)
    • [17.3 水平布局组件](#17.3 水平布局组件)
    • [17.4 网格布局组件](#17.4 网格布局组件)
    • [17.5 内容大小适配器](#17.5 内容大小适配器)
    • [17.6 宽高比适配器](#17.6 宽高比适配器)
  • [18 画布组Canvas Group](#18 画布组Canvas Group)
  • [19 UGUI源代码](#19 UGUI源代码)

1. 前言


2 六大基础组件概述


3 Canvas------渲染模式的控制

3.1 Canvas作用

3.2 Canvas的渲染模式

3.2.1 Screen Space -Overlay 覆盖模式

3.2.2 Screen Space - Camera 摄像机模式

创建专门的摄像机渲染UI

并让主摄像机不渲染UI层

3.2.3 World Space

4 CanvasScaler ------画布缩放控制器

宽高 * 缩放系数 = UI界面大小

参考分辨率

4.1 Constant Pixel Size 恒定像素模式

图片格式要改为Sprite

恒定像素模式计算公式

4.2 Scale With Screen Size 缩放模式


会根据当前分辨率 和 参考分辨率的比率自动计算UI的缩放量






4.3 Constant Physical Size 恒定物理模式


4.4 3D模式

5 Graphic Raycaster图形射线投射器


6 EventSystem和Standalone Input Module




7 RectTransform



获得参数

8 三大基础控件

8.1 Image 图像控件




8.2 Text 文本控件


富文本

8.3 RawImage 原始图像控件



9 组合控件

9.1 Button 按钮




9.1.1 代码控制

9.1.2 监听点击事件的两种方式

1) 托脚本

2) 代码监控

9.2 Toggle 开关控件


只要三个的toggle group属于同一个Group,就变成了单选框

9.2.1 代码控制

9.2.2 监听事件


9.3 InputField 文本输入控件




9.3.1 代码控制

9.3.2 事件监听



9.4 Slider 滑动条控件



9.4.1 代码控制

9.4.2 事件监听

9.5 ScrollBar 滚动条


9.6 ScrollView 滚动视图

9.6.1 代码控制




10 图集制作



UGUI查看DrawCall

11 UI事件监听接口



11.1 继承接口和函数

拖入相关的

11.2 事件监听父类

11.3 练习题

长按按钮脚本,提供两个事件给外部,让外部进行处理




12 EventTrigger 事件触发器





12.1 练习题




关联函数

设置向量长度为遥感能移动的长度



13 屏幕坐标转UI相对坐标

13.1 练习题


14 Mask遮罩



maskable要钩勾上

是否显示遮罩的图

15 模型和粒子显示在UI之前

15.1 3D模型在UI之前

这部分在Camere前面有

还有另一个方法

通过图片显示

使用一个单独的摄像机渲染该层,然后转化成照片

拖入到taget camera

在UI里创建RawImage

15.2 粒子特效在UI之前

粒子特效和3D物体基本一致

16 异形按钮

点击图片按钮的空白区域也会响应,所以要设置异性按钮


改变点击后影响的控件 target Graphic

通过代码改变图片的透明度

17 自动布局组件

17.1 布局属性


17.2 水平垂直布局组件

给父对象添加


设置之后会自动调节子对象的大小

会是否强制扩展子对象

添加 Layout Element 组件,规则会按布局元素进行设置,

父对象最小后,会按子对象的大小显示

父对象变大后,会出现上图情景

17.3 水平布局组件

和垂直布局差不多

17.4 网格布局组件

添加后


17.5 内容大小适配器



和ScrollView配合使用

17.6 宽高比适配器

18 画布组Canvas Group

在panel 组件 添加,管理画布中所有的组件

19 UGUI源代码

相关推荐
ling___xi5 小时前
《计算机网络》计网3小时期末速成课各版本教程都可用谢稀仁湖科大版都可用_哔哩哔哩_bilibili(笔记)
网络·笔记·计算机网络
星火开发设计5 小时前
类型别名 typedef:让复杂类型更简洁
开发语言·c++·学习·算法·函数·知识
Gorgous—l6 小时前
数据结构算法学习:LeetCode热题100-多维动态规划篇(不同路径、最小路径和、最长回文子串、最长公共子序列、编辑距离)
数据结构·学习·算法
中屹指纹浏览器6 小时前
中屹指纹浏览器底层架构深度解析——基于虚拟化的全维度指纹仿真与环境隔离实现
经验分享·笔记
Hello_Embed6 小时前
libmodbus 移植 STM32(基础篇)
笔记·stm32·单片机·学习·modbus
无聊的小坏坏7 小时前
实习笔记:用 /etc/crontab 实现定期数据/日志清理
笔记·实习日记
香芋Yu7 小时前
【机器学习教程】第04章 指数族分布
人工智能·笔记·机器学习
●VON7 小时前
Flutter for OpenHarmony 21天训练营 Day03 总结:从学习到输出,迈出原创第一步
学习·flutter·openharmony·布局·技术
香芋Yu7 小时前
【大模型教程——第四部分:大模型应用开发】第1章:提示工程与上下文学习 (Prompt Engineering & ICL)
学习·prompt
LYS_06187 小时前
寒假学习10(HAL库1+模数电10)
学习