[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页面安装工具包

猜你喜欢

转载自blog.csdn.net/lel18570471704/article/details/134770432