我曾尝试在 Unity 中创建游戏,并在任何苹果设备上的 iOS 上构建它,除了 iPhone x 之外都没有问题。屏幕截图如下。在此处输入图像描述。它被 ipho 覆盖...
我曾尝试在 Unity 中创建游戏,并在任何 Apple 设备上的 iOS 上构建它,除了 iPhone x 之外都没有问题。屏幕截图如下。 在此处输入图像描述 。它被 iPhone x 凹口覆盖,然后当角色在左侧或右侧时,它被切成两半。还有其他解决方案或插件可以用来解决这个问题吗?有没有 Unity 设置或 xcode 设置?谢谢
对于 iPhone X 和其他有缺口的手机,您可以使用 Unity 2017.2.1+ 提供的通用 Screen.safeArea。将下面的脚本附加到全屏 UI 面板(锚点 0,0 到 1,1;枢轴 0.5,0.5),它将自行塑造到屏幕安全。
还建议将画布设置为“随屏幕尺寸缩放”和“匹配(宽度-高度)”= 0.5。
public class SafeArea : MonoBehaviour
{
RectTransform Panel;
Rect LastSafeArea = new Rect (0, 0, 0, 0);
void Awake ()
{
Panel = GetComponent<RectTransform> ();
Refresh ();
}
void Update ()
{
Refresh ();
}
void Refresh ()
{
Rect safeArea = GetSafeArea ();
if (safeArea != LastSafeArea)
ApplySafeArea (safeArea);
}
Rect GetSafeArea ()
{
return Screen.safeArea;
}
void ApplySafeArea (Rect r)
{
LastSafeArea = r;
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;
Panel.anchorMin = anchorMin;
Panel.anchorMax = anchorMax;
}
}
为了更深入地了解,我在这里写了一篇带有屏幕截图的详细文章: https://connect.unity.com/p/updating-your-gui-for-the-iphone-x-and-other-notched-devices 。希望对您有所帮助!