Чтобы создать такую кнопку в A-Frame, вы можете разместить ее в мире как плоский объект (например, с использованием примитива `a-plane`) на определенном расстоянии перед камерой, и зафиксировать её положение в пространстве, чтобы она не перемещалась вместе с камерой.
Вот пример кода, который создает кнопку, зафиксированную на месте в пространстве:
```html
<a-scene>
<!-- Скайбокс или 360-градусное фото -->
<a-sky src="path_to_your_sky.jpg"></a-sky>
<!-- Камера -->
<a-camera look-controls-enabled="true" position="0 1.6 0">
<!-- Курсор для взаимодействия -->
<a-cursor></a-cursor>
</a-camera>
<!-- Кнопка -->
<a-plane class="clickable" position="0 1.6 -3" rotation="0 0 0" width="1" height="0.5" color="#FFF">
<a-text value="Button Text" align="center"></a-text>
</a-plane>
<!-- Скрипты для взаимодействия -->
<script>
AFRAME.registerComponent('cursor-listener', {
init: function () {
var originalColor = this.el.getAttribute('material').color;
this.el.addEventListener('mouseenter', function (evt) {
this.setAttribute('color', '#24CAFF'); // Изменение цвета при наведении
});
this.el.addEventListener('mouseleave', function (evt) {
this.setAttribute('color', originalColor); // Возврат к исходному цвету
});
this.el.addEventListener('click', function (evt) {
console.log('Button clicked!'); // Обработчик нажатия
});
}
});
</script>
<!-- Присваивание скрипта элементу -->
<script>
document.querySelector('.clickable').setAttribute('cursor-listener', '');
</script>
</a-scene>
```
Здесь мы создали плоский объект `a-plane`, который будет выступать в роли кнопки, с текстом внутри. Камера настроена так, чтобы обеспечить возможность взгляда вокруг, а курсор внутри камеры позволяет взаимодействовать с кнопкой. Мы использовали компонент `cursor-listener`, чтобы обрабатывать события наведения и клика по кнопке.
Убедитесь, что путь к 360-градусной панораме и размеры кнопки корректны и соответствуют вашим нуждам.
Этот пример создает статичную кнопку, которая не движется или не вращается вместе с камерой, и взаимодействие с ней возможно при наведении и клике.