diff --git a/Assets/Banner.png.meta b/Assets/Banner.png.meta index 128fa00..5583585 100644 --- a/Assets/Banner.png.meta +++ b/Assets/Banner.png.meta @@ -120,7 +120,7 @@ TextureImporter: androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 4 - buildTarget: iOS + buildTarget: tvOS maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 @@ -133,7 +133,7 @@ TextureImporter: androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 4 - buildTarget: tvOS + buildTarget: iOS maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 diff --git a/Assets/iconBG.png.meta b/Assets/iconBG.png.meta index 55adbaf..fab28a9 100644 --- a/Assets/iconBG.png.meta +++ b/Assets/iconBG.png.meta @@ -120,7 +120,7 @@ TextureImporter: androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 4 - buildTarget: iOS + buildTarget: tvOS maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 @@ -133,7 +133,7 @@ TextureImporter: androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 4 - buildTarget: tvOS + buildTarget: iOS maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 diff --git a/Assets/iconFG.png.meta b/Assets/iconFG.png.meta index cdf9e3a..3e6b9c0 100644 --- a/Assets/iconFG.png.meta +++ b/Assets/iconFG.png.meta @@ -120,7 +120,7 @@ TextureImporter: androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 4 - buildTarget: iOS + buildTarget: tvOS maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 @@ -133,7 +133,7 @@ TextureImporter: androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 4 - buildTarget: tvOS + buildTarget: iOS maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dae09f..a1cc469 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,23 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this package adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [0.9.1] - 2025-04-03 + +### Added + * New Sample **XRController** which syncs and displays Samsung Controller + +### Changed + * N/A + +### Deprecated + * N/A + +### Removed + * N/A + +### Fixed + * Updated Android XR permissions. + ## [0.9.0] - 2024-12-12 This is the first release of **Android XR Extensions for Unity diff --git a/Editor/Internal/XRSessionFeatureBuildHooks.cs b/Editor/Internal/XRSessionFeatureBuildHooks.cs index c0fa01e..ced4eda 100644 --- a/Editor/Internal/XRSessionFeatureBuildHooks.cs +++ b/Editor/Internal/XRSessionFeatureBuildHooks.cs @@ -89,6 +89,19 @@ internal class XRSessionFeatureBuildHooks : OpenXRFeatureBuildHooks { "value", "ACTIVITY_START_MODE_UNMANAGED_FULL_SPACE" } } }; + private static readonly ManifestElement _libopenxrso = + new ManifestElement() + { + ElementPath = new List + { + "manifest", "application", "uses-native-library" + }, + Attributes = new Dictionary + { + { "name", "libopenxr.google.so" }, + { "required", "false" } + } + }; #endif // XR_MGMT_4_4_0_OR_NEWER /// @@ -172,20 +185,28 @@ public override ManifestRequirement ProvideManifestRequirement() Debug.Log(stringBuilder); } - if (CheckSceneUnderstandingPermission()) + if (CheckSceneUnderstandingCoarsePermission()) { requiredManifest.Add( - GetAndroidXRPermissionElement(AndroidXRPermission.SceneUnderstanding)); + GetAndroidXRPermissionElement(AndroidXRPermission.SceneUnderstandingCoarse)); Debug.LogFormat("Inject permission manifest: {0}", - AndroidXRPermission.SceneUnderstanding.ToPermissionString()); + AndroidXRPermission.SceneUnderstandingCoarse.ToPermissionString()); } - if (CheckEyeTrackingPermission()) + if (CheckSceneUnderstandingFinePermission()) { requiredManifest.Add( - GetAndroidXRPermissionElement(AndroidXRPermission.EyeTracking)); + GetAndroidXRPermissionElement(AndroidXRPermission.SceneUnderstandingFine)); Debug.LogFormat("Inject permission manifest: {0}", - AndroidXRPermission.EyeTracking.ToPermissionString()); + AndroidXRPermission.SceneUnderstandingFine.ToPermissionString()); + } + + if (CheckEyeTrackingCoarsePermission()) + { + requiredManifest.Add( + GetAndroidXRPermissionElement(AndroidXRPermission.EyeTrackingCoarse)); + Debug.LogFormat("Inject permission manifest: {0}", + AndroidXRPermission.EyeTrackingCoarse.ToPermissionString()); } if (CheckEyeTrackingFinePermission()) @@ -204,6 +225,9 @@ public override ManifestRequirement ProvideManifestRequirement() AndroidXRPermission.HandTracking.ToPermissionString()); } + requiredManifest.Add(_libopenxrso); + Debug.LogFormat("Inject native library manifest: libopenxr.google.so"); + List emptyElement = new List(); return new ManifestRequirement { @@ -230,7 +254,7 @@ private static ManifestElement GetAndroidXRPermissionElement(AndroidXRPermission }; } - private bool CheckSceneUnderstandingPermission() + private bool CheckSceneUnderstandingCoarsePermission() { XRTrackableFeature trackableFeature = AndroidXRBuildUtils.GetActiveFeature(); @@ -265,7 +289,13 @@ private bool CheckSceneUnderstandingPermission() (anchorFeature != null && anchorFeature.enabled); } - private bool CheckEyeTrackingPermission() + private bool CheckSceneUnderstandingFinePermission() + { + /// Add check for scene understanding when implemented. + return false; + } + + private bool CheckEyeTrackingCoarsePermission() { FoveatedRenderingFeature foveatedRendering = AndroidXRBuildUtils.GetActiveFeature(); diff --git a/Runtime/AndroidXRPermissionExtensions.cs b/Runtime/AndroidXRPermissionExtensions.cs index f8aa23a..c55ed93 100644 --- a/Runtime/AndroidXRPermissionExtensions.cs +++ b/Runtime/AndroidXRPermissionExtensions.cs @@ -27,10 +27,16 @@ namespace Google.XR.Extensions public enum AndroidXRPermission { /// - /// Permission to enable scene understanding features that relies on motion tracking, + /// Permission to enable coarse scene understanding features that relies on motion tracking, /// ToF sensor, and the VST RGB-left cameras. /// - SceneUnderstanding, + SceneUnderstandingCoarse, + + /// + /// Permission to enable fine scene understanding features that relies on motion tracking, + /// such as depth texture and scene meshing. + /// + SceneUnderstandingFine, /// /// Permission to enable hand tracking. @@ -38,12 +44,12 @@ public enum AndroidXRPermission HandTracking, /// - /// Permission to enable eye tracking. + /// Permission to enable coarse eye tracking. /// - EyeTracking, + EyeTrackingCoarse, /// - /// Permission to enable eye gaze interaction. + /// Permission to enable eye gaze interaction and fine eye tracking. /// EyeTrackingFine, @@ -68,12 +74,14 @@ public static string ToPermissionString(this AndroidXRPermission permission) { switch (permission) { - case AndroidXRPermission.SceneUnderstanding: - return "android.permission.SCENE_UNDERSTANDING"; + case AndroidXRPermission.SceneUnderstandingCoarse: + return "android.permission.SCENE_UNDERSTANDING_COARSE"; + case AndroidXRPermission.SceneUnderstandingFine: + return "android.permission.SCENE_UNDERSTANDING_FINE"; case AndroidXRPermission.HandTracking: return "android.permission.HAND_TRACKING"; - case AndroidXRPermission.EyeTracking: - return "android.permission.EYE_TRACKING"; + case AndroidXRPermission.EyeTrackingCoarse: + return "android.permission.EYE_TRACKING_COARSE"; case AndroidXRPermission.EyeTrackingFine: return "android.permission.EYE_TRACKING_FINE"; case AndroidXRPermission.FaceTracking: diff --git a/Runtime/Features/XRAnchorFeature.cs b/Runtime/Features/XRAnchorFeature.cs index d3b9060..3fb9a4b 100644 --- a/Runtime/Features/XRAnchorFeature.cs +++ b/Runtime/Features/XRAnchorFeature.cs @@ -94,7 +94,7 @@ public class XRAnchorFeature : OpenXRFeature /// Runtime permission required to enable scene understanding. /// public static readonly AndroidXRPermission RequiredPermission = - AndroidXRPermission.SceneUnderstanding; + AndroidXRPermission.SceneUnderstandingCoarse; internal static bool? _extensionEnabled = null; diff --git a/Runtime/Features/XRObjectTrackingFeature.cs b/Runtime/Features/XRObjectTrackingFeature.cs index ff3b983..420aa54 100644 --- a/Runtime/Features/XRObjectTrackingFeature.cs +++ b/Runtime/Features/XRObjectTrackingFeature.cs @@ -80,7 +80,7 @@ public class XRObjectTrackingFeature : OpenXRFeature /// Runtime permission required to enable scene understanding. /// public static readonly AndroidXRPermission RequiredPermission = - AndroidXRPermission.SceneUnderstanding; + AndroidXRPermission.SceneUnderstandingCoarse; internal static bool? _extensionEnabled = null; diff --git a/Runtime/Features/XRTrackableFeature.cs b/Runtime/Features/XRTrackableFeature.cs index 146bf75..f5d5412 100644 --- a/Runtime/Features/XRTrackableFeature.cs +++ b/Runtime/Features/XRTrackableFeature.cs @@ -79,7 +79,7 @@ public class XRTrackableFeature : OpenXRFeature /// Runtime permission required to enable scene understanding. /// public static readonly AndroidXRPermission RequiredPermission = - AndroidXRPermission.SceneUnderstanding; + AndroidXRPermission.SceneUnderstandingCoarse; internal static bool? _extensionEnabled = null; diff --git a/Runtime/Plugins/openxr_android.aar b/Runtime/Plugins/openxr_android.aar index 2bbf0be..b7f0664 100644 Binary files a/Runtime/Plugins/openxr_android.aar and b/Runtime/Plugins/openxr_android.aar differ diff --git a/Samples~/FaceTracking/FaceTracking.unity b/Samples~/FaceTracking/FaceTracking.unity index 8cfe941..a7f525f 100644 --- a/Samples~/FaceTracking/FaceTracking.unity +++ b/Samples~/FaceTracking/FaceTracking.unity @@ -1307,7 +1307,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 020be0254b2eb4423832ec90c82d8a62, type: 3} m_Name: m_EditorClassIdentifier: - AndroidXRPermissions: 04000000 + AndroidXRPermissions: 05000000 GenernalAndroidPermissions: [] PermissionRationale: Required for face tracking. --- !u!1001 &1351983703979631387 diff --git a/Samples~/HandMesh/HandMeshController.cs b/Samples~/HandMesh/HandMeshController.cs index 29cb155..5ba9f3e 100644 --- a/Samples~/HandMesh/HandMeshController.cs +++ b/Samples~/HandMesh/HandMeshController.cs @@ -67,7 +67,7 @@ private void Start() if (meshSubsystems.Count != 1) { Debug.LogError("Unexpected number of mesh subsystems." - + "Expected 1, got {meshSubsystems.Count}."); + + $"Expected 1, got {meshSubsystems.Count}."); enabled = false; return; } diff --git a/Samples~/XRController/Prefab/LeftController.prefab b/Samples~/XRController/Prefab/LeftController.prefab index 8682272..cf58876 100644 --- a/Samples~/XRController/Prefab/LeftController.prefab +++ b/Samples~/XRController/Prefab/LeftController.prefab @@ -140,20 +140,20 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 49ad92e74cacea040be7c224f4f331c3, type: 3} m_Name: m_EditorClassIdentifier: - thumbStick: {fileID: 6560750023782525230} - upperButton: {fileID: 3294422559947940247} - lowerButton: {fileID: 3338177163201177434} - systemButton: {fileID: 3535638649786920005} - trigger: {fileID: 8090141865140552173} - grip: {fileID: 762857701643272421} - maxThumbStickRot: {x: 10, y: 10} - pressedThumbStickOffset: 0.002 - pressedUpperBtnOffset: 0.002 - pressedLowerBtnOffset: 0.002 - pressedSystemBtnOffset: 0.001 - maxTriggerRot: 17 - maxGripRot: 10 - thumbStickInput: + _thumbStick: {fileID: 6560750023782525230} + _upperButton: {fileID: 3294422559947940247} + _lowerButton: {fileID: 3338177163201177434} + _systemButton: {fileID: 3535638649786920005} + _trigger: {fileID: 8090141865140552173} + _grip: {fileID: 762857701643272421} + _maxThumbStickRot: {x: 10, y: 10} + _pressedThumbStickOffset: 0.002 + _pressedUpperBtnOffset: 0.002 + _pressedLowerBtnOffset: 0.002 + _pressedSystemBtnOffset: 0.001 + _maxTriggerRot: 17 + _maxGripRot: 10 + _thumbStickInput: m_Name: Thumb Stick Input m_Type: 0 m_ExpectedControlType: Vector2 @@ -170,7 +170,7 @@ MonoBehaviour: m_Action: Thumb Stick Input m_Flags: 0 m_Flags: 0 - thumbStickPressedInput: + _thumbStickPressedInput: m_Name: Thumb Stick Pressed Input m_Type: 1 m_ExpectedControlType: Button @@ -187,7 +187,7 @@ MonoBehaviour: m_Action: Thumb Stick Pressed Input m_Flags: 0 m_Flags: 0 - upperButtonPressedInput: + _upperButtonPressedInput: m_Name: Upper Button Pressed Input m_Type: 1 m_ExpectedControlType: Button @@ -204,7 +204,7 @@ MonoBehaviour: m_Action: Upper Button Pressed Input m_Flags: 0 m_Flags: 0 - lowerButtonPressedInput: + _lowerButtonPressedInput: m_Name: Lower Button Pressed Input m_Type: 1 m_ExpectedControlType: Button @@ -221,7 +221,7 @@ MonoBehaviour: m_Action: Lower Button Pressed Input m_Flags: 0 m_Flags: 0 - systemButtonPressedInput: + _systemButtonPressedInput: m_Name: System Button Pressed Input m_Type: 1 m_ExpectedControlType: Button @@ -238,7 +238,7 @@ MonoBehaviour: m_Action: System Button Pressed Input m_Flags: 0 m_Flags: 0 - triggerInput: + _triggerInput: m_Name: Trigger Input m_Type: 0 m_ExpectedControlType: @@ -255,7 +255,7 @@ MonoBehaviour: m_Action: Trigger Input m_Flags: 0 m_Flags: 0 - gripInput: + _gripInput: m_Name: Grip Input m_Type: 0 m_ExpectedControlType: @@ -272,10 +272,10 @@ MonoBehaviour: m_Action: Grip Input m_Flags: 0 m_Flags: 0 - inverseThumbStickX: 1 - inverseThumbStickY: 1 - gripRotationPivot: {x: 0, y: 0, z: 1} - triggerRotationPivot: {x: 1, y: 0, z: 0} + _inverseThumbStickX: 1 + _inverseThumbStickY: 1 + _gripRotationPivot: {x: 0, y: 0, z: 1} + _triggerRotationPivot: {x: 1, y: 0, z: 0} --- !u!114 &106320436904039793 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Samples~/XRController/Prefab/RightController.prefab b/Samples~/XRController/Prefab/RightController.prefab index 385d258..841385a 100644 --- a/Samples~/XRController/Prefab/RightController.prefab +++ b/Samples~/XRController/Prefab/RightController.prefab @@ -140,20 +140,20 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 49ad92e74cacea040be7c224f4f331c3, type: 3} m_Name: m_EditorClassIdentifier: - thumbStick: {fileID: 858690377499744557} - upperButton: {fileID: 8563786927995694241} - lowerButton: {fileID: 7963703494288566308} - systemButton: {fileID: 6831642413329840564} - trigger: {fileID: 447389116888004299} - grip: {fileID: 4833032538134728416} - maxThumbStickRot: {x: 10, y: 10} - pressedThumbStickOffset: 0.002 - pressedUpperBtnOffset: 0.002 - pressedLowerBtnOffset: 0.002 - pressedSystemBtnOffset: 0.001 - maxTriggerRot: 17 - maxGripRot: -10 - thumbStickInput: + _thumbStick: {fileID: 858690377499744557} + _upperButton: {fileID: 8563786927995694241} + _lowerButton: {fileID: 7963703494288566308} + _systemButton: {fileID: 6831642413329840564} + _trigger: {fileID: 447389116888004299} + _grip: {fileID: 4833032538134728416} + _maxThumbStickRot: {x: 10, y: 10} + _pressedThumbStickOffset: 0.002 + _pressedUpperBtnOffset: 0.002 + _pressedLowerBtnOffset: 0.002 + _pressedSystemBtnOffset: 0.001 + _maxTriggerRot: 17 + _maxGripRot: -10 + _thumbStickInput: m_Name: Thumb Stick Input m_Type: 0 m_ExpectedControlType: Vector2 @@ -170,7 +170,7 @@ MonoBehaviour: m_Action: Thumb Stick Input m_Flags: 0 m_Flags: 0 - thumbStickPressedInput: + _thumbStickPressedInput: m_Name: Thumb Stick Pressed Input m_Type: 1 m_ExpectedControlType: Button @@ -187,7 +187,7 @@ MonoBehaviour: m_Action: Thumb Stick Pressed Input m_Flags: 0 m_Flags: 0 - upperButtonPressedInput: + _upperButtonPressedInput: m_Name: Upper Button Pressed Input m_Type: 1 m_ExpectedControlType: Button @@ -204,7 +204,7 @@ MonoBehaviour: m_Action: Upper Button Pressed Input m_Flags: 0 m_Flags: 0 - lowerButtonPressedInput: + _lowerButtonPressedInput: m_Name: Lower Button Pressed Input m_Type: 1 m_ExpectedControlType: Button @@ -221,7 +221,7 @@ MonoBehaviour: m_Action: Lower Button Pressed Input m_Flags: 0 m_Flags: 0 - systemButtonPressedInput: + _systemButtonPressedInput: m_Name: System Button Pressed Input m_Type: 1 m_ExpectedControlType: Button @@ -238,7 +238,7 @@ MonoBehaviour: m_Action: System Button Pressed Input m_Flags: 0 m_Flags: 0 - triggerInput: + _triggerInput: m_Name: Trigger Input m_Type: 0 m_ExpectedControlType: @@ -255,7 +255,7 @@ MonoBehaviour: m_Action: Trigger Input m_Flags: 0 m_Flags: 0 - gripInput: + _gripInput: m_Name: Grip Input m_Type: 0 m_ExpectedControlType: @@ -272,10 +272,10 @@ MonoBehaviour: m_Action: Grip Input m_Flags: 0 m_Flags: 0 - inverseThumbStickX: 1 - inverseThumbStickY: 1 - gripRotationPivot: {x: 0, y: 0, z: 1} - triggerRotationPivot: {x: 1, y: 0, z: 0} + _inverseThumbStickX: 1 + _inverseThumbStickY: 1 + _gripRotationPivot: {x: 0, y: 0, z: 1} + _triggerRotationPivot: {x: 1, y: 0, z: 0} --- !u!114 &8259703150381748233 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Samples~/XRController/Script/XRControllerDisplay.cs b/Samples~/XRController/Script/XRControllerDisplay.cs index 4404b09..1b54910 100644 --- a/Samples~/XRController/Script/XRControllerDisplay.cs +++ b/Samples~/XRController/Script/XRControllerDisplay.cs @@ -17,43 +17,47 @@ // //----------------------------------------------------------------------- -namespace Google.XR.Extensions.Samples.Controller.Script +namespace Google.XR.Extensions.Samples.XRController { using UnityEngine; using UnityEngine.InputSystem; - + + /// + /// Used to display the controller asset. + /// public class XRControllerDisplay : MonoBehaviour { +#pragma warning disable CS0649 // Serialized fields don't need assignment [Header("Cached")] - [SerializeField] private Transform thumbStick; - [SerializeField] private Transform upperButton; - [SerializeField] private Transform lowerButton; - [SerializeField] private Transform systemButton; - [SerializeField] private Transform trigger; - [SerializeField] private Transform grip; + [SerializeField] private Transform _thumbStick; + [SerializeField] private Transform _upperButton; + [SerializeField] private Transform _lowerButton; + [SerializeField] private Transform _systemButton; + [SerializeField] private Transform _trigger; + [SerializeField] private Transform _grip; [Header("Parameter")] - [SerializeField] private Vector2 maxThumbStickRot; - [SerializeField] private float pressedThumbStickOffset; - [SerializeField] private float pressedUpperBtnOffset; - [SerializeField] private float pressedLowerBtnOffset; - [SerializeField] private float pressedSystemBtnOffset; - [SerializeField] private float maxTriggerRot; - [SerializeField] private float maxGripRot; + [SerializeField] private Vector2 _maxThumbStickRot; + [SerializeField] private float _pressedThumbStickOffset; + [SerializeField] private float _pressedUpperBtnOffset; + [SerializeField] private float _pressedLowerBtnOffset; + [SerializeField] private float _pressedSystemBtnOffset; + [SerializeField] private float _maxTriggerRot; + [SerializeField] private float _maxGripRot; [Header("Input")] - [SerializeField] private InputAction thumbStickInput; - [SerializeField] private InputAction thumbStickPressedInput; - [SerializeField] private InputAction upperButtonPressedInput; - [SerializeField] private InputAction lowerButtonPressedInput; - [SerializeField] private InputAction systemButtonPressedInput; - [SerializeField] private InputAction triggerInput; - [SerializeField] private InputAction gripInput; - [SerializeField] private bool inverseThumbStickX; - [SerializeField] private bool inverseThumbStickY; - [SerializeField] private Vector3 gripRotationPivot; - [SerializeField] private Vector3 triggerRotationPivot; - + [SerializeField] private InputAction _thumbStickInput; + [SerializeField] private InputAction _thumbStickPressedInput; + [SerializeField] private InputAction _upperButtonPressedInput; + [SerializeField] private InputAction _lowerButtonPressedInput; + [SerializeField] private InputAction _systemButtonPressedInput; + [SerializeField] private InputAction _triggerInput; + [SerializeField] private InputAction _gripInput; + [SerializeField] private bool _inverseThumbStickX; + [SerializeField] private bool _inverseThumbStickY; + [SerializeField] private Vector3 _gripRotationPivot; + [SerializeField] private Vector3 _triggerRotationPivot; +#pragma warning restore CS0649 private Quaternion _initThumbStickRot; private Vector3 _initThumbStickPos; @@ -63,166 +67,156 @@ public class XRControllerDisplay : MonoBehaviour private Quaternion _initTriggerRot; private Quaternion _initGripRot; - private void OnEnable() { - thumbStickInput.Enable(); - thumbStickPressedInput.Enable(); - upperButtonPressedInput.Enable(); - lowerButtonPressedInput.Enable(); - systemButtonPressedInput.Enable(); - triggerInput.Enable(); - gripInput.Enable(); - - thumbStickInput.performed += ThumbStickInputPerformed; - thumbStickInput.canceled += ThumbStickInputCanceled; - thumbStickPressedInput.started += ThumbStickPressedInputStarted; - thumbStickPressedInput.canceled += ThumbStickPressedInputCanceled; - upperButtonPressedInput.started += UpperButtonPressedInputStarted; - upperButtonPressedInput.canceled += UpperButtonPressedInputCanceled; - lowerButtonPressedInput.started += LowerButtonPressedInputStarted; - lowerButtonPressedInput.canceled += LowerButtonPressedInputCanceled; - systemButtonPressedInput.started += SystemButtonPressedInputStarted; - systemButtonPressedInput.canceled += SystemButtonPressedInputCanceled; - triggerInput.performed += TriggerInputPerformed; - triggerInput.canceled += TriggerInputCanceled; - gripInput.performed += GripInputPerformed; - gripInput.canceled += GripInputCanceled; - } - - + _thumbStickInput.Enable(); + _thumbStickPressedInput.Enable(); + _upperButtonPressedInput.Enable(); + _lowerButtonPressedInput.Enable(); + _systemButtonPressedInput.Enable(); + _triggerInput.Enable(); + _gripInput.Enable(); + + _thumbStickInput.performed += ThumbStickInputPerformed; + _thumbStickInput.canceled += ThumbStickInputCanceled; + _thumbStickPressedInput.started += ThumbStickPressedInputStarted; + _thumbStickPressedInput.canceled += ThumbStickPressedInputCanceled; + _upperButtonPressedInput.started += UpperButtonPressedInputStarted; + _upperButtonPressedInput.canceled += UpperButtonPressedInputCanceled; + _lowerButtonPressedInput.started += LowerButtonPressedInputStarted; + _lowerButtonPressedInput.canceled += LowerButtonPressedInputCanceled; + _systemButtonPressedInput.started += SystemButtonPressedInputStarted; + _systemButtonPressedInput.canceled += SystemButtonPressedInputCanceled; + _triggerInput.performed += TriggerInputPerformed; + _triggerInput.canceled += TriggerInputCanceled; + _gripInput.performed += GripInputPerformed; + _gripInput.canceled += GripInputCanceled; + } + private void OnDisable() { - thumbStickInput.Disable(); - thumbStickPressedInput.Disable(); - upperButtonPressedInput.Disable(); - lowerButtonPressedInput.Disable(); - triggerInput.Disable(); - gripInput.Disable(); - - thumbStickInput.performed -= ThumbStickInputPerformed; - thumbStickInput.canceled -= ThumbStickInputCanceled; - thumbStickPressedInput.started -= ThumbStickPressedInputStarted; - thumbStickPressedInput.canceled -= ThumbStickPressedInputCanceled; - upperButtonPressedInput.started -= UpperButtonPressedInputStarted; - upperButtonPressedInput.started -= UpperButtonPressedInputCanceled; - lowerButtonPressedInput.started -= LowerButtonPressedInputStarted; - lowerButtonPressedInput.started -= LowerButtonPressedInputCanceled; - systemButtonPressedInput.started -= SystemButtonPressedInputStarted; - systemButtonPressedInput.started -= SystemButtonPressedInputCanceled; - triggerInput.performed -= TriggerInputPerformed; - triggerInput.canceled -= TriggerInputCanceled; - gripInput.performed -= GripInputPerformed; - gripInput.canceled -= GripInputCanceled; - } - - + _thumbStickInput.Disable(); + _thumbStickPressedInput.Disable(); + _upperButtonPressedInput.Disable(); + _lowerButtonPressedInput.Disable(); + _triggerInput.Disable(); + _gripInput.Disable(); + + _thumbStickInput.performed -= ThumbStickInputPerformed; + _thumbStickInput.canceled -= ThumbStickInputCanceled; + _thumbStickPressedInput.started -= ThumbStickPressedInputStarted; + _thumbStickPressedInput.canceled -= ThumbStickPressedInputCanceled; + _upperButtonPressedInput.started -= UpperButtonPressedInputStarted; + _upperButtonPressedInput.started -= UpperButtonPressedInputCanceled; + _lowerButtonPressedInput.started -= LowerButtonPressedInputStarted; + _lowerButtonPressedInput.started -= LowerButtonPressedInputCanceled; + _systemButtonPressedInput.started -= SystemButtonPressedInputStarted; + _systemButtonPressedInput.started -= SystemButtonPressedInputCanceled; + _triggerInput.performed -= TriggerInputPerformed; + _triggerInput.canceled -= TriggerInputCanceled; + _gripInput.performed -= GripInputPerformed; + _gripInput.canceled -= GripInputCanceled; + } + private void Start() { - _initThumbStickRot = thumbStick.localRotation; - _initThumbStickPos = thumbStick.localPosition; - _initUpperButtonPos = upperButton.localPosition; - _initLowerButtonPos = lowerButton.localPosition; - _initSystemButtonPos = systemButton.localPosition; - _initTriggerRot = trigger.localRotation; - _initGripRot = grip.localRotation; + _initThumbStickRot = _thumbStick.localRotation; + _initThumbStickPos = _thumbStick.localPosition; + _initUpperButtonPos = _upperButton.localPosition; + _initLowerButtonPos = _lowerButton.localPosition; + _initSystemButtonPos = _systemButton.localPosition; + _initTriggerRot = _trigger.localRotation; + _initGripRot = _grip.localRotation; } - private void ThumbStickInputPerformed(InputAction.CallbackContext obj) { Vector2 value = obj.ReadValue(); - float axisX = Mathf.Lerp(0f, maxThumbStickRot.x, Mathf.Abs(value.y)) * -Mathf.Sign(value.y) * - (inverseThumbStickX ? -1f : 1f); - float axisY = Mathf.Lerp(0f, maxThumbStickRot.y, Mathf.Abs(value.x)) * -Mathf.Sign(value.x) * - (inverseThumbStickY ? -1f : 1f); - thumbStick.localRotation = Quaternion.Euler(_initThumbStickRot.eulerAngles + new Vector3(axisX, axisY, 0f)); - } - - + float axisX = Mathf.Lerp(0f, _maxThumbStickRot.x, Mathf.Abs(value.y)) + * -Mathf.Sign(value.y) * (_inverseThumbStickX ? -1f : 1f); + float axisY = Mathf.Lerp(0f, _maxThumbStickRot.y, Mathf.Abs(value.x)) + * -Mathf.Sign(value.x) * (_inverseThumbStickY ? -1f : 1f); + _thumbStick.localRotation = Quaternion.Euler( + _initThumbStickRot.eulerAngles + new Vector3(axisX, axisY, 0f)); + } + private void ThumbStickInputCanceled(InputAction.CallbackContext obj) { - thumbStick.localRotation = _initThumbStickRot; + _thumbStick.localRotation = _initThumbStickRot; } - private void ThumbStickPressedInputStarted(InputAction.CallbackContext obj) { - Vector3 targetPos = transform.TransformPoint(_initThumbStickPos) - (thumbStick.up * pressedThumbStickOffset); - thumbStick.position = targetPos; + Vector3 targetPos = transform.TransformPoint(_initThumbStickPos) - + (_thumbStick.up * _pressedThumbStickOffset); + _thumbStick.position = targetPos; } - - + private void ThumbStickPressedInputCanceled(InputAction.CallbackContext obj) { - thumbStick.position = transform.TransformPoint(_initThumbStickPos); + _thumbStick.position = transform.TransformPoint(_initThumbStickPos); } - - + private void UpperButtonPressedInputStarted(InputAction.CallbackContext obj) { - Vector3 targetPos = transform.TransformPoint(_initUpperButtonPos) - (upperButton.up * pressedUpperBtnOffset); - upperButton.position = targetPos; + Vector3 targetPos = transform.TransformPoint(_initUpperButtonPos) - + (_upperButton.up * _pressedUpperBtnOffset); + _upperButton.position = targetPos; } - private void UpperButtonPressedInputCanceled(InputAction.CallbackContext obj) { - upperButton.position = transform.TransformPoint(_initUpperButtonPos); + _upperButton.position = transform.TransformPoint(_initUpperButtonPos); } - private void LowerButtonPressedInputStarted(InputAction.CallbackContext obj) { - Vector3 targetPos = transform.TransformPoint(_initLowerButtonPos) - (lowerButton.up * pressedLowerBtnOffset); - lowerButton.position = targetPos; + Vector3 targetPos = transform.TransformPoint(_initLowerButtonPos) - + (_lowerButton.up * _pressedLowerBtnOffset); + _lowerButton.position = targetPos; } - private void LowerButtonPressedInputCanceled(InputAction.CallbackContext obj) { - lowerButton.position = transform.TransformPoint(_initLowerButtonPos); + _lowerButton.position = transform.TransformPoint(_initLowerButtonPos); } - private void SystemButtonPressedInputStarted(InputAction.CallbackContext obj) { - Vector3 targetPos = transform.TransformPoint(_initSystemButtonPos) - (systemButton.up * pressedSystemBtnOffset); - systemButton.position = targetPos; + Vector3 targetPos = transform.TransformPoint(_initSystemButtonPos) - + (_systemButton.up * _pressedSystemBtnOffset); + _systemButton.position = targetPos; } - private void SystemButtonPressedInputCanceled(InputAction.CallbackContext obj) { - systemButton.position = transform.TransformPoint(_initSystemButtonPos); + _systemButton.position = transform.TransformPoint(_initSystemButtonPos); } - - + private void TriggerInputPerformed(InputAction.CallbackContext obj) { float value = obj.ReadValue(); - float rot = Mathf.Lerp(0f, maxTriggerRot, Mathf.Abs(value)); - trigger.localRotation = Quaternion.Euler(_initTriggerRot.eulerAngles + triggerRotationPivot * rot); + float rot = Mathf.Lerp(0f, _maxTriggerRot, Mathf.Abs(value)); + _trigger.localRotation = Quaternion.Euler(_initTriggerRot.eulerAngles + + _triggerRotationPivot * rot); } - private void TriggerInputCanceled(InputAction.CallbackContext obj) { - trigger.localRotation = _initTriggerRot; + _trigger.localRotation = _initTriggerRot; } - private void GripInputPerformed(InputAction.CallbackContext obj) { float value = obj.ReadValue(); - float rot = Mathf.Lerp(0f, maxGripRot, Mathf.Abs(value)); - grip.localRotation = Quaternion.Euler(_initGripRot.eulerAngles + gripRotationPivot * rot); + float rot = Mathf.Lerp(0f, _maxGripRot, Mathf.Abs(value)); + _grip.localRotation = Quaternion.Euler(_initGripRot.eulerAngles + + _gripRotationPivot * rot); } - private void GripInputCanceled(InputAction.CallbackContext obj) { - grip.localRotation = _initGripRot; + _grip.localRotation = _initGripRot; } } } diff --git a/Third Party Notices.md b/Third Party Notices.md index fcc6a85..addf366 100644 --- a/Third Party Notices.md +++ b/Third Party Notices.md @@ -246,6 +246,8 @@ Graphics, Inc. ----------------------------------------------------------------------------------------- == Google JDK 21 +# google3/third_party/java_src/jdk/openjdk21/src/LICENSE + The GNU General Public License (GPL) Version 2, June 1991 @@ -598,6 +600,8 @@ exception as provided by Oracle in the LICENSE file that accompanied this code." ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/make/data/cldr/LICENSE.txt + UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE See Terms of Use for definitions of Unicode Inc.'s @@ -649,6 +653,8 @@ written authorization of the copyright holder. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.base/share/legal/aes.md + ## Cryptix AES v3.2.0 ### Cryptix General License @@ -690,6 +696,8 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.base/share/legal/asm.md + ## ASM Bytecode Manipulation Framework v9.3 ### ASM License @@ -731,6 +739,8 @@ THE POSSIBILITY OF SUCH DAMAGE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.base/share/legal/c-libutl.md + ## c-libutl 20160225 ### c-libutl License @@ -771,6 +781,8 @@ http://opensource.org/licenses/bsd-license.php ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.base/share/legal/cldr.md + ## Unicode Common Local Data Repository (CLDR) v43 ### CLDR License @@ -885,6 +897,8 @@ written authorization of the copyright holder. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.base/share/legal/icu.md + ## International Components for Unicode (ICU4J) v72.1 ### ICU4J License @@ -1408,6 +1422,8 @@ written authorization of the copyright holder. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.base/share/legal/public_suffix.md + ## Mozilla Public Suffix List ### Public Suffix Notice @@ -1812,6 +1828,8 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.base/share/legal/unicode.md + ## The Unicode Standard, Unicode Character Database, Version 15.0.0 ### Unicode Character Database @@ -1920,6 +1938,8 @@ Entire Agreement. This Agreement constitutes the entire agreement between the pa ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.base/share/legal/zlib.md + ## zlib v1.2.13 ### zlib License @@ -1952,6 +1972,8 @@ jloup@gzip.org madler@alumni.caltech.edu ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.base/windows/legal/wepoll.md + ## Bert Belder: wepoll v 1.5.8 ### wepoll License @@ -1991,6 +2013,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/share/legal/colorimaging.md + ## Eastman Kodak Company: Portions of color management and imaging software ### Eastman Kodak Notice @@ -2003,6 +2027,8 @@ Portions Copyright Eastman Kodak Company 1991-2003 ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/share/legal/freetype.md + ## The FreeType Project: Freetype v2.13.0 @@ -2657,6 +2683,8 @@ THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/share/legal/giflib.md + ## GIFLIB v5.2.1 ### GIFLIB License @@ -2692,6 +2720,8 @@ SPDX-License-Identifier: MIT ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/share/legal/harfbuzz.md + ## Harfbuzz v8.2.2 ### Harfbuzz License @@ -2800,6 +2830,8 @@ Werner Lemberg ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/share/legal/jpeg.md + ## Independent JPEG Group: JPEG release 6b ### JPEG License @@ -2882,6 +2914,8 @@ Service Mark property of CompuServe Incorporated." ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/share/legal/lcms.md + ## Little Color Management System (LCMS) v2.15 ### LCMS License @@ -2995,6 +3029,8 @@ Tim Zaman ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/share/legal/libpng.md + ## libpng v1.6.40 ### libpng License @@ -3206,6 +3242,8 @@ released under other open source licenses. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/share/legal/mesa3d.md + ## Mesa 3-D Graphics Library v21.0.3 ### Mesa License @@ -3345,6 +3383,8 @@ include/KHR/khrplatform.h : ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/share/native/libsplashscreen/giflib/COPYING + The GIFLIB distribution is Copyright (c) 1997 Eric S. Raymond Permission is hereby granted, free of charge, to any person obtaining a copy @@ -3369,6 +3409,8 @@ THE SOFTWARE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/share/native/libsplashscreen/libpng/LICENSE + COPYRIGHT NOTICE, DISCLAIMER, and LICENSE ========================================= @@ -3508,6 +3550,8 @@ be appreciated. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/unix/legal/pipewire.md + ## PipeWire 0.3.68 ### PipeWire license: @@ -3554,6 +3598,8 @@ Copyright © 2021 Red Hat, Inc. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.desktop/unix/legal/xwd.md + ## xwd v1.0.7 ### xwd utility @@ -3593,6 +3639,8 @@ from The Open Group. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.smartcardio/unix/legal/pcsclite.md + ## PC/SC Lite v1.9.9 ### PC/SC Lite Notice @@ -3655,6 +3703,8 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.smartcardio/unix/native/libj2pcsc/MUSCLE/COPYING + Copyright (c) 1999-2003 David Corcoran Copyright (c) 2001-2011 Ludovic Rousseau All rights reserved. @@ -3689,6 +3739,8 @@ Some source code files are using other licenses. However, they are not included ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.xml.crypto/share/legal/santuario.md + ## Apache Santuario v3.0.2 ### Apache 2.0 License @@ -3921,6 +3973,8 @@ copyright (c) 2021, Oracle and/or its affiliates. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.xml/share/legal/bcel.md + ## Apache Commons Byte Code Engineering Library (BCEL) Version 6.7.0 ### Apache Commons BCEL Notice @@ -4145,6 +4199,8 @@ limitations under the License. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.xml/share/legal/dom.md + ## DOM Level 3 Core Specification v1.0 ### W3C Software Notice @@ -4227,6 +4283,8 @@ site-policy@w3.org. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.xml/share/legal/jcup.md + ## CUP Parser Generator for Java v 0.11b ### CUP Parser Generator License @@ -4263,6 +4321,8 @@ the CUP runtime code linked with the generated parser. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.xml/share/legal/xalan.md + ## Apache Xalan v2.7.2 ### Apache Xalan Notice @@ -4523,6 +4583,8 @@ covered by this same license. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/java.xml/share/legal/xerces.md + ## Apache Xerces v2.12.2 ### Apache Xerces Notice @@ -4757,6 +4819,8 @@ limitations under the License. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/jdk.crypto.cryptoki/share/legal/pkcs11cryptotoken.md + ## OASIS PKCS #11 Cryptographic Token Interface v3.0 ### OASIS PKCS #11 Cryptographic Token Interface License @@ -4834,6 +4898,8 @@ claims in such list are, in fact, Essential Claims.] ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/jdk.crypto.cryptoki/share/legal/pkcs11wrapper.md + ## IAIK (Institute for Applied Information Processing and Communication) PKCS#11 wrapper files v1 ### IAIK License @@ -4885,6 +4951,8 @@ POSSIBILITY OF SUCH DAMAGE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/jdk.dynalink/share/legal/dynalink.md + ## Dynalink v.5 ### Dynalink License @@ -4922,6 +4990,8 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/jdk.internal.le/share/legal/jline.md + ## JLine v3.22.0 ### JLine License @@ -4968,6 +5038,8 @@ OF THE POSSIBILITY OF SUCH DAMAGE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/jdk.internal.opt/share/legal/jopt-simple.md + ## jopt-simple v5.0.4 ### MIT License @@ -5000,6 +5072,8 @@ OTHER DEALINGS IN THE SOFTWARE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/jdk.javadoc/share/legal/jquery.md + ## jQuery v3.6.1 ### jQuery License @@ -5077,6 +5151,8 @@ the terms above. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/jdk.javadoc/share/legal/jqueryUI.md + ## jQuery UI v1.13.2 ### jQuery UI License @@ -5131,6 +5207,8 @@ the terms above. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/jdk.localedata/share/legal/cldr.md + ## Unicode Common Local Data Repository (CLDR) v43 ### CLDR License @@ -5245,6 +5323,8 @@ written authorization of the copyright holder. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/jdk.localedata/share/legal/thaidict.md + ## Thai Dictionary ### Thai Dictionary License @@ -5281,6 +5361,8 @@ SOFTWARE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/src/src/utils/hsdis/hsdis-license.txt + The Universal Permissive License (UPL), Version 1.0 Subject to the condition set forth below, permission is hereby granted to @@ -5321,6 +5403,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------ +# google3/third_party/java_src/jdk/openjdk21/openjdk-missing-licenses.txt + # This file provides a mechanism to work around problems with missing licenses # when importing OpenJDK source. # We currently assume all licenses in OpenJDK are documented in these files: @@ -5332,6 +5416,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. # file contains those licenses, and serves as a temprorary workaround until # those licenses are either properly documented in the above files or deleted. +# License from google3/third_party/java_src/jdk/openjdk20/src/make/data/cldr/common/dtd/cldrTest.dtd + Copyright © 2003-2010 Unicode, Inc. and others. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html. Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear with all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified. @@ -5340,12 +5426,16 @@ THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder. +# License from google3/third_party/java_src/jdk/openjdk20/src/src/hotspot/share/runtime/sharedRuntimeMath.hpp + Copyright (c) 1998 Oracle and/or its affiliates. All rights reserved. Developed at SunSoft, a Sun Microsystems, Inc. business. Permission to use, copy, modify, and distribute this software is freely granted, provided that this notice is preserved. +# License from google3/third_party/java_src/jdk/openjdk20/src/src/java.security.jgss/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java + Copyright (C) 1998 by the FundsXpress, INC. All rights reserved. Export of this software from the United States of America may require @@ -6551,3 +6641,4 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------------------------------------------------------------------------------------- + diff --git a/package.json b/package.json index d456162..48f3ebc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "com.google.xr.extensions", "displayName": "Android XR Extensions for Unity", - "version": "0.9.0", + "version": "0.9.1", "unity": "6000.0", "unityRelease": "23f1", "description": "Android XR Extensions package. This package provides additional XR features that are not yet supported by Unity OpenXR Android XR and OpenXR Plugin packages.",