2016-12-26 162 views
0

我想在Unity3d中开发一个Android应用程序,当从一个场景转到另一个场景时,需要屏幕更改方向。Unity3d Screen.orientation不强制屏幕在场景初始化时旋转

我已经添加了此代码连接到第一现场的剧本:

void Start() 
{ 
    Screen.orientation = ScreenOrientation.Portrait; 
} 

,这是附着在第二个场景:

void Start() 
{ 
    Screen.orientation = ScreenOrientation.Landscape; 
} 

我认为这应该强制屏幕旋转并保持指定的旋转。但是,当我从场景1转到场景2时,它不会强制场景初始化的方向,相反,如果我从第一场景切换到第二场景,只要我不移动,屏幕就会保持纵向装置。当我向任何方向移动设备时,屏幕将变为横向并锁定在横向。 无论出于何种原因,从场景2到场景1都不适用:无论以前的旋转,屏幕都正确旋转。我觉得这非常令人沮丧,因为第二个场景中的用户界面设计为在横向模式下进行查看,并且每次尝试更改场景时移动设备都很不方便。所以我错过了什么或者这是一个错误?

回答

3

使用LandscapeLeftLandscapeRight代替

https://docs.unity3d.com/ScriptReference/ScreenOrientation.html

+0

哇哦,这是简单的:d非常感谢!任何为什么景观不起作用的原因? – Kullis

+1

我的荣幸。我查看了所有返回到Unity 3.5的路径,但我找不到对“ScreenOrientation.Landscape”枚举的引用。增加日志级别,因为它可能是默认的自动旋转。 –

+0

够公平的。再次感谢! ;) – Kullis