API reference

InteractorGroup Class

Extends MonoBehaviour
Implements IInteractor
Base class from which you should inherit if you are creating an interactor group.
Interactor groups are collections of IInteractors which control the interactors within them, managing their execution and selecting which interactors are permitted to adopt which states. Information on the role and usage of interactor groups can be found in the documentation.

Protected Fields

_candidateComparer : UnityEngine.Object
Signature
UnityEngine.Object _candidateComparer
_interactors : List< UnityEngine.Object >
Signature
List<UnityEngine.Object> _interactors
_started : bool
Signature
bool _started
CandidateComparer : ICandidateComparer
Signature
ICandidateComparer CandidateComparer

Fields

Interactors : IReadOnlyList< IInteractor >
The list of IInteractors contained in and controlled by this interactor group.
Each interactor can only be in a single group to avoid conflicts from having multiple groups attempting to control the same interactor. This field is initialized during the MonoBehaviour start-up process from values set in the Unity Editor or through InjectInteractors(List<IInteractor>). Modifying the set of interactors in a group at runtime is not supported.
Signature
IReadOnlyList<IInteractor> Interactors

Protected Static Fields

HasCandidatePredicate : readonly InteractorPredicate
Signature
readonly InteractorPredicate HasCandidatePredicate
HasInteractablePredicate : readonly InteractorPredicate
Signature
readonly InteractorPredicate HasInteractablePredicate
TruePredicate : readonly InteractorPredicate
Signature
readonly InteractorPredicate TruePredicate

Properties

CandidateProperties : abstract object
[Get]
A generic metadata property used for a variety of purposes in Interaction SDK logic.
Though this property is public and canonically may contain instances of types such as RayInteractor.RayCandidateProperties, it has no formal contract and is not safe to use outside of Interaction SDK core logic.
Signature
abstract object CandidateProperties
Data : object
[Get]
Implementation of IInteractorView.Data; for details, please refer to the related documentation provided for that interface.
Signature
object Data
HasCandidate : abstract bool
[Get]
Implementation of IInteractorView.HasCandidate; for details, please refer to the related documentation provided for that interface.
Signature
abstract bool HasCandidate
HasInteractable : abstract bool
[Get]
Implementation of IInteractorView.HasInteractable; for details, please refer to the related documentation provided for that interface.
Signature
abstract bool HasInteractable
HasSelectedInteractable : abstract bool
[Get]
Implementation of IInteractorView.HasSelectedInteractable; for details, please refer to the related documentation provided for that interface.
Signature
abstract bool HasSelectedInteractable
Identifier : int
[Get]
Implementation of IInteractorView.Identifier; for details, please refer to the related documentation provided for that interface.
Signature
int Identifier
IsRootDriver : bool
[Get][Set]
Implementation of IUpdateDriver.IsRootDriver; for details, please refer to the related documentation provided for that interface.
Signature
bool IsRootDriver
MaxIterationsPerFrame : int
[Get][Set]
This is an internal API which sets or retrieves the maximum number of times the interactor group will execute its processing loop (assessing and enacting changes in the groups InteractorState, among other effects) within a single frame.
The implications of this are complex, and depending on or modifying this value is not recommended.
Signature
int MaxIterationsPerFrame
ShouldHover : abstract bool
[Get]
Implementation of IInteractor.ShouldHover; for details, please refer to the related documentation provided for that interface.
Signature
abstract bool ShouldHover
ShouldSelect : abstract bool
[Get]
Implementation of IInteractor.ShouldSelect; for details, please refer to the related documentation provided for that interface.
Signature
abstract bool ShouldSelect
ShouldUnhover : abstract bool
[Get]
Implementation of IInteractor.ShouldUnhover; for details, please refer to the related documentation provided for that interface.
Signature
abstract bool ShouldUnhover
ShouldUnselect : abstract bool
[Get]
Implementation of IInteractor.ShouldUnselect; for details, please refer to the related documentation provided for that interface.
Signature
abstract bool ShouldUnselect
State : InteractorState
[Get]
Implementation of IInteractorView.State; for details, please refer to the related documentation provided for that interface.
Signature
InteractorState State

Events

WhenPostprocessed : Action
Implementation of IInteractorView.WhenPostprocessed; for details, please refer to the related documentation provided for that interface.
Signature
Action WhenPostprocessed
WhenPreprocessed : Action
Implementation of IInteractorView.WhenPreprocessed; for details, please refer to the related documentation provided for that interface.
Signature
Action WhenPreprocessed
WhenProcessed : Action
Implementation of IInteractorView.WhenProcessed; for details, please refer to the related documentation provided for that interface.
Signature
Action WhenProcessed
WhenStateChanged : Action< InteractorStateChangeArgs >
Implementation of IInteractorView.WhenStateChanged; for details, please refer to the related documentation provided for that interface.
Signature
Action<InteractorStateChangeArgs> WhenStateChanged

Protected Methods

