[Unity小知识点]刘海屏适配

**前言:**在制作游戏的UI界面时,对于不同的手机有不同的刘海屏,防止UI被打孔屏或者刘海屏遮挡,需要做UI适配

using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// 注意
/// Screen.safeArea 使用屏幕空间坐标系,虽然它是一个Rect,但它的左下角才是(0,0)原点
/// </summary>
public class ScreenUtils
{
    /// <summary>
    /// 按画布尺寸返回画布上方安全区域外空间高度的缩放值
    /// </summary>
    /// <param name="canvasScaler">画布的缩放,为null则没有缩放</param>
    /// <returns></returns>
    public static float GetCanvasOutsideTop(CanvasScaler canvasScaler)
    {
        var result = Screen.height - Screen.safeArea.yMax;
        if (canvasScaler != null)
        {
            result = result * canvasScaler.referenceResolution.y / Screen.height;
        }
        return result;
    }
    
    /// <summary>
    /// 按画布尺寸返回画布下方安全区域外空间的高度的缩放值
    /// </summary>
    /// <param name="canvasScaler">画布的缩放,为null则没有缩放</param>
    /// <returns></returns>
    public static float GetCanvasOutsideBottom(CanvasScaler canvasScaler)
    {
        var result = Screen.safeArea.yMin;
        if (canvasScaler != null)
        {
            result = result * canvasScaler.referenceResolution.y / Screen.height;
        }
        return result;
    }
}

***注:使用Device Simulator工具包可查看各型号手机对于游戏的适配

安装步骤:

  1. 打开Unity的PackageManager页面,按照下图1点击
  2. 勾选图2中标识即可返回PackangManager页面安装工具包
  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值