Как сделать поворот камеры мышкой в unity

Обновлено: 07.07.2024

  • Опубліковано 18 чер 2020
  • Привет друзья! Сегодня я вам покажу как быстро сделать управление камерой мышкой и управление камерой с помощью клавиш WASD в Unity. На этом уроке мы с вами:
    ✔ Научимся добавлять скрипт управления к камере в Unity.
    ✔ Научимся добавлять код в скрипт с github.
    ✔ Теперь вы можете управлять камерой с клавиатуры в Unity и так же управлять камерой с помощью мыши.

✅ Теперь вы можете создавать свои игры с помощью Unity! Уроки по Unity помогут в этом!

Ставь лайк, если тебе понравилось видео 👍
►► Подписывайся на канал!

✅ Начинаете создавать игры? - Повторяйте все то, что показываем в обучающем видео. Тогда вы будете закреплять материал быстрее и сможете начать делать свои игры на Unity. 👍

Окно сцены имеет несколько способов навигации для ускорения работы.

Содержание

Перемещение стрелками

Вы можете использовать клавиши стрелок для перемещения в сцене - "прогулки" по ней. Стрелки вверх и вниз двигают камеру вперед и назад. Стрелки налево и направо панорамируют вид в стороны. Удерживая при этом клавишу Shift Вы будете двигаться быстрее.

Фокусирование

Если Вы выберете объект в Иерархии и нажмете клавишу F,- вид будет перемещен для центрирования выбранного объекта. Эта функция называется "рамка выбора".

Перемещение, Вращение и Зум

Эти операции ключевые в навигации по сцене, так что Юнити предоставляет несколько разных путей их выполнения для максимального удобства

Использование инструмента Рука

Когда выбран инструмент Рука (быстрая клавиша Q), доступны следующее управление мышью:

Перемещение: щелчок-перетаскивание для перемещения сцены вокруг камеры.

Вращение: удерживайте Alt и сделайте щелчок-перетаскивание для перемещения камеры вокруг текущей точки опоры.

Масштабирование: удерживайте Control (Command на Mac) щелчок-перетаскивание для масштабирования сцены.Удерживание Shift будет увеличивать скорость перемещений и масштабирования.

Быстрые клавиши без использования инструмента Рука

Для большей эффективности все эти способы могут быть использованы не зависимо от того какой инструмент трансформации выбран. Удобство управления зависит от того что Вы используете - мышь или трекбол:

Удерживаем Alt-Command и щелкнув тащим.

Режим пролета

Режим пролета позволяет Вам перемещаться в сцене летая в ней от первого лица подобно тому как это сделано во многих играх.

  • Щелкните и удерживайте правую кнопку мыши.
  • Теперь Вы можете двигаться используя мышь и клавиши WASD для перемещения налево/направо вперед/назад и клавиши Q и E для смещения вверх/вниз.
  • При удерживании Shift Вы будете двигаться быстрее.

Режим пролета разработан для вида перспективы. В виде Изометрии вместо режима пролета будет производиться вращение камеры.

Гизмо сцены

В верхнем правом углу Окна сцены выводится Гизмо сцены. Он отображает текущую ориентацию камеры и позволяет Вам быстро модифицировать угол обзора.

Вы можете кликнуть по любой стрелке для установки камеры ортографической, смотрящей вдоль соответствующей оси. Вы можете кликнуть на текст под Гизмо для переключения между перспективным и изометрическим видами. Вы можете также щелкнуть в середине гизмо с нажатой клавишей Shift для получения "приятного" вида перспективы при котором сцена видна со стороны и слегка сверху.

У моей камеры есть родитель, которого я вращаю в зависимости от положения мыши. Единственная проблема заключается в том, что я могу только провести пальцем мыши, чтобы повернуть объект. Как я могу повернуть объект, к которому прикреплена моя камера, в зависимости от положения мыши, если я просто нажму рядом с объектом. Заранее спасибо!

1 ответ

