C# Unity3d和iPad的屏幕方向不一致,游戏不受设备旋转的影响

C# Unity3d和iPad的屏幕方向不一致,游戏不受设备旋转的影响,c#,ipad,unity3d,landscape,portrait,C#,Ipad,Unity3d,Landscape,Portrait,我正在用C#帮助开发Unity3d游戏。我们正在为iPad开发,并使用Unity的 苹果插件。我们的游戏是一款2-D平台游戏,其特点是使用旋转设备(iPad)进行游戏玩法。我们用物理学来研究角色的运动 游戏主要是在风景区进行的。我们可以使用Screen.orientation=ScreenOrientation.LandscapeRight等简单地更改设备的方向。我们希望能够将设备从LandscapeLeft和LandscapeRight旋转到纵向或纵向,我们可以这样做 在Unity3d中运行场

我正在用C#帮助开发Unity3d游戏。我们正在为iPad开发,并使用Unity的 苹果插件。我们的游戏是一款2-D平台游戏,其特点是使用旋转设备(iPad)进行游戏玩法。我们用物理学来研究角色的运动

游戏主要是在风景区进行的。我们可以使用
Screen.orientation=ScreenOrientation.LandscapeRight
等简单地更改设备的方向。我们希望能够将设备从
LandscapeLeft
LandscapeRight
旋转到
纵向
纵向
,我们可以这样做

在Unity3d中运行场景时,当我们从横向旋转到纵向时,我们的角色会摔倒,因为我们旋转了世界(她所站的东西),而她保持相同的方向(物理保持不变),导致她摔倒。这是我们想要的行为。然而,当我们构建Xcode并在iPad模拟器(5.1版)上运行游戏时,我们旋转设备使世界旋转,它只是旋转设备,而游戏仍然具有相同的方向(横向)。iPad只是一幅肖像画,但游戏仍然是一幅风景画。除了屏幕方向,我们还需要在设备中设置其他变量吗?我们如何使游戏状态与设备的方向一致

一个简短的总结:我们希望我们的游戏默认为横向。当我们旋转到纵向时,我们希望世界在相机和播放器保持不变的情况下旋转。物理与角色的意思是,一旦世界旋转,她就会摔倒,因为她不再站在地上。目前,当我们旋转iPad时,设备的方向会改变,但游戏的方向不会改变。我们希望世界在旋转时移动,但角色保持不变。它在Unity3d中工作,但在使用Xcode iPad模拟器时无法正常工作。我们如何做到这一点

谢谢大家!


肯尼思

我必须说,这个问题非常令人困惑。检查方向应简单明了

首先也是最重要的:忘记XCode模拟器吧!即使您直接在XCode上构建而不使用Unity或其他任何东西,它也很糟糕。也许这已经解决了你的问题。买一台iPad并在上面测试

此外,还需要适当的脚本来处理随旋转而改变的物理行为。我不明白你是否明白,但如果你不明白,这可能不会太琐碎。虽然看起来你明白了

最后,最让人困惑的是,当你谈论和时,可能有一个错误。当您使用
Screen.orientation=ScreenOrientation.LandscapeRight
时,您正在强制更改实际的屏幕方向(它不是只读的),并且此操作仅应用于测试目的。您甚至可以在
#if UNITY#u EDITOR
#endif
预编译器“标记”中包含与之相关的所有代码。对于设备,您应该只有
ScreenOrientation==ScreenOrientation.LandscapeRight
,在
if
switch
子句上,使用比较运算符,使用双等号(
=


我想不出还有什么事情会出错。

我必须说,这是一个非常令人困惑的问题。检查方向应简单明了

首先也是最重要的:忘记XCode模拟器吧!即使您直接在XCode上构建而不使用Unity或其他任何东西,它也很糟糕。也许这已经解决了你的问题。买一台iPad并在上面测试

此外,还需要适当的脚本来处理随旋转而改变的物理行为。我不明白你是否明白,但如果你不明白,这可能不会太琐碎。虽然看起来你明白了

最后,最让人困惑的是,当你谈论和时,可能有一个错误。当您使用
Screen.orientation=ScreenOrientation.LandscapeRight
时,您正在强制更改实际的屏幕方向(它不是只读的),并且此操作仅应用于测试目的。您甚至可以在
#if UNITY#u EDITOR
#endif
预编译器“标记”中包含与之相关的所有代码。对于设备,您应该只有
ScreenOrientation==ScreenOrientation.LandscapeRight
,在
if
switch
子句上,使用比较运算符,使用双等号(
=


想不出还有什么事情会出问题。

团结能检测当前方向并自动旋转世界是天生的吗?在我看来,这似乎是通过Unity中的控件手动更改场景,但尚未编程实际检查纵向方向并进行相应调整的条件。如果可以的话,我也会在真正的iPad上测试它*我在Unity方面的经验非常有限。你在实际的iPad上测试过吗?iOS模拟器是出了名的行为不端。如果你给我们看一些代码可能会有所帮助,以防它被破坏。Unity检测当前方向并自动旋转世界是它的固有特性吗?在我看来,这似乎是通过Unity中的控件手动更改场景,但尚未编程实际检查纵向方向并进行相应调整的条件。如果可以的话,我也会在真正的iPad上测试它*我在Unity方面的经验非常有限。你在实际的iPad上测试过吗?iOS模拟器是出了名的行为不端。如果你给我们看一些代码,它可能会有所帮助,以防它被破坏。