using UnityEngine; public class SafeArea : MonoBehaviour { RectTransform rectTransform; Rect lastSafeArea = new Rect(0, 0, 0, 0); Vector2 lastScreenSize = new Vector2(0, 0); ScreenOrientation lastOrientation = ScreenOrientation.AutoRotation; void Awake() { rectTransform = GetComponent(); Refresh(); } void Update() { if (lastSafeArea != Screen.safeArea || lastScreenSize.x != Screen.width || lastScreenSize.y != Screen.height || lastOrientation != Screen.orientation) { Refresh(); } } void Refresh() { Rect safeArea = Screen.safeArea; if (safeArea != lastSafeArea) ApplySafeArea(safeArea); } void ApplySafeArea(Rect r) { lastSafeArea = r; lastScreenSize.x = Screen.width; lastScreenSize.y = Screen.height; lastOrientation = Screen.orientation; Vector2 anchorMin = r.position; Vector2 anchorMax = r.position + r.size; anchorMin.x /= Screen.width; anchorMin.y /= Screen.height; anchorMax.x /= Screen.width; anchorMax.y /= Screen.height; rectTransform.anchorMin = anchorMin; rectTransform.anchorMax = anchorMax; } }