在Android / iOS上获取默认设备方向(横向或纵向)

时间:2014-07-07 20:06:50

标签: android ios unity3d orientation screen-orientation

我目前正在使用Unity3D,我需要了解如何确定Android和iOS的默认设备方向(横向或纵向)。通过代码实现这一目标的最佳方法是什么(我使用c#)?

感谢您的帮助!

注意:我看过以下帖子:How to check device natural (default) orientation on Android (i.e. get landscape for e.g., Motorola Charm or Flipout)

但我似乎无法使代码工作(也许我错过了要导入的文件或其他东西)。此外,我还需要一种方法来使用iOS!

2 个答案:

答案 0 :(得分:2)

对于Android,您可以使用getRotation

int rotation = getWindowManager().getDefaultDisplay().getRotation();

switch (rotation) {
case 0:
    return Surface.ROTATION_0;
case 90:
    return Surface.ROTATION_90;
case 180:
    return Surface.ROTATION_180;
case 270:
    return Surface.ROTATION_270;`

对于iOS this可能会有所帮助:

UIInterfaceOrientation orientation = 
                    [UIApplication sharedApplication].statusBarOrientation;

if(orientation == 0) //Default orientation
//UI is in Default (Portrait) -- this is really a just a failsafe. 
else if(orientation == UIInterfaceOrientationPortrait)
//Do something if the orientation is in Portrait
else if(orientation == UIInterfaceOrientationLandscapeLeft)
// Do something if Left
else if(orientation == UIInterfaceOrientationLandscapeRight)
//Do something if right

此外,这个帖子有类似的答案:Determining the Orientation of the screen rather than the orientation of the device

答案 1 :(得分:0)

实际上找到了我自己需要的东西!

以下链接适用于所有感兴趣的人:https://gist.github.com/flarb/3252857

(我最近不需要iOS检查,因为我们的应用程序只支持平板电脑,而且我认为所有iOS设备上的默认方向是Portrait(可能是错误的))

干杯!