前言

一些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的注意事项相关推荐

  1. 2021年春招总结 from:劳烦叫我小小泽

    作者:劳烦叫我小小泽 链接:https://zhuanlan.zhihu.com/p/492636260 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 今年就要毕业 ...

  2. ugui源码_UGUI整体解决方案基础篇(Unity 2019)

    课程介绍:本课程是UGUI系列课程的第一篇:基础篇 主要是讲解UGUI的基础组件及接口的使用方法,目前UGUI是unity最常用的UI系统,这部分基础只是是每个同学都应该掌握的,这里我就是简单的讲解了 ...

  3. Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等

    Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等 目录 Unity 基础 之 在 UGUI 上简单实现VideoPl ...

  4. Unity UGUI基础 之 Scroll View/Scroll Rect 的简单使用,并取消拖拽(滑动内容)效果,拖拽只在Scrollbar 上起作用

    Unity UGUI基础 之 Scroll View/Scroll Rect 的简单使用,并取消拖拽(滑动内容)效果,拖拽只在Scrollbar 上起作用 目录 Unity UGUI基础 之 Scro ...

  5. UGUI合批规则图解

    合批机制 工具 Profiler(command + 7) Frame Debug 原理图解 排序图解 注一 实例图解 不打包图集 使用图集 一些注意事项 工具 Profiler(command + ...

  6. unity代码 获取dropdown_Unity3D UGUI下拉菜单/Dropdown组件用法、总结

    Unity3D中UGUI实现下拉菜单 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar - ...

  7. unity之UGUI系统基础

                                                                  UGUI系统基础 一.UGUI 简介: ①.Unity3D4.6 版本开始, ...

  8. Unity UGUI 之 实现 Text 文本文字过长,省略号显示(TextMeshPro 和常规 Text 二种方法)

    Unity UGUI 之 实现 Text 文本文字过长,省略号显示(TextMeshPro 和常规 Text 二种方法) 目录 Unity UGUI 之 实现 Text 文本文字过长,省略号显示(Te ...

  9. UE4 SaveGame保存游戏注意事项

    保存数据的流程参考官方文档的例子足够(https://docs.unrealengine.com/latest/CHN/Gameplay/SaveGame/index.html) 这里说一些注意事项以 ...

最新文章

  1. python stringvar函数_Tkinter 求助,怎么获取StringVar() 的值
  2. 【bzoj3555】[Ctsc2014]企鹅QQ 简单哈希
  3. ie9支持string.trim()
  4. 易生信Linux培训
  5. 【Elasticsearch】es 重启 已经 重启会导致什么问题
  6. ADO.NET 如何读取 Excel (下)
  7. Atitit.分布式远程调用  rpc  rmi  CORBA的关系
  8. MSF+APK注入绕过手机防护上线远控及安全防护建议
  9. nfc卡模式与标准模式_NFC的工作模式有哪些主动模式和被动模式的详细讲解
  10. “PaaS+云管”双剑合璧,BoCloud博云的进阶之路
  11. delphi7的程序在英文系统下显示中文乱码
  12. DNA双螺旋结构是怎样发现的?
  13. leetcode阶段总结——分割字符串类型
  14. 脱离取源设备的IPTV宽带机房搭建心得(私网汇聚、内网直播源、单播组播模式混合使用、光猫机顶盒的破解、超级路由的组播转发)
  15. S1000D数据模块类型中英文对照
  16. 玩游戏也能赚钱?还有这种操作?
  17. 数据库内连接、左外连接、右外连接中的on、and、where条件使用
  18. ULN2003驱动继电器电路
  19. PDA汽车检测系统收获
  20. WD5208-AC-DC芯片-非隔离电源芯片

热门文章

  1. 基因家族分析及SCI写作技巧
  2. 如何将eml格式转换成pdf文档
  3. 用久的苹果电脑是闲置回收还是维修
  4. 用SNMP协议实现系统监控
  5. 芯动科技2023校招 FPGA岗位笔试
  6. java continue语句_Java continue 语句
  7. “融晶保肾调代谢”公益健康大讲堂(第二期)在贵阳强直医院开展
  8. kali全版本镜像下载地址
  9. 读什么,才能让你的心沉静下来
  10. Py函数直接传入root是啥意思_阿里云python课程笔记(四):函数amp;类和对象