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

问题描述 投票:0回答:1

我想在游戏中显示不同数量的元素,具体取决于设备的实际大小。不只是缩放输出并使用宽度和高度相同的逻辑像素。连续20个元素在iPad上看起来很大,而且iPhone上连续30个元素太小。

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

但iOS模拟器为Screen.dpi提供了0。不幸的是,我没有所有的iPad和iPhone。它在物理iPhone 6S +和iPad Air 2上运行良好。

这是Unity中的错误还是模拟器的正常行为?

有没有更好的办法?或者我是否真的需要为每个现有的iPhone和iPad型号维护设备DPI列表?

Unity 2017.2.0p3; XCode 9.1

ios unity3d ios-simulator
1个回答
1
投票

如果您阅读Screen.dpi文档:

这是运行应用程序的屏幕附加或物理设备的实际DPI。如果无法确定当前DPI,则可能返回0。

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

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

你可以创建自己的扩展来获得适用于模拟器的dpi。

希望这可以帮助 :)

© www.soinside.com 2019 - 2024. All rights reserved.