В A-Frame примитив a-box используется
для создания трёхмерных прямоугольных параллелепипедов и кубов. Этот
примитив является основой для построения структур, объектов сцены и
взаимодействующих элементов виртуальной реальности.
1. Размеры (width, height,
depth) Определяют ширину, высоту и глубину коробки
в метрах. Если не задано, по умолчанию каждая сторона равна 1.
<a-box width="2" height="1" depth="0.5"></a-box>
2. Позиция (position) Задает положение
объекта в пространстве сцены. Формат: "x y z".
<a-box position="0 1 -3"></a-box>
3. Цвет (color) Задает сплошной цвет
объекта. Можно использовать стандартные HTML-цвета или шестнадцатеричные
коды.
<a-box color="#4CC3D9"></a-box>
4. Ротация (rotation) Определяет
ориентацию коробки в пространстве. Формат: "x y z" в
градусах.
<a-box rotation="0 45 0"></a-box>
5. Прозрачность и материал (opacity,
material) Позволяет задавать прозрачность и
свойства материала.
<a-box color="red" opacity="0.5" material="metalness:0.8; roughness:0.2"></a-box>
Для наложения изображений или паттернов на коробку используется
атрибут src. Можно применять разные текстуры на каждую
грань с помощью компонента material.
<a-box src="#texture"></a-box>
Текстура загружается через <a-assets>:
<a-assets>
<img id="texture" src="brick_texture.jpg">
</a-assets>
a-box поддерживает стандартные события
A-Frame:
Пример изменения цвета при наведении:
<a-box color="blue" position="0 1 -3"
event-set__enter="_event: mouseenter; color: red"
event-set__leave="_event: mouseleave; color: blue">
</a-box>
Примитив можно анимировать с помощью компонента
animation:
<a-box position="0 1 -3" color="green"
animation="property: rotation; to: 0 360 0; loop: true; dur: 5000">
</a-box>
Для использования столкновений и взаимодействия с физикой применяются
компоненты dynamic-body и
static-body из
aframe-physics-system.
<a-box position="0 2 -3" color="orange" dynamic-body></a-box>
a-box может использоваться как
строительный блок для более сложных объектов:
Пример стены из нескольких кубов:
<a-box position="-1 0.5 -3" color="gray" width="1" height="1" depth="0.2"></a-box>
<a-box position="0 0.5 -3" color="gray" width="1" height="1" depth="0.2"></a-box>
<a-box position="1 0.5 -3" color="gray" width="1" height="1" depth="0.2"></a-box>
a-box.Основной HTML-код примитива a-box может выглядеть
так:
<a-box position="0 1 -3"
rotation="0 45 0"
width="2" height="1" depth="0.5"
color="#4CC3D9"
opacity="0.8"
material="metalness:0.5; roughness:0.3"
dynamic-body
animation="property: rotation; to: 0 360 0; loop: true; dur: 5000">
</a-box>
Этот код демонстрирует полный набор возможностей: размеры, позиция, ротация, цвет, прозрачность, материал, физика и анимация.