无法在Unity中获得准确的iPhone缺口大小



Unity不支持获取缺口大小。我试过首先在Xcode中获得所有iOS设备的缺口大小,然后将它们转换为Unity中的像素,但它总是错误的,我不知道为什么。

没有关于这方面的信息可以在互联网上找到-我想这是因为没有游戏需要知道每个iOS设备的确切缺口大小,特别是在Unity中,但在我的情况下,我确实需要它,所以我可以用它做些什么。

如果能得到这个位置就好了(notch和14 Pro的岛)

我知道如何处理Unity中的安全区域。这不是那件事。这是关于获得缺口尺寸。

因为硬编码似乎是唯一的选择在这一点上,我把这些值转换为px,因为Xcode使用pt和Unity使用px。然而,当我这样做时,Unity中的东西就变得太小了。

var size: CGSize {
switch self {
case .large:
if UIDevice.current.hasSmallNotchArea {
return .init(width: 206.30, height: 29.10)
} else {
return .init(width: 207.50, height: 31.30) 
}
case .medium:
return .init(width: 160.90, height: 33.20)
case .pill:
return .init(width: 124, height: 35.20)
}
}

似乎Unity没有任何支持提供给你这些信息,所以你最好的办法可能是通过获取"devicegeneration"来制定你自己的解决方案,弄清楚你是否在一个缺口上,然后有一个不同缺口大小和位置的目录来返回。

可能不是你想听到的,但除非有人把它放在github上,否则我无法追踪到,我认为你可能不得不在这个上面建立一条道路。


也不是使用像素,使用百分比和边缘的空间来动态生成它可能更可靠。