UGUI研究院之开始学习搭建界面自适应屏幕(一)

游戏及相关CG行业知识分享大V全整合 文章目录一、雨松Mono(宣雨松):二、SiKi三、CandyCat(冯乐乐)四、MaxwellGeng:五、YivanLee:六、NeroBlack(史尧)七、大谷的游戏创作小屋八、Shallot夏洛特九、Developer殿堂十、莉莉丝官方账号十一、Unity官方十二、Substance中国十三、NVIDIA英伟达官方账号十四、Adobe官方十五、M_Studio十六、MZMCRAFT十七、鱼一元001十八、Lee哥的游戏开发加油站十九:博毅创为二十:CG-TUBE二十一、yofebibibi二十二、S 阅读详情

UGUI已经beat21了。。直觉已经告诉我正式版马上就要来了。刚好今天有时间,我就抽空学习一下UGUI。以前都是搞NGUI,衷心希望UGUI的诞生可以彻底干掉NGUI(目前还不太现实)。今天主要研究的是搭建界面还有自适应屏幕相关的,这里记录下我的学习笔记欢迎大家一起讨论嘿嘿。

如下图所示,我们先看Canvas,Render Mode一共有三种模式。

1.Screen Space – overlay  此模式不需要UI摄像机,UI将永远出现在所有摄像机的最前面。我觉得overlay有问题,如果我想在UI前面放个东西就不行了,因为可能在UI前面放一个特效或者UI啥的。。

2.Screen Space- Camera 此模式是我决定采取的,它需要提供一个UICamera 。这样就和NGUI的原理很像了,如果我想在UI前面加特效我可以在创建一个摄像机深度大于这个UICamera就行了。

3.World Space 这个就是完全3D的UI,UGUI的例子大多都采用它,但是我觉得目前我还是用不到。

如下图所示,在看Canvas Scaler。UGUI在处理自适应这块不需要我们自己在写算法了。

UI Scale Mode :Scale With Screen Size 表示以宽度为标准缩放。。 因为我搭建界面的时候是1024X768所以这里我写1024X768。

Screen Match Mode 选择 Expand 这个就是UGUI自己自适应屏幕的选项了。

补充: Canvas Scaler 选择 Scale With Screen Size, Screen Match Mode 选择 Match Width Or Height,比例设为1,即只和高度进行适配;

如下图所示,看看我的层次视图

Main Camera 就是主摄像机,也就是透视摄像机,它的深度最小最先绘制。

Canvas就是画布了,下面挂的UICamera 和 UIForward摄像机。

UICamera 下面挂着所有的uGUI的UI控件,它的深度大于MainCamera。

UIForward 就是前面我们说的有些东西要在UICamera的前面显示。

接着在UICamera下面挂UI控件吧。。这个比较简单就不细说了。。

因为UI的自适应UGUI已经帮我们做了,那么我们要做的就是3DCamera的自适应。把下面这个脚本挂在Main Camera上即可。

 1 using UnityEngine;
 2 using System.Collections;
 3 using UnityEngine.UI;
 4 public class CameraScale : MonoBehaviour {
 5  
 6     void Start () {
 7         int ManualWidth = 960;
 8         int ManualHeight = 640;
 9         int manualHeight;
10         if (System.Convert.ToSingle(Screen.height) / Screen.width > System.Convert.ToSingle(ManualHeight) / ManualWidth)
11             manualHeight = Mathf.RoundToInt(System.Convert.ToSingle(ManualWidth) / Screen.width * Screen.height);
12         else
13             manualHeight = ManualHeight;
14         Camera camera = GetComponent<Camera>();
15         float scale =System.Convert.ToSingle(manualHeight / 640f);
16         camera.fieldOfView*= scale;
17     }
18 }

记得增加一个UIForward 的层, 这样如果想在UI的前面添加特效 直接把它的特效的Layer设置成UIForward即可。

最后,由于我也正在学习,如果有不对的地方欢迎大家在下面给我留言。谢谢啦,呼呼~~~

