Unity适配全面屏两边黑边问题

若Unity在打包给安卓全面屏的时候,出现屏幕两边的黑边。

在尝试适配策略,甚至代码中强行锁定分辨率也没用时,多半是自定义Android.Manifest文件中缺少以下代码:

<meta-data android:name="android.max_aspect"

              android:value="2.2"/>

(2.2这个数字可以改成2.1以上的数字,通常全面屏为18:9或19:9)

在Assets/Plugins/Android下找到该文件,添加即可

为了在Unity适配挖孔,可以按照以下步骤进行操作: 1.首先,需要检查方向。如果游戏是横的,可以使用ScreenOrientation.LandscapeLeft。 2.然后,需要确定幕上的挖孔位置。可以使用DeviceScreen类来获取挖孔的位置和大小。 3.接下来,需要根据挖孔的位置和大小来调整UI元素的位置和大小。可以使用RectTransform组件来调整UI元素的位置和大小。 4.如果幕是stretch的,那么UI元素的位置和大小会随着幕的改变而改变。可以使用anchorPos.x = AnchorPos.x + notchSizeX * (1 - beginPivot.x)来调整UI元素的位置。 5.最后,需要在代码中处理幕旋转和大小改变的事件,以确保UI元素始终正确地适应幕。 以下是一个示例代码,用于在Unity适配挖孔: ```csharp using UnityEngine; public class NotchScreenAdapter : MonoBehaviour { public RectTransform rectTransform; public ScreenOrientation screenOrientation; private void Start() { // 检查幕方向 Screen.orientation = screenOrientation; // 获取挖孔的位置和大小 DeviceScreen deviceScreen = new DeviceScreen(); Rect safeArea = deviceScreen.safeArea; Vector2 notchSize = new Vector2(safeArea.width, safeArea.height); // 调整UI元素的位置和大小 Vector2 anchorPos = rectTransform.anchoredPosition; Vector2 beginPivot = rectTransform.pivot; anchorPos.x = anchorPos.x + notchSize.x * (1 - beginPivot.x); rectTransform.anchoredPosition = anchorPos; rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x - notchSize.x, rectTransform.sizeDelta.y); } private void Update() { // 处理幕旋转和大小改变的事件 DeviceScreen deviceScreen = new DeviceScreen(); if (deviceScreen.safeArea.width != Screen.width || deviceScreen.safeArea.height != Screen.height) { Start(); } } } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值