UGUI进阶组件[七]Canvas

Canvas是所有UI物体的最根节点的物体必须带有的组件
官方文档

Canvas有三种大类型

  • ScreenSpace-Overlay
  • ScreenSpace-Camera
  • WorldSapce

ScreenSpace-Overlay

在这里插入图片描述
这种模式表示的是它下面所挂物体的UI成像会自动贴到指定屏幕 这里的指定是由TargetDisplay指定的
在unity里面有Dispaly1-7,这种情况下3D物体是无法显示在该Canvas下面的物体的UI上面的,只有通过RawImage的方法来让Camera对某个三维物体的成像映射上去来达到在UI上面显示三维图像的效果。

SortOrder
代表的是渲染的优先度
SortOrder越小的越先渲染,即SortOrder大的Canvas下面所挂的UI会叠加在SortOrder小的Canvas下面所挂的UI上面
关于UI的渲染顺序可以参考这篇文章

PixelPerfect
防止Canvas下面的元素出现成像模糊,在UI元素被拉伸或者旋转的时候,这个设置有助于让元素成像清晰

additionalShaderChannels
这个用途就比较深远了,详情看官网

ScreenSpace-Camera

在这里插入图片描述
在这种模式下,Canvas会在RenderCamera所指定的摄像机前面PlaneDistance距离的位置放置,而且会一直跟随指定相机的位置,在多个摄像机并用的时候,可以根据不同摄像机的层级或显示与否加载不同的UI,排列不同的UI层级,SortingLayer和OrderInLayer属性的作用都是用于排列
参考UGUI进阶知识[六]影响UI层级显示的因素

World Space

这种模式下的Canvas以及它的子物体相当于3D世界的一个物体了,会被其他更靠近摄像机的3D世界的其他物体遮挡
在这里插入图片描述

EventCamera

在这里插入图片描述
鼠标悬停在EventCamera上面可以看到英文解释,表示事件触发必须经过的相机,即决定了鼠标悬停和点击在UI上的位置的相机(在世界坐标系的同一个位置,方向和位置不同的相机获取的点击响应的屏幕位置不一样)

ScreenSpace-Overlay的Canvas的不需要相机显示的特性

ScreenSpace-Overlay的Canvas 只要在其inspector下设置了Display1,不管场景里面有没有相机渲染到Display1,Canvas 下的UI都能渲染到Display1,而且能接受交互,并且Input.GetTouch函数Input.touch等也能正常响应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

染指流年丨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值