Unity多分辨率适配
UGUI:
原文链接:http://blog.csdn.net/dingkun520wy/article/details/49471789
1、Canvas的属性配置
2、Canvas Scaler的属性配置
3、根据不同的屏幕的比例动态修改缩放基准
void Start () { float standard_width = 960f; //初始宽度 float standard_height = 640f; //初始高度 float device_width = 0f; //当前设备宽度 float device_height = 0f; //当前设备高度 float adjustor = 0f; //屏幕矫正比例 //获取设备宽高 device_width = Screen.width; device_height = Screen.height; //计算宽高比例 float standard_aspect = standard_width / standard_height; float device_aspect = device_width / device_height; //计算矫正比例 if (device_aspect < standard_aspect) { adjustor = standard_aspect / device_aspect; } CanvasScaler canvasScalerTemp = transform.GetComponent<CanvasScaler>(); if (adjustor == 0) { canvasScalerTemp.matchWidthOrHeight = 1; } else { canvasScalerTemp.matchWidthOrHeight = 0; } }
将脚本挂在画布控件上。
NGUI:
原文链接:http://www.cnblogs.com/cqgreen/p/3348154.html
宽 | 高 | 宽高比 |
960 | 640 | 1.5 |
1136 | 640 | 1.775 |
1024 | 768 | 1.3333 |
2048 | 1536 | 1.3333 |
宽 | 高 | 宽高比 |
800 | 480 | 1.6667 |
854 | 480 | 1.7792 |
1280 | 720 | 1.7778 |
960 | 540 | 1.7778 |
1280 | 800 | 1.6 |
960 | 640 | 1.5 |
1184 | 720 | 1.6444 |
1920 | 1080 | 1.7778 |
using UnityEngine;
using System.Collections;/// <summary>
/// 根据设备的宽高比,调整camera.orthographicSize. 以保证UI在不同分辨率(宽高比)下的自适应
/// 须与UIAnchor配合使用
/// 将该脚本添加到UICamera同一节点上
/// </summary>[RequireComponent(typeof(UICamera))]
public class UICameraAdjustor : MonoBehaviour
{float standard_width = 1024f;float standard_height = 600f;float device_width = 0f;float device_height = 0f;void Awake(){device_width = Screen.width;device_height = Screen.height;SetCameraSize();}private void SetCameraSize(){float adjustor = 0f;float standard_aspect = standard_width / standard_height;float device_aspect = device_width / device_height;if (device_aspect < standard_aspect){adjustor = standard_aspect / device_aspect;camera.orthographicSize = adjustor;}}
}
using UnityEngine;
using System.Collections;/// <summary>
/// 根据设备的宽高比,调整UISprite scale, 以保证全屏的背景图在不同分辨率(宽高比)下的自适应
/// 将该脚本添加到UISprite同一节点上
/// 须与UICameraAdjustor脚本配合使用
/// </summary>[RequireComponent(typeof(UISprite))]
public class UIBackgroundAdjustor : MonoBehaviour
{float standard_width = 1024f;float standard_height = 600f;float device_width = 0f;float device_height = 0f;void Awake(){device_width = Screen.width;device_height = Screen.height;SetBackgroundSize();}private void SetBackgroundSize(){UISprite m_back_sprite = GetComponent<UISprite>();if (m_back_sprite != null && UISprite.Type.Simple == m_back_sprite.type){m_back_sprite.MakePixelPerfect();float back_width = m_back_sprite.transform.localScale.x;float back_height = m_back_sprite.transform.localScale.y;float standard_aspect = standard_width / standard_height;float device_aspect = device_width / device_height;float extend_aspect = 0f;float scale = 0f;if (device_aspect > standard_aspect) //按宽度适配{scale = device_aspect / standard_aspect;extend_aspect = back_width / standard_width;}else //按高度适配{scale = standard_aspect / device_aspect;extend_aspect = back_height / standard_height;}if (extend_aspect >= scale) //冗余尺寸足以适配,无须放大{}else //冗余尺寸不足以适配,在此基础上放大{scale /= extend_aspect;m_back_sprite.transform.localScale *= scale;}}}
}
Unity多分辨率适配相关推荐
- Unity+NGUI多分辨率适配方案
说起unity的适配方案,网上可谓是一查一大堆,但是真正要应用到项目中的时候,总会出现各式各样的问题.由于最近自己要做一个小游戏,在开始做游戏之前,就想着先好好搞一搞适配这块,以后新起项目的时候也会用 ...
- 【转】android多分辨率适配
前一阶段开发android项目,由于客户要求进行多分辨率适配,能够支持国内主流的分辨率手机.因此经过了几次开发走了很多弯路,目前刚刚领略了android多分辨率适配的一些方法. 先介绍一下所走的弯路, ...
- Cocos2d-x 多分辨率适配完全解析
本文为 泰然网 刘克南 原创. 转自cocoachina,原文地址:http://www.cocoachina.com/applenews/devnews/2013/0809/6767.html 从C ...
- 游戏开发29课 cocoscreator 多分辨率适配方案
多分辨率适配方案 Cocos Creator 3.0 在整体设计上沿用了 Cocos Creator 2.x 一套资源适配多种分辨率屏幕的方案.简单概括来说,我们通过以下几个部分完成多分辨率适配解决方 ...
- Unity iPhoneX适配方案
baidu UNITY_IPHONE Unity iPhoneX适配方案[NGUI&UGUI] https://blog.csdn.net/qq_35936174/article/d ...
- 开机动画制作及多分辨率适配
1.开机动画制作 开机动画资源文件:bootanimation.zip 解压后的文件目录: desc.txt文件内容: 512 416 60 代表的分别是宽,高,帧数:具体为:开机动画的宽度为512个 ...
- iOS多分辨率适配综述
最近在掘金上分享了一篇关于性能优化文章iOS性能优化系列篇之"优化总体原则",第一次发表文章在网上,结果收到了好多人的正面的反馈,受到了一点点鼓舞,这篇文章是很久以前组内做的一个分 ...
- Unity分辨率适配方案设置
有关适配问题官方文档的连接,有兴趣的小伙伴可以查阅一下. Anchors:https://docs.unity3d.com/Manual/UIBasicLayout.html CanvasScaler ...
- IPad Pro 2018 Unity 屏幕适配 解决无法全屏问题
MTL测试结果说在IPad Pro 2018上出现了没有全屏的问题.由于是在Splash Screen阶段就出现了不全屏的现象,故认为应该这是native阶段的问题. 于是以「ipad pro 201 ...
最新文章
- Ubuntu安装QT后无法输入中文怎么办?
- 大数相乘、大数相加、大数相减Java版本
- RFC 协议下载方法
- SM50强制终结后台JOB进程
- matlab 显示多幅图像,运用matlab实现循环语句中的多幅图像显示
- IP通信基础 实验三
- Delphi 与 DirectX 之 DelphiX(46): TDIB.DoAntiAlias;
- 基于图神经网络的图表示学习方法
- 解决java无法切分字符串,.split()无效
- git mergetool 解决冲突的问题
- 结对-贪吃蛇游戏-需求分析
- 数据访问类用静态方法。。。当多个人调用时返回值会返回别人的?。。。特别奇怪的问题???...
- 【转】TeXmacs:一个真正“所见即所得”的排版系统
- Ubuntu配置了静态IP之后,旧的IP出现是什么情况
- iOS 25个性能优化/内存优化常用方法
- eova常用前端组件介绍
- Java实现杨辉三角形
- 【清华大学陈渝】第三章 计算机体系结构
- OpenGL中相关函数的意义及用法
- 计算机蜂鸣无法开机,计算机开机后会时常出现3声蜂鸣是什么原因
热门文章
- 程序员开发指南!半路出家Android程序员看我轻松逆袭!实战篇
- 中科大凌青老师凸优化课程——目录
- 【随堂习题1】用Python编写猜拳游戏
- 在Windows上双击运行Python程序不会自动退出的方法
- 美国或下周封杀委内瑞拉石油币,法国AMF:不禁止无证ICO,有证ICO须特定担保 | 区块链日报
- CSDN文本MD编辑器教程【始终专一MD】
- 计算机毕业设计Node.js+Vue房地产销售系统(程序+源码+LW+部署)
- 码科速送同城跑腿小程序v3.0.62+前端+插件
- vue+tiptap ,基于vue的无渲染的富文本编辑器
- 2、Python 进阶知识总结