# XRSessionFeature

This `OpenXRInteractionFeature` provides Android XR session management for all extended Android XR features, and common session configurations.

It also provides Android XR implementation of `XRSessionSubsystem` if there is no session subsystem available.

## Summary

### Inheritance

Inherits from: `OpenXRFeature`

|                                                                                                                                                         ### Public attributes                                                                                                                                                          ||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
| [ExtensionStrings](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRSessionFeature#extensionstrings)` = _subsamplingExtensions + " " + _spacewarpExtensions` | `const string` The OpenXR Extension string.                                                                                         |
| [FeatureId](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRSessionFeature#featureid)` = "com.google.xr.extensions.session_management"`                     | `const string` The feature ID string.                                                                                               |
| [ImmersiveXR](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRSessionFeature#immersivexr)` = true`                                                          | `bool` A boolean that indicates the activity starts in XR Immersive mode, and will be launched in full-screen mode.                 |
| [UiName](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRSessionFeature#uiname)` = "Android XR (Extensions): Session Management"`                           | `const string` The UI name shows on the XR Plug-in Management panel, help users to understand validation errors and expected fixes. |

|                                                                                                             ### Properties                                                                                                             ||
|---------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
| [SpaceWarp](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRSessionFeature#spacewarp)                 | `bool` Gets or sets a value indicating whether to enable the usage of URP Space Warp.     |
| [VulkanSubsampling](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRSessionFeature#vulkansubsampling) | `bool` Gets or sets a value indicating whether to enable the usage of Vulkan Subsampling. |

## Public attributes

### ExtensionStrings

```c#
const string ExtensionStrings = _subsamplingExtensions + " " + _spacewarpExtensions
```  
The OpenXR Extension string.

Used to check if this extensions is available or enabled.  

### FeatureId

```c#
const string FeatureId = "com.google.xr.extensions.session_management"
```  
The feature ID string.  

### ImmersiveXR

```c#
bool ImmersiveXR = true
```  
A boolean that indicates the activity starts in XR Immersive mode, and will be launched in full-screen mode.  

### UiName

```c#
const string UiName = "Android XR (Extensions): Session Management"
```  
The UI name shows on the XR Plug-in Management panel, help users to understand validation errors and expected fixes.

## Properties

### SpaceWarp

```c#
bool SpaceWarp
```  
Gets or sets a value indicating whether to enable the usage of URP Space Warp.

It requires Vulkan graphics API.

Note: To toggle URP Space Warp at runtime, you can set this field with `true` in Editor so the project can build with necessary BootConfig, then toggle this property at runtime.  

### VulkanSubsampling

```c#
bool VulkanSubsampling
```  
Gets or sets a value indicating whether to enable the usage of Vulkan Subsampling.

Note: To toggle Vulkan Subsampling at runtime, you can set this field with `true` in Editor so the project can build with necessary BootConfig, then toggle this property at runtime.