Unity记录-UGUI的屏幕自适应原理和应用 UGUI的屏幕自适应,是通过Canvas Scaler来做的,根据屏幕的分辨率,计算出canvas的大小,同时计算ScaleXY,通过Size + Scale来控制Canvas的变换,UI作为canvas的子物体,也会跟随着一起变化;为了保证UI的位置,需要在设计UI的时候,对角落,边缘的UI做特殊的处理,利用锚点来保证UI与边缘或角落的距离,锚点的概念就不多说了,一句话:锚点的向量值就是锚点与自... 阅读详情

相关推荐

【UGUI】 全屏背景图片等比例拉伸自适应

首先感叹一下,UGUI的自适应做的还是非常不错的,RectTransform中提供了非常多种的自适应方式.对做界面来说还是很友好的. 如果界面上需要有个全屏的背景图(UI界面一般都是有的吧,弹框啥的除外),那么需要简单的这样设置就可以满足屏幕的自适应了(so easy): 不过这样的自适应方式是直接拉伸铺满整个屏幕的方式,并没有保障等比例拉伸,就是说背景图就会出现变形,以下面这张图为例(注意黄色的圆): 自带的自适应效果是这样的: 而等比例拉伸自适应的效果是这样的: 实现 第一步 既然是自己写代码

Vitens的专栏 6192

雨松MOMO 之 开始学习搭建界面自适应屏幕(一)

雨松MOMO 之 开始学习搭建界面自适应屏幕(一) http://www.unitymanual.com/thread-40578-1-1.html  (出处: -u3d游戏开发者社区【游戏蛮牛】) UGUI已经beat21了。。直觉已经告诉我正式版马上就要来了。刚好今天有时间,我就抽空学习一下UGUI。以前都是搞NGUI,衷心希望UGUI的诞生可以彻底干掉NGUI(目前还不太现实

harbinxxh的专栏 2199

Unity3D MineCraft 我的世界 UGUI屏幕自适应以及按钮事件传输

Unity3D MineCraft 我的世界 UGUI屏幕自适应以及按钮事件传输 最近制作的内容大都在内部,没有明显的视觉变化,所以没有很多的更新。不过这两天学习到了如何使用UGUI,个人感觉比NGUI要好用,所以到这里来和大家分享一些比较实用且关键的内容。 一:UGUI的屏幕自适应。 实用UGUI,就是先要创建CANVAS,画布。画布在视觉上是不可见的,但是在逻辑上就和它的名字一样

大象hector的博客 1207

UGUI技术之全面理解图集与使用浅析

先说说UGUI的Atlas和NGUI的Atlas的区别,NGUI是必须先打出图集然后才能开始做界面。这一点很烦,因为始终都要去考虑你的UI图集。比如图集会不会超1024 ,图集该如何来规划等等。而UGUI的原理则是,让开发者彻底模糊图集的概念,让开发者不要去关心自己的图集。做界面的时候只用小图,而在最终打包的时候unity才会把你的小图和并在一张大的图集里面。然而这一切一切都是自动完成的,开发者不

3509

Unity3D GUI自适应屏幕

博客Unity3D学习笔记01:GUI自适应屏幕分辨率的项目源码,请大家自行下载参考。

雨松MOMO程序研究院

1. 此CHM文档免费,请勿用于金钱交易否则后果自负与本制作人无关,如有版权问题纯属意外(此文档是制作人方便学习制作无条件分享)。 2. 此CHM文档所有内容来源于雨松MOMO程序研究院。 3. 限于制作人水平,CHM中难免会有错漏之处,敬请原谅!

Screen.SetResolution() 执行失效

有很多朋友们都会使用Screen.SetResolution() 来控制屏幕分辨率,例如游戏全屏化什么的。但是这个东西有时候卸载Sta https://docs.unity3d.com/ScriptReference/Screen.SetResolution.html

xxxhhhyxy的博客 9492

关于keil编译报.sct (7): error: L6236E: No section matches selector - no section to be FIRST/LAST.处理方法

使用keilUvision5向下兼容,选择S3C2440主款芯片编译运行汇编语言。 出现了一个错误: . \objectslex3-2.sct (7): error: L6236E: No section matches selector - no section to be FIRST/LAST. 我在网上搜了很多,没有找到适合修正我这里的错误的。故咨询陈老师,终于将这个错误解决。 错误如下: 修改过程: 打开小仙女棒 将linker的Use Memory Layout fromTarget Dial

