Unity 微信小游戏 UI 刘海屏适配

Unity 微信小游戏 UI 屏幕适配

这是微信小游戏官方的适配文档地址:
https://github.com/wechat-miniprogram/minigame-unity-webgl-transform/blob/98aed655cc536f1e1dc21524516c40c442594ac1/Design/fixScreen.md

里面的示例代码并不好用,这里给出项目中调试好的代码:

#if WEIXINMINIGAME
        private void SetWXSafeArea()
        {
            var info = WeChatWASM.WX.GetSystemInfoSync();
            //顶部区域安全差异比例
            float py = (float) info.safeArea.top / (float) info.windowHeight;
            //底部区域安全差异比例
            float by = ((float) info.windowHeight -(float) info.safeArea.bottom) / (float) info.windowHeight;
            //得到当前canvasScaler
            var cs = canvas.GetComponent<CanvasScaler>();
            //调整offsetMax.y - 顶部偏移 和offsetMin.y - 底部偏移。
            //m_SafeAreaContainer是当前界面的顶部RectTransfrom。
            //注意:这里的m_SafeAreaContainer原本是完全填充屏幕的。
            m_SafeAreaContainer.offsetMax = new Vector2(m_SafeAreaContainer.offsetMax.x, m_SafeAreaContainer.offsetMax.y -(cs.referenceResolution.y * py) );
            m_SafeAreaContainer.offsetMin = new Vector2(m_SafeAreaContainer.offsetMin.x, (m_SafeAreaContainer.offsetMin.y + cs.referenceResolution.y * (by)));
            // 重新计算缩放,让高度占满刘海屏以下的区域
            cs.referenceResolution = new Vector2(cs.referenceResolution.x , cs.referenceResolution.y * (1 - (py + by)));
        }
#endif

这样适配就完成了。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值