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

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

2014-08-11 07:44 288 查看
原地址:http://game.ceeger.com/forum/read.php?tid=16571

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

}

效果运行效果如下





[松松果于2014-05-15 11:44编辑了帖子]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: