我正在帮助使用 C# 在 Unity3d 中开发游戏。我们正在为 iPad 开发并使用 Unity 的 Apple 插件。我们的游戏是一款 2-D 平台游戏,具有使用设备 (iPad) 旋转的游戏玩法。我们使用物理来进行角色移动。
该游戏主要在 Landscape Right 中进行。我们可以使用Screen.orientation = ScreenOrientation.LandscapeRight
等轻松更改设备的方向。我们希望能够将设备从LandscapeLeft
和旋转LandscapeRight
到Portrait
或PortraitUpsideDown
,我们可以做到这一点。
在 Unity3d 中运行我们的场景时,当我们从横向旋转到纵向时,我们的角色会因为我们旋转世界(她站立的位置)而跌倒,而她保持相同的方向(物理保持不变),导致她跌倒。这是我们想要的行为。但是,当我们构建到 Xcode 并在 iPad 模拟器(版本 5.1)上运行游戏时,我们旋转设备以使世界旋转,它只是旋转了设备,游戏仍然具有相同的方向(横向)。iPad是纵向的,但游戏仍然是横向的。除了 ScreenOrientation,我们还需要在设备中设置其他变量吗?我们如何让我们的游戏状态与设备的方向一致?
快速总结:我们希望我们的游戏默认为横向。当我们旋转到纵向时,我们希望世界随着相机旋转而玩家保持不变。物理与角色的含义联系在一起,一旦世界旋转,她就会跌倒,因为她不再站在地上。目前,当我们旋转 iPad 时,设备的方向会发生变化,但游戏的方向不会改变。我们希望世界旋转,但角色保持不变。它在 Unity3d 中工作,但在使用 Xcode iPad 模拟器时不能正常工作。我们如何做到这一点?
谢谢!
肯尼斯