找回密码
 立即注册
查看: 437|回复: 0

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

[复制链接]
发表于 2022-4-9 16:01 | 显示全部楼层 |阅读模式
说明

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

将下面的脚本挂在顶层UI节点(通常应是一个背景Panel)即可。(有时其后面应还有一个Bg,它不用被限制在安全区内显示)
UiAdaptScreenSafeArea.cs
using System.Collections;using System.Collections.Generic;using UnityEngine;[RequireComponent(typeof(RectTransform))]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;    }}
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-25 03:36 , Processed in 0.089045 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表