xiaosong123451 发表于 2014-4-19 11:30

NGUI自适应分辨率,黑边自动填充, 无黑边,等比例缩放

为了优化,不重叠图片 [编辑话题]

1,给背景添加一个UIstretch, .将style选择最后一个FitInternalKeepingRatio,    将Intial Size设置为你当前屏幕的大小


2,再在背景下创建四个边的背景, 然后各自选择他们的Pivot , 上边图选择居下,下边图选择居上,左图边选择居右,右边图选择居左。



                     



3,给这四个添加一个UIstretch, .将style选择为both,





4. 然后把下面这个脚本绑定到背景上,传上参数,



using UnityEngine;
using System.Collections;


public class FillBackGround : MonoBehaviour {


   
    public UISprite backGround;
    public UIStretch upBG;
    public UIStretch downBG;
    public UIStretch leftBG;
    public UIStretch rightBG;
    private float _bgWidth;
    private float _bgHeight;
// Use this for initialization
void Start () {


         //获取背景的宽和高
      _bgWidth = backGround.width;
      _bgHeight = backGround.height;


         //填充背景上边
      upBG.transform.localPosition = new Vector3(0, _bgHeight/2,0);
      upBG.relativeSize.y=0.5f;
      upBG.borderPadding.y = _bgHeight / 2;
         


         //填充背景下边
      downBG.transform.localPosition = new Vector3(0, -_bgHeight / 2, 0);
      downBG.relativeSize.y = 0.5f;
      downBG.borderPadding.y = _bgHeight / 2;


         //填充背景左边
      leftBG.transform.localPosition = new Vector3(-_bgWidth / 2, 0, 0);
      leftBG.relativeSize.x = 0.5F;
      leftBG.borderPadding.x = _bgWidth / 2;
      


         //填充背景右边
      rightBG.transform.localPosition = new Vector3(_bgWidth / 2, 0, 0);
      rightBG.relativeSize.x = 0.5F;
      rightBG.borderPadding.x = _bgWidth / 2;
         
}
   
// Update is called once per frame


}


效果运行效果如下
       图片:1.png


mydesire1218 发表于 2017-2-20 19:53

很不错

春到湘江 发表于 2017-2-20 20:05

顶顶多好

sumace 发表于 2017-2-20 20:08

真心顶

mydesire1218 发表于 2017-2-20 19:56

难得一见的好帖

sk205 发表于 2017-2-20 19:11

说的非常好

wangjian_3344 发表于 2017-4-3 16:22

好帖就是要顶

liu89477929 发表于 2017-4-3 16:44

顶顶多好

873402096 发表于 2017-4-3 16:05

真心顶

松江虎 发表于 2017-4-3 16:49

难得一见的好帖
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: NGUI自适应分辨率,黑边自动填充, 无黑边,等比例缩放