我在最初的Allowed LandscapeRight和LandscapeLeft中将Orientation设置为AutoRotation。
Screen.orientation = ScreenOrientation.Portrait
Screen.orientation = ScreenOrientation.AutoRotation
当我将Screen.orientation更改为Portrait并恢复为Autorotation时,屏幕保持画像直到我旋转手机。
此问题仅发生在Android设备上。
答案 0 :(得分:0)
难道你不认为这是自然行为吗?您将方向设置为纵向,手机进入纵向,然后您更改为自动旋转,现在这将根据您握住设备的方式更改方向。它不会强迫应用程序进入自动转向的允许方向。它会留在那里,除非你旋转它。如果要立即更改方向,则需要将方向明确设置为特定值。 Read More
希望这有帮助
答案 1 :(得分:0)
这是你应该做的:
1 。更改为肖像。
2 。当您决定更改回AutoRotation时,请执行此操作。
3 。读取当前方向(DeviceOrientation
)。将其转换为ScreenOrientation
,然后将其指定给屏幕方向。
注意 :您不应使用Screen.orientation
阅读当前的屏幕方向。这是通过Input.deviceOrientation
完成的。
这三个步骤放在代码中:
Screen.orientation = ScreenOrientation.Portrait;
Screen.orientation = ScreenOrientation.AutoRotation;
Screen.orientation = DeviceToScreenOrientation(Input.deviceOrientation);
将DeviceToScreenOrientation
/ Input.deviceOrientation
枚举转换为DeviceOrientation
/ Screen.orientation
枚举的ScreenOrientation
函数。
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 。