UI系统之UGUI框架 u3d ui框架
yuyutoo 2024-10-21 12:07 6 浏览 0 评论
RectTransform组件(UI对象位置描点控制组件):
- RectTransform是继承至Transform;
- PosX:UI控件的x方向的位置;PosY:UI控件的y方向的位置;PosZ:UI控件的z方向的位置;Width:UI 控件的宽度;Height:UI控件的高度;Left/Top/Right/Bottom:矩形边缘相对于锚点的位置;当前锚点分离时会出现这些内容;
- Anchors(相对父矩形锚点):Min是矩形锚点范围X和Y的最小值;Max是矩形锚点范围X和Y的最大值;取值在0~1;
- Pivot:轴心(中心)点,取值范围0~1;
- Pos(x,y,z):轴心点(中心点)相对锚点的位置;
- Rotation:围绕轴心点旋转的角度;
Canvas组件(画布组件,主要用于渲染Canvas的子对象UI控件):
Render Mode(UI渲染模式):三种不同方式的UI渲染模式,控制画布中UI控件的不同适配方式。
(1).Screen Space-Overlay(屏幕空间,覆盖模式,UI始终会显示在3D物体之前):
- Pixel Perfect(像素精度):是否开启无锯齿精度渲染,一般不会使用(性能换效果);
- Sort Order(渲染顺序队列):排序层编号,用于控制多个Canvas对象的UI渲染顺序;
- Target Display(目标设备):和摄像机配合使用,一般使用一个设备就可以,根据需求决定;
- Additional Shader Channels:着色器通道是附加的信息层,决定着色器可以读取那些数据;
(1).Screen Space-Camera(屏幕空间,摄像机模式,3D物体可以渲染在UI之前):
- Render Camera:用于渲染UI的摄像机(如果不设置将类似于覆盖模式)
- Plane Distance:UI平面在摄像机前方的距离,相当于整体z轴的感觉;
- Sorting Layer:所有排序层,通过层级决定渲染顺序;
- Order in Layer:同一排序层,根据序号决定渲染顺序;
(1).World Space(世界空间,3D模式):
- Event Camera:用于处理UI事件的摄像机,如果不设置,不能正常处理UI事件,一般用于VR/AR开发,可以跟随玩家移动,空间中UI方式;
Canvas Scaler组件(画布分辨率自适应组件):
UI Scale Mode(UI适配模式):主要负责在不同分辨率下的UI控件大小的自适应,Canvas中的RectTransforms( 宽高*缩放系数=屏幕分辨率 )。
(1).Constant Pixel Size(恒定像素模式):无论屏幕大小如何,UI始终保持相同像素大小
- Scale Facor: 缩放系数,按此系数缩放画布中的所有UI元素,宽高*缩放系数=屏幕分辨率;
- Reference Pixels Per Unit: 单位参考像素,多少像素对应Unity中的一个单位(默认一个单位为100像素)图片设置中的Pixels Per Unit,会和该参数一起参与计算;
- UI原始尺寸=图片大小(像素)/(Pixels Per Unit / Reference Pixels Per Unit);
- Pixels Per Unit:精灵图像素大小;
(2).Scale With Screen Size(缩放模式)常用:根据屏幕尺寸进行缩放,随着屏幕尺寸放大缩小
- Reference Resolution:参考分辨率(屏幕宽高),在该缩放模式下的所有匹配模式都会基于参考分辨率进行自适应计算;
- Screen Match Mode:屏幕匹配模式,当前屏幕分辨率宽高比不适应参考分辨率时,用于分辨率大小自适应的匹配模式
- Match Width Or Height:以宽高或者二者的平均值作为参考来缩放画布区域;
- Expand:水平或者垂直拓展画布区域,会根据宽高比来放大缩小画布,可能会有黑边,最大程度的缩小UI元素,保留UI控件所有细节;
- Shrink:水平或者垂直裁剪画布区域,会根据宽高比的变化来放大缩小画布,可能会裁剪掉部分,最大程度放大UI元素,填充屏幕;
- 缩放系数=Mathf.Min(屏幕宽/参考分辨率宽,屏幕高/参考分辨率高);
- 画布尺寸=屏幕尺寸/缩放系数;
- Match:确定用于计算的宽高匹配值,横屏游戏Match=1;竖屏游戏Match=0;
(2).Constant Physical Size(恒定物理模式):无论屏幕大小和分辨率如何,UI元素始终保持相同物理大小
- DPI(Dots Per Inch,每英寸点数):图像每英寸长度的像素点数;
- Physical Unit:物理单位,使用的物理单位种类;
- Fallback Screen DPI:备用DPI,当找不到设备DPI时,使用此值;
- Default Sprite DPI:默认图片DPI;
Graphic Raycaster(射线事件交互组件,控制UI控件射线相应):
- Ignore Revered Graphics:是否忽略反转,UI元素发生旋转时,是否还需要进行射线检测;
- Blocking Objects:射线被那些类型的碰撞器阻挡(在覆盖渲染模式没效果);
- Blocking Mask:射线被那些层级的碰撞器阻挡(在覆盖渲染模式没效果);
EventSystem组件(玩家输入事件响应系统):
- First Selected:首先选择的游戏对象,可以设置游戏一开始的默认选择;
- Send Navigation Events:是否允许UI导航事件(移动/按下/取消);
- Drag Threshold:拖拽操作的阈值(移动多少像素算拖拽);
Standalone Input Module组件(玩家独立输入模块组件,监听玩家操作):
- 独立输入模块,处理鼠标、键盘、控制器、触屏的输入事件通过EventSystem进行分发;
- Horizontal Axis:水平轴按钮对应的热键名(Input管理器);
- Vertical Axis:垂直轴按钮对应的热键名;
- Submit Button:提交(确定)按钮对应的热键名;
- Cancel Button:取消按钮对应的热键名;
- Input Actions Per Second:每秒允许键盘/控制器输入的数量;
- Repeat Delay:每秒输入操作重复率生效前的延迟时间;
- ForceModule Active:是否强制模块处于激活状态;
相关推荐
- MATLAB实例讲解—求二元函数的极值
-
实例程序...
- 解析式大赛的获奖作品代码和公式公布啦!
-
上方超级数学建模可加关注传播数学干货,学会理性的方式去思考问题大家期待已久的运行代码终于新鲜出炉了!!!抱歉让各位粉丝久等了接下来就是揭秘奇迹的时刻1、emoji解析式:无代码:holdon...
- 基于MATLAB的ACC控制算法设计及仿真测试
-
作者...
- MATLAB基础学习之坐标转换(matlab改坐标)
-
(一)平面坐标转换1.cart2pol:将笛卡尔坐标转换为极坐标;2.pol2cart:将极坐标转换为笛卡尔坐标;(二)立体坐标转换1.cart2sph:将笛卡尔坐标转换为极坐标;2.sph2cart...
- 「太极创客」零基础入门学用物联网 - MQTT篇 1-9 自我测试
-
到目前为止,我们已经掌握了MQTT通讯的基本流程以及如何使用ESP8266来发布和订阅MQTT消息。这节课我们来进行自我测试。...
- 用豆包改了一下午程序,感觉它聪明得超乎想象
-
之前低估了AI的聪明程度,AI持续学习下去,未来可以做的事情太多了,编程已经算是比较复杂的事情都能完成得这么好,那些项目计划、工作报告更是小儿科。今天用豆包改了几个程序,提出的BUG也能修改完成...
- Node-Media-Server开源流行Nodejs流媒体服务器
-
简介Node-Media-Server一个Node.js实现的RTMP/HTTP/WebSocket/HLS/DASH流媒体服务器。开源github地址:https://github.com/il...
- 如何应对 RAG 开发挑战?12 个痛点逐一击破
-
受到论文《SevenFailurePointsWhenEngineeringaRetrievalAugmentedGenerationSystem》的启发,并结合实际开发RAG(检...
- 团队协作-代码格式化工具clang-format
-
环境:clang-format:10.0.0前言统一的代码规范对于整个团队来说十分重要,通过git/svn在提交前进行统一的ClangFormat格式化,可以有效避免由于人工操作带来的代码格式问题。C...
- 如何编写自己的Arduino库?(arduino怎么自己写库)
-
支持一对一答疑的购买地址...
- Auto CAD 命令(A)(cad命令aaw)
-
ABOUT(命令)显示有关产品的信息。...
- 一文读懂设计模式,看这篇就够了(设计模式是干嘛的)
-
转载:javadoop.com/post/design-pattern一直想写一篇介绍设计模式的文章,让读者可以很快看完,而且一看就懂,看懂就会用,同时不会将各个模式搞混。自认为本文还是写得不错的,花...
- ASL开发者指南:构建健壮高效的C++应用
-
1.库介绍AdobeSourceLibraries(ASL),现在由stlab维护,是一组专注于提供高质量、经过实战检验的C++组件的集合。它最初由Adobe公司开发,旨在解决构建...
- linux下GDB使用方法(linux怎么用gdb调试)
-
gdb是GNU开源组织发布的一个强大的Linux下的程序调试工具。一般来说,GDB主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
推荐7个模板代码和其他游戏源码下载的网址
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
【开源分享】2024PHP在线客服系统源码(搭建教程+终身使用)
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)