一、Canvas简介
Canvas画布是承载所有UI元素的区域。Canvas实际上是一个游戏对象上绑定了Canvas组件。所有的UI元素都必须是Canvas的自对象。如果场景中没有画布,那么我们创建任何一个UI元素,都会自动创建画布,并且将新元素置于其下。
二、Canvas画布参数与应用
1.创建画布
当你创建任何一个UI元素的时候,都会自动创建画布。也可以主动创建一张画布:点击GameObject->UI->Canvas即可在Hierarchy面板创建一张画布。
2.画布参数
下面介绍一下Canvas画布的参数:
第一个参数RenderMode的渲染模式有三种:Screen Space-Overlay、Screen Space-Camera以及World Space。
1.Screen Space-Overlay模式
Screen Space-Overlay(屏幕控件-覆盖模式)的画布会填满整个屏幕空间,并将画布下面的所有的UI元素置于屏幕的最上层,或者说画布的画面永远“覆盖”其他普通的3D画面,如果屏幕尺寸被改变,画布将自动改变尺寸来匹配屏幕。
Screen Space-Overlay模式的画布有Pixel Perfect和Sort Layer两个参数:
(1)Pixel Perfect:只有RenderMode为Screen类型时才有的选项。使UI元素像素对应,效果就是边缘清晰不模糊。
(2)Sort Layer: Sort Layer是UGUI专用的设置,用来指示画布的深度。
2.Screen Space-Camera模式
Screen Space-Camera(屏幕空间-摄影机模式)和Screen Space-Overlay模式类似,画布也是填满整个屏幕空间,如果屏幕尺寸改变,画布也会自动改变尺寸来匹配屏幕。所不同的是,在该模式下,画布会被放置到摄影机前方。在这种渲染模式下,画布看起来 绘制在一个与摄影机固定距离的平面上。所有的UI元素都由该摄影机渲染,因此摄影机的设置会影响到UI画面。在此模式下,UI元素是由perspective也就是视角设定的,视角广度由Filed of View设置。
它比Screen Space-Overlay模式的画布多了下面几个参数:
(1)Render Camera:渲染摄像机
(2)Plane Distance:画布距离摄像机的距离
(3)Sorting Layer: Sorting Layer是UGUI专用的设置,用来指示画布的深度。可以通过点击该栏的选项,在下拉菜单中点击“Add Sorting Layer”按钮进入标签和层的设置界面,或者点击导航菜单->edit->Project Settings->Tags and Layers进入该页面。
可以点击“+”添加Layer,或者点击“-”删除Layer。画布所使用的Sorting Layer越排在下面,显示的优先级也就越高。
(4)Order in Layer:在相同的Sort Layer下的画布显示先后顺序。数字越高,显示的优先级也就越高。
3.World Space
World Space即世界控件模式。在此模式下,画布被视为与场景中其他普通游戏对象性质相同的类似于一张面片(Plane)的游戏物体。画布的尺寸可以通过RectTransform设置,所有的UI元素可能位于普通3D物体的前面或者后面显示。当UI为场景的一部分时, 可以使用这个模式。
它有一个单独的参数Event Camera,用来指定接受事件的摄像机,可以通过画布上的GraphicRaycaster组件发射射线产生事件。
我们通过下面的表格可以对比一下三种渲染模式的区别:
渲染模式
|
画布对应屏幕
|
摄像机
|
像素对应
|
适合类型
|
Screen Space-Overlay
|
是
|
不需要
|
可选
|
2D UI
|
Screen Space-Camera
|
是
|
需要
|
可选
|
2D UI
|
World Space
|
否
|
需要
|
不可选
|
3D UI
|
一、Canvas简介 Canvas画布是承载所有UI元素的区域。Canvas实际上是一个游戏对象上绑定了Canvas组件。所有的UI元素都必须是Canvas的自对象。如果场景中没有画布,那么我们创建任何一个UI元素,都会自动创建画布,并且将新元素置于其下。二、Canvas画布参数与应用1.创建画布 当你创建任何一个UI元素的时候,都会自动创建画布。也可以主动创建一张画布:点击GameO...
Unity
3D
中
u
GUI
事件系统简述及使用方法总结.pdf
Unity
3D
中
u
GUI
事件系统简述及使用方法总结.pdf
Unity
3D
中
u
GUI
事件系统简述及使用方法总结.pdf
Unity
3D
中
u
GUI
事件系统简述及使用方法总结.pdf
Unity
3D
中
u
GUI
事件系统简述及使用方法总结.pdf
Unity
3D
中
u
GUI
事件系统简述及使用方法总结.pdf
大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新
Unity
开发技巧,觉得有用记得一键三连哦。
很早就想分享这个系列的文章,但是总是没有机会,最近就将这个系列整理一下,大家一起学习交流。
首先,介绍一个U
GUI
,N
GUI
是U
GUI
的前身,
Unity
开发团队将N
GUI
的开发团队收到自己开发团队下,并且由此开发了U
GUI
。
U
GUI
系统是从
Unity
4.6版本后才开.
一、
Canvas
简介
Canvas
画布
是承载所有UI元素的区域。
Canvas
实际上是一个游戏对象上绑定了
Canvas
组件。所有的UI元素都必须是
Canvas
的自对象。如果场景
中
没有
画布
,那么我们创建任何一个UI元素,都会自动创建
画布
,并且将新元素置于其下。
二、
Canvas
画布
参数与应用
1.创建
画布
当你创建任何一个UI元素的时候,都会自动创建
画布
。也可以主动创建一张
画布
:点击G...
什么是
Canvas
使用U
GUI
来进行UI开发,离不开
Canvas
组件,所有的 UI 元素,要么自己包含
Canvas
组件,要么是
Canvas
组件所在 GameObject 的子节点。
2.
Canvas
组件的参数 RenderMode,有三个选项:Screen Space - Overlay、Screen Space - Camera、World Space。
Screen Spa...
// 参考:https://forum.
unity
.com/threads/how-do-you-get-the-parent-
canvas
.311240/
// 法1:得到一个
canvas
,不确定在嵌套 cavnas 情况是什么反应
GetComponentInParent<
Canvas
>()
// 法2:得到顶层
canvas
Canvas
topmost
Canvas
= transform.root.GetComponentInChildren<
Canvas
>();
2.它主要负责
渲染
自己所有的子对象
3.场景上允许有多个
Canvas
,一般情况有一个即可
如果UI控件对象不是
Canvas
对象,那么控件将不能被
渲染
Canvas
控件上带有
渲染
方式
1.2:
Canvas
渲染
方式
1.Screen Space - Overlay:屏幕空间,覆盖
模式
,UI始终在前
1.1 Pixel Perfect:是否开启无锯齿精确
渲染
(性能换效
前文:https://blog.csdn.net/Jaihk662/article/details/87865239(U
GUI
插件介绍)
Canvas
组件有
三种
不同的
渲染
模式
:
Screen Space - Overlay
Screen Space - Camera
World Space
这
三种
渲染
模式
分别用于不同的
渲染
需求,
Canvas
组件上其余的属性都根据不同的
渲染
模式
发生...
unity
U
GUI
源码:https://github.com/
Unity
-Technologies/u
GUI
.git
官方API:https://docs.
unity
3d.com/cn/2018.4/ScriptReference/
Canvas
.html
Canvas
在这里只能讲一些思路,具体实现还是得看项目
中
运用相对应的处理方式去处理
Cavas的Render Mode是Overlay
模式
时,永远覆盖在其他物体之上,不受摄像机depth影响
Cavas的Render Mode都是Screen Spa
1,当有多个
canvas
并且
渲染
模式
都为Overlay。
这种情况下,
渲染
顺序是由
canvas
组件下的Sort Order决定的,值越大的越后
渲染
。
2,当有多个
canvas
并且
渲染
模式
都为Camera。
这种情况下,
渲染
顺序首先由Rendener Camera的Depth值决定,值越大越后
渲染
。
如果Depth值相同,那么由canva
一、Overlay
模式
全称:屏幕空间-覆盖
模式
(Screen Space-Overlay),
Canvas
创建出来后,默认就是该
模式
,该
模式
和摄像机无关,即使场景内没有摄像机,UI游戏物体照样
渲染
屏幕空间:电脑或者手机显示屏的2D空间,只有x轴和y轴
覆盖
模式
:UI元素永远在3D元素的前面
几个相关属性: