Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
## [3.1.0] - 2025-02-19

### Added
- Added code samples for interaction events and interaction manager registration events in interaction events documentation.
- Added warning help box to `CurveInteractionCaster` and `XRRayInteractor` when using cone casting with multiple segments to inform users about potential computation cost.
- Added a Drag Start Position Input property to the Screen Space Ray Pose Driver component to improve the ability to select a dragged object in AR projects. The ray will be initially cast from the touch start position instead of the current drag position when the drag gesture starts in order to improve the ability to pick small objects.
- Added a Tap Duration property to the Touchscreen Gesture Input Loader component to configure the threshold that a touch and release must occur within for a tap gesture. The `GestureRecognizer` classes used in the `TouchscreenGestureInputController` were made `public` to allow the configuration properties to be modified.
- Added Editor analytics to gather data that helps Unity understand how the package is being used in projects. If you don't want to send data to Unity, please see [Editor analytics documentation](https://docs.unity3d.com/Manual/EditorAnalytics.html) for how to disable analytics in your project.

### Changed
- Changed the tap cancel duration from 0.3 seconds to 0.5 seconds on the `TouchscreenGestureInputController` input device created by the Touchscreen Gesture Input Loader component. This affects the `Screen Space Ray Interactor` prefab in the AR Starter Assets sample. This should make selecting objects more forgiving with a slower tap. ([XRIT-208](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-208))
- Changed the Max Tap Duration on the Tap interactions from the default Input System (0.2 seconds) to 0.5 seconds on the mouse bindings in both the Tap Start Position and Spawn Object input actions. This should make selecting and spawning objects more forgiving with a slower tap when using the mouse when simulating in the Unity Editor. ([XRIT-208](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-208))
- Changed Spawn Trigger Type from Select Attempt to Input Action on the AR Interactor Spawn Trigger component in the `Screen Space Ray Interactor` prefab in the AR Starter Assets sample. Changed the binding in the Spawn Object input action to use the tap gesture in the `TouchscreenGestureInputController` input device instead of the generic `<Touchscreen>/Press` binding with the Tap interaction so that spawning uses consistent tap cancel logic as selection taps.
- Changed Min Scale from 0.05 to 0.2 on the AR Transformer component on each of the spawning objects in the `ARDemoScene`.
- Changed `RigidBody.Interpolate` to `None` for interactables in the `HandsDemoScene` to fix interactable position issues when the table is moved.
- Changed `XRUIInputModule` to now initialize to the Input System when active input handling in Project Settings is set to Input System Package (New) or Both.
- Changed `XRUIInputModule` to use `enableMouseInput`, `enableTouchInput`, `enableGamepadInput`, and `enableJoystickInput` when using Input System Package (New) as the backend when none of the Input System UI Actions are set, not just when using Input Manager (Old).
- Changed `XRRayInteractor.TryGetHitInfo` to return the hit info of the selected interactable or highest scored interactable instead of the nearest raycast hit. ([XRIT-141](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-141))
- Changed `XRDeviceSimulator` and `XRInteractionSimulator` by adding the `OnDestroy` method. Users who had already implemented either method in derived classes will need to call the base method.

### Deprecated
- Deprecated `XRUIInputModule.activeInputMode` and hide in the Inspector window since the backing serialized field is ignored and instead set in `OnEnable` to Input System Actions when possible.

### Fixed
- Fixed an issue with the `XRPokeInteractor` that would attempt to register a valid target for each collider that was poked for a single interactable. ([XRIT-209](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-209))
- Fixed the AR Interactor Spawn Trigger component in the AR Starter Assets sample to avoid spawning a new object when tapping to select an existing object caused by the Spawn Object and Select inputs using different binding sources that have a frame delay.
- Fixed the play mode menu in the `XRInteractionSimulator` UI to reflect the controller or hand quick-action settings of the user rather than the default.
- Fixed missing tooltip on the Sphere Interaction Caster component for the Physics Trigger Interaction property. Updated all related tooltips and documentation to clarify that Use Global refers to the Queries Hit Triggers setting in Edit &gt; Project Settings &gt; Physics.
- Fixed an issue where taps were lost on mobile devices after interacting with screen-space UI. ([XRIT-210](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-210))
  • Loading branch information
