Перейти к содержимому

Unity android как запретить поворот экрана

  • автор:

Как запретить вращение экрана?

Запретить объекту выходить за камеру(границу экрана)
Игра 2D, Границы камеры и есть граница экрана, как запретить объекту которым управляет игрок(WASD).

Удаленный просмотр экрана — как запретить?
Вводная часть — если интересно Пишу в эту тему т.к. задача общая, без привязки к конкретному.

Как запретить эллементу уезжать за область экрана
Всем привет. У меня есть блок, в котором находится табличка. Этот самый блок адаптируется под.

Как запретить задвигать форму за края экрана?
Нужно запретить задвигать форму за край экрана. Вот я побывал для левой стороны: If Location.X <.

Лучший ответСообщение было отмечено Denis2142 как решение

Решение

Как запретить дочернему блоку выходить за границы экрана
Добавил на страницу сплитер, чтобы изменять ширину блоков. С левым блоком все хорошо, но когда.

Как запретить поддержку устройств с определённым размером экрана?
Как запретить поддержку устройств с определённым размером экрана? пробовал.

Как запретить масштабирование контролов на форме при изменении dpi экрана?
Всем здравствуйте. Речь об отсутствующем свойстве Scaled у форм студии. (В Delphi эта проблема.

Как запретить\заблокировать приложению, запускаемому от админа, снимать скрин с экрана?
Уважаемые программисты, администраторы! Вопрос. Есть ли практическая или теоретическая возможность.

Вращение закрашенного пятиугольника в центре экрана с изменением цвета
Тема- Объектное ориентирование в среде турбо паскаль. Задача — Вращение закрашенного пятиугольника.

Реализовать вращение 3D объекта как вращение камеры
Существует некий объект в 3D пространстве (для примера используем куб). В исходном положении это.

Как отключить Autorotate через скрипт в Unity

Я прикрепил созданный скрипт ScreenOrient в MainCamera.

Т.е. когда телефон положить экраном вверх, переключалось в Портретный. Главное в скрипте как вынужденно повернуть экран мне надо знать. Спасибо. И извиняюсь, если непонятно объяснил, не описал.

maq's user avatar

Как я и указал в комментариях: этот вопрос решается путем заглядывания в документацию.

Specifies logical orientation of the screen.

Default value is taken from the ‘Default Orientation’ in Player Settings.

введите сюда описание изображения

Думаю, очевидно, что данный код будет работать только в билде на смартфонах, редактор или Unity Remote не подойдут.

Unity: Небольшой скрипт = все ориентации экрана

Хватит блокировать вертикальную или горизонтальную ориентацию экрана в своих проектах на Unity! В этой статье мы рассмотрим небольшой скрипт, который я использовал в своем проекте.

При разработке приложения «Россети Книга Достижений», в прибавку к непростой задаче об оптимизации интерфейса на разные экрана, добавилась задача о поддержке разных ориентаций устройства, и вот как я ее решил:

Для начала необходимо реализовать скрипт, который поможет нам в сохранении и выгрузке значений RectTransform:

Код модели для хранения значений RectTransform

И теперь мы можем реализовать скрипт, который будет хранить данные для двух ориентаций экрана:

Код контроллера положения UI элемента

В этом скрипте присутствует OrientationChanged ивент, его можно вызывать через FireOrientationChanged(. ), для обновления UI. Напишем тестовый скрипт, который будет этим управлять:

Код скрипта, проверяющего изменения ориентации

Представленный вариант так же обрабатывает ориентацию на ПК, если вдруг вы не ограничиваетесь приложениями на мобильные устройства, он может определять книжный (Portrait) и альбомный (Landscape) режимы отображения монитора.

Теперь напишем скрипт для инспектора, что бы сохранять и выгружать позицию в режиме Edit, а не только Play. Вы могли уже заметить, что в скриптах используется аттрибут ExecuteAlways, что заставляет скрипт быть активным всегда. И так, код кастомного инспектора:

Код скрипта, изменяющего отображение компонента в инспекторе

В этом скрипте используется инструкция компилятору «#if UNITY_EDITOR», это сделано с расчетом на незнакомых с спец. папками пользователей, если вы умеете создавать и использовать папку Editor в проекте, то можете удалить эти инструкции 🙂

И так, у нас все есть, добавляем на сцену OrientationChecker и на все необходимые UI элемнты OrientationController, при нажатии на кнопку «Save values» — компонент возьмет данные из RectTransform и сохранит у себя в нужную модель, согласно ориентации, при нажатии на «Put values» — вставит из соответствующего контейнера данные в RectTransform.

Изображение компонента в инспекторе (Внутри спойлера, т.к. я не умею скейлить изображения на хабре 😛 )

И мем связанный с моим неумением скейлить изображения:

Что бы изменять ориентацию в Unity Editor, нужно либо добавить свою (в выпадающий список на скриншоте ниже, через плюсик в конце), либо выбрать существующий. Чтобы получить тот же список, что и у меня, необходимо в качестве Platform выбрать iOS (или Android).

Спойлер

Да, это я использую Unity 2019.2 в 2022 году 🙂

На более новых версиях все будет выглядеть и работать так же, проверено до Unity 2021.3.x

И вот как выглядит результат, меняем ориентации — меняется Layout, так же он меняется сразу, если подгружать новую сцену:

Landscape ориентация, с настроенным OrientationController на квадратах слева, и без OrientationController на квадрате справа и стрелке.Landscape ориентация, с настроенным OrientationController на квадратах слева, и без OrientationController на квадрате справа и стрелке. Portrait ориентация, здесь можно увидеть преимущества скрипта над системой RectTransform из коробки Unity.Portrait ориентация, здесь можно увидеть преимущества скрипта над системой RectTransform из коробки Unity.

Скрипт можно усложнять до бесконечности: добавить плавные переходы UI элементов на новые позиции, добавить управление AnimatorController для переключения паков анимаций для Landscape на Portrait и обратно и т.д.; подстроив его под любые нужны проекта.

Как я могу контролировать поворот экрана телефона с помощью кода?

Я хочу установить на каждой сцене проекта различные ориентации экрана для телефона.

В первой сцене я хочу, чтобы это был только Портрет. А в другой сцене быть только LandscapeLeft или LandscapeRight.

Как я могу контролировать это через скрипт?

На сайте unity3d они поместили пример как:

Но это не работает, и таким образом вы можете дать только одну возможную ориентацию в каждой сцене. это не может быть LandscapeLeft и Portrait int одновременно.

3 ответа

Объявите желаемую ориентацию в start метод для каждой сцены, используя:

Я делаю это точно так же, как в своей игре, и это работает на устройствах IOS и Android. попробуйте использовать Пейзаж, а не Пейзаж. надеюсь, что это работает, удачи.

Вы делаете это в настройках сборки. В настройках проигрывателя вы можете установить ориентацию на портрет, пейзаж, автоповорот. На многих устройствах Android автоматическое вращение отключено. Переключите настройки устройства для автоповорота.

У меня была точно такая же проблема. Я хочу использовать портретный режим только в определенной сцене, а в остальное время использовать другие настройки, которые я установил в «Настройках проигрывателя» (для моего случая у меня альбомный левый и правый).

(Пейзаж, упомянутый выше, сейчас «устарел»).

Чтобы это исправить, убедитесь, что в настройках у вас установлены разрешенные ориентации для автоповоротов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Школа онлайн с государственным аттестатом