realitycollective / com.realitytoolkit.core

The all-purpose framework for building the next reality
https://realitytoolkit.realitycollective.net/
MIT License
3 stars 0 forks source link

Implement gaze provider behaviour setting #5

Closed FejZa closed 2 years ago

FejZa commented 2 years ago

Reality Toolkit Pull Request

Overview

Implements a new setting for the InputSystemProfile that allows to configure Gaze Provider Behaviour on application launch. Also adds a runtime API to change the behaviour at runtime, if needed. The behaviours are:

public enum GazeProviderBehaviour
    {
        /// <summary>
        /// The <see cref="Interfaces.InputSystem.IMixedRealityGazeProvider"/> will be auto-enabled
        /// when there is no other <see cref="Interfaces.Providers.Controllers.IMixedRealityController"/> with at least one
        /// <see cref="Interfaces.InputSystem.IMixedRealityPointer"/> attached available. And will auto-disable
        /// as soon as one is available.
        /// </summary>
        Auto = 0,
        /// <summary>
        /// The <see cref="Interfaces.InputSystem.IMixedRealityGazeProvider"/> stays disabled until manually enabled.
        /// </summary>
        Inactive,
        /// <summary>
        /// The <see cref="Interfaces.InputSystem.IMixedRealityGazeProvider"/> is always enabled.
        /// </summary>
        Active
    }

Basically this allows to have the gaze pointer and cursor disappear when a controller with pointers is available. This solves the problem of having the gaze pointer conflict with controller pointers when selecting things and deciding on input focus.

Requires

https://github.com/realitycollective/com.realitytoolkit.sdk/pull/2

Blocked By

https://github.com/realitycollective/com.realitytoolkit.core/pull/4