Interface IXRInteractionGroup
An interface that represents an Interaction Group component that enforces that only one IXRGroupMember within the Group can interact at a time.
Namespace: UnityEngine.XR.Interaction.Toolkit.Interactors
Assembly: Unity.XR.Interaction.Toolkit.dll
Syntax
[MovedFrom("UnityEngine.XR.Interaction.Toolkit")]
public interface IXRInteractionGroup
Properties
activeInteractor
The Interactor in this Interaction Group or any of its member Groups that is currently performing interaction.
Declaration
IXRInteractor activeInteractor { get; }
Property Value
Type | Description |
---|---|
IXRInteractor |
See Also
focusInteractable
The Interactable that is currently being focused by an Interactor in this Interaction Group or any of its member Groups.
Declaration
IXRFocusInteractable focusInteractable { get; }
Property Value
Type | Description |
---|---|
IXRFocusInteractable |
See Also
focusInteractor
The Interactor in this Interaction Group or any of its member Groups that initiated the last focus event.
Declaration
IXRInteractor focusInteractor { get; }
Property Value
Type | Description |
---|---|
IXRInteractor |
See Also
groupName
The name of the interaction group, which can be used to retrieve it from the Interaction Manager.
Declaration
string groupName { get; }
Property Value
Type | Description |
---|---|
string |
See Also
Methods
AddGroupMember(IXRGroupMember)
Adds the given Group member to the end of the ordered list of members in the Group. Causes no change if the Group member is already added.
Declaration
void AddGroupMember(IXRGroupMember groupMember)
Parameters
Type | Name | Description |
---|---|---|
IXRGroupMember | groupMember | The Group member to add. |
Remarks
groupMember
must implement either IXRInteractor or IXRInteractionGroup.
See Also
ClearGroupMembers()
Removes all Group members from the list of members.
Declaration
void ClearGroupMembers()
See Also
ContainsGroupMember(IXRGroupMember)
Checks whether the given Group member exists in the list of members.
Declaration
bool ContainsGroupMember(IXRGroupMember groupMember)
Parameters
Type | Name | Description |
---|---|---|
IXRGroupMember | groupMember | The Group member to check for in the list. |
Returns
Type | Description |
---|---|
bool | Returns true if |
See Also
GetGroupMembers(List<IXRGroupMember>)
Returns all members in the ordered list of Group members into List results
.
Declaration
void GetGroupMembers(List<IXRGroupMember> results)
Parameters
Type | Name | Description |
---|---|---|
List<IXRGroupMember> | results | List to receive Group members. |
Remarks
This method populates the list with the Group members at the time the method is called. It is not a live view,
meaning Group members added or removed afterward will not be reflected in the results of this method.
Clears results
before adding to it.
See Also
HasDependencyOnGroup(IXRInteractionGroup)
Checks whether the given Group is either the same as this Group or a dependency of any member Group.
Declaration
bool HasDependencyOnGroup(IXRInteractionGroup group)
Parameters
Type | Name | Description |
---|---|---|
IXRInteractionGroup | group | The Group to check for as a dependency. |
Returns
Type | Description |
---|---|
bool | Returns true if |
See Also
MoveGroupMemberTo(IXRGroupMember, int)
Moves the given Group member to the specified index in the ordered list of members in the Group. If the member is not in the list, this can be used to insert the member at the specified index.
Declaration
void MoveGroupMemberTo(IXRGroupMember groupMember, int newIndex)
Parameters
Type | Name | Description |
---|---|---|
IXRGroupMember | groupMember | The Group member to move or add. |
int | newIndex | New index of the Group member. |
Remarks
groupMember
must implement either IXRInteractor or IXRInteractionGroup.
See Also
OnBeforeUnregistered()
The XRInteractionManager calls this method just before this Interaction Group is unregistered from it.
Declaration
void OnBeforeUnregistered()
Remarks
This is where the Group should re-register its members with the Interaction Manager so that they are registered as not belonging to a Group.
See Also
OnFocusEntering(FocusEnterEventArgs)
The XRInteractionManager calls this method right before the Interaction group first gains focus of an Interactable in a first pass.
Declaration
void OnFocusEntering(FocusEnterEventArgs args)
Parameters
Type | Name | Description |
---|---|---|
FocusEnterEventArgs | args | Event data containing the Interaction group that is initiating the focus. |
Remarks
args
is only valid during this method call, do not hold a reference to it.
See Also
OnFocusExiting(FocusExitEventArgs)
The XRInteractionManager calls this method right before the Interaction group loses focus of an Interactable in a first pass.
Declaration
void OnFocusExiting(FocusExitEventArgs args)
Parameters
Type | Name | Description |
---|---|---|
FocusExitEventArgs | args | Event data containing the Interaction group that is losing focus. |
Remarks
args
is only valid during this method call, do not hold a reference to it.
See Also
OnRegistered(InteractionGroupRegisteredEventArgs)
The XRInteractionManager calls this method when this Interaction Group is registered with it.
Declaration
void OnRegistered(InteractionGroupRegisteredEventArgs args)
Parameters
Type | Name | Description |
---|---|---|
InteractionGroupRegisteredEventArgs | args | Event data containing the Interaction Manager that registered this Interaction Group. |
Remarks
args
is only valid during this method call, do not hold a reference to it.
See Also
OnUnregistered(InteractionGroupUnregisteredEventArgs)
The XRInteractionManager calls this method when this Interaction Group is unregistered from it.
Declaration
void OnUnregistered(InteractionGroupUnregisteredEventArgs args)
Parameters
Type | Name | Description |
---|---|---|
InteractionGroupUnregisteredEventArgs | args | Event data containing the Interaction Manager that unregistered this Interaction Group. |
Remarks
args
is only valid during this method call, do not hold a reference to it.
See Also
PreprocessGroupMembers(UpdatePhase)
The XRInteractionManager or containing IXRInteractionGroup calls this method to update the Group and its members before interaction events occur.
Declaration
void PreprocessGroupMembers(XRInteractionUpdateOrder.UpdatePhase updatePhase)
Parameters
Type | Name | Description |
---|---|---|
XRInteractionUpdateOrder.UpdatePhase | updatePhase | The update phase during which this method is called. |
Remarks
Please see the XRInteractionManager and XRInteractionUpdateOrder.UpdatePhase documentation for more details on update order.
See Also
ProcessGroupMembers(UpdatePhase)
The XRInteractionManager or containing IXRInteractionGroup calls this method to update the Group and its members after interaction events occur.
Declaration
void ProcessGroupMembers(XRInteractionUpdateOrder.UpdatePhase updatePhase)
Parameters
Type | Name | Description |
---|---|---|
XRInteractionUpdateOrder.UpdatePhase | updatePhase | The update phase during which this method is called. |
Remarks
Please see the XRInteractionManager and XRInteractionUpdateOrder.UpdatePhase documentation for more details on update order.
See Also
RemoveGroupMember(IXRGroupMember)
Removes the given Group member from the list of members.
Declaration
bool RemoveGroupMember(IXRGroupMember groupMember)
Parameters
Type | Name | Description |
---|---|---|
IXRGroupMember | groupMember | The Group member to remove. |
Returns
Type | Description |
---|---|
bool | Returns true if |
See Also
UpdateGroupMemberInteractions()
The XRInteractionManager calls this method to update interactions for this Group's members. This is where interaction events occur for any IXRInteractor member.
Declaration
void UpdateGroupMemberInteractions()
Remarks
The implementation of this method should call UpdateGroupMemberInteractions(IXRInteractor, out IXRInteractor).
See Also
UpdateGroupMemberInteractions(IXRInteractor, out IXRInteractor)
Updates interactions for this Group's members, given an Interactor that has already been prioritized for interaction. This is where interaction events occur for any IXRInteractor member.
Declaration
void UpdateGroupMemberInteractions(IXRInteractor prePrioritizedInteractor, out IXRInteractor interactorThatPerformedInteraction)
Parameters
Type | Name | Description |
---|---|---|
IXRInteractor | prePrioritizedInteractor | The Interactor that has already been prioritized for interaction. If not null, this prevents all other members in this Group from interacting. |
IXRInteractor | interactorThatPerformedInteraction | The Interactor in this Group or any of its member Groups that performed interaction as a result of this method call. This will be null if no Interactor performed interaction. |
Remarks
The implementation of this method should call this method on each member that is an IXRInteractionGroup.
After this method is called, activeInteractor should return the same reference as
interactorThatPerformedInteraction
.
See Also
Events
registered
Calls the methods in its invocation list when this Interaction Group is registered with an Interaction Manager.
Declaration
event Action<InteractionGroupRegisteredEventArgs> registered
Event Type
Type | Description |
---|---|
Action<InteractionGroupRegisteredEventArgs> |
Remarks
The InteractionGroupRegisteredEventArgs passed to each listener is only valid while the event is invoked, do not hold a reference to it.
See Also
unregistered
Calls the methods in its invocation list when this Interaction Group is unregistered from an Interaction Manager.
Declaration
event Action<InteractionGroupUnregisteredEventArgs> unregistered
Event Type
Type | Description |
---|---|
Action<InteractionGroupUnregisteredEventArgs> |
Remarks
The InteractionGroupUnregisteredEventArgs passed to each listener is only valid while the event is invoked, do not hold a reference to it.