如何使用 Unity Engine 确定设备是手机还是平板电脑,是不是可以在 C# 中完成?
Posted
技术标签:
【中文标题】如何使用 Unity Engine 确定设备是手机还是平板电脑,是不是可以在 C# 中完成?【英文标题】:How can I determine whether the device is a phone or tablet using the Unity Engine, and can it be done in C#?如何使用 Unity Engine 确定设备是手机还是平板电脑,是否可以在 C# 中完成? 【发布时间】:2014-12-24 09:59:25 【问题描述】:也许之前有人问过,但我做了研究,发现只有 JS 的解决方案,但我需要 C# 中的问题的解决方案。
所以,基本上我想知道我的游戏是否可以在平板电脑的小手机屏幕上运行,独立于平台(ios、Droid、WP8)。
有什么建议吗?
【问题讨论】:
我相信他的意思是“使用Unity引擎如何判断设备是手机还是平板,能不能用C#实现?” 感谢编辑,相信我的写法也是大家可以理解的。此外,并非全世界的英语都如此语法,这里不可能完美文本。 【参考方案1】:您可以使用Screen.height 和Screen.dpi 计算物理屏幕高度,然后设置一个阈值,您说它是手机还是平板电脑。如果您想区分平板手机,也许还有另一个门槛。
float screenHeightInInch = Screen.height / Screen.dpi;
if (screenHeightInInch < 3.1)
// it's a phone
else
// it's tablet
【讨论】:
嗯,我有一个 5.5 的移动设备,而不是 table pfff 这么糟糕的解决方案 如果您想将较大的手机归类为手机,您可以调整阈值。 不幸的是 Screen.dpi 不是很可靠。文档中甚至提到:“如果无法确定当前 DPI,可能会返回 0。” – 我现在在 iOS 模拟器中遇到了问题。我在那里的 DPI 只得到 0。这可能是正确的行为,因为它不是真正的物理 iPhone。但没有帮助。【参考方案2】:对于 iOS,您可以使用 iPhone.generation 和 iPhoneGeneration 来检测 iPad。
对于其他平台,我认为您应该使用Screen.height,width(Aspect ratio), dpi 之类的东西来确定屏幕尺寸是否为平板电脑。
【讨论】:
以上是关于如何使用 Unity Engine 确定设备是手机还是平板电脑,是不是可以在 C# 中完成?的主要内容,如果未能解决你的问题,请参考以下文章