May 3, 2021

Tool Guide – Gaze Selection

Latest Version: 0

The Gaze Selection tool allows you to create Unity Events by asking your user to look at something for a couple seconds. In VR, this is usually a bit less intrusive and less immersion-breaking than an Interactive UI.

In addition to the various options built in to the interface, there are also hidden functions in the script that lets this act as an interested party for unity events that may be useful for you. They are discussed in this guide.

How to use

  1. Drag and drop the BestiSDK_Proxy_GazeSelection object into your scene.  This is a proxy object because it has several sub-objects that need to be configured for this to work, and a proxy object makes it easier to set up. Proxy objects are stored in _BestiSDK/_Tools/ProxyObjects
  2. Configure it as desired by changing the options and putting in your 3D objects for the user to look at.

Section Information

Function Options

The function options section contains 3 parts

  • Time Until Selection Confirmed
  • Disable after selection
  • Enable at startup

Time Until Selection Confirmed is a timer in seconds that determines how long a user must look at a choice before the selection is confirmed.

Disable After Selection, if selected, disables the gaze selector after the first choice is made. It can be re-enabled by making it an interested party to a unity event. Internally, this runs the function “DisableGazeSystem” after a selection is made. You can also call this function manually.

Enable at Startup, if selected, has the gaze selector on and ready to receive gazes from the user at the start of the scene. If you do not select this option, you will need to make it an interested party to a unity event. The function to call to enable the gaze system is called “EnableGazeSystem”

Appearance Options

The appearance options section contains 4 parts

  • Show the selection reticle
  • Particle explosion when enabled
  • Particle explosion when disabled
  • Particle explosion on selection

Show the selection reticle, when selected, will show a circle that slowly fills that gives a progress bar towards making the selection. How slowly or quickly it fills is determined by the “Time Until Selection Confirmed” option in the Function Options section. If it is not selected, this will happen secretly.

Particle explosion when enabled, when selected, will cause a small burst of particles and a sound effect to happen when the gaze selector is activated. Using this will help your user know that it is time to make a choice, however, if you want to secretly track what the user is looking at, it may be better to have this turned off.

Particle explosion when disabled, when selected, will cause a small burst of particles and a sound effect to happen when the gaze selector is disabled. It is disabled by calling the function “DisableGazeSystem,” and is also disabled when the “Disable After Selection” option is set to true.

Particle explosion on selection, when selected, will cause a small burst of particles to explode from the selected choice when the user has looked at it long enough to trigger it.

Actions

The Actions section is simply a list of each gaze option that this selection system has.

When you add numbers to the “Size” section, it gives you an event creator that can then communicate with another interested party. Check the events tutorial for more on this.

This differs from other event creators in that each event needs its own selection object. As you add or remove items from this list, a child object is created called “Observable Element X” where X is the number on the list. Each action is labeled the same way.

When you define an event, you also need to put the 3D object that you want the user to look at inside the appropriate “Observable Element” game object that is created as a child object.

You do not need to manage or associate these objects manually, as they are removed and added as needed to be associated with the actions specified in the tool automatically.

On occasion you may see line items appear in the console while interacting with the gaze selection tool indicating that it has added or removed game objects to be associated with actions. This is just to inform you of what it is doing, and no action is needed unless it tells you so.

You may find it useful to find the Gaze Selection example in the SDK Showcase to see how this looks when properly configured.