Как использовать трекпад Oculus Go для перемещения в AFrame
Я тестирую некоторые страницы AFrame с помощью Oculus Go, но не могу заставить трекпад работать для перемещения внутри сцены. Я использую основную версию AFrame, где, по-видимому, поддерживается контроллер Oculus Go. На самом деле этот код например:
<!DOCTYPE html>
<html>
<head>
<script src="https://rawgit.com/aframevr/aframe/cf15c15/dist/aframe-master.min.js"></script>
</head>
<body>
<a-scene anti-alias>
<a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9" shadow></a-box>
<a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E" shadow></a-sphere>
<a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D" shadow></a-cylinder>
<a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4" shadow></a-plane>
<a-sky color="#ECECEC"></a-sky>
<a-entity laser-controls="hand: right"></a-entity>
<a-entity oculus-go-controls x-button-listener></a-entity>
<a-entity camera look-controls wasd-controls position="0 1.6 0"></a-entity>
</a-scene>
</body>
</html>
показывает контроллер на изображении, но, по-видимому, не влияет на используемый трекпад, как я использовал бы wasd в настольной версии (которая довольно хорошо работает при перемещении по сцене).
Итак, в итоге, как я могу использовать трекпад Oculus Go в сцене AFrame для перемещения в нем, как я делал бы на рабочем столе с клавишами wasd? (или, может быть, это еще не поддерживается AFrame?)
[Я знаю, что это похоже на документацию AFrame Oculus Go Controller?, но меня больше интересует, как двигаться.]
2 ответа
A-Frame не предоставляет трекпад на основе передвижения из коробки. Вы можете посмотреть на дополнительные элементы, в частности на элементы управления движением, в качестве отправной точки для получения своего собственного компонента движения Oculus Go.
Благодаря ответу @diego-marcos я смог написать простой HTML -код, который работал для меня:
<!DOCTYPE html>
<html>
<head>
<script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script>
<script src="//cdn.rawgit.com/donmccurdy/aframe-extras/v4.1.2/dist/aframe-extras.min.js"></script>
</head>
<body>
<a-scene anti-alias>
<a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9" shadow></a-box>
<a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E" shadow></a-sphere>
<a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D" shadow></a-cylinder>
<a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4" shadow></a-plane>
<a-sky color="#ECECEC"></a-sky>
<a-entity movement-controls="fly: true" position="0 0 0">
<a-entity camera position="0 1.6 0"></a-entity>
</a-entity>
</a-scene>
</body>
</html>
Это обеспечивает передвижение камеры из коробки с использованием стабильной в настоящий момент версии AFrame и AFrame Extras.
Когда вы запускаете сцену в браузере в Oculus Go и запускаете VR, вы можете управлять движением камеры, просто осторожно поместив большой палец на трекпад. Камера перемещается в направлении, в котором вы располагаете большой палец, в горизонтальной плоскости и в направлении вашего взгляда. То есть, если вы двигаетесь вперед, но располагаете большой палец в передней части трекпада и смотрите вверх, камера будет двигаться вперед и вверх в направлении вашего взгляда. Помните, что это движется камера, а не сцена, а это означает, что если вы поместите большой палец влево, камера переместится влево, и сцена, кажется, переместится вправо.
Если вертикальное движение не требуется (например, потому что вы моделируете перемещение по горизонтальной плоскости), вы можете удалить fly: true
от movement-controls
свойства.
Для других свойств movement-controls
проверьте его документацию.