我尝试统一创建一个游戏,并在任何苹果设备上的ios上进行构建,除了在iPhone X上没有问题。屏幕截图如下。enter image description here。它被iphone x缺口覆盖,然后当字符在左侧或右侧时被切成一半,是否有其他解决方案或插件可以用来解决问题?是否有统一的settins或xcode设置?谢谢你
答案 0 :(得分:2)
关于iPhone X槽口,您可以使用this:
Screen.safeArea
这是确定屏幕实际“安全区域”的便捷方法。在this thread中详细了解它。
关于将角色切成两半,这可能是您需要根据游戏逻辑手动进行处理的事情。通过获取Screen.width
-您应该能够调整Camera(缩小)或限制角色移动,使其不会超出屏幕边缘。
答案 1 :(得分:1)
对于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处写了详细的截图。希望对您有帮助!