【Unity3D】【NGUI】屏幕自适应

转载 2013年12月03日 13:06:20

原文地址:http://blog.csdn.net/u012091672/article/details/17040985

作者:四爷如京


看过一些文章,大多数都用UIStretch。说实话我并不喜欢用这个脚本。

我一直对那些在屏幕适应上出现问题的人推荐使用UIRoot的ManualHeight。

今天提供一个脚本,临时写的,我赶脚挺好用。

使用注意:

1、和策划制定好开发时分辨率。这很重要,要保证所有UI都在同样的分辨率下制作。

2、把我这个脚本挂在UIRoot上。UIRoot的Scaling Style修改为FixedSize。

3、aspectRatioHeight、aspectRatioWidth分别为开发时的高和宽。

4、每个UIRoot都需要调整ManualHeight到和策划制定的高度。

5、Unity3D的Game窗口,调整到相应的分辨率。

附:写在Update里面完全为了方便。你可以根据自己的需求放在Start里面

[csharp] view plaincopy
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. [ExecuteInEditMode]  
  5. [RequireComponent(typeof(UIRoot))]  
  6. public class SZUIRootScale : MonoBehaviour  
  7. {  
  8.     public int aspectRatioHeight;  
  9.     public int aspectRatioWidth;  
  10.     private UIRoot root;  
  11.   
  12.     void Awake ()  
  13.     {  
  14.         root = NGUITools.FindInParents<UIRoot> (this.gameObject);  
  15.     }  
  16.       
  17.     void Update ()  
  18.     {  
  19.         float defaultAspectRatio = aspectRatioWidth * 1f / aspectRatioHeight;  
  20.         float currentAspectRatio = Screen.width * 1f / Screen.height;  
  21.         if (defaultAspectRatio > currentAspectRatio) {  
  22.             int horizontalManualHeight = Mathf.FloorToInt (aspectRatioWidth / currentAspectRatio);  
  23.             root.manualHeight = horizontalManualHeight;  
  24.         } else {  
  25.             root.manualHeight = aspectRatioHeight;  
  26.         }  
  27.     }  
  28. }  

相关文章推荐

Unity3D NGUI自适应屏幕

NGUI确实是非常棒的一个做界面的插件,比起U3D自带的GUI要好很多,当然也有一些不好之处,毕竟什么都不可能那么完美。 最近在用Unity写游戏使用NGUI遇到了一个很多人都在遇到的问题,...

unity3d学习笔记(十四)--NGUI用Sprite动画和屏幕自适应制作游戏

本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢。 http://blog.csdn.net/lzhq1982/article/details/12856597 ...

unity3d学习笔记(十四)--NGUI用Sprite动画和屏幕自适应制作游戏开始场景

通过前面十三篇文章的介绍,我的游戏场景基本搭建完成了,我们在玩任何一款手游产品时,都是先上来个logo界面,游戏欢迎界面等,这就意味着我们要做一款游戏需要多个场景,场景之间来回切换实现游戏逻辑,uni...
  • lzhq1982
  • lzhq1982
  • 2013年10月19日 15:24
  • 10564

Unity3D NGUI自适应屏幕分辨率 最新

http://blog.csdn.net/asd237241291/article/details/8126619

Unity3D开发(一):NGUI之UIRoot屏幕分辨率自适应

NGUI在Unity3D游戏开发中非常常用,而NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的,那么这个UIRoot是起什么作用的呢? 先简单看一下UIRoot中的基本属性 ...

Unity3D NGUI自适应屏幕分辨率(2014/4/17更新)

原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 本文链接地址:Unity3D NGUI自适应屏幕分辨率 1.Anchor里面的UIAnchor调整的合适的位置,UIAnchor...

Unity3D NGUI自适应屏幕分辨率

1.根据高度自适应屏幕分辨率。 NGUI根目录的UIRoot组件自带了根据高度自适应分辨率的功能。 Scaling Style属性可选择三种不同的缩放策略。 PixelPerfect 完美像素...

Unity3d NGUI 子控件之屏幕自适应

作为Unity3d的初学者,遇到了许多的问题,相信很多的人都遇到了屏幕自适应的问题,现在网上的NGUI自适应说的很多,大多都是些复制粘贴的水贴。借着国庆,研究了两天,把经验分享给大家,希望对大家有用,...

[unity3d]NGUI屏幕自适应

NGUI确实是非常棒的一个做界面的插件,比起U3D自带的GUI要好很多,当然也有一些不好之处,毕竟什么都不可能那么完美。 最近在用Unity写游戏使用NGUI遇到了一个很多人都在遇到...

【Unity3D插件】NGUI屏幕自适应

屏幕自适应 NGUI可以比较方便的实现屏幕自适应,但是它的官方教程里面针对这个问题没有详细的教程,所以可能在实现的时候会走比较多的弯路。以下是我在开发过程中找到的一个比较方便的实现方法。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Unity3D】【NGUI】屏幕自适应
举报原因:
原因补充:

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