Как сделать персонажа в unity3d от первого лица
Перейти к содержимому

Как сделать персонажа в unity3d от первого лица

  • автор:

Управление от первого лица

Здравствуйте, мне необходим код для того что бы заставить объект( с прикрепленной камерой к лицу) заставиться двигаться как на wasd, так и по осям, движением мышки, вообщем стандартное управление от первого лица. Я уже находил некоторые коды, и если движение работало прекрасно, то при перемещении мышки по вертикали персонаж почему-то ходил назад и вперед соответственно. Если вы знаете как это исправить, или же имеете готовый код, отпишитесь пожалуйста!

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Управление камерой от первого лица под Андроид
как сделать управления как у шутерах на андроид где только не искал не где не на шол помогите.

Метание копья от первого лица
подскажите, если кто знает. как в unity3d сымитировать полет копья/стрелы от первого лица, чтоб.

Мобильная низкополигональная «GTA» от первого лица
Приглашаю разработчиков низко-среднего уровня на создание этой игры, т.к. для меня одного слишком.

Камера от первого лица
В который раз, вечер добрый, очередная проблема, хотя не решились еще предыдущие) Необходимо.

Платформер от первого лица на Unity3D

Учебные материалы для школы программирования. Часть 5

Предыдущие уроки можно найти здесь:

Продолжаем учиться — играя! Это занятие небольшое, но очень важное для дальнейшего движения по образовательной траектории. Мы познакомимся с системой анимации, контейнерами, и попробуем различные анимационные комбинации.

Все материалы к занятию вы найдете здесь.

Порядок выполнения

Создадим новый проект, импортируем в него стандартные ассеты Characters и Prototyping. Из префабов Prototyping создадим подобие игрового уровня.

Создадим платформу и вызовем окно анимации.

Нажмём на Create и назовём нашу анимацию.

Перейдём в режим записи и создадим новое правило для платформы — Transform->position.

Это необходимо, чтобы проставить первый и последний кейфрейм.

Поставим курсор куда-нибудь посередине и подвигаем платформу.

Автоматически создался ещё один кейфрейм. Если запустить проект, можно заметить, что платформа двигается.

Чтобы игрок мог на неё запрыгивать и передвигаться вместе с ней, на платформе нужно создать коллайдер-триггер и назначить скрипт Platform.

Переключившись в режим Curves, немного изменим характер её движения.

Платформа начала по-другому ускоряться и притормаживать. Если сейчас попытаться переместить платформу и нажать на плей, то окажется, что платформа появится всё равно в том же месте. Не лишним будет рассказать о зацикленных анимациях.

Создадим ещё одну платформу, но вложим её в пустой объект и выровняем в нули. Создадим новую анимацию.

Теперь, перемещая родительский объект, можно перемещать платформу вместе с анимацией.

Также, стоит коснуться работы аниматора. Найдём AnimatorController, выделим его и откроем окно Animator.
Создадим ещё одну анимацию и настроим переходы.
На этом этапе стоит объяснить принципы работы аниматора и возможность создавать условные переходы и переходы между анимациями с блендингом.

Теперь платформа воспроизводит первую анимацию, затем, 2 раза вторую, и так — по кругу. Обязательно расскажите ребятам, о возможности менять скорость анимации в аниматоре.

В заключении урока, стоит объяснить, что система анимаций — обширная тема, и мы затронули её лишь поверхностно. Стоит дать ученикам возможность самостоятельной работы, попутно отвечая на все возникающие вопросы.

Камера от первого лица?

Как реализовать поворот мышкой?
Всё вроде бы просто — крути камеру по X мышки.
Но все не так то просто.
Как заставить мышку «находится» одной точке, но при этом считывать её X «правильно»?

#1
1:15, 24 апр 2017

Классическая задача графики

#2
10:33, 24 апр 2017

monobogdan
Ты используешь форум вместо гугла?

#3
11:17, 24 апр 2017