Unity Technologies committed Feb 19, 2025
1 parent 85dce6d commit 8ede566
Show file tree
Hide file tree
Showing 160 changed files with 5,575 additions and 804 deletions.
38 changes: 34 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,37 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

<!-- Headers should be listed in this order: Added, Changed, Deprecated, Removed, Fixed, Security -->
<!-- Unreleased -->
## [3.1.0] - 2025-02-19

### Added
- Added code samples for interaction events and interaction manager registration events in interaction events documentation.
- Added warning help box to `CurveInteractionCaster` and `XRRayInteractor` when using cone casting with multiple segments to inform users about potential computation cost.
- Added a Drag Start Position Input property to the Screen Space Ray Pose Driver component to improve the ability to select a dragged object in AR projects. The ray will be initially cast from the touch start position instead of the current drag position when the drag gesture starts in order to improve the ability to pick small objects.
- Added a Tap Duration property to the Touchscreen Gesture Input Loader component to configure the threshold that a touch and release must occur within for a tap gesture. The `GestureRecognizer` classes used in the `TouchscreenGestureInputController` were made `public` to allow the configuration properties to be modified.
- Added Editor analytics to gather data that helps Unity understand how the package is being used in projects. If you don't want to send data to Unity, please see [Editor analytics documentation](https://docs.unity3d.com/Manual/EditorAnalytics.html) for how to disable analytics in your project.

### Changed
- Changed the tap cancel duration from 0.3 seconds to 0.5 seconds on the `TouchscreenGestureInputController` input device created by the Touchscreen Gesture Input Loader component. This affects the `Screen Space Ray Interactor` prefab in the AR Starter Assets sample. This should make selecting objects more forgiving with a slower tap. ([XRIT-208](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-208))
- Changed the Max Tap Duration on the Tap interactions from the default Input System (0.2 seconds) to 0.5 seconds on the mouse bindings in both the Tap Start Position and Spawn Object input actions. This should make selecting and spawning objects more forgiving with a slower tap when using the mouse when simulating in the Unity Editor. ([XRIT-208](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-208))
- Changed Spawn Trigger Type from Select Attempt to Input Action on the AR Interactor Spawn Trigger component in the `Screen Space Ray Interactor` prefab in the AR Starter Assets sample. Changed the binding in the Spawn Object input action to use the tap gesture in the `TouchscreenGestureInputController` input device instead of the generic `<Touchscreen>/Press` binding with the Tap interaction so that spawning uses consistent tap cancel logic as selection taps.
- Changed Min Scale from 0.05 to 0.2 on the AR Transformer component on each of the spawning objects in the `ARDemoScene`.
- Changed `RigidBody.Interpolate` to `None` for interactables in the `HandsDemoScene` to fix interactable position issues when the table is moved.
- Changed `XRUIInputModule` to now initialize to the Input System when active input handling in Project Settings is set to Input System Package (New) or Both.
- Changed `XRUIInputModule` to use `enableMouseInput`, `enableTouchInput`, `enableGamepadInput`, and `enableJoystickInput` when using Input System Package (New) as the backend when none of the Input System UI Actions are set, not just when using Input Manager (Old).
- Changed `XRRayInteractor.TryGetHitInfo` to return the hit info of the selected interactable or highest scored interactable instead of the nearest raycast hit. ([XRIT-141](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-141))
- Changed `XRDeviceSimulator` and `XRInteractionSimulator` by adding the `OnDestroy` method. Users who had already implemented either method in derived classes will need to call the base method.

### Deprecated
- Deprecated `XRUIInputModule.activeInputMode` and hide in the Inspector window since the backing serialized field is ignored and instead set in `OnEnable` to Input System Actions when possible.

