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

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


aaabbbsss12345 发表于 2014-4-30 14:14

好好 顶顶 顶

鬼画符李 发表于 2014-5-6 17:26

{:5_380:}楼主弄的麻烦了 用UIstretch后Style选 Both 改一行代码就ok了

aaabbbsss12345 发表于 2014-6-23 09:51

好东西 学习了

shuiyue654 发表于 2017-3-19 19:38

楼主是超人

shuiyue654 发表于 2017-3-19 18:49

好帖就是要顶

大强 发表于 2017-3-19 18:46

很好哦

沧海一叶舟 发表于 2017-3-19 19:09

不错不错

jia1009 发表于 2017-3-19 19:09

LZ真是人才

houge 发表于 2017-3-26 17:30

很不错
页: [1]
查看完整版本: NGUI自适应分辨率,黑边自动填充, 无黑边,等比例缩放