Автор: 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