您的位置:首页 > 产品设计 > UI/UE

untiy使用ngui插件屏幕自适应问题解决方案

2015-03-23 15:12 471 查看
首先讲下我的工作平台版本,untiy是4.6的,ngui是3.6.8的,

我的项目是这样的,背景已经有了,button是从背景上扣下来的,所以做成项目的时候要保证在任何缩放比的屏幕下,背景要铺满手机显示屏,而且扣下来的button要保证和背景一样的缩放比,至少人眼上看到的不能有像素差。

首先说下,步骤,建立一个2d的ui,在camera下建立一个panel,panel下边建立texture,这个texture就是我们的主背景了,将来写好的脚本挂在这个上就可以了。

所有要保持缩放比的ui都要在这个texture下建立,当我们通过脚本改变texture的缩放比的时候,ngui会自动缩放所有texture的子组件。

ok,下边讲下脚本的编写。

建立一个脚本,命名为MyUIAutoFixed,代码如下

using UnityEngine;

using System.Collections;

public class MyUIAutoFixed : MonoBehaviour

{

public Vector2 picPixel;

public Vector2 desPixel;

public Vector2 pos;

void Start(){

}

void Update(){

Vector2 screen = NGUITools.screenSize;

Vector2 scale = new Vector2(screen.x/desPixel.x,screen.y/desPixel.y);

transform.localScale = new Vector3(scale.x,scale.y,1);

transform.localPosition = new Vector3(pos.x*scale.x,pos.y*scale.y,1);

}

}

手敲的代码,可能有部分拼写错误,写的时候注意检查下,我们将这个脚本直接挂在主背景上,就可以了

这里的 picPixel指当前的图片大小,desPiexel指要匹配的目标图片大小,pos是当前的图片对应目标的位置,

这里所有ui都是以图片大小来排版,目标背景中心点对应摄像机的中心点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