stonstad 发表于 2022-4-9 16:01

Unity中,将UI限制在手机的安全区内显示

说明

可使用Unity的Device Simulator在编辑器模式下测试UI在各种移动设备上的显示效果。

将下面的脚本挂在顶层UI节点(通常应是一个背景Panel)即可。(有时其后面应还有一个Bg,它不用被限制在安全区内显示)
UiAdaptScreenSafeArea.cs
using System.Collections;using System.Collections.Generic;using UnityEngine;public class UiAdaptScreenSafeArea : MonoBehaviour{    private RectTransform _rectTrans;    private void Start()    {      Init();      AdaptAnchorsValue();    }    private void Init()    {      _rectTrans = GetComponent<RectTransform>();      _rectTrans.anchorMin = Vector2.zero;      _rectTrans.anchorMax = Vector2.one;      _rectTrans.anchoredPosition = Vector2.zero;      _rectTrans.sizeDelta = Vector2.zero;    }    private void AdaptAnchorsValue()    {      var maxWidth = Display.main.systemWidth;      var maxHeight = Display.main.systemHeight;      var safeArea = UnityEngine.Screen.safeArea;      var anchorMin = safeArea.position;      var anchorMax = safeArea.position + safeArea.size;      anchorMin.x /= maxWidth;      anchorMin.y /= maxHeight;      anchorMax.x /= maxWidth;      anchorMax.y /= maxHeight;      _rectTrans.anchorMin = anchorMin;      _rectTrans.anchorMax = anchorMax;    }}
页: [1]
查看完整版本: Unity中,将UI限制在手机的安全区内显示