Skip to content

Latest commit

 

History

History
41 lines (23 loc) · 4.39 KB

File metadata and controls

41 lines (23 loc) · 4.39 KB
uid
xri-whats-new-3-1

What's new in version 3.1

For a full list of changes and updates in this version, refer to the XR Interaction Toolkit package changelog.

Summary of changes in XR Interaction Toolkit package version 3.1:

Added

Near-Far Interactor controller manipulation

The Near-Far Interactor added in 3.0 combined the interactivity of the XR Direct Interactor and the XR Ray Interactor, however it did not have all the functionality previously available with the XR Ray Interactor for manipulating objects at a distance. With version 3.1, the Interaction Attach Controller component that sits alongside the Near-Far Interactor allows you to configure anchor movement for both physical push and pull gestures (suitable for a hand tracking experience) in addition to a Vector2 input control (such as a thumbstick) for fine precision when Use Manipulation Input is enabled. It allows you to configure for horizontal rotation, vertical rotation, and translation.

Gravity and Jump

Two new ways to move and manipulate the XR Origin have been added. A Jump Provider enables an easy way to add basic jumping when pressing a button. It is configurable for different use cases, such as varying heights based on duration held or whether to allow jumping while in the air. A new Gravity Provider component consolidates gravity logic, which was previously handled separately by each individual locomotion provider. It also exposes events for when the player rig becomes grounded. A new IGravityController interface can be implemented by locomotion providers to influence the Gravity Provider.

The ClimbProvider and ContinuousMoveProvider locomotion provider classes have been updated to take full advantage of the new gravity locomotion architecture, allowing gravity to be configured in a common way across different ways of locomotion. It also allows for better handling and coordination with other locomotion providers when pausing gravity, such as preventing the move provider while climbing up a wall. In addition, the Continuous Move Provider has a new In Air Control Modifier property which determines how much control the player has while in the air. Read more about these new locomotion changes in the Locomotion documentation.

XR Interaction Simulator

The usability of the XR Device Simulator has been improved with a new replacement component and prefab, the XR Interaction Simulator. Update or import the XR Device Simulator sample in the Window > Package Manager window to add this new functionality to your project. For those developers already making use of the XR Device Simulator, see the note below in Simulator project settings.

The goal was to simplify spatial interaction and to make the controls more intuitive, along with a cohesive UI to better represent the state of the simulator. Further improvements are planned for future versions of the package to make the simulator even easier to use.

Changed

Simulator project settings

The default simulator prefab has been changed from the older XR Device Simulator to the new XR Interaction Simulator. To revert back to the classic control scheme and functionality of the XR Device Simulator, you can enable Use Classic in Edit > Project Settings > XR Plug-in Management > XR Interaction Toolkit.

Note

Existing projects that already were configured in Project Settings to use the simulator will need to disable and re-enable Use XR Interaction Simulator in scenes in order to use the new simulator.

Deprecations

Gravity in locomotion

With the new locomotion changes outlined above, the gravity properties in move and grab move locomotion providers are now obsolete and have been deprecated to reflect this. The recommended way of configuring gravity is with the added Gravity Provider component instead, which has been added to the XR Origin (XR Rig) prefab from the Starter Assets sample on the Gravity GameObject. The functionality of gravity in ContinuousMoveProvider and ConstrainedMoveProvider has been retained for backwards compatibility, however the gravity is now calculated with the GravityProvider component when that is added to the scene.