AnyInteractor ( predicate )
Signature
bool AnyInteractor(InteractorPredicate predicate)
Parameters
predicate: InteractorPredicate
Returns
bool
Awake ()
Signature
virtual void Awake()
Returns
void
CompareCandidates ( indexA , indexB )
Signature
int CompareCandidates(int indexA, int indexB)
Parameters
indexA: int
indexB: int
Returns
int
DisableAllExcept ( mainInteractor )
Signature
void DisableAllExcept(IInteractor mainInteractor)
Parameters
mainInteractor: IInteractor
Returns
void
EnableAllExcept ( mainInteractor )
Signature
void EnableAllExcept(IInteractor mainInteractor)
Parameters
mainInteractor: IInteractor
Returns
void
InteractorPredicate ( interactor , index )
Signature
delegate bool InteractorPredicate(IInteractor interactor, int index)
Parameters
interactor: IInteractor
index: int
Returns
delegate bool
OnDestroy ()
Signature
virtual void OnDestroy()
Returns
void
OnDisable ()
Signature
virtual void OnDisable()
Returns
void
OnEnable ()
Signature
virtual void OnEnable()
Returns
void
Start ()
Signature
virtual void Start()
Returns
void
TryGetBestCandidateIndex ( predicate , bestCandidateIndex , betterThan , skipIndex )
Signature
bool TryGetBestCandidateIndex(InteractorPredicate predicate, out int bestCandidateIndex, int betterThan=-1, int skipIndex=-1)
Parameters
predicate: InteractorPredicate
bestCandidateIndex: out int
betterThan: int
skipIndex: int
Returns
bool
Update ()
Signature
virtual void Update()
Returns
void
UpdateActiveState ()
Signature
bool UpdateActiveState()
Returns
bool

Methods

Disable ()
Implementation of IInteractor.Disable; for details, please refer to the related documentation provided for that interface.
Signature
virtual void Disable()
Returns
void
Drive ()
Implementation of IUpdateDriver.Drive; for details, please refer to the related documentation provided for that interface.
Signature
virtual void Drive()
Returns
void
Enable ()
Implementation of IInteractor.Enable; for details, please refer to the related documentation provided for that interface.
Signature
virtual void Enable()
Returns
void
Hover ()
Implementation of IInteractor.Hover; for details, please refer to the related documentation provided for that interface.
Signature
abstract void Hover()
Returns
abstract void
InjectAllInteractorGroupBase ( interactors )
Convenience method that injects all required dependencies for a dynamically instantiated InteractorGroup; because only one dependency is required, this method simlpy wraps InjectInteractors(List<IInteractor>).
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectAllInteractorGroupBase(List< IInteractor > interactors)
Parameters
interactors: List< IInteractor >
Returns
void
InjectInteractors ( interactors )
Adds a list of IInteractors to a dynamically instantiated InteractorGroup.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectInteractors(List< IInteractor > interactors)
Parameters
interactors: List< IInteractor >
Returns
void
InjectOptionalActiveState ( activeState )
Adds an IActiveState to a dynamically instantiated InteractorGroup.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectOptionalActiveState(IActiveState activeState)
Parameters
activeState: IActiveState
Returns
void
InjectOptionalCandidateComparer ( candidateComparer )
Adds an ICandidateComparer to a dynamically instantiated InteractorGroup.
This method exists to support Interaction SDK's dependency injection pattern and is not needed for typical Unity Editor-based usage.
Signature
void InjectOptionalCandidateComparer(ICandidateComparer candidateComparer)
Parameters
candidateComparer: ICandidateComparer
Returns
void
Postprocess ()
Implementation of IInteractor.Postprocess; for details, please refer to the related documentation provided for that interface.
Signature
virtual void Postprocess()
Returns
void
Preprocess ()
Implementation of IInteractor.Preprocess; for details, please refer to the related documentation provided for that interface.
Signature
virtual void Preprocess()
Returns
void
Process ()
Implementation of IInteractor.Process; for details, please refer to the related documentation provided for that interface.
Signature
virtual void Process()
Returns
void
ProcessCandidate ()
Implementation of IInteractor.ProcessCandidate; for details, please refer to the related documentation provided for that interface.
Signature
virtual void ProcessCandidate()
Returns
void
Select ()
Implementation of IInteractor.Select; for details, please refer to the related documentation provided for that interface.
Signature
abstract void Select()
Returns
abstract void
Unhover ()
Implementation of IInteractor.Unhover; for details, please refer to the related documentation provided for that interface.
Signature
abstract void Unhover()
Returns
abstract void
Unselect ()
Implementation of IInteractor.ShouldUnselect; for details, please refer to the related documentation provided for that interface.
Signature
abstract void Unselect()
Returns
abstract void

Protected Static Methods

CompareStates ( a , b )
Compares two InteractorStates indicating which one is higher in the Active State chain.
Signature
static int CompareStates(InteractorState a, InteractorState b)
Parameters
a: InteractorState  First state to compare
b: InteractorState  Seconds state to compare
Returns
int  1 if b is higher than a, -1 if a is higher than b. 0 of they are equal