Я помогаю разрабатывать игру в Unity3d с помощью C#. Мы разрабатываем для iPad и используем подключаемый модуль Unity для Apple. Наша игра представляет собой двухмерный платформер, в котором игровой процесс основан на вращении устройства (iPad). Мы используем физику для движения персонажа.
Игра ведется в основном в пейзажном правом. Мы можем достаточно легко изменить ориентацию устройства, используя Screen.orientation = ScreenOrientation.LandscapeRight
и т. д. Мы хотим иметь возможность поворачивать устройство из LandscapeLeft
и LandscapeRight
в Portrait
или PortraitUpsideDown
, что мы и можем сделать.
При запуске нашей сцены в Unity3d, когда мы поворачиваемся от Пейзажа к Портрету, наш персонаж падает, потому что мы поворачиваем мир (то, на чем он стоит), в то время как он остается в той же ориентации (физика остается той же), что приводит к его падению. Это желаемое поведение, которое мы хотим. Однако, когда мы собираем Xcode и запускаем игру на симуляторе iPad (версия 5.1) и поворачиваем устройство так, чтобы мир вращался, оно просто вращает устройство, а игра по-прежнему имеет ту же ориентацию (пейзаж). IPad находится в портретной ориентации, однако игра по-прежнему находится в альбомной ориентации. Есть ли другие переменные, которые нам нужно установить в устройстве, помимо ScreenOrientation? Как сделать так, чтобы наше игровое состояние соответствовало ориентации устройства?
Краткое резюме: мы хотим, чтобы наша игра по умолчанию использовала альбомную ориентацию. Когда мы поворачиваемся к портрету, мы хотим, чтобы мир вращался, а камера и игрок оставались постоянными. Физика связана с персонажем, что означает, что когда мир вращается, она падает, потому что больше не стоит на земле. В настоящее время, когда мы поворачиваем iPad, ориентация устройства меняется, но ориентация игры не меняется. Мы хотим, чтобы мир менялся при вращении, но персонаж оставался постоянным. Он работает в Unity3d, но неправильно работает с симулятором Xcode iPad. как нам это сделать?
Спасибо!
Кеннет