【GamePlay】UGUI的注意事项
前言
一些UI制作中通用的注意点,以下都是基于自己的理解,所以部分名词可能是自创的。
Canvas画布
render mode
一个UI是以画布为基础的,有三种模式,Overlay是永远显示在最前方,Camera需要指定摄像机,利用摄像机的深度显示,World Space是作为游戏空间中的一个物体存在,比如3D场景中放到广告牌上的UI。
画布大小
常用随屏幕缩放,指定画布X Y比例,之后都会按照这个比例缩放
射线事件检测
Graphic Raycaster组件,它用于对Canvas投射射线,监测Canvas上的任何图像是否与射线碰撞。 它是专门用于UI元素的射线检测。 它会被Input Moudle使用进行检测输入从而对应的UI元素触发UI事件。
如果此画布上不需要处理事件,可以不要这个组件。
锚点
锚点影响position的计算方式,主要看这几个属性
Pivot
Pivot是自身锚点,范围是0~1,x=0.5 y=0.5就是在正中间,x=0 y=0 就是在左下角,x=1 y=1就是在右上角,自身锚点的位置影响position位置的计算。
Anchors
Anchors是整个画布的锚点,范围也是0~1,这个和stretch有关
也就是下图中的四个白箭头,控制红色方块到白色方块4个角的距离不变。白色方块如果横纵放大红色方块也会跟着横纵放大。如果把这个锚点的x设为01,就是下面说的这个例子,则表示距左边的距离为零距离,右边的距离也为零,这样就实现了横向的拉伸效果。
X-Min=0 X-Max=1 Y都是0.5 这种情况,就是横向stretch,这时候x坐标就不使用position了,使用距离左边的距离Left和距离右边的距离Right,如果Left=0,Right=0,就是横向拉伸填充了。Y坐标还是使用position控制。如下图。
同理,纵向拉伸和横纵都stretch,也是这样。
操作
在下图这个界面,直接点击,就只是更改锚点,物体实际位置不会变化
alt+点击,会更改物体实际位置
shift+点击,会更改物体自身的pivot
alt+shift+点击,会更改物体的位置,并更改pivot。
中间的红色部分改的是anchors的位置,蓝色stretch部分改的是Anchors的范围。
Transform与RectTransform可能的坑
如果游戏用要获得ui的位置,更改了anchors后,获得的位置是不准确的。
一个UI物体的worldPosition和编辑器中显示的ui位置是不同的,开发过程中如果想获得ui位置,要用worldPosition,这时候要注意,必须使用camera模式,获得的worldPosition才是准确的
其他
Cull Transparent Mesh 作用
隐藏不可见ui,因为项目里经常有全屏覆盖的ui,而且隐藏 Canvas 很简单,所以这个是相当简单实在的方法,不过要注意的是单纯控制透明度为0的确能“隐藏”ui,但是 ui 的绘制开销不会变。但是 ui 是通过 Graphics(勾选了 Raycast Target)来找到响应目标的,所以如果有只想响应点击但是不想显示的情况,可以通过调整透明度隐藏,然后勾选 Canvas Render 上的 Cull Transparent Mesh 来达到裁剪完全透明 ui 的目的。
不错的文章
UGUI性能优化总结-花桑
【GamePlay】UGUI的注意事项相关推荐
- 2021年春招总结 from:劳烦叫我小小泽
作者:劳烦叫我小小泽 链接:https://zhuanlan.zhihu.com/p/492636260 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 今年就要毕业 ...
- ugui源码_UGUI整体解决方案基础篇(Unity 2019)
课程介绍:本课程是UGUI系列课程的第一篇:基础篇 主要是讲解UGUI的基础组件及接口的使用方法,目前UGUI是unity最常用的UI系统,这部分基础只是是每个同学都应该掌握的,这里我就是简单的讲解了 ...
- Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等
Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等 目录 Unity 基础 之 在 UGUI 上简单实现VideoPl ...
- Unity UGUI基础 之 Scroll View/Scroll Rect 的简单使用,并取消拖拽(滑动内容)效果,拖拽只在Scrollbar 上起作用
Unity UGUI基础 之 Scroll View/Scroll Rect 的简单使用,并取消拖拽(滑动内容)效果,拖拽只在Scrollbar 上起作用 目录 Unity UGUI基础 之 Scro ...
- UGUI合批规则图解
合批机制 工具 Profiler(command + 7) Frame Debug 原理图解 排序图解 注一 实例图解 不打包图集 使用图集 一些注意事项 工具 Profiler(command + ...
- unity代码 获取dropdown_Unity3D UGUI下拉菜单/Dropdown组件用法、总结
Unity3D中UGUI实现下拉菜单 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar - ...
- unity之UGUI系统基础
UGUI系统基础 一.UGUI 简介: ①.Unity3D4.6 版本开始, ...
- Unity UGUI 之 实现 Text 文本文字过长,省略号显示(TextMeshPro 和常规 Text 二种方法)
Unity UGUI 之 实现 Text 文本文字过长,省略号显示(TextMeshPro 和常规 Text 二种方法) 目录 Unity UGUI 之 实现 Text 文本文字过长,省略号显示(Te ...
- UE4 SaveGame保存游戏注意事项
保存数据的流程参考官方文档的例子足够(https://docs.unrealengine.com/latest/CHN/Gameplay/SaveGame/index.html) 这里说一些注意事项以 ...
最新文章
- python stringvar函数_Tkinter 求助,怎么获取StringVar() 的值
- 【bzoj3555】[Ctsc2014]企鹅QQ 简单哈希
- ie9支持string.trim()
- 易生信Linux培训
- 【Elasticsearch】es 重启 已经 重启会导致什么问题
- ADO.NET 如何读取 Excel (下)
- Atitit.分布式远程调用 rpc rmi CORBA的关系
- MSF+APK注入绕过手机防护上线远控及安全防护建议
- nfc卡模式与标准模式_NFC的工作模式有哪些主动模式和被动模式的详细讲解
- “PaaS+云管”双剑合璧,BoCloud博云的进阶之路
- delphi7的程序在英文系统下显示中文乱码
- DNA双螺旋结构是怎样发现的?
- leetcode阶段总结——分割字符串类型
- 脱离取源设备的IPTV宽带机房搭建心得(私网汇聚、内网直播源、单播组播模式混合使用、光猫机顶盒的破解、超级路由的组播转发)
- S1000D数据模块类型中英文对照
- 玩游戏也能赚钱?还有这种操作?
- 数据库内连接、左外连接、右外连接中的on、and、where条件使用
- ULN2003驱动继电器电路
- PDA汽车检测系统收获
- WD5208-AC-DC芯片-非隔离电源芯片