Unity——UGUI适配问题

本文分享了在安卓开发中解决背景图片未能自动适配屏幕宽度,导致出现空白区域的问题。提供了三种解决方案:通过代码自动调整缩放比例,使用Shrink模式,以及正确设置背景图片的锚点。

开发的时候遇到的问题,安卓机下,发现背景宽度并未自动适配,会留下空白,如下:请添加图片描述

解决办法:

1.写代码自动适配,如下:

       private void UpdateScale()
        {
            if (_scaler == null) _scaler = GetComponentInParent<CanvasScaler>();
            Debug.Log(_scaler.referenceResolution);
            var resolution = _scaler.referenceResolution;
            var rt = _scaler.transform as RectTransform;
            if (rt == null) return;
            var screenSize = rt.sizeDelta;
            var factor = Mathf.Max(screenSize.x / resolution.x, screenSize.y / resolution.y);
            var scale = Vector3.one * factor;
            transform.localScale = scale;
        }

        [Conditional("UNITY_EDITOR")]
        private void Update()
        {
            UpdateScale();
        }

2.使用Shrink模式,如下:

请添加图片描述

3.背景图片锚点设置成以下格式:在这里插入图片描述

均能解决此问题:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值