三种UI系统:
常见设备的分辨率比例:
简单理解:UI绘制在Canvas上,可以理解为画画的纸;
Canvas在两个模式下(Overlay和Camera)会覆盖整个屏幕,所做屏幕UI显示时,只需要处理好Canvas中的显示即可;
所有UI元素必须建立在Canvas下,否则会出现不显示的问题;
Pixel Perpect:高像素清晰度渲染
Sort Order:多Canvas时,控制Canvas显示顺序,越大越在前方显示
修改Canvas下Canvas组件Render Mode属性:Camera
将相机拖给Canvas下Canvas组件Render Camera属性
将Cube位置调整到Canvas前
调整Canvas中Plane Distance,控制Canvas到渲染相机的距离
Plane Distance:Canvas到相机的距离,当SortingLayer和Order In Layer相同时,距离相机越近,显示越靠前(满足相机渲染关系)
Sorting Layer:排序层(多层Canvas中间加粒子)
Order in Layer:同层顺序
建立排序层和建立顺序:
先通过Sorting Layer排序,若一样再根据层内顺序,排序关系:配置的排序层顺序,越靠下,显示越靠前;排序层一致时,Order in layer越大越靠前;
有时会用到双相机叠加,一个渲染场景,一个渲染UI:
将Canvas模式调整为,World Space
再将Canvas放入相机可视范围内
该组件会拉伸所有Canvas下的子元素
UI Scale Mode:拉伸类型
1、Constant Pixel Size 静态模式
2、cale With Screen Size 像素计算模式
参考分辨率:根据UI设计师提供的参考图像素尺寸
适配方式:
3、Constant Physical Size 物理计算模式
根据英寸进行拉伸计算。
项目中,会根据屏幕尺寸进行拉伸:
设计分辨率,填写美术的效果图像素值(覆盖满整个屏幕)
选择Expand:自动计算高度自适应拉伸还是高度自适应拉伸
覆盖满整个屏幕的背景图计算
例如拿到1280x720的背景图
计算方法:
出现位置:出现在所有Canvas子元素中,所有UI元素都应该有RectTransform组件
Pos(XYZ):位置(X,Y,Z),单位(像素),位置是由轴点到锚点的距离
Width,Height:宽和高,单位(像素)
Anchors:锚点(四叶草),以父物体参考
三种情况:
锚点快速选择工具(十字符号):
Pivot:轴点(蓝圈),以当前物体参考
调整轴点后,位置计算,旋转,缩放都会受到影响,一般轴点都保留在中心点
周围四个点表示UI元素的边界点。
以下图为参考
其中不带 TextMeshPro 的为原有组件,TMP为加强版插件,这里先只说原有组件
一个完整界面,一个Panel
Panel一般位于Canvas子物体,四锚点在四角,边距为零,所以Panel和Canvas一样大,Canvas和屏幕一样大,所以Panel和屏幕一样大,元素显示处理在Panel中正常,则屏幕中也正常
Color:用于混色,美术有时提供白图和色号,程序员对图处理,染成想要的颜色,可以减少包体大小
四种类型
1、普通模式(图标)
Preserve Aspect:保持图片的宽高比,高度或宽度自适应
Set Native Size:可以快速恢复美术提供的图片原始像素尺寸
2、 裁剪模式(九宫格,三宫格)
将图片切分九宫格或三宫格
1)找到图片资源
2)选择精灵编辑器
3)九宫格切图
1,3,7,9区域不拉伸,2,8横向拉伸,4,6纵向拉伸
4)Image选择裁剪模式
3、瓦片模式(无缝贴图)
4、填充模式(进度条)
原始图片组件:可以显示精灵或纹理
功能相对于Image少,所以性能更好
可以控制UV的偏移,来显示精灵的一部分
屏幕显示过程
CPU->加载数据->内存->显存->显卡->显示器
Batchs,就是当前渲染屏幕所有内容所需要的绘制调用数
每一张独立的UI图,会产生一个DrawCall
优化DrawCall(UI切片):
将多个UI切片,合并成一张UI图,UI界面只加载一张UI图片显示
在Edit-Project Setting-Editor/SpritePacker打开设置,设置为Always Enabled
在project中右键创建Sprite Atla
先在Canvas中添加Graphic Raycaster组件,是用于检测UI输入的射线发射器
添加交互组件,比如图片:
Raycast Target:是否接收Canvas的射线
还需要有 EventSystem 物体存在,一般创建Canvas时自动创建。
UI的射线检测会依次检测对象树下的所有元素,有任何射线检测成功,则会反馈到带有事件响应的组件(Button)中,如果想实现射线穿透,可以将前面显示的UI元素的射线检测关闭。
按钮是否可交互
按钮状切换效果:
键盘导航,可以通过按键切换选中可交互UI,Visualize开启后,能够看到导航线,Navigation可以选择横向移动、纵向移动、自动匹配移动、指定上下左右移动,手机游戏可以关闭导航。
按钮添加事件(拖拽方式):
按钮添加事件(代码方式):
Is On:用于判断当前Toggle是否为开启状态
Toggle勾切换的动画效果
Toggle勾的图
如果Toggle构成组,则需要将ToggleGroup拖给Toggle,比如:
Toggle事件处理
判定当前的开关是否打开
动态传参和静态传参
动态传参会根据Toggle的IsOn传递bool数据,静态传参则会根据配置值传递bool数据。
ToggleGroup中可以获取开启的Toggle:
InputField事件:
当文本框输入的内容改变或结束输入时,分别执行回调函数。
带有Mask组件的图,会显示子物体图片中,父物体图片Alpha通道不为0的部分
参数:没有子物体能显示时,是否显示父物体本图
Mask组件一般配合Image组件使用,以实现不规则显示,比如圆形头像
Handle Rect:拖拽条对象
运行方向:上下,下上,左右,右左
拖拽条对应的值(0起始位置,1结束位置)
拖拽条占滚动条的比例(可视区域/实际区域,自动计算)
按步拖拽(固定步数分步显示所有实际区域)
横向自适应排列组件,参数上。
父元素宽高自适应组件
触发UI事件的三个要素
自定义点击实现:
由于Unity是组件化开发思想,所以自定义按钮也是使用组件Script实现
编写自定义事件步骤:
点击事件接口:
Button点击事件分析:
拖拽事件实现:
半透明渐变贴图在iOS设备下,使用压缩会造成图片质量损失,所以可以将半透明渐变UI切片单独制作真彩色图集。
拖拽事件组:
如何获取物体的位置:
需求:如何通过屏幕坐标系下的点,转换到DragArea本地坐标系下的点
文章浏览阅读290次,点赞8次,收藏10次。1.背景介绍稀疏编码是一种用于处理稀疏数据的编码技术,其主要应用于信息传输、存储和处理等领域。稀疏数据是指数据中大部分元素为零或近似于零的数据,例如文本、图像、音频、视频等。稀疏编码的核心思想是将稀疏数据表示为非零元素和它们对应的位置信息,从而减少存储空间和计算复杂度。稀疏编码的研究起源于1990年代,随着大数据时代的到来,稀疏编码技术的应用范围和影响力不断扩大。目前,稀疏编码已经成为计算...
文章浏览阅读217次。EasyGBS - GB28181 国标方案安装使用文档下载安装包下载,正式使用需商业授权, 功能一致在线演示在线API架构图EasySIPCMSSIP 中心信令服务, 单节点, 自带一个 Redis Server, 随 EasySIPCMS 自启动, 不需要手动运行EasySIPSMSSIP 流媒体服务, 根..._easygbs-windows-2.6.0-23042316使用文档
文章浏览阅读1.2k次,点赞27次,收藏7次。2023巅峰极客 BabyURL之前AliyunCTF Bypassit I这题考查了这样一条链子:其实就是Jackson的原生反序列化利用今天复现的这题也是大同小异,一起来整一下。_原生jackson 反序列化链子
文章浏览阅读734次,点赞9次,收藏7次。微服务架构简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立运行的项目。这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除])这么多小服务,他们之间如何通讯?这么多小服务,客户端怎么访问他们?(网关)这么多小服务,一旦出现问题了,应该如何自处理?(容错)这么多小服务,一旦出现问题了,应该如何排错?(链路追踪)对于上面的问题,是任何一个微服务设计者都不能绕过去的,因此大部分的微服务产品都针对每一个问题提供了相应的组件来解决它们。_spring cloud
文章浏览阅读5.9k次,点赞6次,收藏20次。Js实现图片点击切换与轮播图片点击切换<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script type="text/ja..._点击图片进行轮播图切换
文章浏览阅读10w+次,点赞245次,收藏1.5k次。在开始安装前,如果你的电脑装过tensorflow,请先把他们卸载干净,包括依赖的包(tensorflow-estimator、tensorboard、tensorflow、keras-applications、keras-preprocessing),不然后续安装了tensorflow-gpu可能会出现找不到cuda的问题。cuda、cudnn。..._tensorflow gpu版本安装
文章浏览阅读243次。0x00 简介权限滥用漏洞一般归类于逻辑问题,是指服务端功能开放过多或权限限制不严格,导致攻击者可以通过直接或间接调用的方式达到攻击效果。随着物联网时代的到来,这种漏洞已经屡见不鲜,各种漏洞组合利用也是千奇百怪、五花八门,这里总结漏洞是为了更好地应对和预防,如有不妥之处还请业内人士多多指教。0x01 背景2014年4月,在比特币飞涨的时代某网站曾经..._使用物联网漏洞的使用者
文章浏览阅读786次。A. Epipolar geometry and triangulationThe epipolar geometry mainly adopts the feature point method, such as SIFT, SURF and ORB, etc. to obtain the feature points corresponding to two frames of images. As shown in Figure 1, let the first image be and th_normalized plane coordinates
文章浏览阅读708次,点赞2次,收藏3次。开放信息抽取(OIE)系统(三)-- 第二代开放信息抽取系统(人工规则, rule-based, 先关系再实体)一.第二代开放信息抽取系统背景 第一代开放信息抽取系统(Open Information Extraction, OIE, learning-based, 自学习, 先抽取实体)通常抽取大量冗余信息,为了消除这些冗余信息,诞生了第二代开放信息抽取系统。二.第二代开放信息抽取系统历史第二代开放信息抽取系统着眼于解决第一代系统的三大问题: 大量非信息性提取(即省略关键信息的提取)、_语义角色增强的关系抽取
文章浏览阅读1.1w次,点赞6次,收藏51次。快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力为了寻找一个优质的网页模板,网页设计师和开发者往往可能会花上大半天的时间。不过幸运的是,现在的网页设计师和开发人员已经开始共享HTML5,Bootstrap和CSS3中的免费网页模板资源。鉴于网站模板的灵活性和强大的功能,现在广大设计师和开发者对html5网站的实际需求日益增长。为了造福大众,Mockplus的小伙伴整理了2018年最..._html欢迎页面
文章浏览阅读282次。原标题:2018全国计算机等级考试调整,一、二级都增加了考试科目全国计算机等级考试将于9月15-17日举行。在备考的最后冲刺阶段,小编为大家整理了今年新公布的全国计算机等级考试调整方案,希望对备考的小伙伴有所帮助,快随小编往下看吧!从2018年3月开始,全国计算机等级考试实施2018版考试大纲,并按新体系开考各个考试级别。具体调整内容如下:一、考试级别及科目1.一级新增“网络安全素质教育”科目(代..._计算机二级增报科目什么意思
文章浏览阅读240次。conan简单使用。_apt install conan