NGUI自适应分辨率,黑边自动填充, 无黑边,等比例缩放
原地址:http://www.unity蛮牛.com/thread-15145-1-1.html
为了优化,不重叠图片
1,给背景添加一个UIstretch, .将style选择最后一个FitInternalKeepingRatio, 将Intial Size设置为你当前屏幕的大小
2,再在背景下创建四个边的背景, 然后各自选择他们的Pivot , 上边图选择居下,下边图选择居上,左图边选择居右,右边图选择居左。
然后把下面这个脚本绑定到背景上,传上参数,
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 }