weixin_45865666的博客 9523

unity 优化之七

帧率低的问题 修改游戏的渲染分辨率,手机帧率低的时候,直接改低游戏的渲染分辨率,减少每一帧要处理的像素数量。 unity 提供了一个方法设置渲染分辨率 Screen.SetResolution(designWidth,designHeight,true); 这里的做法是简单的把渲染分辨率设置成设计分辨率。如果手机本身的分辨率低于设计分辨率就不要再修改了。 int scWidth...

我动了谁的奶酪 770

SAP 凭证分割功能 - 概述&系统配置 - Chapter01/02

为何要进行凭证拆分(分割)?在启用凭证分割之前, 在财务凭证在过账时会自动带出默认的利润中心,这利 润中心一般是从其他对象派生出来的(比如从成本中心、WBS 或资产负债表科 目定义默认的利润中心等),但是某些情况下的财务过账是不会派生出利润中 心的,比如说应收或者应付。如果一笔销售凭证上有两个行项目,10 行对应的成品物料 A 的利润中心为 TPCA-100;公司项目Dr/Cr科目金额利润中心10001Dr应收账款20002Cr库存商品A1500TPCA-1003Cr。

weixin_46525734的博客 3952

100个Python代码大全:学完这篇从Python小白到架构师

Python是一种广泛使用的高级编程语言,以其简洁优雅、易于学习和强大的库而闻名。无论你是一位经验丰富的程序员还是初学者,都可以从这种语言的丰富资源中受益。在本篇博客中,我将分享100个实用的Python代码示例,旨在帮助你掌握Python编程,并在日常工作中提高效率。

penggerhe的博客 1万+

ugui unity3d 仪表盘_UGUI研究院之开始学习搭建界面自适应屏幕(一)

UGUI已经beat21了。。直觉已经告诉我正式版马上就要来了。刚好今天有时间,我就抽空学习一下UGUI。以前都是搞NGUI,衷心希望UGUI的诞生可以彻底干掉NGUI(目前还不太现实)。今天主要研究的是搭建界面还有自适应屏幕相关的,这里记录下我的学习笔记欢迎大家一起讨论嘿嘿。如下图所示,我们先看Canvas,Render Mode一共有三种模式。1.Screen Space – overlay ...

weixin_39941721的博客 254

使用 MATLAB/Simulink + Reinforcement Learning Toolbox 构建一个基于强化学习的永磁同步电机(PMSM)自适应控制仿真系统

随着人工智能(AI)技术的快速发展,强化学习(Reinforcement Learning, RL)在控制系统中的应用日益广泛。在电机控制领域,传统的PID控制虽然成熟稳定,但在面对非线性、时变、不确定负载等复杂工况时,其控制性能可能受限。而强化学习通过与环境的交互学习,能够实现在线自适应控制策略优化,显著提升系统的鲁棒性与响应速度。本教程将带你使用构建一个基于强化学习的永磁同步电机(PMSM)自适应控制仿真系统,实现从控制策略设计、环境建模、训练到仿真的全过程。当前转速(ω)

amy_mhd的博客 407

UGUI研究院之开始学习搭建界面自适应屏幕

UGUI已经beat21了。。直觉已经告诉我正式版马上就要来了。刚好今天有时间,我就抽空学习一下UGUI。以前都是搞NGUI,衷心希望UGUI的诞生可以彻底干掉NGUI(目前还不太现实)。今天主要研究的是搭建界面还有自适应屏幕相关的,这里记录下我的学习笔记欢迎大家一起讨论嘿嘿。 如下图所示,我们先看Canvas,Render Mode一共有三种模式。 1.Screen Space – o...

R873112的博客 156

FPGA 学习笔记:Vivado 配置IO引脚约束

FPGA 学习笔记:Vivado 配置IO引脚约束

坚韧与专注 2万+

【异常】OpenClaw提示异常 1302:您的账户已达到速率限制,请您控制请求频率

摘要:系统返回1302错误码提示"账户已达到速率限制",表明请求频率超过服务阈值。主要原因是并发请求数达上限或请求过于密集。解决方案包括:降低并发请求量、引入请求队列机制平滑流量,或根据服务规则提升账户权益等级以获取更高并发额度。建议优先优化请求频率控制策略,避免触发系统限流机制。

奶爸的编程之路,也就一周冷个三天 1141

Unity UGUI自适应布局系统详解

前言 此文延续上篇文章Unity UGUI源码解析,来进行对应的关于UGUI布局这块的讲解,关于布局刷新这块逻辑请参考上文中Canvas渲染重绘流程,用样适用布局更新这块逻辑,由于组件都是功能向的脚本,所以此文主要说明布局组件的使用方法,不对代码有过多的深入,具体实现逻辑请查看源码。 UGUI布局组件详解 组件概览 让我们先看一下UGUI框架中在UI布局这方面有哪些脚本,再来进行一一讲解 可以看到所有带icon图片的脚本都是我们可以在对UI进行布局的时候进行使用的,这里核心的脚本组合是LayoutGro

菜鸟的学习历程 1万+

fatal: unable to access ‘https://github.com/xxx.git/‘ OpenSSL SSL_connect: SSL_ERROR_SYSCALL 解决方案

 本文主要介绍了fatal: unable to access ‘https://github.com/xxx.git/’: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443解决方案,希望能对使用git的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 24万+

【Unity UGUI】获取UGUI界面的屏幕大小

【Unity UGUI】获取UGUI界面的屏幕大小 UGUI屏幕大小 说到屏幕大小我们可能会想到Unity自带的Screen.width,但是其实UGUI的屏幕大小是根据我们的适配情况自己算出来的,它和Screen.width是不一样的。我们在做分辨率适配的时候需要获取到当前的屏幕尺寸,也就是图中的箭头所示大小。 具体可以通过以下方法获取 /// <summary> ...

onelei的博客 3801

AIGC实战——变分自编码器(Variational Autoencoder, VAE)

变分自编码器通过在模型中引入随机性,并限制潜空间中的点的分布来解决自编码器存在的问题。只需进行一些微小的调整,就可以将自编码器转换为变分自编码器,从而使其成为真正的生成模型。在本节中,我们介绍了变分自编码器的基本原理,并使用 `Keras` 实现了一个变分自编码器用于生成 Fashion-MNIST 图像。

盼小辉丶的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Unity项目发布后屏幕自适应问题

作者文字纯手打,请珍惜劳动成果,如需转载请联系作者,个人主页soundbird.cn阅读此篇文章之前,你应该初步熟悉Unity的UGUI系统操作。 如果仅想实现屏幕自适应,那么只需观看斜体带下划线的文字即可,其他的文字都是解释。我们都知道,不同的设备,屏幕分辨率也通常是不同的,我们开发游戏或者应用的时候肯定要考虑到这个问题,总不能只在开发者你的手机上运行吧,那么这篇文...

Skying_的博客 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Unity之UGUI详解

UGUI 文章目录UGUI六大基础组件概述Canvas对象上依附的:CanvasCanvas ScalerGraphic RaycasterRectTransformEventSystem对象上依附的:EventSystemStandalone Input ModuleCanvas画布组件Screen Space overlayScreen Space CameraWorld SpaceCanvasScaler画布缩放控制器组件学前准备:Constant Pixel Size恒定像素模式Scale With

BraveRunTo的博客 3万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

unity android屏幕自适配,关于Unity中的UGUI的屏幕自适应(多分配率适配)

前言:最近在学习UGUI,在学习UGUI当中的屏幕自适应的时候出现了问题,搞的我很头疼,于是在网上查了很多资料,花了一晚上的时间,其实当时还是没想明白,但夜里突然失眠了,于是想了想昨天晚上看的资料,突然灵光一闪好像明白了点什么,为了方便以后的查阅,因此也就有了这篇文章。好了咱们废话不多说 ~想要明白UGUI的屏幕自适应(多分配率适配)首先你要明白:Canvas和锚点有什么区别?因为在进行适配的时候...

weixin_30888681的博客 2395
上一篇: UGUI研究院之控件以及按钮的监听事件系统(五)
下一篇: Unity属性的封装、继承、方法隐藏
AdvancePikachu
博客等级 码龄10年 10粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值