Unity3D适配Android与IOS黑边屏的方案

Android:在打包设置中,勾选如下添加/关闭黑边屏

IOS:

如果没有很多全屏背景的话,可以直接改UI摄像机的rect,代码类似于;

        gameObject.GetComponent<Camera>().rect = new Rect(0, 0, 1, 1f - (Screen.height - Screen.safeArea.height) / Screen.height)*0.5f;

否则深入分析下UGUI,通过rect,将所有min.y>=1的UI减去黑边屏

    private void ShowFun(Transform _tran)
    {
        var _t = _tran.GetComponent<RectTransform>();
        Debug.LogError("适配" + _t.anchorMin + "  " + _t.anchorMax + "  " + _t.pivot);
    }

竖屏代码如下:

  private void SelfAdaption(Transform _tran)
    { 
        var _rect= _tran.GetComponent<RectTransform>();

        if (_rect != null)
        {
            if (_rect.anchorMin.y >= 1)
            {
                _rect.anchoredPosition -= Vector2.up*100;
                return;
            }
        }
        if (_tran.childCount > 0)
        {
            foreach (Transform _tt in _tran) SelfAdaption(_tt);
        }
    }

写的比较潦草,有空再整理,有问题留言

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值