В A-Frame каждая сущность (entity) и компонент обладают
набором значений по умолчанию, которые определяют их
поведение при отсутствии явной настройки. Понимание этих значений
критично для эффективного создания виртуальных сцен и предотвращения
неожиданных эффектов.
Сущность (<a-entity>)
представляет собой базовый строительный блок сцены. Она может содержать
компоненты, влияющие на визуализацию, поведение, физику и
взаимодействие. Каждый компонент имеет предопределённые
значения, которые применяются автоматически, если их не
переопределить.
Например:
<a-entity geometry="primitive: box"></a-entity>
В этом случае geometry использует значения по
умолчанию:
width: 1height: 1depth: 1Если не указывать эти параметры явно, куб будет создан именно с такими размерами.
Компонент geometry предоставляет несколько типов
примитивов (primitive), каждый из которых имеет собственные
значения по умолчанию:
box
width: 1height: 1depth: 1sphere
radius: 1.25segmentsWidth: 18segmentsHeight: 36cylinder
radius: 1height: 1segmentsRadial: 36segmentsHeight: 1plane
width: 1height: 1circle
radius: 1segments: 32Эти значения обеспечивают корректное отображение объектов без дополнительных настроек.
Компонент material управляет визуальным оформлением
объектов. Его значения по умолчанию:
color: #FFF (белый)shader: standardopacity: 1 (полностью непрозрачный)metalness: 0roughness: 1side: front (отрисовка только передней стороны)Для объектов с геометрией по умолчанию используется белый стандартный материал с полной непрозрачностью, что позволяет сразу видеть форму и освещение сцены.
Камера (camera) в A-Frame имеет
следующие ключевые значения по умолчанию:
position: 0 0 0 — начальная точка обзора.fov: 80 — угол обзора.near: 0.1 — ближняя плоскость отсечения.far: 1000 — дальняя плоскость отсечения.Свет (light) без явных параметров
создаётся как directional с:
color: #FFFintensity: 1position: 0 1 0Это позволяет сцене иметь базовое освещение сразу после добавления света.
Каждая сущность поддерживает компонент position,
rotation и scale с предустановленными
значениями:
0 0 00 0 01 1 1Если не задавать эти параметры, объект появится в центре сцены без поворота и с единичным масштабом.
Некоторые компоненты, отвечающие за динамику или взаимодействие, также имеют свои стандартные значения:
animation
property: positionto: 0 0 0dur: 1000easing: linearcursor
fuse: falserayOrigin: mouselook-controls
enabled: truepointerLockEnabled: falsehmdEnabled: trueЭти значения позволяют компонентам функционировать сразу после включения без необходимости конфигурации.
При применении нескольких компонентов к одной сущности значения по умолчанию могут быть переопределены. Правила приоритета:
setAttribute),
переопределяют HTML.Пример:
<a-entity geometry="primitive: box; width: 2"></a-entity>
В этом случае будет использован width: 2, а
height и depth останутся равными 1 (по
умолчанию).
При создании собственного компонента с помощью
AFRAME.registerComponent важно указывать
schema с default-значениями. Это гарантирует
предсказуемое поведение и совместимость с другими компонентами.
AFRAME.registerComponent('spin', {
schema: {
speed: { type: 'number', default: 1 },
axis: { type: 'string', default: 'y' }
},
tick: function (time, timeDelta) {
this.el.object3D.rotation[this.data.axis] += this.data.speed * timeDelta / 1000;
}
});
В этом примере speed и axis автоматически
получают значения по умолчанию, если не переданы явно.
Значения по умолчанию в A-Frame обеспечивают сразу рабочую сцену, позволяют избежать ошибок и ускоряют разработку. Знание предустановленных параметров для геометрии, материалов, камеры, света и пользовательских компонентов — ключ к грамотной и эффективной работе с библиотекой.