我想根据设备的实际大小在游戏中显示不同数量的元素。不只是缩放输出并在宽度和高度上使用相同的逻辑像素。连续 20 个元素在 iPad 上看起来很大,而连续 30 个元素在 iPhone 上太小了。
我使用 Screen.dpi 以及 Screen.width 和 Screen.height 来计算物理屏幕尺寸。然后我决定小型、中型或大型场景。
但 iOS 模拟器为我提供了 0 的 Screen.dpi。不幸的是,我没有所有可用的 iPad 和 iPhone。它在实体 iPhone 6S+ 和 iPad Air 2 上运行良好。
这是 Unity 中的错误还是模拟器的正常行为?
有没有更好的方法?或者我真的需要为每个现有型号的 iPhone 和 iPad 维护一个设备 DPI 列表吗?
统一 2017.2.0p3; XCode 9.1
最佳答案
如果您阅读 Screen.dpi
文档:
This is the actual DPI of the screen attached or physical device running the application. May return 0 if unable to determine the current DPI.
由于模拟器不是物理设备,因此它会返回 0,这是正常行为,因为模拟器缺乏许多其他物理属性。
您可以使用Device. Generation
来检测目标设备类型。查看 DeviceGeneration 的可能值并通过检查 dpi for each device 相应地设置您的元素.
您可以创建自己的扩展来获取 dpi,这也适用于模拟器。
希望这有帮助:)
关于ios - 如何使用Unity在iOS模拟器中获取物理屏幕尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47671384/