Class XRInteractionGroup
Behaviour implementation of IXRInteractionGroup. An Interaction Group hooks into the interaction system (via XRInteractionManager) and enforces that only one IXRGroupMember within the Group can interact at a time. Each Group member must be either an IXRInteractor or an IXRInteractionGroup.
Inherited Members
Namespace: UnityEngine.XR.Interaction.Toolkit
Assembly: solution.dll
Syntax
[DisallowMultipleComponent]
[AddComponentMenu("XR/XR Interaction Group", 11)]
[HelpURL("https://docs.unity.cn/Packages/com.unity.xr.interaction.toolkit@3.0/api/UnityEngine.XR.Interaction.Toolkit.XRInteractionGroup.html")]
[DefaultExecutionOrder(-100)]
public class XRInteractionGroup : MonoBehaviour, IXRInteractionOverrideGroup, IXRInteractionGroup, IXRGroupMember
Remarks
The member prioritized for interaction in any given frame is whichever member was interacting the previous frame if it can select in the current frame. If there is no such member, then the interacting member is whichever one in the ordered list of members interacts first.
Properties
| Name | Description |
|---|---|
| activeInteractor | The Interactor in this Interaction Group or any of its member Groups that is currently performing interaction. |
| containingGroup | The Interaction Group that contains this member. |
| focusInteractable | The Interactable that is currently being focused by an Interactor in this Interaction Group or any of its member Groups. |
| focusInteractor | The Interactor in this Interaction Group or any of its member Groups that initiated the last focus event. |
| groupName | The name of the interaction group, which can be used to retrieve it from the Interaction Manager. |
| interactionManager | The XRInteractionManager that this Interaction Group will communicate with (will find one if null). |
| startingGroupMembers | Ordered list of Interactors or Interaction Groups that are registered with the Group on Awake. All objects in this list should implement the IXRGroupMember interface and either the IXRInteractor interface or the IXRInteractionGroup interface. |
Methods
| Name | Description |
|---|---|
| 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. |
| AddInteractionOverrideForGroupMember(IXRGroupMember, IXRGroupMember) | Adds |
| AddStartingInteractionOverride(Object, Object) | Adds |
| Awake() | See MonoBehaviour. |
| ClearGroupMembers() | Removes all Group members from the list of members. |
| ClearInteractionOverridesForGroupMember(IXRGroupMember) | Clears the set of possible interaction overrides for |
| ContainsGroupMember(IXRGroupMember) | Checks whether the given Group member exists in the list of members. |
| GetGroupMembers(List<IXRGroupMember>) | Returns all members in the ordered list of Group members into List |
| GetInteractionOverridesForGroupMember(IXRGroupMember, HashSet<IXRGroupMember>) | Returns all members in the set of possible interaction overrides for |
| GroupMemberIsPartOfOverrideChain(IXRGroupMember, IXRGroupMember) | Checks whether |
| HasDependencyOnGroup(IXRInteractionGroup) | Checks whether the given Group is either the same as this Group or a dependency of any member Group. |
| 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. |
| OnDestroy() | See MonoBehaviour. |
| OnDisable() | See MonoBehaviour. |
| OnEnable() | See MonoBehaviour. |
| OnFocusEntering(FocusEnterEventArgs) | The XRInteractionManager calls this method right before the Interaction group first gains focus of an Interactable in a first pass. |
| OnFocusExiting(FocusExitEventArgs) | The XRInteractionManager calls this method right before the Interaction group loses focus of an Interactable in a first pass. |
| RemoveGroupMember(IXRGroupMember) | Removes the given Group member from the list of members. |
| RemoveInteractionOverrideForGroupMember(IXRGroupMember, IXRGroupMember) | Removes |
| RemoveStartingInteractionOverride(Object, Object) | Removes |
| Reset() | See MonoBehaviour. |
Events
| Name | Description |
|---|---|
| registered | Calls the methods in its invocation list when this Interaction Group is registered with an Interaction Manager. |
| unregistered | Calls the methods in its invocation list when this Interaction Group is unregistered from an Interaction Manager. |