【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遇到了一个很多人都在遇到的问题,...
  • w337198302
  • w337198302
  • 2013年10月26日 12:35
  • 3728

【Unity3D插件】NGUI屏幕自适应

屏幕自适应 NGUI可以比较方便的实现屏幕自适应,但是它的官方教程里面针对这个问题没有详细的教程,所以可能在实现的时候会走比较多的弯路。以下是我在开发过程中找到的一个比较方便的实现方法。 ...
  • huang9012
  • huang9012
  • 2014年04月08日 09:39
  • 5828

【Unity3D插件】NGUI屏幕自适应

屏幕自适应 NGUI可以比较方便的实现屏幕自适应,但是它的官方教程里面针对这个问题没有详细的教程,所以可能在实现的时候会走比较多的弯路。以下是我在开发过程中找到的一个比较方便的实现方法。 主要组件...
  • l2008l
  • l2008l
  • 2013年08月27日 15:27
  • 582

[Unity3D插件]NGUI之UIRoot屏幕分辨率自适应

NGUI在Unity3D游戏开发中非常常用,而NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的,那么这个UIRoot是起什么作用的呢? 先简单看一下UIRoot中的基本属...
  • s10141303
  • s10141303
  • 2014年02月13日 14:20
  • 1752

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

本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢。 http://blog.csdn.net/lzhq1982/article/details/12856597 ...
  • wu5101608
  • wu5101608
  • 2013年12月30日 22:40
  • 915

[unity3d]NGUI屏幕自适应

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

【Unity3D插件】NGUI屏幕自适应

屏幕自适应 NGUI可以比较方便的实现屏幕自适应,但是它的官方教程里面针对这个问题没有详细的教程,所以可能在实现的时候会走比较多的弯路。以下是我在开发过程中找到的一个比较方便的实现方法。 ...
  • xinshou_jiaoming
  • xinshou_jiaoming
  • 2012年10月18日 21:36
  • 2378

Unity3D开发 NGUI之UIRoot屏幕分辨率自适应

NGUI在Unity3D游戏开发中非常常用,而NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的,那么这个UIRoot是起什么作用的呢? 先简单看一下UIRoot中的基本属...
  • yuanya
  • yuanya
  • 2017年01月07日 20:20
  • 213

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

NGUI在Unity3D游戏开发中非常常用,而NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的,那么这个UIRoot是起什么作用的呢? 先简单看一下UIRoot中的基本属...
  • lihui061119
  • lihui061119
  • 2014年09月29日 23:42
  • 344

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

http://blog.csdn.net/asd237241291/article/details/8126619
  • chenluwolf
  • chenluwolf
  • 2014年11月13日 17:11
  • 1157
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Unity3D】【NGUI】屏幕自适应
举报原因:
原因补充:

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