The best solution at the moment is following Theston's work, which is an all-in-one script that you drop on the controllers. It handles a laser pointer, teleportation, and even some ability to grab objects. See what he's doing here, https://youtu.be/uTZ0xw4SPn0 - and here, https://www.reddit.com/r/Vive/comments/4gdxgt/steamvr_unity_toolkit_my_attempt_at_making_useful/
Download the assets here, https://github.com/thestonefox/SteamVR_Unity_Toolkit. And my steps I go through to integrate the files into my projects:
- Import the latest SteamVR Plugin
- Download the zip of SteamVR UNity Toolkit from Github
- Copy SteamVR_Unity_Toolkit folder into your Unity project's Assets folder
- Edit / Project Settings / Graphics, add a new included shader - choose 'Unlit/TransparentColor
- Drop CameraRig into scene from, Assets / SteamVR_Unity_Toolkit/Prefabs
- Put Steam VR_Basic Teleport script on CameraRig (found in the Assets / SteamVR_Unity_Toolkit/Scripts folder)
- Put Steam VR_Controller Events & Steam VR_Simple Pointer scripts on both Controllers.
- Have the floor be a physics collider. I break my floor geometry off from the rest and put a Mesh Collider on them. The teleporter will now only work when pointed at the floor.