2016-09-23 10 views
0

OrientationをAutoRotationに設定しました。これは、許可されたLandscapeRightとLandscapeLeftです。私はポートレートにScreen.orientationを変更し、オートローテーションに再開したとき、私は携帯電話を回転までandroidの方向を変更

Screen.orientation = ScreenOrientation.Portrait 

Screen.orientation = ScreenOrientation.AutoRotation 

、画面には、肖像画を保ちます。

この問題は、Android搭載端末でのみ発生します。

答えて

0

自然な振る舞いだと思いませんか?向きをポートレートに設定し、電話機をポートレートにして、オートローテーションに変更します。これで、デバイスの保持方法に応じて向きが変更されます。アプリが自動回転のために許可された方向に移動することは強制されません。あなたがそれを回転させない限り、そこにとどまるでしょう。直ちに変更したい場合は、方向を特定の値に明示的に設定する必要があります。 Read More

ホープこれはこれは、あなたが何をすべきかである

0

役立ちます:肖像画へ

.Change。

。自動回転に戻すことにした場合は、それを行います。

。現在の方向(DeviceOrientation)を読みます。 ScreenOrientationに変換し、それを画面の向きに割り当てます。

:あなたはScreen.orientationと、現在の画面の向きを読んではいけません。これはInput.deviceOrientationで行われます。

コードに入れてこれらの3つのステップ:Screen.orientation/ScreenOrientation列挙型へInput.deviceOrientation/DeviceOrientation列挙型を変換

Screen.orientation = ScreenOrientation.Portrait; 
Screen.orientation = ScreenOrientation.AutoRotation; 
Screen.orientation = DeviceToScreenOrientation(Input.deviceOrientation); 

DeviceToScreenOrientation機能。

ScreenOrientation DeviceToScreenOrientation(DeviceOrientation dvceOr) 
{ 
    ScreenOrientation scrOr = ScreenOrientation.Unknown; 
    switch (dvceOr) 
    { 
     case DeviceOrientation.Unknown: 
      scrOr = ScreenOrientation.Unknown; 
      break; 

     case DeviceOrientation.Portrait: 
      scrOr = ScreenOrientation.Portrait; 
      break; 

     case DeviceOrientation.PortraitUpsideDown: 
      scrOr = ScreenOrientation.PortraitUpsideDown; 
      break; 

     case DeviceOrientation.LandscapeLeft: 
      scrOr = ScreenOrientation.LandscapeLeft; 
      break; 

     case DeviceOrientation.LandscapeRight: 
      scrOr = ScreenOrientation.LandscapeRight; 
      break; 

     //Don't know What Enum to use. Implement to match your need 
     case DeviceOrientation.FaceUp: 
      //scrOr = ? 
      break; 

     case DeviceOrientation.FaceDown: 
      //scrOr = ? 
      break; 
    } 
    return scrOr; 
} 

あなたは、ステップ#2、#3を切り替える必要があるかもしれません。

関連する問題