일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- EM6
- CI/CD
- auth0
- JavaScript
- WebVR
- package-lock.json
- vue
- npx
- A-Frame
- aframe
- WebXR
- Three.js
- Component
- 상태관리
- promise
- bootstrap
- javscript
- version mismatch
- array
- PDO
- PHP
- Node
- JS
- 3d
- vuetify
- vuex
- VR
- vue-template-compiler
- AR
- web
- Today
- Total
대가는 결과를 만든다
ECS in A-Frame 본문
ECS : Entity-Component-System
1. Entity : <a-entity> element와 prototype, component가 연결되는 컨테이너 object, scene안에서 object의 기반
2. Component : <a-entity>안의 HTML attribute
object로서 1) schema, 2) 생명주기 handler, 3) 메서드를 포함한다.
AFRAME.registerComponent(name, definition)으로 등록
모든 로직은 component로 구현됨.
appearance, gestures, behaviors, interactivity with other objects.
3. System : <a-scene>안의 HTML attribute
AFRAME.registerSystem(name, definition)으로 등록
로직, component의 행동을 Data 컨테이너로 다루는 개념이 시스템
Declarative DOM-Based ECS
1. Query Selectors를 이용한 다른 Entity의 참조 : ID, Class, Data Attribute로 Entity에 대한 참조를 얻을 수 있다.
=> document.querySelector('#player');
2. 이벤트와 분리된 Entity 통신 : DOM은 이벤트를 수신하고 방출하는 기능을 제공, Component는 단순히 이벤트를 내뿜을 수 있음. 다른 구성 요소는 서로 호출하지 않고도 해당 이벤트를 들을 수 있음.
=> ball.emit('collided');
3. 생명주기 관리 위한 DOM API
=>.setAttribute
, .removeAttribute
, .createElement
, and .removeChild
4. Attribute 선택자를 이용한 Entity-Filtering : 특정 Component를 가지거나, 가지지 않은 Entity를 가져오는 작업이 가능
=> document.querySelector('[enemy]:not([alive]');
'개발 > VR' 카테고리의 다른 글
[리서치/자료] AFrame 주요 외부 Component, Library 정리 (0) | 2019.01.09 |
---|---|
AFrame에서 Three.js의 접근 (0) | 2018.12.24 |
A-Frame Component (0) | 2018.12.18 |
A-Frame Tracker 지원 여부 리서치 (0) | 2018.12.12 |
A-Frame Primitives (0) | 2018.12.05 |