Unity Banner广告后面自定义背景,高度适配

目的是实现这个,代码放下面

已经测试十几台设备包括pad没问题

在这里插入图片描述

以Max聚合为例
展示(关闭)Banner的时候调用Show,Banner加载成功回调里调用RefreshSizeDelta
最终获得是像素
所以UGUI的Canvas使用Constant Pixel Size模式,Reference Pixels Per默认100
结构
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

ButtomBanner(适配高度)在CloseBanner(显示高度)线的下面,调整CloseBanner来满足这个就行,这样当ButtomBanner为准确banner的高度,线刚好在banner之上

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class BannerRemoveAD : MonoBehaviour
{
    public Button closeBtn;

    public  RectTransform rectTransform;
    // Start is called before the first frame update
    void Start()
    {
        closeBtn.onClick.AddListener(ClickClose);
    }

    public void RefreshSizeDelta()
    {
        rectTransform.sizeDelta = new Vector2(0, StaticBannerHeight(0));
    }
    public void Show(bool show)
    {
        gameObject.Active(show);
        if (show&&rectTransform.sizeDelta.y<0)
        {
            if (BannerLoaded)
            {
                RefreshSizeDelta();
            }
        }
    }
    public static float StaticBannerHeight(float addValue = 0f)
    {
#if !UNITY_EDITOR
        if (!AdsManager.instance.BannerLoaded)
        {
              return -200;
        }
#else
        return 180;
#endif
        var heightDp = MaxSdkUtils.GetAdaptiveBannerHeight();//获取dp
        var density = MaxSdkUtils.GetScreenDensity();
        var heightPx = heightDp * density;//dp根据屏幕密度转px(像素)
        return heightPx+addValue;
    }
    private void ClickClose()
    {
        -----ShowRemoveAdPopWnd();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李万兴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值