【问题标题】: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#实现?”
  • 感谢编辑,相信我的写法也是大家可以理解的。此外,并非全世界的英语都如此语法,这里不可能完美文本。

标签: c# android ios unity3d platform-independent


【解决方案1】:

您可以使用Screen.heightScreen.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.generationiPhoneGeneration 来检测 iPad。

对于其他平台,我认为您应该使用Screen.height,width(Aspect ratio), dpi 之类的东西来确定屏幕尺寸是否为平板电脑。

【讨论】:

    猜你喜欢
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2018-09-04
    • 2015-05-28
    • 2014-12-26
    • 2022-11-30
    相关资源
    最近更新 更多