Unity中UGUI之Canvas属性解读版本二
Canvas
Render Modes(渲染模式)
1.在screen空间中渲染
2.在world空间中渲染
Screen Space-Overlay
在这个渲染模式中,UI元素将在场景的上面。如果场景改变大小或改变分辨率,Canvas将自动改变大小去适配。
Screen Space-Camera
这和Screen Space-Overlay类似,但是在这个模式中,这个Canvas放置在了给定距离的摄像机的前面。这些UI元素都是通过摄像机绘制的。这意味着摄像机影响UI的外观。如果摄像机设置为Perspective(透视视角),UI元素将会通过透明视角渲染,通过摄像机可视区域控制。
如果屏幕改变大小或改变分辨率,或摄像机frustrum改变,Canvas将自动改变大小去适配。
World Space
在这个绘制模式中,Canvas将和场景中的其他对象一样显示。Scene可以通过手动设置Rect Transform 来控制大小。在场景中,UI元素将绘制在其他基于3D放置的对象的钱前面或后面。对于UI作为世界的一部分是有用的。也被称为”diegetic interface”。
Canvas Scaler
这个控件主要负责Canvas的显示效果
其中UI Scale Mode较为重要。
可选的模式有3种,分别是 Constant Pixel Size, Scale With Screen Size和Constant Physical Size。
Constant Pixel Size
当选择Constant Pixel Size时,即完全根据Canvas设置的大小进行显示,无论在何种分辨率下,大小均为Unity中设置的大小(不能很好地适应不同分辨率)。
Scale Factor:保持大小的比例 。原图100x100,原始大小1=100x100,原来的2倍大 2=200x200
Reference Pixels Per Unity:100表示Unity里的1单位大小代表100像素。
Scale With Screen Size
当选择Scale With Screen Size时,可以根据屏幕的大小进行缩放,在此模式下有三种不同的缩放方式,如下所示:
Reference Resolution属性主要为参考分辨率大小,在此分辨率下进行设计,随后根据不同的缩放方式适应不同的分辨率。
Screen Match Mode包括 Match Width or Height, Expand,Shrink三种模式。
Match Width or Height:根据Canvas的宽度或高度或者一定的比例进行缩放。
Expand:Canvas不会小于设置的分辨率大小
Shrink:Canvas不会大于设置的分辨率大小
在分辨率自适应模式下,可能会带来物体缩放问题,如果缩放不正常,可在代码中手动更改localScale为(1,1,1)进行部分修正。
Constant Physical Size
当选择Constant Physical Size模式时,则根据设定好的物理大小进行展示,根据不同分辨率适应性不是很好。
Graphic Raycaster组件:
射线检测组件,其作用是用于获取用户选中的UGUI控件,当禁用这个组件的时候用户在无法获取到控件对控件进行操作,其属性为:
Ignore Reversed Graphics :是否忽略控件的正面和反面方向,都接受射线的检测,勾选则是。
Blocking Objects:屏蔽指定类型的(物理)对象,使它们不参与射线检测。渲染模式不为ScreenSpaceOverlay时起作用。
可选值为:
None:不屏蔽任何物理对象
Two D:屏蔽2D物理对象(即具有2D碰撞体的对象)
Three D:屏蔽3D物理对象(即具有3D碰撞体的对象)
All:屏蔽所有物体对象
Blocking Mask:使屏蔽对象中的指定层不参与射线检测。渲染模式不为ScreenSpaceOverlay时,且Blocking Objects不为None时起作用。
Unity中UGUI之Canvas属性解读版本二的更多相关文章
- Unity中UGUI之Canvas属性解读版本一
Canvas的基本属性 1.Canvas Scaler组件 : Canvas Scaler组件用于设置处于不同组件下Canvas画布中的元素的缩放模式. Ui Scaler Mode : 设置UI的缩 ...
- unity 中UGUI制作滚动条视图效果(按钮)
1.在unity中创建一个Image作为滚动条视图的背景: 2.在Image下创建一个空物体,在空物体下创建unity自带的Scroll View组件: 3.对滑动条视图的子物体进行调整: 4.添加滚 ...
- unity中 UGUI的按下、拖动接口事件的实现
using UnityEngine; using System.Collections.Generic; using DG.Tweening; using UnityEngine.EventSyste ...
- Unity中UGUI鼠标穿透UI问题的解决方法
不过在使用时需要先获取两个红色显示的变量,graphicRaycaster和eventSystem. 这两个变量分别对应的是Canvas中的GraphicRaycaster组件和创建UI时自动生成的“ ...
- Unity中uGUI的控件事件穿透逻辑
1.正常来说Image和Text是会拦截点击事件的,假设加入EventTrigger的话,就能够响应相应的交互事件. 2.假设Image和Text是一个Button的子控件.那么尽管其会显示在Butt ...
- 在Unity中用UGUI制作可输入下拉框
Unity中UGUI制作可输入下拉框 目录 Unity中UGUI制作可输入下拉框 前言 组件分析 制作流程 总结 前言 在搜索引擎以及一些网页中我们常常可以看见这样一种UI控件,看上去是一个输入框,在 ...
- Unity中使用摇杆控制
Unity中使用摇杆控制 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50 ...
- 关于Unity中的UGUI优化,你可能遇到这些问题
https://blog.uwa4d.com/archives/QA_UGUI-1.html 关于Unity中的UGUI优化,你可能遇到这些问题 作者:admin / 时间:2016年11月08日 / ...
- 关于Unity中的NGUI和UGUI
一.用Unity开发2D游戏,有三套关系 1.GUI:Unity本身自带的GUI 2.NGUI:以前在Unity中广泛来做2D的,是第三方的包,需要安装 3.UGUI:Unity5.X后(其实是Uni ...
随机推荐
- 认识flask框架
1.框架的基本认识: 特点:用Python语言实现的轻量.简洁.扩展性强. 核心:werkzeug和Jinja2 2.虚拟环境: 创建:mkvirtualenv -p python3 名称 进入:wo ...
- docker-compose在dockerfile更新后自动更新image
比如在dockerfile里需要新安装包 形如 加一行 RUN pip3 install XXX 之后,希望docker-compose能更新镜像, 然后启动容器 只需要启动时使用 --build即可 ...
- AD中的library中有些文件的后缀有.intlib .schlib .pcblib 这些都是库文件,但有什么区别呢?
intlib 是集成原理图和PCB封装的 schlib .只有原理图 pcblib 只有PCB封装 参考资料 1 https://zhidao.baidu.com/question/259298801 ...
- Codeforces 1073 E - Segment Sum
E - Segment Sum 思路: 数位dp 我们平时做的数位dp都是求满足条件的数的个数, 这里要求满足条件的数的和 只要在原来的基础上求每一位的贡献就可以了,所以传参数时要传两个 代码: #p ...
- Oracle中判断(case when),截取(substr),位置(instr)用法
转自:http://rainbowdesert.iteye.com/blog/1677911 博客分类: SQL 1. 判断(case when) SELECT col1, col2, CASE ...
- (转)winform之RichTextBox
RichTextBox是一种可用于显示.输入和操作格式文本,除了可以实现TextBox的所有功能,还能提供富文本的显示功能. 控件除具有TextBox 控件的所有功能外,还能设定文字颜色.字体和段落格 ...
- 关于TeeChart使用我会持续更新
关于TeeChart使用我会持续更新 这篇文章中我是在Winform窗体使用TeeChart2011控件,通过定时器实现了实时绘制曲线图(三个序列). 先上一下效果图: 1.TeeChart2011. ...
- java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration
java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration 最近在做项目的时候遇到了这个问题,很是困扰,多次尝试后发现是jar包的问 ...
- 基于C# winform实现图片流存储到文件
本文所述实例实现将一张图片上传到指定的文件夹,然后在窗体上的PictrueBox控件中显示出来. 具体功能代码如下: private void btnUpload_Click(object sende ...
- 将内网ip映射到外网域名
一.应用场景 1.在本地测试微信支付回调 二.如何使用natapp实现内网穿透 1.第一步注册账号并进行实名制认证 natapp网站地址 https://natapp.cn/ 2.第二步申请免费隧道 ...