UG2L18——NGUI中显示3D模型和粒子特效
UG2L18——NGUI中显示3D模型和粒子特效
NGUI中显示3D模型
方法一:使用UI摄像机渲染3D模型
改变NGUI的整体层级 为 UI层
改变主摄像机和NGUI摄像机的 渲染层级
将想要被UI摄像机渲染的对象层级改为 UI层
调整模型和UI控件的Z轴距离
方法二:使用多摄像机渲染 Render Texture
先创建一个Render Texture,并将其关联到要将拍摄到的内容渲染到该Render Texture的摄像机的Target Texture属性上
然后创建一个Texture,把该Render Texture与Texture关联起来即可完成该Render Texture的显示
NGUI中显示粒子特效
让Panel和粒子特效处于一个排序层
在粒子特效的 Render参数中 设置自己的层级
UG2L17——NGUI缓动
UG2L17——NGUI缓动
NGUI缓动
NGUI缓动 就是让控件交互时 进行缩放变化 透明变化 位置变化 角度变化 等等行为
NGUI自带Tween功能来实现这些缓动效果
使用NGUI缓动
关键组件Tween缓动相关组件
关键组件Play Tween可以通过它让该对象和输入事件关联
Tween缓动组件参数相关
大部分的Tween缓动组件参数大差不差
From - 开始状态
To - 结束状态
PlayStyle - 播放方式
一次
循环
循环 从头到尾 从尾到头
Animation Curve - 动画曲线
可以调整两个值的变化曲线
Duration - 持续时间
Start Delay - 开始播放前的延迟时间
Delay Affects - 延迟影响
正向播放
反转播放
都影响
TweenGroup - 分组ID
用于一个对象多个动画时分组
Ignore TimeScale - 忽略时间暂停
Use Fixed Update - 使用物理更新更新动画
PlayTween组件参数相关
PlayTween可以添加 ...
UG2L16——NGUI字体
UG2L16——NGUI字体
NGUI字体作用
降低Drawcall
自定义美术字体
NGUI字体制作
NGUI内部提供了字体制作工具
根据字体文件 生成指定内容文字 达到降低DrawCall的目的
使用第三方工具BitmapFont生成字体信息和图集
通过NGUI 字体工具使用第三方工具生成的内容制作字体
达到自定义美术字体
NGUI字体和Unity动态字体怎么选
文字变化较多用Unity动态字体
变化较少用NGUI字体
想要减少DrawCall用NGUI字体
美术字用NGUI字体
UG2L15——Drawcall
UG2L15——Drawcall
Drawcall
字面理解DrawCall 就是 绘制呼叫的意思 表示 CPU(中央处理器)通知GPU(图形处理器-显卡)
DrawCall的概念
就是CPU(处理器)准备好渲染数据(顶点,纹理,法线,Shader等等)后
告知GPU(图形处理器-显卡)开始渲染(将命令放入命令缓冲区)的命令
简单来说:一次DrawCall就是 CPU准备好渲染数据通知 GPU渲染的这个过程
如果游戏中DrawCall数量较高会影响CPU的效率,最直接的感受就是游戏会卡顿
举例说明:
以拷贝文件来进行类比
假设我们创建10000个小文件,每个文件大小为1kb,然后把这些文件拷贝到另一个文件夹中
你会发现,即使这些文件加起来不超过10MB,但是拷贝花费的时间是很长的
如果我们单独创建1个10MB的文件拷贝到另一个文件夹,基本可以瞬间拷贝完毕
为什么会这样呢?
因为每一个文件赋值动作都需要很多额外的操作,比如分配内存,创建数据等等
这些操作就会带来一些额外的性能开销
简单理解 文件越多额外开销就越大
渲染过程和上面的例子很类似,每次DrawCall,CPU都需要准备很多 ...
UG2L14——Eventlistener和Eventtrigger
UG2L14——Eventlistener和Eventtrigger
Eventlistener和Eventtrigger
他们帮助我们封装了所有 NGUI特殊响应函数
可以通过它对各种对象进行管理添加 NGUI特殊响应函数
本章代码关键字
123456789101112UIEventlistener //向对象添加Eventlistener控件以添加特殊响应函数UIEventListener.Get() //向对象增加或获取对象的Eventlistener,使该对象可以向其添加特殊响应函数Eventtrigger //更适合面板添加函数的控件OnHover(bool isOver) //经过OnPress(bool pressed) //按下OnClick() //点击OnDoubleClick() //双击OnDragStart() //拖曳开始OnDrag(Vector2 delta) ...
UG2L13——Anchor锚点组件
UG2L13——Anchor锚点组件
Anchor
是用于9宫格布局的锚点它有两个关键知识点
老版本——锚点组件——用于控制对象对齐方式
新版本——3大基础控件自带锚点内容——用于控制对象相对父对象布局
老版本——锚点组件
UICamera - 关联UI摄像机
Container - 控制的容器对象
Side - 9宫格位置
Run Only Once - 是否只对齐一次
一般情况下,设备分辨率都定死的
横屏竖屏也是定死的,所以勾选
除非分辨率要变化才取消勾选
Relative Offset - 相对比例偏移位置(0~1)
Pixel Offset - 像素偏移位置
新版本——基础控件自带的锚点信息
用于控制对象相对父对象的布局
Type - 尺寸对其方式
无
统一模式
高级模式
Execute - 什么时候执行更新
Target - 相对目标
UG2L12——Scrollview滚动视图控件
UG2L12——Scrollview滚动视图控件
Scrollview
即滚动视图
我们现在用于编程的vs代码窗口,笔记软件页面就是典型的滚动视图
游戏中主要用于背包、商店、排行榜等等功能
本章代码关键字
1uiScrollView.UpdateScrollbars() //更新滚动视图的滑动条
制作Scrollview
直接工具栏创建即可 NGUI——Create——ScrollView
若需要ScrollBar自行添加水平和竖直
添加子对象,为子对象添加Drag Scroll View和碰撞器
参数相关
[Panel部分]
Size - 可以设置滚动视图
[Scrollview部分]
Content Origin - 内容子对象对其方式
Movement - 拖曳的方向
水平
垂直
自由
自定义
Drag Effect - 拖动特效
不使用任何效果
动量(惯性)效果(差异不明显)
动量(惯性)和弹力效果
Scroll Wheel Factor - 滚动因子
如果不为0,鼠标中间滚动可以滚动它
可以通过它控制速 ...
UG2L11——Scrollbar滚动条和Progressbar进度条控件
UG2L11——Scrollbar滚动条和Progressbar进度条控件
Scrollbar滚动条和Progressbar进度条
Scrollbar滚动条一般不会单独使用 都是配合滚动视图使用 类似于窗口右侧的滚动条
Progressbar进度条一般用的不多 一般直接使用Sprite的Filed模式即可
他们的参数和之前的知识很类似
所以这两个知识点只需要了解如何制作即可
制作Scrollbar滚动条
两个Sprite 1个背景1个滚动条
背景父对象添加脚本
添加碰撞器
关联对象
制作Progressbar进度条
两个Sprite 1个背景1个滚动条
背景父对象添加脚本
关联对象
UG2L10——Slider滑动条控件
UG2L10——Slider滑动条控件
Slider
滑动条控件,主要用于设置音乐音效大小等控件
本章代码关键字
1234UISlider //滑动条的类uiSlider.onChange.Add(new EventDelegate(()) //数值变化时,向里增加监听函数uiSlider.onDragFinished //拖曳结束时的委托,向内直接增加监听函数uiSlider.value //滑动条当前的值
制作Slider
3个sprite 1个做根对象为背景 2个子对象 1个进度 1个滑动块
设置层级
为根背景添加Slider脚本
添加碰撞器(父对象或者滑块)
关联3个对象
参数相关
Value - 当前值0~1
Steps - 步数 将1平分
Appearance - 外观设置
Foreground - 前景(用于缩放)
Background - 背景
T ...
UG2L9——PopupList下拉列表控件
UG2L9——PopupList下拉列表控件
PopupList
下拉列表
本章代码关键字
1234UIPopupList //下拉列表的类uiPopupList.items.Add() //向下拉列表添加选项uiPopupList.onChange.Add(new EventDelegate(()) //向下拉列表增加选项改变时的监听函数uiPopupList.value //下拉列表当前选项
制作PopupList
一个Sprite做背景,一个label做显示内容
添加PopupList脚本
添加碰撞器
关联Label做信息更新,选中Label中的SetCurrentSelection函数
参数相关
Options - 下拉列表显示内容(空一行表示加一个)
Position - 列表出现位置
自动(建议自动 让其自动判断)
向上
向下
Selectio ...