Unity適配IOS劉海屏

實現靠頂端對齊的UI在劉海屏往下偏移,並且用黑色圖片填充

適配前:
在這裏插入圖片描述
適配後:
在這裏插入圖片描述

public class SafeAreaFitter : MonoBehaviour
{
    // Start is called before the first frame update
    public bool drag;   
    public float offset;
    void Start()
    {
#if UNITY_IOS
        Rect safeArea = Screen.safeArea;
        float height = Screen.height - safeArea.height; //  獲取劉海高度
#if UNITY_EDITOR
        Debug.Log("====== " + height);
#endif
        if (height > 0 && !drag)    //朝下位移
        {
            float h = height / 2 + offset;
            RectTransform rectTransform = this.GetComponent<RectTransform>();
            Vector2 pos = rectTransform.anchoredPosition;
            pos = new Vector2(pos.x,pos.y - (h));
            rectTransform.anchoredPosition = pos;
        }
        else if(height > 0 && drag)    //朝下拉伸
        {
            float h = height / 2 + offset;
            RectTransform rectTransform = this.GetComponent<RectTransform>();

            Vector2 size = rectTransform.sizeDelta;
            size.y = h;
            rectTransform.sizeDelta = size;
        }
#endif
    }


}

檢查屏幕適配:

可以使用Device Simulator選擇含有劉海屏的IOS設備在EDITOR下進行模擬
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章