Я играю с очень простой сценой в рамке. Я ищу информацию, чтобы получить положение камеры во время работы. Должен ли я использовать код Component и three.js?Позиция камеры во время выполнения
Как я мог это сделать?
Я играю с очень простой сценой в рамке. Я ищу информацию, чтобы получить положение камеры во время работы. Должен ли я использовать код Component и three.js?Позиция камеры во время выполнения
Как я мог это сделать?
Сначала возьмите объект камеры (https://aframe.io/docs/core/entity.html#Retrieving-an-Entity). Объект камеры будет иметь компонент camera
, прикрепленный как атрибут HTML.
document.querySelector('[camera]')
или document.querySelector('a-scene').camera.el
Затем используйте getAttribute
, чтобы захватить позицию. Это вернет объект {X, Y, Z}.
document.querySelector('[camera]').getAttribute('position')
Чтобы получать уведомления о каждый раз, когда камера обновляет свою позицию, мы можем использовать componentchanged
событие (https://aframe.io/docs/core/entity.html#Listening-for-Component-Changes):
document.querySelector('[camera]').addEventListener('componentchanged', function (evt) {
if (evt.detail.name === 'position') {
console.log('Camera position went from', evt.detail.oldData, 'to', evt.detail.newData);
}
});
Я, наконец, принятое это решение:
<script>
AFRAME.registerComponent('acceleration', {
tick: function() {
var altitude = (this.el.getAttribute('position').z);
}
})
</script>
<a-scene>
<a-entity position="0 0 150">
<a-entity id="myCamera" camera acceleration look-controls keyboard-controls></a-entity>
</a-entity>
</a-scene>
Моя последняя проблема: я не получаю абсолютные координаты камеры, но тессы относительно initiale камера положение.
У меня есть RTFM. Но я не знаю, с чего начать. Когда я говорю «во время выполнения», я имею в виду каждый раз, когда камера движется. – pizaninja
Я имел в виду, что * code * вы уже пробовали? –
Можете ли вы привести пример? Ссылка на codepen будет работать http://codepen.io/team/mozvr/ –