如何使用 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# 中完成?的主要内容,如果未能解决你的问题,请参考以下文章

cheat engine如何设置中文版

如何以编程方式确定系统设备声音设置?

如何使用蓝牙将手机宣传为不同的设备?

Unity对于VR的支持

确定设备方向(特定条件)[重复]

三星翻盖手机如何关闭蓝牙