流海屏适配
Posted sy-liu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流海屏适配相关的知识,希望对你有一定的参考价值。
using System.Collections; using System.Collections.Generic; using UnityEngine; public enum AnchorPreSet { MIDDLE, TOP, BUTTOM, } [System.Serializable] public class UIAdapt{ public AnchorPreSet uiPosition; public Transform transform; [Header("移动距离要大于等于零")] public float moveDistance = 100; public bool enableAdaptHeight = false; public float adaptHeight; } public class UIAutoFix : MonoBehaviour { public List<UIAdapt> UIAdaptList; private float devHeigth = 1920; private float devWidgth = 1080; public void Awake() { if(UIAdaptList == null || UIAdaptList.Count <= 0) { return; } if(Screen.height / (float)Screen.width > (devHeigth / devWidgth) && Screen.height != 1334 && Screen.width != 750) { foreach(UIAdapt uiAdpat in UIAdaptList) { AnchorPreSet uiPosition = uiAdpat.uiPosition; switch (uiPosition) { case AnchorPreSet.TOP: uiAdpat.transform.position -= Vector3.up * uiAdpat.moveDistance; break; case AnchorPreSet.MIDDLE: if(uiAdpat.transform.localPosition.y > 0) { uiAdpat.transform.position += Vector3.up * uiAdpat.moveDistance; }else if(uiAdpat.transform.localPosition.y < 0) { uiAdpat.transform.localPosition -= Vector3.up * uiAdpat.moveDistance; } break; case AnchorPreSet.BUTTOM: uiAdpat.transform.position -= Vector3.up * uiAdpat.moveDistance; break; } if (uiAdpat.enableAdaptHeight) { RectTransform rect = uiAdpat.transform.gameObject.GetComponent<RectTransform>(); rect.sizeDelta = new Vector2(rect.sizeDelta.x, rect.sizeDelta.y + uiAdpat.adaptHeight); } } } } }
以上是关于流海屏适配的主要内容,如果未能解决你的问题,请参考以下文章
Android 屏幕适配异形屏适配 ① ( 异形屏类型:刘海屏水滴屏挖孔屏 | 沉浸式布局刘海屏适配 | 华为手机异形屏适配注意点 )
Android 屏幕适配异形屏适配 ① ( 异形屏类型:刘海屏水滴屏挖孔屏 | 沉浸式布局刘海屏适配 | 华为手机异形屏适配注意点 )