### Fixed
- Fixed an issue with the `XRPokeInteractor` that would attempt to register a valid target for each collider that was poked for a single interactable. ([XRIT-209](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-209))
- Fixed the AR Interactor Spawn Trigger component in the AR Starter Assets sample to avoid spawning a new object when tapping to select an existing object caused by the Spawn Object and Select inputs using different binding sources that have a frame delay.
- Fixed the play mode menu in the `XRInteractionSimulator` UI to reflect the controller or hand quick-action settings of the user rather than the default.
- Fixed missing tooltip on the Sphere Interaction Caster component for the Physics Trigger Interaction property. Updated all related tooltips and documentation to clarify that Use Global refers to the Queries Hit Triggers setting in Edit &gt; Project Settings &gt; Physics.
- Fixed an issue where taps were lost on mobile devices after interacting with screen-space UI. ([XRIT-210](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-210))
- Fixed compilation issue in `OpenXRHapticImpulseChannel` related to `OpenXRInput.GetActionHandle` when OpenXR Plugin package version 1.6.0 is installed.

## [3.1.0-pre.1] - 2024-12-12

### Added
Expand Down Expand Up @@ -57,9 +87,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Changed scripts to use Transform methods for getting or setting both position and rotation in a single method call to improve performance.

### Fixed
- Fixed regression introduced with version [3.0.6](#306---2024-10-15) so the XR Transform Stabilizer component allows empty Aim Target Object references. This fixes the Gaze Interactor ray to update correctly in the XR Origin (XR Rig) prefab.
- Fixed regression introduced with version [3.0.6](#306---2024-10-15) so the XR Transform Stabilizer component allows empty Aim Target Object references. This fixes the Gaze Interactor ray to update correctly in the XR Origin (XR Rig) prefab. ([XRIT-206](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-206))
- Fixed issues with the near far interactor's attach controller where lateral motion would erroneously trigger z-motion, and z-motion would only trigger when moving the control parallel to the ground. ([XRIT-195](https://issuetracker.unity3d.com/product/unity/issues/guid/XRIT-195))
- Fixed issue with `CurveInteractionCaster` and `XRRayInteractor` cone casting where trigger colliders would incorrectly block interactables. Conecasting now filters out trigger while it processes targets instead of after the raycast targets were identified.
- Fixed issue with `CurveInteractionCaster` and `XRRayInteractor` cone casting where trigger colliders would incorrectly block interactables. Cone casting now filters out trigger while it processes targets instead of after the raycast targets were identified.

## [3.0.6] - 2024-10-15

Expand Down Expand Up @@ -717,7 +747,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Changed `XRInteractorReticleVisual` to align the reticle prefab's `z` axis with the forward direction of the reticle's interactor when `AlignPrefabWithSurfaceNormal` is `true` and aligning with a horizontal surface.
- Updated installation documentation with convenience links for installing the XRI package on older versions of Unity 2021 where the package was not included in the main Editor manifest.
- Changed so UGUI poke interactions are now considered to be blocking interactions for interaction groups. This allows rays to be properly hidden when hovering or selecting a UGUI canvas with poke.
- Changed to use velocity estimation of poke interactor to add an extra validation mechanism in the XR Poke Filter hover validation check to allow poke selection to occur in cases where it was previously rejected, while still preventing poking from behind and other non-desireable cases.
- Changed to use velocity estimation of poke interactor to add an extra validation mechanism in the XR Poke Filter hover validation check to allow poke selection to occur in cases where it was previously rejected, while still preventing poking from behind and other non-desirable cases.
- Changed to cache poke selection validation check so that it's easier to hold a poke when the selection conditions are met. This makes scrolling UGUI canvases easier and makes poke interactions feel more consistent.
- Changed AR Scale Interactable so changing the Min Scale and/or Max Scale during runtime will keep the current object scale if still within range instead of resizing the object to keep the same scale ratio.

Expand Down
4 changes: 4 additions & 0 deletions Documentation~/TableOfContents.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@
* [Continuous Move Provider](continuous-move-provider.md)
* [Continuous Turn Provider](continuous-turn-provider.md)
* [Grab Move Provider](grab-move-provider.md)
* [Gravity Provider](gravity-provider.md)
* [Jump Provider](jump-provider.md)
* [Snap Turn Provider](snap-turn-provider.md)
* [Teleportation Provider](teleportation-provider.md)
* [Two-Handed Grab Move Provider](two-handed-grab-move-provider.md)
Expand All @@ -108,6 +110,8 @@
* [Extend the XR Interaction Toolkit](extending-xri.md)
* [Development tools](dev-tools.md)
* [XR Interaction Debugger](debugger-window.md)
* [XR Interaction Simulator](xr-interaction-simulator-overview.md)
* [XR Interaction Simulator component](xr-interaction-simulator.md)
* [XR Device Simulator](xr-device-simulator-overview.md)
* [XR Device Simulator component](xr-device-simulator.md)
* [Tutorials](tutorials.md)
Expand Down
2 changes: 2 additions & 0 deletions Documentation~/climb-provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ Locomotion provider that allows the user to climb a [Climb Interactable](climb-i
|---|---|
|**Mediator**|The behavior that this provider communicates with for access to the mediator's XR Body Transformer. If one is not provided, this provider will attempt to locate one during its Awake call.|
|**Transform Priority**|The queue order of this provider's transformations of the XR Origin. The lower the value, the earlier the transformations are applied.|
|**Providers To Disable**|List of providers to disable while climb locomotion is active. If empty, no providers will be disabled by this component while climbing.|
|**Enable Gravity On Climb End**|Whether to allow falling when climb locomotion ends. Disable to pause gravity when releasing, keeping the user from falling.|
|**Climb Settings**|Climb locomotion settings. Can be overridden by the Climb Interactable used for locomotion.|
|&emsp;**Use Asset**|Enable to use a `ClimbSettings` object externally defined in a `ClimbSettingsDatum` asset that can be assigned using the accompanying field.|
|&emsp;**Use Value**|Enable to use a `ClimbSettings` object which comes with default values editable in the component editor.|
Expand Down
3 changes: 3 additions & 0 deletions Documentation~/components.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ uid: xri-components
- [Continuous Move Provider](continuous-move-provider.md)
- [Continuous Turn Provider](continuous-turn-provider.md)
- [Grab Move Provider](grab-move-provider.md)
- [Gravity Provider](gravity-provider.md)
- [Jump Provider](jump-provider.md)
- [Snap Turn Provider](snap-turn-provider.md)
- [Teleportation Provider](teleportation-provider.md)
- [Two-Handed Grab Move Provider](two-handed-grab-move-provider.md)
Expand Down Expand Up @@ -106,4 +108,5 @@ uid: xri-components
- [XR Interactable Snap Volume](xr-interactable-snap-volume.md)
- [XR Interaction Group](xr-interaction-group.md)
- [XR Interaction Manager](xr-interaction-manager.md)
- [XR Interaction Simulator](xr-interaction-simulator.md)
- [XR Transform Stabilizer](xr-transform-stabilizer.md)
6 changes: 2 additions & 4 deletions Documentation~/continuous-move-provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,10 @@ Locomotion provider that allows the user to smoothly move their rig continuously
|**Mediator**| The behavior that this provider communicates with for access to the mediator's XR Body Transformer. If one is not provided, this provider will attempt to locate one during its Awake call. |
|**Transform Priority**| The queue order of this provider's transformations of the XR Origin. The lower the value, the earlier the transformations are applied. |
| **Move Speed** | The speed, in units per second, to move forward. |
| **In Air Control Modifier** | Determines how much control the player has while in the air (0 = no control, 1 = full control). |
| **Enable Strafe** | Controls whether to enable strafing (sideways movement). |
| **Enable Fly** | Controls whether to enable flying (unconstrained movement). This overrides **Use Gravity**. |
| **Use Gravity** | Controls whether gravity affects this provider when a `CharacterController` is used. This only applies when **Enable Fly** is disabled. |
| **Gravity Application Mode** | Controls when gravity begins to take effect. |
| &emsp;Attempting Move | Use this style when you don't want gravity to apply when the player physically walks away and off a ground surface. Gravity will only begin to move the player back down to the ground when they try to use input to move. |
| &emsp;Immediately | Applies gravity and locomotion every frame, even without move input. Use this style when you want gravity to apply when the player physically walks away and off a ground surface, even when there is no input to move. |
| **Forward Source** | The source `Transform` that defines the forward direction. |
| **Left Hand Move Input** | Reads input data from the left hand controller. Input Action must be a Value action type (Vector 2). |
| **Right Hand Move Input** | Reads input data from the right hand controller. Input Action must be a Value action type (Vector 2). |
| **Use Gravity** | Controls whether gravity affects this provider when a `CharacterController` is used. This only applies when **Enable Fly** is disabled. |
2 changes: 1 addition & 1 deletion Documentation~/debugger-window.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ You must be in Play mode to use this window.

## Input devices

The Input Devices tab displays all valid input devices that are registered through the [XR Module](https://docs.unity3d.com/Manual/com.unity.modules.xr.html) (that is, those created by an [`XRInputSubsystem`](https://docs.unity3d.com/ScriptReference/XR.XRInputSubsystem.html)). It currently doesn't display input devices that are only registered with the Input System package, such as the simulated devices created by the [XR Device Simulator](xr-device-simulator-overview.md). Additionally, the tracked hand devices created by the [XR Hands package](https://docs.unity3d.com/2023.1/Documentation/Manual/com.unity.xr.hands.html) are only registered with the Input System package and do not currently appear in this window.
The Input Devices tab displays all valid input devices that are registered through the [XR Module](https://docs.unity3d.com/Manual/com.unity.modules.xr.html) (that is, those created by an [`XRInputSubsystem`](https://docs.unity3d.com/ScriptReference/XR.XRInputSubsystem.html)). It currently doesn't display input devices that are only registered with the Input System package, such as the simulated devices created by the [XR Interaction Simulator](xr-interaction-simulator-overview.md) or the [XR Device Simulator](xr-device-simulator-overview.md). Additionally, the tracked hand devices created by the [XR Hands package](https://docs.unity3d.com/Packages/com.unity.xr.hands@latest/index.html) are only registered with the Input System package and do not currently appear in this window.

## Target filters

Expand Down
2 changes: 1 addition & 1 deletion Documentation~/dev-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The XR Interaction Toolkit provides the following software tools to help you dev
| **Tool** | **Description** |
| :-------------------- | :----------------------- |
| [XR Interaction Debugger](debugger-window.md) | Displays a top-down view of all the Input Devices, Interactables, and Interactors in a scene. |
| [XR Device Simulator](xr-device-simulator-overview.md) | Lets you drive the XR headset and controller devices in the Editor Play Mode using a keyboard, mouse, or other input source. |
| [XR Interaction Simulator](xr-interaction-simulator-overview.md) | Lets you drive the XR headset and controller devices in the Editor Play Mode using a keyboard, mouse, or other input source. |

## Additional resources

Expand Down
2 changes: 1 addition & 1 deletion Documentation~/general-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Refer to the [XR section](xref:XR) of the Unity manual for more general informat

The XR Interaction Toolkit has a few settings to consider:

* **XR Device Simulator Settings**: whether to automatically add the device simulator to your scenes when you run them in the Editor. The simulator translates mouse and keyboard input into XR controller input.
* **XR Interaction Simulator Settings**: whether to automatically add the interaction simulator to your scenes when you run them in the Editor. The simulator translates mouse and keyboard input into XR controller input.
* **Editor Settings**: affects how the properties of some toolkit components appear in the Inspector.
* **Interaction Layer Settings**: assign labels to the interaction layers. You can use up to 31 interaction layers as a way to control which interactors can operate with which interactables. You must assign a label to a layer before you can use it.

Expand Down
Loading

0 comments on commit 8ede566

Please sign in to comment.