monobogdan
> Как реализовать поворот мышкой?
> Всё вроде бы просто — крути камеру по X мышки.
> Но все не так то просто.
> Как заставить мышку «находится» одной точке, но при этом считывать её X
> «правильно»?
Лучше всего использовать RawInput.
На каждом кадре можно возвращать мышь в центральное положение функцией SetCursorPos
А чтобы мышь не вылезала за пределы окна: ClipCursor.
А чтобы скрыть курсор — ShowCursor. Но эту функцию надо вызывать только один раз.

#4
12:00, 24 апр 2017

Demiurg-HG, да, я так и делаю, но проблема в том, что если начать блокировать курсор(setcursor pos) то «голова» персонажа(т.е камера) начинает дергатся.

#5
13:35, 24 апр 2017

monobogdan
> Demiurg-HG, да, я так и делаю, но проблема в том, что если начать блокировать
> курсор(setcursor pos) то «голова» персонажа(т.е камера) начинает дергатся.
Каким именно образом камера дергается?
Можно попробовать выводить значения в консоль, чтобы понять, где проблема.

#6
15:44, 24 апр 2017

Есть мысль, что SetCursorPos срубает суб-пиксельную точность. Для 1stP камеры это, наверное, не важно.

#7
16:41, 24 апр 2017

Дык у меня топорно все.

rotx = mouse_x camera.rotate( rotx, roty, 0.0f)
  • Misanthrope
  • Постоялец

#8
17:04, 24 апр 2017

monobogdan
> rotx = mouse_x
> camera.rotate(rotx, roty, 0.0f)
а так?
camera.rotate(mouse_x — prev_mouse_x, mouse_y — prev_mouse_y, 0.0f)

#9
17:39, 24 апр 2017

Задача явно неординарная. Может считать приращение мышки относительно центра после ее сдвига и двигать камеру в том направлении, и потом (ТА-ДА!) ВЕРНУТЬ ЕЕ ОБРАТНО в центр.

The Player
> Классическая задача графики

Стоит на втором месте после: что делать если коврик для мыши кончился, и мышь дальше не едет.

  • endeavour_pr
  • Участник

#10
20:41, 30 апр 2017

Для остального должно быть в книгах «как сделать игру на . » или через гугл

#11
10:51, 1 мая 2017

Курсор мыши каждый игровой кадр устанавливается по центру экрана (и прячется, чтоб не расстраивать игрока). Расстояние, которое курсор успел пройти за время одного игрового кадра и будет абсолютным моментальным ускорением для поворота камеры, только его еще надо умножить на время кадра.

#12
11:02, 1 мая 2017

Как написали выше — RawInput и предварительно залочить мышь в пределах окна — ClipCursor.

FPS Sample

тест

FPS Sample разработан для внутренней оценки функций и пакетов на момент выпуска Unity 2018.3 и теперь доступен для загрузки в комплекте со всеми ассетами. В проекте:

  • 1 заполненный уровень (арена), в том числе качественные ассеты для HDRP
  • 2 полностью подготовленных персонажа, имеющих 4 вида уникального оружия
  • Игровой код, содержащий неподдерживаемый собственный вариант сетевого кода с авторитарной серверной архитектурой и поддержкой до 16 игроков (не рекомендуется для коммерческого применения)
  • Режимы «Бой насмерть» и «Нападение»
  • Поддержка PC

Его можно использовать как ориентир и для обучения разработчиков среднего и высокого уровня с использованием выпусков Unity 2018.3 или Unity 2018.4 LTS. В коде используются экспериментальные технологии. Обратите внимание, что проект не имеет поддержки, и мы настоятельно рекомендуем обновить его до поддерживаемых пакетов, если вы хотите использовать элементы проекта в качестве отправной точки.

Смотрите наши официальные доклады на Unite и GDC

Начало работы с FPS Sample

Из записи доклада с GDC 2019 вы узнаете, как приступить к работе с FPS Sample. Евангелист Unity Энди Тач (Andy Touch) вкратце расскажет о проекте, в котором демонстрируются примеры качественной реализации функций Unity (включая графику и сетевые функции) в контексте многопользовательского игрового режима в реальном времени. Кроме того, на примере проекта вы узнаете о принципах работы сетевого кода для динамичного многопользовательского шутера.

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

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