如何使用Unity在iOS模拟器中获得物理屏幕大小?

如何使用Unity在iOS模拟器中获得物理屏幕大小?,ios,unity3d,ios-simulator,Ios,Unity3d,Ios Simulator,我想根据设备的实际大小在游戏中显示不同数量的元素。不仅仅是缩放输出,在宽度和高度上使用相同的逻辑像素。iPad上一排20个元素看起来很大,iPhone上一排30个元素太小 我正在使用Screen.dpi以及Screen.width和Screen.height来计算物理屏幕大小。然后我决定一个小型、中型或大型场景 但是iOS模拟器给了我一个0屏幕.dpi。不幸的是,我没有所有的iPad和iPhone。在iPhone6S+和iPadAir 2上运行正常 这是统一中的错误还是模拟器的正常行为 有更好的

我想根据设备的实际大小在游戏中显示不同数量的元素。不仅仅是缩放输出,在宽度和高度上使用相同的逻辑像素。iPad上一排20个元素看起来很大,iPhone上一排30个元素太小

我正在使用Screen.dpi以及Screen.width和Screen.height来计算物理屏幕大小。然后我决定一个小型、中型或大型场景

但是iOS模拟器给了我一个0屏幕.dpi。不幸的是,我没有所有的iPad和iPhone。在iPhone6S+和iPadAir 2上运行正常

这是统一中的错误还是模拟器的正常行为

有更好的办法吗?或者我真的需要为每一款现有的iPhone和iPad维护一份设备DPI列表吗

统一2017.2.0p3;XCode 9.1如果您阅读了文档:

这是屏幕连接或物理设备的实际DPI 运行应用程序。如果无法确定所选参数,则可能返回0 目前的新闻部

由于模拟器不是物理设备,它将返回0,这是正常行为,因为模拟器缺少许多其他物理属性

您可以使用
Device.generation
检测目标设备类型。查看的可能值,并通过检查来相应地设置元素

您可以创建自己的扩展,以获得同样适用于模拟器的dpi

希望这有帮助:)