UG3L10——图集制作
UG3L10——图集制作
Unity核心里对该部分已经有所讲解 ——> Sprite Atlas
为什么要打图集
UGUI和NGUI使用上最大的不同是 NGUI使用前就要打图集
UGUI可以再之后再打图集
打图集的目的就是减少DrawCall 提高性能
具体DrawCall是什么在NGUI课程中已经详细讲解
简单回顾DrawCall
DrawCall就是CPU通知GPU进行一次渲染的命令
如果DrawCall次数较多会导致游戏卡顿
我们可以通过打图集,将小图合并成大图,将本应n次的DrawCall变成1次DrawCall来提高性能
在Unity中打开自带的打图集功能
Unity核心里已经有所讲解 ——> Sprite Atlas
在工程设置面板中打开功能
Edit——>Project Setting——>Editor
Sprite Packer(精灵包装器,可以通过Unity自带图集工具生成图集)
Disabled:默认设置,不会打包图集
Enabled For Builds(Legacy Sprite Packer):Unity仅在构建时打包图集,在编辑模式下 ...
UG3L9——Dropdown 下拉列表
UG3L9——Dropdown 下拉列表
Dropdown
DropDown是下拉列表(下拉选单)组件
是UGUI中用于处理下拉列表相关交互的关键组件
默认创建的DropDown由4组对象组成
父对象
DropDown组件依附的对象 还有一个Image组件 作为背景图
子对象
Label是当前选项描述
Arrow右侧小箭头
Template下拉列表选单
本章代码关键字
123456Dropdown //下拉列表类dropdown.value //下拉列表的索引值Dropdown.OptionData //下拉列表内部的选项类dropdown.options[dropdown.value] //下拉列表的选项列表,通过索引值获取单个选项dropdown.options.Add() //向下拉列表添加选项dropdown.onValueChanged.A ...
UG3L8——ScrollView 滚动视图
UG3L8——ScrollView 滚动视图
ScrollRect
ScrollRect是滚动视图组件
是UGUI中用于处理滚动视图相关交互的关键组件
默认创建的ScrollRect由4组对象组成
父对象——ScrollRect组件依附的对象 还有一个Image组件 最为背景图
子对象
Viewport控制滚动视图可视范围和内容显示
Scrollbar Horizontal 水平滚动条
Scrollbar Vertical 垂直滚动条
本章代码关键字
1234ScrollRect //滚动视图类scrollRect.content.sizeDelta //设置改变内容的大小 具体可以拖动多少 都是根据它的尺寸来的scrollRect.normalizedPosition //ScrollView的归一化位置,即滚动视图在content的哪个位置scrollRect.onValueChanged.AddListener() //添加当滚动视图改变时的监听函数 ...
UG3L7——ScrollBar 滚动条
UG3L7——ScrollBar 滚动条
ScrollBar
Scrollbar是滚动条组件
是UGUI中用于处理滚动条相关交互的关键组件
默认创建的Scrollbar由2组对象组成
父对象——Scrollbar组件依附的对象
子对象——滚动块对象
一般情况下我们不会单独使用滚动条
都是配合ScrollView滚动视图来使用
本章代码关键字
12Scrollbar //滚动条类scrollbar.onValueChanged.AddListener() //添加当滚动条值改变时执行的函数
ScrollBar 参数相关
Interactable:是否接受输入
Transition:响应用户输入的过渡效果
Navigation:导航模式,可以设置UI元素如何在播放模式中控制器导航
FillRect:用于填充的进度条图形
Handle Rect:用于滑动的滑动块图形
Direction:滑动条值增加的方向
Left To Right:从左到右
Right To Left:从右到左
Botto ...
UG3L6——Slider 滑动条
UG3L6——Slider 滑动条
Slider
Slider是滑动条组件
是UGUI中用于处理滑动条相关交互的关键组件
默认创建的Slider由4组对象组成
父对象——Slider组件依附的对象
子对象——背景图、进度图、滑动块三组对象
本章代码关键字
123Slider //滑动条类slider.onValueChanged.AddListener() //传入当滑动条值改变时执行的函数slider.interactable //是否接受输入
Slider 参数相关
Interactable:是否接受输入
Transition:响应用户输入的过渡效果
Navigation:导航模式,可以设置UI元素如何在播放模式中控制器导航
FillRect:用于填充的进度条图形
Handle Rect:用于滑动的滑动块图形
Direction:滑动条值增加的方向
Left To Right:从左到右
Right To Left:从右到左
Bottom To ...
UG3L5——InputField 文本输入
UG3L5——InputField 文本输入
InputField
InputField是输入字段组件
是UGUI中用于处理玩家文本输入相关交互的关键组件
默认创建的InputField由3个对象组成
父对象——InputField组件依附对象 以及 同时在其上挂载了一个Image作为背景图
子对象——文本显示组件(必备)、默认显示文本组件(必备)
本章代码关键字
1234Inputfield //文本输入控件类inputfield.onValueChanged.AddListener() //传入当文字改变时执行的函数inputfield.onSubmit.AddListener() //传入当确认输入时执行的函数inputfield.onEndEdit.AddListener() //传入当退出输入时执行的函数
InputField 参数相关
Interactable:是否接受输入
Transition:响应用户输入的过渡效果
Navigation:导航模式,可 ...
UG3L4——Toggle 单选框
UG3L4——Toggle 单选框
Toggle
Toggle 是开关组件,是UGUI中用于处理玩家单选框多选框相关交互的关键组件
开关组件 默认是多选框,可以通过配合 ToggleGroup 组件制作为单选框
默认创建的Toggle由4个对象组成
父对象 —— Toggle组件依附
子对象 —— 背景图(必备)、选中图(必备)、说明文字(可选)
本章代码关键字
12345Toggle //单选框类ToggleGroup //单选框组合类toggle.isOn //是否处于激活状态toggleGroup.ActiveToggles() //该方法是迭代器,通过foreach循环可以得到该toggleGroup下哪个toggle是激活的toggle.onValueChanged.AddListener() //向toggle添加当toggle选中情况变化时执行的函数
Toggle ...
UG3L3——Button 按钮
UG3L3——Button 按钮
Button
Button 是按钮组件
是UGUI中用于处理玩家按钮相关交互的关键组件
默认创建的 Button 由2个对象组成
父对象 —— Button 组件依附于父对象 同时挂载了一个 Image 组件 作为按钮背景图
子对象 —— 按钮文本(可选)
本章代码关键字
1234Button //按钮类button.onClick.AddListener() //向按钮添加监听函数button.onClick.RemoveListener() //移除按钮的指定监听函数button.onClick.RemoveAllListeners() //移除按钮的全部监听函数
Button 参数相关
Interactable:是否接受输入
Transition:响应用户输入的过渡效果
None:没有状态变化效果
ColorTint:用颜色表示不同状态的变化
TargetGraphic:控制的目标图形
Normal Colo ...
UG3L2-3——RawImage 原始图像
UG3L2-3——RawImage 原始图像
RawImage
RawImage是原始图像组件,是UGUI中用于显示任何纹理图片的关键组件,它可以显示包括但不限于Sprite类型的贴图
它和Image的区别是,一般RawImage用于显示大图(背景图,不需要打入图集的图片,网络下载的图等等)
本章代码关键字
123RawImage //RawImage的类rawImage.texture //修改RawImage显示的图片rawImage.uvRect //修改rawImage的UI矩形的偏移和大小
RawImage 参数相关
RawImage的Texture显示图片的格式并不要求是Sprite类型的
Texture:图像纹理
UV Rect:图像在UI矩形内的偏移和大小
位置偏移X和Y(取值0~1) 大小偏移W和H(取值0~1)
改变他们图像边缘将进行拉伸来填充UV矩形周围的空间
代码控制RawIamge
代码更新大图
12RawImage rawImage = this.GetComponent<RawImage>();r ...
UG3L2-2——Text 文本
UG3L2-2——Text 文本
注意!
这里讲解的是旧 Text 控件,而不是 Text Mesh Pro,关于 Text Mesh Pro,详见:U4S5——Text Mesh Pro
从 Unity 2020 版本开始,UGUI 默认的文本控件变成了 Text Mesh Pro,而以前的版本被放入了Legacy(旧版)内
我们还可以在 Legacy 页签中,创建老的 Text 文本控件
Text
Text 是文本组件,是 UGUI 中用于显示文本的关键组件
本章代码关键字
12Text //Text类text.text //text的显示文本
Text 参数相关
注意,Text 经常会挡住 Button 等UI,所以,记得关闭 Raycast Target,即关闭射线检测
Text:文本显示内容
Font:字体
FontStyle:字体样式
Normal:普通
Bold:加粗
Italic:斜体
Bold And Italic:加粗 + 斜体
Font Size:字体大小
Line Spacing:行之间的垂直间距 ...