Автор: MastaMan
Дата: Апрель 7, 2023
Обновлено: Июль 25, 2023
Вы читаете часть: 1 2 3 4 5

Вступление

Это часть 4 из 5 серии уроков по добавлению интерактивности интерьеру SVOYA Apartment.

Доступ к материалам, такие как: модели в формате "FBX", запеченные текстуры, скрипты и другое, вы можете получить оформив подписку на Patreon.

Patreon

Посмотреть Playcanvas проект онлайн.

View Playcanvas Project Online

Добавление Joystick

playcanvas interior first person movement with joysitck
Loading...

Практика показывает, что на мобильных устройствах для ориентации и передвижения в 3D пространстве самым удобным и эффективным способом является использование виртуального джойстика. Не верите? Попробуйте сами!

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

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

За основу был взят джойстик из примера урока на официальном сайте Playcanvas.

Touchscreen Joypad Controls

Единственная сложность была в том, что скрипты виртуального джойстика были адаптированы для Third Person, а нам необходимо было для First Person. Поэтому чтобы уже ничего не менять в текущем проекте, я доработал скрипты из урока и адаптировал для такого типа проектов как SVOYA Apartment.

Настройка UI элементов

Для создания джойстика был использована система Playcanvas UI.
Все графические элементы были взяты из Playcanvas Manual.

Touchscreen Joypad Controls

Для этого перейдите в сцену этого урока.

Scene - Touchscreen Joypad Controls
touchscreen joypad controls lesson
Loading...

И скопируйте в свой проект папку “touch-joypad”. Если вы являетесь подписчиком Patreon и у вас есть доступ к проекту SVOYA Apartment, рекомендую скопировать папку оттуда.

Далее создайте в “Hierarchy” в папке “UI” новый “Entity - 2D Screen”.

create new ui 2d screen
Loading...

Затем из “Assets” из папки “touch-joypad/templates” перенесите два элемента шаблонов джойстика: “Left Fixed Touch Joystick” и “Right Fixed Touch Joystick”.

Пример показан ниже на скриншоте.

add joystick ui elements to scene
Loading...

Все, это все графические элементы, которые необходимо было добавить. Если вы сейчас запустите проект (“Play”), вы увидите, что даже на Desktop версии присутствуют данные виртуальные джойстики.

Применение и настройка скриптов

Добавьте следующие скрипты в папку  “touch-joypad/scripts” с заменой.

Скрипт “joystick-camera-orbit.js”.



Скрипт “joystick-player-movement.js”.



Измененный “touch-joystick.js”.



Скрипты “joystick-camera-orbit.js” и “joystick-player-movement.js” были полностью написаны мной, чтобы адаптировать виртуальный джойстик под текущий “firstPersonMovement” скрипт для “Player”.

Примените скрипты “joystickPlayerMovement” и “JoystickCameraOrbit” к нашему “Player” со следующими настройками, показанных на скриншоте ниже.

add joystick scripts to player
Loading...
Важно!
Применяйте скрипты только к “Player”. НЕ применяйте скрипты к “Camera”!

Выделите наш “Right Fixed Touch Joystick” и примените скрипт “touchJoystick”, со следующими настройками.

apply script to left joystick
Loading...

Теперь выделите “Left Fixed Touch Joystick” и также примените  “touchJoystick” скрипт со следующими настройками.

apply script to another joystick
Loading...

Готово! Вы можете запустить проект (“Play”) и наслаждаться виртуальным джойстиком для мобильной версии проекта.

Прошу заметить, что скорость движения “Player” или вращение камеры зависит от того насколько отклонен стик джойстика. Мне пришлось немного попотеть, чтобы сделать такую плавную функциональность, потому что у готовых решений например при малейшем сдвиге стика игрок сразу набирал максимальную скорость, что было не очень комфортно.

Я надеюсь, что вы оценили мои старания и подписались на мой Patreon.

Patreon
playcanvas interior project with joystick
Loading...

Адаптация под мобильные устройства

rotate your phone to horisontal
Loading...

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

Добавьте в “2D Screen” новый “Layout Group”. Назовите его “RotatePhone”.

add group layout to 2d screen
Loading...

Затем добавьте в “RotatePhone” новый UI элемент “Button”, назовите “Background”.

rotate phone entity
Loading...

Настройки кнопки “Background”.

backround settings for rotate phone entity
Loading...

В качестве текстуры для “RotateImage” загрузите и выберите следующую картинку.

rotate phone
Loading...

Со следующими настройками.

image rotate phone settings
Loading...

Выберите “Left Fixed Touch Joystick”, и в скрипте “touchJoystick” примените “RotatePhone” в качестве “Entity” в настройке “Rotate Phone UI Entity”.

apply image rotate phone in script settings
Loading...

Запустите проект на мобильном телефоне. Теперь вы будете видеть картинку показывающую повернуть телефон в горизонтальное положение.

rotate your phone to horisontal
Loading...

А в горизонтальном положении вы сможете перемещаться по сцене при помощи джойстика.

horisontal mobile joystick player
Loading...

И вот, конечный результат.

View Playcanvas Project Online

Заключение

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

Для подписчиков Patreon будет возможность просматривать проект SVOYA Apartment в режиме чтения, а также быстрое копирование-вставка необходимых ассетов и скриптов в свой личный проект.

Для всех остальных все необходимое найдете на странице этого урока.

Patreon


Вы читаете часть: 1 2 3 4 5
{{commentsMsg}}
  

Никто не оставил комментариев
{{comment.lastname}} {{comment.name}} {{comment.date}}
{{comment.text}}
Sponsored content