UNPKG

aframe-alongpath-component

Version:

A-Frame Component that allows entities to follow predefined paths

92 lines (66 loc) 4.46 kB
## aframe-alongpath-component A component for [A-Frame](https://aframe.io) that allows entities to follow predefined paths. New in Version 1.0.0: The alongpath component went through a refactoring process. The entire logic of creating curves/paths has been extracted into the [Curve component](https://github.com/protyze/aframe-curve-component). This allows for more flexibility and less complexity and refocusing solely on the task of moving objects along a path. With this Version it is now possible to promote single path-points to be "Trigger-Points" - meaning that they will fire an event as soon as the Entity moves past these points. ![](http://lab.immersiveweb.ch/assets/aframe_alongpath_component.gif) ### Properties | Property | Description | Default Value | | -------- | ----------- | ------------- | | curve | Selector to reference to the corresponding [curve](https://github.com/protyze/aframe-curve-component) | '' | | triggers | Selector to identify the Trigger-Points that should fire the alongpath-trigger-activated-Event when the entity moves close to it. | 'a-curve-point' | | triggerRadius | Defines how close the entity should be to the Trigger-Point to activate it. | 0.01 | | dur | Duration in milliseconds for the object to follow the entire path | 1000 | | delay | Number of milliseconds to wait for the animation to begin | 2000 | | loop | Whether or not the animation should loop | false | | rotate | Whether or not the Entity should adjust it's rotation while moving along the path | false | | resetonplay | Whether or not the Movement on the path should be reset on the play event | true | ### Events | Event | Description | | -------- | ----------- | | movingstarted | The Entity is about to start moving along the path | | movingended | The Entity has completed moving along the path | | alongpath-trigger-activated | The Entity has activated a Trigger-Point (Fired on the corresponding 'curve-point') | | alongpath-trigger-deactivated | The Entity has deactivated a Trigger-Point (Fired on the corresponding 'curve-point') | ### States | State | Description | | -------- | ----------- | | moveonpath | The Entity currently moving along the path | | endofpath | The Entity has completed moving along the path| | alongpath-active-trigger | The moving entity has activated a Trigger-Point (which has now this active state) | ### Usage with A-Frame Inspector You can use the [A-Frame Inspector](https://github.com/aframevr/aframe-inspector) to manually modify the predefined paths. To do so, you can open the Inspector as usual, and start moving around the a-curve-point Entities of the curve. The path will change instantly. ![](http://lab.immersiveweb.ch/assets/aframe-alongpath-component-inspector.gif) ### Usage #### Browser Installation Install and use by directly including the [browser files](dist): ```html <head> <title>My A-Frame Scene</title> <script src="https://rawgit.com/aframevr/aframe/master/dist/aframe-master.min.js"></script> <script src="https://rawgit.com/protyze/aframe-curve-component/master/dist/aframe-curve-component.min.js"></script> <script src="https://rawgit.com/protyze/aframe-alongpath-component/master/dist/aframe-alongpath-component.min.js"></script> </head> <body> <a-scene> <a-curve id="track1"> <a-curve-point position="-2 2 -3"></a-curve-point> <a-curve-point position="0 1 -3"></a-curve-point> <a-curve-point position="2 2 -3"></a-curve-point> </a-curve> <a-box alongpath="curve: #track1"></a-box> </a-scene> </body> ``` #### NPM Installation Install via NPM: ```bash npm install aframe-alongpath-component ``` Then register and use. ```js require('aframe'); require('aframe-curve-component'); require('aframe-alongpath-component'); ``` Thanks to https://jsbin.com/dasefeh/edit?html,output for the basic concept.