У меня есть простой проект SceneKit в Swift, где я добавляю два объекта в сцену: мяч и коробку. Я хочу быть в состоянии: панорамирование с помощью 1 пальца для поворота камеры вокруг сцены переместите объект, нажав на кнопку Переместить’, выбрав объект и перетащив его в новое положение (с помощью.

Значение будет находиться в диапазоне -1. 1 для ввода с клавиатуры и джойстика. Если ось настроена на дельта-перемещение мыши, дельта мыши умножается на чувствительность оси, и диапазон не равен -1. 1. Документ Единства

Примечание: Эта ссылка полезна, пожалуйста, проверьте ее.

Поэтому вам нужно изменить свой код вот так.

если есть проблемы, вы можете сделать вот так

Может быть, какие-то синтаксические ошибки, я их не проверяю.

Похожие вопросы:

В моем приложении 3d я хочу иметь объект (например, дерево) и свою камеру, чтобы смотреть на этот объект. Затем я хочу, чтобы камера вращалась вокруг объекта по кругу, все время глядя на дерево.

Я использую PixelToaster (библиотеку C++ для рисования в фреймбуфер) для простого движка 3D (ehm.. 2.5D) raycasting Engine. Я использую старую школьную конфигурацию ключа WASD для перемещения камеры.

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

У меня есть простой проект SceneKit в Swift, где я добавляю два объекта в сцену: мяч и коробку. Я хочу быть в состоянии: панорамирование с помощью 1 пальца для поворота камеры вокруг сцены.

Я делаю игру в Unity3D, я застрял, потому что хочу сделать основную камеру, чтобы ее можно было перетаскивать с помощью правой кнопки мыши. Я уже пробовал некоторые коды, которые принципиально.

У меня есть объект 3d (Obj) и камера (Cam), указывающая на этот объект. Камера FOV, разрешение, положение и вращение задаются вместе с положением и вращением объекта. Затем мы меняем положение и.

Я сделал некоторую оценку позы 6D и получил ориентированную ограничивающую рамку (OBB) обнаруженного объекта. Итак, теперь я хотел бы знать основную истину и получить ошибку расчетной ориентации и.

Я работаю над игрой javascript, где вы управляете автомобилем, основываясь на том, где находится ваша мышь (поэтому она движется к вашей мыши). Но сейчас это просто прямоугольник, который следует за.

Я делаю вращение камеры blender с помощью Unity, но это не так просто Метод вращения камеры, который я делал, состоял в вращении через внешний продукт камеры и указатель мыши, но это не так гладко.

Камера является одним из самых важных элементов в 3D-игре. Он действует как глаза игрока, позволяя им видеть игровой мир с разных точек зрения. В Unity3D 3D-камера работает так же, как пленочная камера. Его можно панорамировать, наклонять и масштабировать для кадрирования сцен. Из этого туториала вы узнаете, как создавать несколько перспектив камеры от третьего лица.

Для вдохновения или для использования в качестве отправной точки для своей работы ознакомьтесь с некоторыми из самых популярных 3D-моделей на Envato Market. Или получите помощь один на один, выбрав один из сервисов 3D-дизайна и моделирования в Envato Studio.


Настройка проекта

Нам нужен простой проект для тестирования скриптов нашей камеры. Нам понадобится сцена с земной плоскостью, на которой есть текстура. Это позволит легко увидеть, как каждая камера движется и реагирует на входы игроков. Когда мы закончим, это должно выглядеть так:

Готовая сцена

Выполните следующие шаги для настройки проекта:

Создать игрока

Все камеры, которые мы собираемся создать, будут нуждаться в цели: на что-то смотреть или следовать. Итак, давайте создадим основного игрока, которого мы можем перемещать с помощью клавиш со стрелками.

В сценарии Player добавьте два открытых свойства для движения и скорости поворота. Затем добавьте следующий код в ваш метод Update ():

Инспектор игрока

Взгляд на камеру

Это самая простая камера от третьего лица. Он находится в фиксированном месте в трехмерном мире и отслеживает свою цель, как турель.

В сценарии LookAtCamera создайте открытый атрибут для цели нашей камеры в верхней части класса. Открытые атрибуты доступны в Инспекторе и позволят нам назначить Player в качестве цели камеры:

Далее нам нужно указать преобразование нашей камеры, чтобы посмотреть на целевой объект. К счастью, у объектов преобразования есть удобный метод LookAt (), который мы можем использовать для этого. Мы могли бы сделать это в методе Update (), но вместо этого мы создали метод LateUpdate (). Как правило, во всех сценариях камеры всегда следует использовать метод LateUpdate () вместо метода Update (). LateUpdate () происходит после завершения Update (), поэтому у сценария Player есть шанс закончить вычисление позиции игрока до того, как камера вычислит свою позицию. Это приводит к более плавному движению камеры:

Финальный скрипт должен выглядеть так:

Перетащите игрока в инспектор

Dungeon Crawler Camera

В сценарии DungeonCamera нам снова нужно создать открытый атрибут для цели нашей камеры. Нам также нужно создать переменную для хранения смещения между камерой и ее целью. Смещение представлено в виде вектора 3 и будет использоваться для сохранения относительного расстояния при перемещении игрока. Вы можете заметить, что мы не присваиваем смещению значение при первом его объявлении. Это потому, что мы будем вычислять значение при первом запуске скрипта. Мы можем использовать метод Start () для этого:

Читайте также: