NOW AVAILABLE! https://www.assetstore.unity3d.com/#!/content/26494 Purpose: To allow users to interact with your VR projects without the need for an external controller. Also works great in regular 3D space. How It Works: The crosshair (with the zapper script attached) does a raycast in the direction you’re looking and detects any object with a physics collider tagged “NoTouchButton”, so anything you put in the crosshairs, your users can interact with. This system sets up a series of visual cues for interaction using bar and radial timers. You can customize the time to activate/deactivate and cool down periods as well as call functions on game objects during activation and deactivation phases, using the SendMessage function. I tried to make it modular and easy to use so you can just drop the script or prefabs on your object and it works with minimal setup. Why: I developed this system for VR games that require a controller so those people who don’t have a controller can still get around and interact with your project. It’s not great for high twitch gaming but would work nicely for casual games were the player works at their own pace and it would be great for targeting objects for turret/shooter games. I have included some uses for these in the demo scenes. Development: Currently this is a quick mockup of the general idea that I originally indented to use as an autowalk toggle, it was made just for buttons but I am working on integrating it with uGUI and adding in other options besides timer bars to indicate wait times, expanding panels with multiple options, and other cool features for a total “no click” gui experience. How to Use (Simple): Add your crosshair sprite inside of your camera group (for VR using 2 cameras). Attach the Zapper script to it. This sends out the raycast that the buttons will receive. Drag the DemoButton prefab to your scene wherever you want it. Make sure to create a new tag called “NoTouchButton” and assign it to the DemoButton. Adjust parameters of the ZapperAction script on your DemoButton to your liking. Add code to your scripts to control objects… see demo for examples Known Issues & Tips: This system is based on Sprites, and therefore doesn’t use any uGUI or onGUI stuff, that way you can set depth and registration points, as well as colors at runtime Any object you want to interact with, the parent object and/or the object with the zapper action script on it need to have a physics collider attached to catch the raycast If using a timer, you need to make a parent object called HorizontalFillBar, VerticalFillBar, and CircularFill and it HAS to have an object called “fill” as a child. That fill is either a bar or the radial fill. The crosshairs need to be within the capsule collider for the character controller or it will get clipped near walls, you can scale it down but place it right in front of the camera Make sure to add the “NoTouchButton” tag to your scene and any objects you want to interact with, the Zapper script will only respond to that tag, consequentially, you can turn objects on and off by changing their tag The camera hierarchy should be setup like so: Player -> CameraGroup -> Camera + Crosshair where the Player has the movement scripts and the camera group has the mouse look or VR scripts, and the crosshairs have the zapper script attached, inside the CameraGroup with the camera. If using the Durovis Dive plugin, the Camera Group would be the DiveCamera prefab. See images below. This was made to be used for VR with the Durovis Dive plugin, and works great with it, but will also work in regular 3d and 2d, and should work fine with other VR solutions (such as Oculus) IT IS NOW AVAILABLE ON THE ASSET STORE!