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

来源:互联网 发布:网络运营是什么意思 编辑:程序博客网 时间:2024/05/26 17:48

首先讲下我的工作平台版本,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都是以图片大小来排版,目标背景中心点对应摄像机的中心点

0 0
原创粉丝点击