Unity3D学习之UI系统——NGUI

文章目录

  • 1. 前言
  • 2 NGUI下载和导入
  • 3. NGUI三大组件
    • 3.1 Root组件
      • 3.1.1 分辨率概念
      • 3.1.2 Root的作用
      • 3.1.3 root脚本各组件
      • 3.1.4 总结
    • 3.2 Panel 组件
      • 3.2.1 Panel的作用
      • 3.2.2 Panel的控件
      • 3.2.3 总结
    • 3.3 EventSystem组件
      • 3.3.1 作用
      • 3.3.2 组件
      • 3.3.3 总结
  • 4 图集制作
    • 4.1 图集的作用
    • 4.2 打开图集制作工具
    • 4.3 新建图集
  • 5 三大基础控件
    • 5.1 Sprite 精灵图片
      • 5.1.1 创建Sprite
      • 5.1.2 Sprite 控件
      • 5.1.3 在代码中的Sprite
    • 5.2 Label文本控件
      • 5.2.1 创建Label
      • 5.2.2 Label控件
      • 5.2.3 代码控制
    • 5.3 Texture 大图控件
  • 6 组合控件
    • 6.1 Button组件
      • 6.1.1 添加Sprite组件
      • 6.1.2 添加Button脚本
      • 6.1.3 添加碰撞器
      • 6.1.4 组合
      • 6.1.5 button组件参数
      • 6.1.6 监听点击事件
      • 6.1.7 总结
    • 6.2 Toggle单选多选框
      • 6.2.1 创建toggle
      • 6.2.2 toggle控件
      • 6.2.3 监听事件
    • 6.3 Input文本输入
      • 6.3.1 Input文本创建
      • 6.3.2 Input组件
      • 6.3.3 监听事件的两种方式
    • 6.4 PopupList 下拉列表组件
      • 6.4.1 制作PopupList
      • 6.4.2 组件相关
      • 6.4.3 选择相关
      • 6.4.4 监听事件
    • 6.5 Slider滑动条控件
      • 6.5.1 创建
      • 6.5.2 参数
      • 6.5.3 监听函数
    • 6.6 ScrollBar 滚动条 和 ProgressBar进度条
      • 6.6.1 制作ScrollBar 滚动条
      • 6.6.2 制作 ProgressBar进度条
    • 6.7 ScrollView 滚动视图
      • 6.7.1 制作ScrollView
      • 6.7.2 ScrollView组件
      • 6.7.3 自动对齐脚本Grid
    • 6.8 Anchor 锚点组件
      • 6.8.1 老版本中(了解)
      • 6.8.2 新版本基础控件自带锚点信息
  • 7 NGUI进阶
    • 7.1 EventListener
    • 7.2 EventTrigger
    • 7.3 DrawCall
      • 7.3.1 如何降低DrawCall
    • 7.4 NGUI字体
      • 7.4.1 制作NGUI字体
      • 7.4.2 通过bmfont64 制作
      • 7.4.3 选择Unity字体和NGUI字体
    • 7.5 NGUI 缓动
      • 7.5.2 缓动参数
      • 7.5.3 输入事件和缓动关联PlayTween
    • 7.6 NGUI中显示3D模型和粒子特效
      • 7.6.1 用UI摄像机渲染
      • 7.6.2 用Render Texture渲染
      • 7.6.3 显示粒子特效
    • 7.7 NGUI 音效
    • 7.8 按键绑定
    • 7.9 PC端 tab键快速切换选中
    • 7.10 本地化


1. 前言

Unity3D学习之UI系统——NGUI_第1张图片

2 NGUI下载和导入

资源商店搜索
Unity3D学习之UI系统——NGUI_第2张图片
学习版自行搜索
在这里插入图片描述
Unity3D学习之UI系统——NGUI_第3张图片
导入即可
创建UI
在这里插入图片描述

3. NGUI三大组件

Unity3D学习之UI系统——NGUI_第4张图片
创建NGUI后,挂载在UI Root 和其 子Camera的脚本
Unity3D学习之UI系统——NGUI_第5张图片
Unity3D学习之UI系统——NGUI_第6张图片

3.1 Root组件

分辨率自适应模式的基础

3.1.1 分辨率概念

