實現靠頂端對齊的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下進行模擬