0.3.1 • Published 7 years ago

aframe-teleport-controls v0.3.1

Weekly downloads
268
License
MIT
Repository
github
Last release
7 years ago

aframe-teleport-controls

Teleport component

Screenshot

Properties

PropertyDescriptionDefault Value
cameraRigSelector of the camera Rig to teleport
teleportOriginSelector of the child of cameraRig to use as the center point for teleporting, typically the camera. If set teleporting will position the cameraRig such that this element ends up above the teleport location (rather than the center of the camreaRig)
typeType of teleport: line or parabolicparabolic
buttonButton used to launch the teleport: trackpad, trigger, grip, menutrackpad
collisionEntitiesSelector of the meshes used to check the collisions. If no value provided a plane Y=0 is used
endEventsPaired with startEvents, list of events to listen for to finish teleporting.[]
hitEntityEntity used to show at the hitting position. If no value provided a cylinder will be used as default.
hitCylinderColorColor used for the default hitEntity primitives#99ff99
hitCylinderRadiusRadius used for the default hitEntity primitives0.25
hitCylinderHeightHeight used for the default hitEntity primitives0.3
curveHitColorColor used for the curve when hit the mesh#99ff99
curveMissColorColor used for the curve when it doesn't hit anything#ff0000
curveNumberPointsNumber of points used in the curve30
curveLineWidthLine width of the curve0.025
curveShootingSpeedCurve shooting speed, as bigger value, farther distance.5
defaultPlaneSizeDefault plane size100
maxLengthMax length of the ray when using type=line teleport10
landingNormalNormal vector to detect collisions with the collisionEntity(0, 1, 0)
landingMaxAngleAngle threshold (in degrees) used together with landingNormal to detect if the mesh is so steep to jump to it.45
startEventsAlternative to button, list of events to listen to start teleporting.[]

Usage

Browser Installation

Install and use by directly including the browser files:

There are two ways to use it: using a camera rig or not. I strongly recommend using a camera rig as the following example:

<head>
  <title>My A-Frame Scene</title>
  <script src="https://aframe.io/releases/0.7.0/aframe.min.js"></script>
  <script src="https://rawgit.com/fernandojsg/aframe-teleport-controls/master/dist/aframe-teleport-controls.min.js"></script>
</head>

<body>
  <a-scene>
    <a-entity id="cameraRig">
      <!-- camera -->
      <a-entity id="head" camera wasd-controls look-controls></a-entity>
      <!-- hand controls -->
      <a-entity id="left-hand" teleport-controls="cameraRig: #cameraRig; teleportOrigin: #head;"></a-entity>
      <a-entity id="right-hand" teleport-controls="cameraRig: #cameraRig; teleportOrigin: #head;"></a-entity>
    </a-entity>
  </a-scene>
</body>

To use this component with Gear VR, you need to add gearvr-controls:

  <a-scene>
    <a-entity id="cameraRig">
      <a-camera />
      <a-entity
        teleport-controls="cameraRig: #cameraRig"
        gearvr-controls
       />
    </a-entity>
  </a-scene>

You can also use the trigger button instead of trackpad button by adding button: trigger.

For Daydream, replace gearvr-controls by daydream-controls.

If you use aframe-environment-component > 1.0.0 and want to teleport on the generated ground, on the hills, you can specify collisionEntities: .environmentGround. You can also add .environmentDressing if you want to teleport on the dressing like the mushrooms. On Gear VR, it can be very slow with the curved line. Use maxLength: 200; type: line; in this case.

NPM Installation

Install via NPM:

npm install aframe-teleport-controls

Then register and use.

require('aframe-teleport-controls');