Unity3D学习之UI系统——NGUI_第7张图片
Unity3D学习之UI系统——NGUI_第8张图片

3.1.2 Root的作用

Unity3D学习之UI系统——NGUI_第9张图片

3.1.3 root脚本各组件

Unity3D学习之UI系统——NGUI_第10张图片
Minimun Height 和 Maximum Height
用于拖动窗口时,如果窗口变得很小了,UI不缩放的话,会挡住游戏,使用Flexible模式用于解决该问题,会在小于或着大于这两个值的时候,进行等比缩放

Shrink Portrait UI 竖屏时按宽度来适配

Adjust by DPI 勾选就是

Unity3D学习之UI系统——NGUI_第11张图片
Content Width 和 Content Height 是自适应屏幕时默认的分辨率
不勾选Fit 时 会裁剪,不会有黑边,始终会有UI填充屏幕
勾选Height 画布总是跟着屏幕高度缩放 (横屏游戏
勾选Width 画布总是跟着屏幕宽度缩放 (竖屏游戏
在这里插入图片描述

3.1.4 总结

Unity3D学习之UI系统——NGUI_第12张图片

3.2 Panel 组件

3.2.1 Panel的作用

管理渲染相关内容
Unity3D学习之UI系统——NGUI_第13张图片

3.2.2 Panel的控件

Unity3D学习之UI系统——NGUI_第14张图片
Depth 控制层级,层级越高的遮挡层级低的。要注意不同Panel最好不要在一个层级
Clipping 通过参数裁剪
Unity3D学习之UI系统——NGUI_第15张图片

Unity3D学习之UI系统——NGUI_第16张图片
排序层之后再讲
Unity3D学习之UI系统——NGUI_第17张图片

3.2.3 总结

Unity3D学习之UI系统——NGUI_第18张图片

3.3 EventSystem组件

3.3.1 作用

Unity3D学习之UI系统——NGUI_第19张图片

3.3.2 组件

Unity3D学习之UI系统——NGUI_第20张图片

UI模式是根据组件深度处理事件
World模式 根据距离著摄像机的远近来响应排序(这两个的主要区别在 眼睛看到在前面的,进行交互时UI模式点击看起来在被前面的窗口压在后面的,但被压在的那一层层级更高,会先相应被压在下面的UI)

EventMask 决定哪个层级接受事件
Unity3D学习之UI系统——NGUI_第21张图片
Debug就是测试时,你点击这个UI,会打印出来交互的时什么对象

Unity3D学习之UI系统——NGUI_第22张图片

3.3.3 总结

Unity3D学习之UI系统——NGUI_第23张图片

4 图集制作

4.1 图集的作用

Unity3D学习之UI系统——NGUI_第24张图片

4.2 打开图集制作工具

Unity3D学习之UI系统——NGUI_第25张图片
Unity3D学习之UI系统——NGUI_第26张图片

4.3 新建图集

点击New 新建

Unity3D学习之UI系统——NGUI_第27张图片
选择 加入图集的文件
Unity3D学习之UI系统——NGUI_第28张图片
创建图集,一般存放在Resources文件夹内,方便读取
Unity3D学习之UI系统——NGUI_第29张图片
有三个文件
1.图集文件
2.图集材质
3.图集图片

Unity3D学习之UI系统——NGUI_第30张图片

5 三大基础控件

Unity3D学习之UI系统——NGUI_第31张图片
公共内容
Unity3D学习之UI系统——NGUI_第32张图片

5.1 Sprite 精灵图片

在这里插入图片描述

5.1.1 创建Sprite

方式1
Unity3D学习之UI系统——NGUI_第33张图片
方式2
Unity3D学习之UI系统——NGUI_第34张图片

5.1.2 Sprite 控件

Unity3D学习之UI系统——NGUI_第35张图片
Atlas 选择图集
Sprite选择图集中的图片
Fiexed Aspect保持宽高比

sliced模式
点击Edit
Unity3D学习之UI系统——NGUI_第36张图片
拉伸Border,会根据九宫格进行拉伸。保证四个角不变化,只会拉伸中间的十字区域
Unity3D学习之UI系统——NGUI_第37张图片
Tiled 平铺模式
图片会重复绘制
Unity3D学习之UI系统——NGUI_第38张图片

Filled 填充模式
填充模式用于制作进度条、血条
Unity3D学习之UI系统——NGUI_第39张图片

Unity3D学习之UI系统——NGUI_第40张图片

5.1.3 在代码中的Sprite

在这里插入图片描述

Unity3D学习之UI系统——NGUI_第41张图片

5.2 Label文本控件

Unity3D学习之UI系统——NGUI_第42张图片

5.2.1 创建Label

NGUI - create - Lable

5.2.2 Label控件

Unity3D学习之UI系统——NGUI_第43张图片
Unity3D学习之UI系统——NGUI_第44张图片
shrink Content
Unity3D学习之UI系统——NGUI_第45张图片

Calmp Content
Unity3D学习之UI系统——NGUI_第46张图片
Resize freely
Unity3D学习之UI系统——NGUI_第47张图片

Unity3D学习之UI系统——NGUI_第48张图片

Unity3D学习之UI系统——NGUI_第49张图片
Unity3D学习之UI系统——NGUI_第50张图片
给Lable增加碰撞器,然后点击超链接可以转到超链接的网之
在这里插入图片描述
Unity3D学习之UI系统——NGUI_第51张图片

5.2.3 代码控制

Unity3D学习之UI系统——NGUI_第52张图片

Unity3D学习之UI系统——NGUI_第53张图片

5.3 Texture 大图控件

Unity3D学习之UI系统——NGUI_第54张图片

6 组合控件

Unity3D学习之UI系统——NGUI_第55张图片

6.1 Button组件

6.1.1 添加Sprite组件

Unity3D学习之UI系统——NGUI_第56张图片

6.1.2 添加Button脚本

Unity3D学习之UI系统——NGUI_第57张图片

6.1.3 添加碰撞器

Unity3D学习之UI系统——NGUI_第58张图片
Unity3D学习之UI系统——NGUI_第59张图片

6.1.4 组合

在这里插入图片描述
Unity3D学习之UI系统——NGUI_第60张图片

Unity3D学习之UI系统——NGUI_第61张图片

6.1.5 button组件参数

Unity3D学习之UI系统——NGUI_第62张图片
Transition 过渡时间 从某一个颜色编导另外一个颜色所需要的时间
Sprite 可以设置各个状态时的效果

6.1.6 监听点击事件

Unity3D学习之UI系统——NGUI_第63张图片
把Panel(挂载脚本的组件)拖入到button 的on click中
Unity3D学习之UI系统——NGUI_第64张图片

然后在Method选择 需要使用的函数
Unity3D学习之UI系统——NGUI_第65张图片
在这里插入图片描述
点击后
在这里插入图片描述
如果方法是私有,会找不到
同时可以添加多个监听函数
Unity3D学习之UI系统——NGUI_第66张图片
使用代码获得按钮对象监听

Unity3D学习之UI系统——NGUI_第67张图片
拖入
Unity3D学习之UI系统——NGUI_第68张图片
在这里插入图片描述
使用拉姆达表达式
在这里插入图片描述

Unity3D学习之UI系统——NGUI_第69张图片

6.1.7 总结

Unity3D学习之UI系统——NGUI_第70张图片

6.2 Toggle单选多选框

6.2.1 创建toggle

Unity3D学习之UI系统——NGUI_第71张图片
Unity3D学习之UI系统——NGUI_第72张图片
增加脚本和碰撞器
Unity3D学习之UI系统——NGUI_第73张图片

6.2.2 toggle控件

Unity3D学习之UI系统——NGUI_第74张图片
关联选中时的图片
Unity3D学习之UI系统——NGUI_第75张图片
加入Sprite后
未选中
Unity3D学习之UI系统——NGUI_第76张图片
选中
Unity3D学习之UI系统——NGUI_第77张图片

Starting state 一开始的选中状态
Invert State 反转状态

Group 多选框分组
Unity3D学习之UI系统——NGUI_第78张图片
如果只能选择一个
可以设置为同一个Group
在这里插入图片描述
State of None是这个Group必须要选中一个
Unity3D学习之UI系统——NGUI_第79张图片

6.2.3 监听事件

创建一个Panel用于挂载脚本
然后再Toggle上拖入函数
Unity3D学习之UI系统——NGUI_第80张图片

Unity3D学习之UI系统——NGUI_第81张图片
在这里插入图片描述
如何知道哪一个Toggle选中,可以在Panel的脚本中设声明三个Sprite变量关联
Unity3D学习之UI系统——NGUI_第82张图片

Unity3D学习之UI系统——NGUI_第83张图片
然后给所有的Toggle关联Panel

分别选中
Unity3D学习之UI系统——NGUI_第84张图片
代码监听

Unity3D学习之UI系统——NGUI_第85张图片
在这里插入图片描述
在这里插入图片描述

6.3 Input文本输入

6.3.1 Input文本创建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.3.2 Input组件

Unity3D学习之UI系统——NGUI_第86张图片

拖入Label
在这里插入图片描述
Input type
在这里插入图片描述

Unity3D学习之UI系统——NGUI_第87张图片
Unity3D学习之UI系统——NGUI_第88张图片

6.3.3 监听事件的两种方式

Unity3D学习之UI系统——NGUI_第89张图片
在这里插入图片描述
Unity3D学习之UI系统——NGUI_第90张图片
Panel装载脚本,关联Input的Sprite
Unity3D学习之UI系统——NGUI_第91张图片
input脚本里关联Panel的函数

Unity3D学习之UI系统——NGUI_第92张图片

测试的时候把回车改成提交

在这里插入图片描述
Unity3D学习之UI系统——NGUI_第93张图片
Unity3D学习之UI系统——NGUI_第94张图片

6.4 PopupList 下拉列表组件

如此类似的
Unity3D学习之UI系统——NGUI_第95张图片

6.4.1 制作PopupList

Unity3D学习之UI系统——NGUI_第96张图片
在这里插入图片描述
在这里插入图片描述

6.4.2 组件相关

Unity3D学习之UI系统——NGUI_第97张图片
Unity3D学习之UI系统——NGUI_第98张图片
选项 空一行一个组件
Unity3D学习之UI系统——NGUI_第99张图片
如果设置了之后没有反应,首先设置一下字体

Unity3D学习之UI系统——NGUI_第100张图片
出现了三个,很奇怪后面的参数可以设置
在这里插入图片描述

Unity3D学习之UI系统——NGUI_第101张图片
Unity3D学习之UI系统——NGUI_第102张图片

6.4.3 选择相关

选择这个脚本
Unity3D学习之UI系统——NGUI_第103张图片
在这里插入图片描述
在这里插入图片描述

6.4.4 监听事件

在这里插入图片描述
在这里插入图片描述
和之前一样的套路Panel挂载脚本,popupList关联事件
Unity3D学习之UI系统——NGUI_第104张图片
在这里插入图片描述
在这里插入图片描述
Unity3D学习之UI系统——NGUI_第105张图片
新加选项
在这里插入图片描述
Unity3D学习之UI系统——NGUI_第106张图片

6.5 Slider滑动条控件

在这里插入图片描述

6.5.1 创建

Unity3D学习之UI系统——NGUI_第107张图片
在这里插入图片描述
在这里插入图片描述
NGUI的Slider是添加到背景的这个Sprite上
但是碰撞器 添加到 背景的Sprite上,用户按和拖动滑块都能进行移动,如果碰撞器 添加到 滑块的Sprite 上,用户只能通过拖动滑块进行移动

6.5.2 参数

Unity3D学习之UI系统——NGUI_第108张图片
steps 会等分成十份

6.5.3 监听函数

和其他控件一样,就一笔带过了
Unity3D学习之UI系统——NGUI_第109张图片

Unity3D学习之UI系统——NGUI_第110张图片
Unity3D学习之UI系统——NGUI_第111张图片
Unity3D学习之UI系统——NGUI_第112张图片

6.6 ScrollBar 滚动条 和 ProgressBar进度条

在这里插入图片描述在这里插入图片描述

6.6.1 制作ScrollBar 滚动条

Unity3D学习之UI系统——NGUI_第113张图片
在这里插入图片描述

在这里插入图片描述

6.6.2 制作 ProgressBar进度条

Unity3D学习之UI系统——NGUI_第114张图片
Unity3D学习之UI系统——NGUI_第115张图片
在这里插入图片描述

6.7 ScrollView 滚动视图

Unity3D学习之UI系统——NGUI_第116张图片

6.7.1 制作ScrollView

Unity3D学习之UI系统——NGUI_第117张图片
在这里插入图片描述
子对象添加Drag Scorll View和碰撞器
Unity3D学习之UI系统——NGUI_第118张图片

6.7.2 ScrollView组件

Unity3D学习之UI系统——NGUI_第119张图片
Panel主要用于设置范围

Unity3D学习之UI系统——NGUI_第120张图片
改变可视范围
Unity3D学习之UI系统——NGUI_第121张图片
MoveMent 水平移动或者竖直移动
设置只能水平或者垂直 或者自由(左右都行
拖动
Unity3D学习之UI系统——NGUI_第122张图片
Drag Effect 类似于惯性 和 弹性 的效果

ScrollWheel Factor 滚动因子 滚动速度和方向
Unity3D学习之UI系统——NGUI_第123张图片
Momentum Amount动量 设置惯性大小
Sppring Strength 弹力大小
Dampen Strength 阻尼强度
Cancel Drag if fits 如果 内容没有超过 可视范围,决定此时能不能拖动

滚动条相关
Unity3D学习之UI系统——NGUI_第124张图片

自行设置,只要关联了,就会自动设置拖动条,运行前会自己计算Unity3D学习之UI系统——NGUI_第125张图片

6.7.3 自动对齐脚本Grid

为 ScrollView添加Grid脚本 自动对齐
Unity3D学习之UI系统——NGUI_第126张图片
Unity3D学习之UI系统——NGUI_第127张图片
Unity3D学习之UI系统——NGUI_第128张图片

手动排序
Unity3D学习之UI系统——NGUI_第129张图片
通过代码移除物品 更新滚动条
在这里插入图片描述

6.8 Anchor 锚点组件

Unity3D学习之UI系统——NGUI_第130张图片

6.8.1 老版本中(了解)

create 一个Anchor
Unity3D学习之UI系统——NGUI_第131张图片
Unity3D学习之UI系统——NGUI_第132张图片

6.8.2 新版本基础控件自带锚点信息

Unity3D学习之UI系统——NGUI_第133张图片
各大小是屏幕的
Unity3D学习之UI系统——NGUI_第134张图片
如果希望始终处于屏幕左上角
Unity3D学习之UI系统——NGUI_第135张图片
右上角
Unity3D学习之UI系统——NGUI_第136张图片
右中
Unity3D学习之UI系统——NGUI_第137张图片

7 NGUI进阶

NGUI提供了一些自带的函数,在挂载脚本时,NGUI会自动寻找这些方法。
Unity3D学习之UI系统——NGUI_第138张图片
Unity3D学习之UI系统——NGUI_第139张图片
创建一个只有碰撞器的Sprite
Unity3D学习之UI系统——NGUI_第140张图片
拖入这个脚本
按下时
在这里插入图片描述
其他函数同理
Unity3D学习之UI系统——NGUI_第141张图片

7.1 EventListener

在这里插入图片描述
首先挂载两个Sprite对象
Unity3D学习之UI系统——NGUI_第142张图片
为Sprite添加EventListenner 以及为委托添加函数
Unity3D学习之UI系统——NGUI_第143张图片

也可以自己添加函数
Unity3D学习之UI系统——NGUI_第144张图片

在这里插入图片描述

7.2 EventTrigger

添加
Unity3D学习之UI系统——NGUI_第145张图片
Unity3D学习之UI系统——NGUI_第146张图片

在这里插入图片描述

7.3 DrawCall

Unity3D学习之UI系统——NGUI_第147张图片

7.3.1 如何降低DrawCall

Unity3D学习之UI系统——NGUI_第148张图片

Unity3D学习之UI系统——NGUI_第149张图片
同一个图集 如果在这两个同图集的图 中间的层级加入了其他图集,也会产生DrawCall,打断了合并渲染
要效率 还是要内存 可以自己决定

7.4 NGUI字体

在这里插入图片描述

7.4.1 制作NGUI字体

降低DrawCall
在这里插入图片描述
把文字导成图集
Unity3D学习之UI系统——NGUI_第150张图片
图集中多了
在这里插入图片描述
可以在Lebel中选择该图集

在这里插入图片描述
然后选择MyFont
优点在于减少DrawCall缺点在于不能动态改变文字

7.4.2 通过bmfont64 制作

Unity3D学习之UI系统——NGUI_第151张图片
Unity3D学习之UI系统——NGUI_第152张图片

Unity3D学习之UI系统——NGUI_第153张图片
可以导入TXT,记得改成带有BOM 的UTF-8

Unity3D学习之UI系统——NGUI_第154张图片
然后导入 + 生成
在NGUI中导入

在这里插入图片描述
在外部 可以 自定义美术字体
通过字体编号
这里48 是 0,然后替换这个字体

Unity3D学习之UI系统——NGUI_第155张图片
Unity3D学习之UI系统——NGUI_第156张图片

7.4.3 选择Unity字体和NGUI字体

在这里插入图片描述

7.5 NGUI 缓动

在这里插入图片描述### 7.5.1 使用缓动

Unity3D学习之UI系统——NGUI_第157张图片
Unity3D学习之UI系统——NGUI_第158张图片

7.5.2 缓动参数

Unity3D学习之UI系统——NGUI_第159张图片
有点像手游里一直膨胀缩小的图标

TweenGroup用于多个动画分组

Ignore TimeScale 用于在游戏暂停时依然播放特效

7.5.3 输入事件和缓动关联PlayTween

添加Play Tween参数
Unity3D学习之UI系统——NGUI_第160张图片
Unity3D学习之UI系统——NGUI_第161张图片
勾选 start State时value默认为0,意思是一开始的时候不会自动播放特效
PlayTween 和Tweener上的Group如果不相同,则不会管理这个Tweener
在这里插入图片描述
Trigger 触发的方式
Unity3D学习之UI系统——NGUI_第162张图片
记得加触发器
Unity3D学习之UI系统——NGUI_第163张图片

添加两个PlayTween

Unity3D学习之UI系统——NGUI_第164张图片

一各按压时管理缩放小,一个松开时管理放大
把两个PlayTween改为taggle

7.6 NGUI中显示3D模型和粒子特效

7.6.1 用UI摄像机渲染

Unity3D学习之UI系统——NGUI_第165张图片
更改为UI层
Unity3D学习之UI系统——NGUI_第166张图片
拖入3D模型
调整缩放和UI控件Z轴的距离
Unity3D学习之UI系统——NGUI_第167张图片

7.6.2 用Render Texture渲染

Unity3D学习之UI系统——NGUI_第168张图片
设置主摄像机不渲染我们要展示的模型
Unity3D学习之UI系统——NGUI_第169张图片

设置要渲染模型的摄像机渲染
Unity3D学习之UI系统——NGUI_第170张图片
设置UI 摄像机渲染UI层
Unity3D学习之UI系统——NGUI_第171张图片

在Panel中创建一张大图,拖入摄像机
Unity3D学习之UI系统——NGUI_第172张图片
tank托上去
Unity3D学习之UI系统——NGUI_第173张图片

7.6.3 显示粒子特效

在这里插入图片描述

在粒子特效中找到设置层级
Unity3D学习之UI系统——NGUI_第174张图片
Unity3D学习之UI系统——NGUI_第175张图片

7.7 NGUI 音效

在这里插入图片描述

Unity3D学习之UI系统——NGUI_第176张图片
选择触发什么音效时播放

7.8 按键绑定

添加KeyBinding脚本

Unity3D学习之UI系统——NGUI_第177张图片

7.9 PC端 tab键快速切换选中

在这里插入图片描述

Unity3D学习之UI系统——NGUI_第178张图片
Unity3D学习之UI系统——NGUI_第179张图片
如果要打到tab切换,要所有的Sprite都添加这个脚本
然后记得添加碰撞器

7.10 本地化

Unity3D学习之UI系统——NGUI_第180张图片
Unity3D学习之UI系统——NGUI_第181张图片
Unity3D学习之UI系统——NGUI_第182张图片
挂载LanguageSelection后

Unity3D学习之UI系统——NGUI_第183张图片

Unity3D学习之UI系统——NGUI_第184张图片

你可能感兴趣的:(学习,ui,笔记,unity)