当前位置: 首页 > article >正文

Unity3D——UGI基础知识(1)

一、六大基础组件介绍1、组件创建在UI中创建一个imageunity就会自动创建一个Canvas和一个EventSystem这是必不可少的重要UGI内容。下面是他们的组件类别及作用概述。2、了解组件内容1.Canvas组件1.1Canvas组件的作用Canvas是画布它是UGUI中所有元素能够被显示的根本它主要负责渲染自己的所有UI子对象。注意如果UI控件对象不是Canvas的子对象那么控件将不能被渲染这时需要修改Canvas组件上的参数修改渲染方式。1.2Canvas使用数量场景中允许有多个Canvas对象可以分别管理不同画布的渲染方式分辨率适应方式等参数。注意如果没有特殊需求一般情况场景上一个Canvas即可 。1.3Canvas组件的3种渲染方式1.Screen Space-Overlay中文名覆盖模式UI始终显示在场景内容前方创建的3D物体始终在UI后面。参数说明Pixel Perfect像素完美是否开启无锯齿精确渲染性能换效果SortOrder排序次序排序层编号用于控制多个Canvas时的渲染先后顺序数字越小越先渲染越在后面TargetDisplay:目标设备在哪个显示设备上显示Additional Shader Channels附加着色器通道决定着色器可以读取哪些数据。图 -设备选择以《塞尔达传说旷野之息》举例展示血量、温度、噪音、天气、英杰技能等的 HUD适合使用「屏幕空间 - 覆盖模式」。这些3D物体始终显示在UI后面。「屏幕空间 - 覆盖模式」2.Screen Space - Camera摄像机模式3D物体可以显示在UI之前。Unity中的摄像机模式RenderCamera渲染摄像机用于渲染UI的摄像机如果不设置将类似于覆盖模式Plane Distance平面距离UI平面在摄像机前方的距离类似整体Z轴的感觉Sorting Layer排序图层所在排序层数字越小越先渲染越在后面Order in Layer图层顺序排序层的序号同一层中值越小越先渲染越在后面。通常需要新建一个摄像机仅渲染UI挂载到图像层上主摄像机仅不渲染UI。一个案例背包界面中游戏对象在背景前方又在食物详细信息面板后方这部分画布则适合使用「屏幕空间 - 摄像机」模式。猜测可能需要两层画布一层作为背景在游戏人物后方一层作为信息面板在游戏人物前方「屏幕空间 - 摄像机」3.World Space3D模式可以把UI对象像3D物体一样处理通常用于VR或AR。Event Camera用于处理UI事件的摄像机如果不设置不能正常注册UI事件。Unity中的世界空间渲染案例《激战2》中可以看到鹰的上方有个黑色的屏幕屏幕上有一些文字。这种场景则适合使用「世界模式」。世界渲染模式4.summarizeCanvas组件作用画布组件用于渲染显示UI控件Ui控件必须作为子对象场景中可以有多个Canvas 对象Canvas组件的3种渲染方式覆盖模式UI始终显示在最前面摄像机模式3D物体可以显示在UI之前3D模式用于制作3DUI在VR和AR中常用游戏中的3DUI效果使用2.Canvas Scaler组件1.1Canvas Scaler组件介绍Canvas Scaler的意思是画布缩放控制器用于分辨率自适应组件。它主要负责在不同分辨率下UI控件大小自适应它并不负责位置位置由之后的RectTransform组件负责。它提供了三种用于分辨率自适应的模式。Unity中的Canvas Scaler1.2基础知识屏幕分辨率Game窗口中的Stats统计数据窗口看到的当前“屏幕”分辨率会参与分辨率自适应计算。画布大小和缩放系数选择Canvas对象后再RectTransform组件中看到的宽高和缩放宽高*缩放系数屏幕分辨率屏幕分辨率计算参考分辨率在缩放模式的宽高模式中出现的参数参与分辨率自适应的计算。参考分辨率计算总结屏幕分辨率当前设备的分辨率编辑器下Game窗口中可以查看到参考分辨率在其中一种适配模式中出现的关键参数参与分辨率自适应计算画布宽高和缩放系数分辨率自适应会改变的参数通过屏幕分辨率和参考分辨率计算得到分辨率大小自适应通过一定的算法以屏幕分辨率和参考分辨率参与计算得出缩放系数结果会影响所有UI控件的缩放大小。简单地说就是屏幕 大的时候按钮大 屏幕小的时候按钮小。1.3CanvasScaler的三种适配模式Constant Pixel Size(恒定像素模式无论屏幕大小如何UI始终保持相同像素大小Scale With Screen Size缩放模式根据屏幕尺寸 进行缩放随着屏幕尺寸放大缩小Constant Physical Size恒定物理模式无论屏幕大小和分辨率如何UI元素始终保持相同物理大小Canvas Scaler下的三种适配模式1.4恒定像素模式Unity中的恒定像素模式Scale Factor缩放系数按此系数缩放画布中的所有UI元素Reference Pixels Per Unit每单位参考像素多少像素对应unity中的一个单位默认一个单位为100像素图片设置中的Pixels Per Unit设置会和该参数一起参与计算。知识补充导入的图片在image组件中显示的操作需要将其纹理类型转为精灵恒定像素模式计算公式UI原始尺寸图片大小像素/Pixels Per Unit/Reference Pixels Per Unit一般游戏开发不会使用。1.5缩放模式重要Reference Resolution参考分辨率缩放模式下的所有匹配模式都会基于参考分辨率进行自适应计算Screen Match Mode:屏幕匹配模式当前屏幕分辨率宽高比不适应参考分辨率时用于分辨率大小自适应的匹配模式1.三种匹配方式标题Expand水平或垂直扩展画布区域会根据宽高比的变化来放大缩小画布可能有黑边Shrink水平或垂直裁剪画布区域会根据宽高比的变化来放大缩小画布可能会裁剪Match Width Or Height以宽高或者二者的平均值作为参考来缩放画布区域2.Expand将Canvas Size进行宽或高扩大让他高于参考分辨率表现效果最大程度的缩小UI元素保留UI控件所有细节可能会留黑边3.Shrink将Canvas Size进行宽或高收缩让他低于参考分辨率表现效果最大程度的放大UI元素让UI元素能够填满画面可能会出现裁剪4.Match Width Or Height宽高匹配以宽高或者二者的某种平均值作为参考来缩放画布Unity中的宽高匹配总结游戏开发一般是使用Scale With Screen Size模式存在横竖屏切换选择时Expand扩展匹配有黑边和Shrink收缩匹配有裁剪不存在横竖屏切换定死的横屏或者竖屏游戏Match Width Or Height宽高匹配横屏游戏 Match1竖屏游戏 Match01.6恒定物理大小DPI(Dots Per Inch每英寸点数) 图像每英寸长度内的像素点数Physical Unit:物理单位使用的物理单位种类Fallback Screen DPI备用DPI当找不到设备DPI时使用此值Default Sprite DPI默认图片DPI在游戏开发中基本不用。1.7世界模式3D模式只有在世界空间模式下才出现并且默认为World模式无法改变。每单位动态像素数值越大创建的UI文字越清晰。该模式了解就行。3.Graphic Raycaster组件1.1组件介绍Graphic Ray caster名为图形射线投射器它用于检测UI输入事件的射线发射器。它主要负责通过射线检测玩家和UI的交换判断是否点击到了UI元素。Ignore Reversed Graphics是否忽略反转图形Blocking Objects:射线被哪些类型的碰撞器阻挡在覆盖渲染模式下无效Blocking Mask:射线被哪些层级的碰撞器阻挡在覆盖渲染模式下无效4.Event System组件1.1组件介绍Event System名为事件系统它是用来管理玩家的输入事件并分发给各UI控件他是事件逻辑处理模块。所有的UI事件都通过Event System组件中轮询检测并做出相应的执行它类似一个中转站和许多模块一起共同协作。如果没有它所有点击、拖拽等行为都不会被响应Fisrt Selected首先选择的游戏对象可以设置游戏一开始的默认选择不知为啥我这里选择了也没用。hhh其实有用要把按钮的select color颜色进行修改Send Navigation Events是否允许导航事件移动/按下/取消这也没有用Drag Threshold拖拽操作的阈值移动多少像素算拖拽5.Stand alone Input Module组件1.1组件介绍Stand alone Input Module名为独立输入模块主要针对处理鼠标/键盘/控制器/触屏的输入输入的事件通过EventSystem进行分发。它依赖于EventSystem组件二者缺一不可。了解即可一般不会修改这个组件。6.RectTransform组件1.1组件介绍RectTransform意思是矩形变换继承于Transform是专门用于处理UI元素位置大小相关的组件。Transform组件只处理位置、角度、缩放而RectTransform在此基础上加入了矩形相关将UI元素当作了一个矩形来处理加入了中心点、锚点、长宽等属性。目的是未来更加方便控制其大小以及分辨率自适应中的位置适应。Pivot轴心取值范围0~1Anchors相对父矩形锚点Min是矩形锚点范围x和Y的最小值Max是矩形锚点范围X和Y的最大值取值范围0~1Pos(x,y,z)轴心点中心点相对锚点的位置Width/Height:矩形的宽高Left/Top/Right/Bottom矩形边缘相对于锚点的位置当锚点分离时会场这些内容Blueprint Mode(蓝图模式启用后编辑旋转和缩放不会影响矩形只会影响显示内容Raw Edit Mode原始编辑模式启用后改变轴心和锚点值不会改变矩形位置。蓝图模式和原始编辑模式点击左上角方框将出现的锚点中心点快捷设置面板按住Shift点击鼠标左键可以同时设置轴心点相对自身矩形按照Alt点击鼠标左键可以同时设置位置

相关文章:

Unity3D——UGI基础知识(1)

一、六大基础组件介绍1、组件创建在UI中创建一个image,unity就会自动创建一个Canvas和一个EventSystem,这是必不可少的重要UGI内容。下面是他们的组件类别及作用概述。2、了解组件内容1.Canvas组件1.1Canvas组件的作用Canvas是画布,它是UGUI中…...

告别同步慢与数据泄露!2026国内主流企业网盘深度横评

在数字化转型的 2026 年,高效的文档协作已成为企业组织的核心竞争力。面对市面上琳琅满目的选择,主流网盘厂商究竟哪个能够真正适应复杂的业务场景?很多选型者在追求海量空间的同时,往往忽视了同步速度、网络抗并发性、权限管控及…...

ESP32 OTA升级实战:从零搭建一个带版本校验和自动回滚的远程固件更新服务

ESP32 OTA升级实战:构建企业级远程固件更新系统 去年夏天,我们团队的一个智能农业项目差点因为固件更新失败而损失惨重。当时200台部署在农田的ESP32设备因为网络波动导致固件下载不完整,系统陷入启动循环。正是那次经历让我意识到&#xff0…...

D4: 常见误区:管理者最容易踩的 5 个坑

文章目录 D4: 常见误区:管理者最容易踩的 5 个坑 🎯 为什么这个话题重要? 核心内容:管理者最容易踩的 5 个坑 坑 1:把 AI 当万能药,忽视基本功 坑 2:一刀切推行,忽视团队差异 坑 3:只看效率提升,忽视质量风险 坑 4:忽视安全与合规边界 坑 5:期待立竿见影,缺乏长期…...

语音识别入门必看:为什么Mel谱比原始波形和普通频谱图更好用?

语音识别中的Mel谱:为什么它比原始波形和普通频谱更胜一筹? 想象一下,你正在教一个刚学中文的外国朋友分辨"妈妈"和"马"这两个词的发音差异。直接播放原始录音可能让他一头雾水,但如果你把声音的高低变化画成…...

智能编程进入“所见即所得”时代:GPT-4o + Mermaid+AST可视化协同工作流(工业级实践白皮书首发)

第一章:智能编程进入“所见即所得”时代:GPT-4o Mermaid AST可视化协同工作流(工业级实践白皮书首发) 2026奇点智能技术大会(https://ml-summit.org) 传统代码生成范式正被实时、可验证、可交互的语义闭环工作流取代。GPT-4o 的…...

Mind+学习和项目栈1

提示:本内容仅供自己学习使用,以免长时间后,记忆检索困难,特此简单梳理操作思路和具体案例。安装包啥的官网就有,Mind官网 - 一站式满足程序设计、模型训练、界面设计。 0.认识工具了解功能:我觉得没有项目…...

Redis如何降低快照对CPU的影响_合理分配RDB执行时机避开业务高峰期

RDB快照导致CPU飙高源于fork后COW机制在高频写入时触发大量页复制;应禁用主节点自动快照,改由从节点低峰期执行,并关闭rdbcompression、rdbchecksum等加重CPU的默认配置。为什么RDB快照会让CPU突然飙高?Redis 生成 RDB 快照时&…...

AI辅助开发术语体系深度剖析

随着生成式AI与软件开发的深度融合,一系列全新的术语和开发范式应运而生。这些概念并非孤立存在,而是相互关联、层层支撑,共同构成了当前AI编程的新骨架。对于有一定基础的开发者而言,系统性掌握这套术语体系,不仅能提…...

别再手动改代码了!用Postman汉化插件5分钟搞定中文界面(附最新版下载)

5分钟解锁Postman中文界面:零代码汉化全攻略 第一次打开Postman时,满屏的英文术语是否让你望而却步?作为国内开发者,我们常常需要在这款强大的API测试工具和中文思维之间来回切换。其实,只需一个浏览器插件&#xff0…...

别再乱用self了!深入理解Python中@staticmethod和@classmethod的正确使用场景

别再乱用self了!深入理解Python中staticmethod和classmethod的正确使用场景 在Python开发中,我们经常会遇到各种关于方法调用的困惑。特别是当看到"missing 1 required positional argument"这样的错误时,很多开发者会感到一头雾水…...

【生成式编程安全生死线】:从GitHub Copilot到CodeWhisperer,必须启用的4层静态+动态校验机制

第一章:智能代码生成代码安全性检查 2026奇点智能技术大会(https://ml-summit.org) 智能代码生成工具(如Copilot、CodeWhisperer、Tabnine)在提升开发效率的同时,可能引入未经验证的安全隐患——包括硬编码密钥、不安全的反序列化…...

【限时解密】2026奇点大会未公开闭门报告:AI编程助手在金融级代码审计、合规注释生成、跨语言重构三大高危场景的真实失效案例(仅剩97份内部摘要)

第一章:2026奇点智能技术大会:AI编程助手对比评测 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点智能技术大会上,来自全球12家主流厂商的AI编程助手接受了统一基准测试——包括代码补全准确率、跨文件上下文理解、调试建议有效性…...

PyTorch迁移学习避坑指南:修改SqueezeNet分类层时别忘了改这个隐藏参数

PyTorch迁移学习避坑指南:修改SqueezeNet分类层时别忘了改这个隐藏参数 在深度学习领域,迁移学习已经成为提升模型性能的利器。PyTorch作为当前最受欢迎的深度学习框架之一,其丰富的预训练模型库让开发者能够快速实现各种计算机视觉任务。然而…...

全网最细!Maven 编译构建 Java Web 项目从入门到实战一文吃透

使用Maven编译并构建java web项目 一、Maven概述 Maven,是一个专为Java平台设计的项目管理和构建工具。其核心思想在于“约定优于配置,通过提供一套默认的构建和依赖管理规则,降低了项目配置的复杂性,使开发者能够专注于业务逻辑…...

图像滤波实战:用MATLAB玩转频域,5分钟学会低通/高通滤波(附完整代码)

图像滤波实战:用MATLAB玩转频域,5分钟学会低通/高通滤波(附完整代码) 当你面对一张需要去噪或锐化的图片时,频域处理技术能像魔法一样帮你实现这些效果。不同于传统空间域的像素级操作,频域处理让我们能够直…...

如何利用S32DS与NCF Tool高效配置KEA的LIN节点(一)

1. 从零认识LIN总线与KEA系列MCU 第一次接触汽车电子开发的朋友可能会好奇,为什么车窗升降、雨刮控制这些简单功能需要专门的总线协议?其实在车身控制领域,LIN(Local Interconnect Network)总线就像小区里的自行车道—…...

077_D11、卡车小镇.Trucktown.适合3-8岁资料网盘下载

D11、卡车小镇.Trucktown.适合3-8岁资料网盘下载 如果你正在寻找一份适合低龄儿童启蒙观看或亲子共学的英语类动画资源,那么 D11、卡车小镇.Trucktown.适合3-8岁资料网盘下载 这类内容通常会是很多家长关注的方向。尤其是在家庭英语启蒙、日常磨耳朵和兴趣培养场景…...

SDR技术在医学成像OCT中的应用与优化

1. SDR技术与医学成像的跨界融合在医疗设备研发领域,一个令人着迷的现象是:尖端技术往往先在军事或通信领域成熟,随后才逐步渗透到民用医疗领域。这种技术迁移不仅降低了研发成本,更带来了性能的飞跃。软件定义无线电(…...

为端到端API添加Naive RAG 流程

在前文中,我们结合langchain和fastapi搭建了一个端到端的问答API,这个agent可以调用已经封装好的工具函数,可以获取本地数据库,有记忆功能;但是这样的模型训练好了过后只是就固定了,如果没有获取或更新相应…...

AGI Python入门 保姆级教程

你不需要懂微积分,不需要背设计模式,甚至不需要知道什么是“面向对象”。 我们只做三件事:让大模型听懂人话 → 让它选择用哪个工具 → 让Python真正执行那个工具 不用怕数学,不用怕算法,只要你会“顺序、判断、循环…...

5分钟图解数码管驱动:从段选码表到位选扫描实战

1. 数码管驱动基础:从LED到数字显示 数码管本质上是一组排列成特定形状的LED灯。每个数码管由8个LED段组成(包括小数点),通过点亮不同段的组合来显示数字或字母。我第一次接触数码管是在大学电子设计课上,当时为了做一…...

51单片机红外人数统计系统

目录 具体实现功能 设计介绍 51单片机简介 资料内容 原理图(AD19) 仿真实现(protues8.7) 程序(Keil5) 全部资料 资料获取 具体实现功能 由51单片机数码管红外计数传感器按键蜂鸣器等构成。 具体功…...

图解Android蓝牙启动:从App调用enable()到HAL层回调的完整消息传递链路

Android蓝牙启动流程深度解析:从应用层到HAL层的完整链路 在车载系统、智能家居等场景中,蓝牙作为核心无线通信协议,其启动过程的稳定性直接影响用户体验。本文将深入剖析Android蓝牙子系统从应用层调用enable()到HAL层回调的完整消息传递链路…...

【花雕学编程】Arduino BLDC 之多电机扭矩分配(差速驱动机器人)

在机器人工程领域,差速驱动(Differential Drive)因其结构简单、机动性强(可原地转向)而被广泛应用于各类移动机器人。对于采用双BLDC(无刷直流)电机作为驱动核心的差速驱动机器人,“…...

STM32F4 RTC实战:从日历闹钟到低功耗唤醒

1. STM32F4 RTC模块基础入门 第一次接触STM32F4的RTC模块时,我完全被它强大的功能震撼到了。这个看似简单的实时时钟模块,实际上是个功能完整的计时系统。想象一下,你的嵌入式设备即使断电也能保持准确时间,还能在特定时刻自动唤醒…...

从零到一:Keil MDK ARM/51双环境搭建与芯片包全配置实战

1. 环境准备与安装基础 第一次接触Keil MDK时,我对着满屏的英文界面和复杂的配置选项完全无从下手。后来才发现,只要掌握几个关键步骤,搭建双开发环境其实比想象中简单得多。我们先从最基础的软件安装说起,这里有个小技巧&#xf…...

如何导入带系统变量修改的SQL_确保SUPER权限并规避只读变量报错

MySQL 5.7导入SQL报ERROR 1227是因SET GLOBAL语句需SUPER权限,且在read_onlyON实例上必失败;应优先过滤global/session SET语句或改用SESSION级设置。导入SQL时提示 ERROR 1227 (42501): Access denied; you need (at least one of) the SUPER privilege…...

mysql权限表查询性能如何优化_MySQL系统权限缓存原理

BEM 能让 CSS 更易复用,因其通过「块__元素--状态」命名强制绑定样式与结构,明确依赖关系,避免全局冲突;补 BEM 应渐进式改造高频模块,严守命名规范;它不与 CSS-in-JS 或 Tailwind 冲突,但需统一…...

MySQL vs MongoDB:关系型 vs 文档型数据库的本质差异

在数据库选型中,MySQL 和 MongoDB 是最经典的一组对比。 很多人只知道一句话:MySQL 是关系型数据库,MongoDB 是 NoSQL。但如果你要做系统设计或面试高级岗位,这种回答是完全不够的。 下面从数据模型、架构设计、性能机制、事务能力…...