使GUI适应各种屏幕分辨率

转载 2013年12月04日 16:20:40

用Unity开发移动平台游戏  不可避免的会遇到屏幕分辨率的问题  

不同的分辨率上会使得原本正常的UI变得乱七八糟  

我们知道  在Unity中可以拿一个plane作为背景 UI则是绘制在离摄像机最近的位置  可以认为是绘制在摄像机上的

因此分辨率的不同会导致UI的位置和大小出现错误

 

我们完全可以用一个plane去模拟button  并将它放在世界空间中  这样虽然可以解决位置和大小的问题  但是所带来的问题也一大堆并难于维护

因此我们需要根据屏幕的大小去按比例缩放UI

假如原本有个按钮是这样,并且当前的480x854分辨率下没问题,如果改成600x1024或者其他的分辨率,便会发现位置和大小都不正确了

function OnGUI ()
{
if (GUI.Button(Rect(Screen.width - 200, Screen.height - 100, 64, 64), "Start"))
{
// dosomething
}
}

于是我们按比例去移动和缩放UI

 

// original screen size
var m_fScreenWidth : float = 480;
var m_fScreenHeight : float = 854;

// scale factor
var m_fScaleWidth : float;
var m_fScaleHeight : float;

function Awake ()
{
m_fScaleWidth = parseFloat(Screen.width)/m_fScreenWidth;
m_fScaleHeight = parseFloat(Screen.height)/m_fScreenHeight;
}

function OnGUI ()
{
if (GUI.Button(Rect(Screen.width - 200 * m_fScaleWidth , Screen.height - 100 * m_fScaleHeight , 64 * m_fScaleWidth , 64 * m_fScaleHeight ), "Start"))
{
// dosomething
}
}

这样就将button的位置和大小都按照比例缩放了  很简单

如果有什么更好的办法 或者这个方法存在什么问题 欢迎指正 谢谢.


好了,看到这,辛苦你了,大家帮帮忙,注册下号,有大用的(点击我的链接进入注册即可):

你想淘宝省钱么?你是淘宝达人么?现在有个好机会就可以在购物的同时,即可省下一大笔钱。。赶紧来看看吧。。


点我进入畅返网(淘宝购物返现网)

MadeByLuckyDog


相关文章推荐

Unity GUI自适应屏幕分辨率的方法

1:GUI自适应屏幕方法. 由于屏幕尺寸的问题,我们设计的UI在不同尺寸屏幕上不能很好的工作,因此我们的工程需要适应不同屏幕的要求,unity新版本中已经可以设置屏幕自适应而不需要我们自己去设置,在...

Unity3D学习笔记01:GUI自适应屏幕分辨率

GUI通常情况下用来制作游戏的菜单界面和游戏运行时的工具栏等,不同型号的手机的屏幕分辨率往往不同,这样我们就会遇到自适应屏幕这个问题,下面我们就来说一下解决办法。        首先我们来看谈一下实现...
  • jukai7
  • jukai7
  • 2013年08月14日 23:27
  • 3683

Android自适应屏幕分辨率

  • 2012年11月16日 17:43
  • 19KB
  • 下载

cocos2d-x自适应屏幕分辨率 源码

  • 2012年11月27日 01:46
  • 11.81MB
  • 下载

CSS根据屏幕分辨率宽度自动适应的办法

CSS根据屏幕分辨率宽度自动适应的办法   第一种办法是JS选择CSS if (screen.width == 640) { document.write('');...

自动适应屏幕分辨率

  • 2016年11月30日 14:49
  • 43KB
  • 下载

自适应屏幕分辨率

  • 2014年02月21日 20:15
  • 22KB
  • 下载

如何使网页自适应电脑屏幕分辨率?

在1024*768或者800*600的分辨率下可以自动调整成适用于该客户端分辨率的大小。   第一种方法:做一个网页解决问题(长了点)   如果只是因为浏览者改变了浏览器的设置,或者因为浏...

cocos2d-x 2.0版本 自适应屏幕分辨率

  • 2012年12月04日 23:59
  • 1.15MB
  • 下载

cocos2d-x 2.0版本 自适应屏幕分辨率

我使用的版本是cocos2d-2.0-x-2.0.4,cocos2dx-2.0版本对多分辨率适配提供了很好的支持,使用起来比1.0版本要简单些,1.0版本的适配可以参考这篇博文。 1. 做2.0版本...
  • demibug
  • demibug
  • 2013年03月26日 23:47
  • 566
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使GUI适应各种屏幕分辨率
举报原因:
原因补充:

(最多只允许输入30个字)