UGUI适配方案

常规的适配做法采用根节点挂一个Canvas Scaler,如下在这里插入图片描述
简单粗暴,等比缩放,优点是适配简单、问题少、对制作人员的要求比较低,缺点是因为是等比缩放,四周的留白比较多,而且各个元素缩小,很影响美术的最终呈现,那么如何做到下图样式的效果呢
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在同目录下绑定如下脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class AutoCanvasScalerMatch : MonoBehaviour
{
public CanvasScaler CanvasScaler;
public RectTransform RectTransform;
public float MinWidth = 1920;
public float MinHeight = 1080;

private void Start()
{
    CalculationMatch();
}

#if UNITY_EDITOR
protected virtual void OnRectTransformDimensionsChange()
{
CalculationMatch();
}
#endif

private void CalculationMatch()
{
    if (RectTransform != null)
    {
        //宽高比最小值 最方的时候
        float minAspectRatio = MinWidth / MinHeight;
        float aspectRatio = (float)Screen.width / (float)Screen.height;
        if (aspectRatio < minAspectRatio)
        {
            CanvasScaler.matchWidthOrHeight = 0.45f;
        }
        else
        {
            CanvasScaler.matchWidthOrHeight = 1;
        }
    }
}

}
上图的效果就实现了,所有子节点的对齐方式要设置成平铺,里面的元素在制作时也需要精细的制作,这里由于东西太多不太好描述,大家自己去做尝试,很简单的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值