diff --git a/Samples~/XRController/Material.meta b/Samples~/XRController/Material.meta new file mode 100644 index 0000000..708557d --- /dev/null +++ b/Samples~/XRController/Material.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5656daa20beff7747a0894e8c4234900 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Material/Controller.mat b/Samples~/XRController/Material/Controller.mat new file mode 100644 index 0000000..75947ad --- /dev/null +++ b/Samples~/XRController/Material/Controller.mat @@ -0,0 +1,162 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5121006237457058402 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 9 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Controller + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _METALLICGLOSSMAP + - _NORMALMAP + m_InvalidKeywords: + - _METALLICSPECGLOSSMAP + - _OCCLUSIONMAP + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AO: + m_Texture: {fileID: 2800000, guid: 86bcd70ff1fc9d542b1bbf038888893a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColor: + m_Texture: {fileID: 2800000, guid: 0bce9db852d150a46abc1386096610a7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 0bce9db852d150a46abc1386096610a7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: d1c4ec6d57a3cc7428cc3f89e4cb9ac2, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 0bce9db852d150a46abc1386096610a7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Metallic: + m_Texture: {fileID: 2800000, guid: 0d4e4e18e326ea34a9555ce353ba4203, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: 0d4e4e18e326ea34a9555ce353ba4203, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Normal: + m_Texture: {fileID: 2800000, guid: d1c4ec6d57a3cc7428cc3f89e4cb9ac2, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 2800000, guid: 86bcd70ff1fc9d542b1bbf038888893a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Roughness: + m_Texture: {fileID: 2800000, guid: ae2912a83fccc5f4f94484e407ee8c24, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0.5 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Samples~/XRController/Material/Controller.mat.meta b/Samples~/XRController/Material/Controller.mat.meta new file mode 100644 index 0000000..fcaf61b --- /dev/null +++ b/Samples~/XRController/Material/Controller.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9a1629f76681a042b010d162c2fdc2b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Material/ControllerButton.mat b/Samples~/XRController/Material/ControllerButton.mat new file mode 100644 index 0000000..c8a25d5 --- /dev/null +++ b/Samples~/XRController/Material/ControllerButton.mat @@ -0,0 +1,162 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5121006237457058402 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 9 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ControllerButton + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _METALLICGLOSSMAP + - _NORMALMAP + m_InvalidKeywords: + - _METALLICSPECGLOSSMAP + - _OCCLUSIONMAP + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AO: + m_Texture: {fileID: 2800000, guid: 86bcd70ff1fc9d542b1bbf038888893a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseColor: + m_Texture: {fileID: 2800000, guid: 0bce9db852d150a46abc1386096610a7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 0bce9db852d150a46abc1386096610a7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 2800000, guid: d1c4ec6d57a3cc7428cc3f89e4cb9ac2, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 0bce9db852d150a46abc1386096610a7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Metallic: + m_Texture: {fileID: 2800000, guid: 0d4e4e18e326ea34a9555ce353ba4203, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: 0d4e4e18e326ea34a9555ce353ba4203, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Normal: + m_Texture: {fileID: 2800000, guid: d1c4ec6d57a3cc7428cc3f89e4cb9ac2, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 2800000, guid: 86bcd70ff1fc9d542b1bbf038888893a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Roughness: + m_Texture: {fileID: 2800000, guid: ae2912a83fccc5f4f94484e407ee8c24, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 1 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Samples~/XRController/Material/ControllerButton.mat.meta b/Samples~/XRController/Material/ControllerButton.mat.meta new file mode 100644 index 0000000..3c71f9b --- /dev/null +++ b/Samples~/XRController/Material/ControllerButton.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35f2f0f62b2b97c07ae2ba643569349c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Material/ControllerLED.mat b/Samples~/XRController/Material/ControllerLED.mat new file mode 100644 index 0000000..04b6089 --- /dev/null +++ b/Samples~/XRController/Material/ControllerLED.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ControllerLED + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 0, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &6530154691802465495 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 9 diff --git a/Samples~/XRController/Material/ControllerLED.mat.meta b/Samples~/XRController/Material/ControllerLED.mat.meta new file mode 100644 index 0000000..717d2f9 --- /dev/null +++ b/Samples~/XRController/Material/ControllerLED.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bdd1862cd6f2b16499c1452732012561 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Mesh.meta b/Samples~/XRController/Mesh.meta new file mode 100644 index 0000000..5c7c320 --- /dev/null +++ b/Samples~/XRController/Mesh.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 29717aea44683c347a169c5e3e9ecd37 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Mesh/LeftController.fbx b/Samples~/XRController/Mesh/LeftController.fbx new file mode 100644 index 0000000..35ddac1 Binary files /dev/null and b/Samples~/XRController/Mesh/LeftController.fbx differ diff --git a/Samples~/XRController/Mesh/LeftController.fbx.meta b/Samples~/XRController/Mesh/LeftController.fbx.meta new file mode 100644 index 0000000..e82ac08 --- /dev/null +++ b/Samples~/XRController/Mesh/LeftController.fbx.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: 1b49b762dca79f24f931179a91f05289 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Mesh/RightController.fbx b/Samples~/XRController/Mesh/RightController.fbx new file mode 100644 index 0000000..75bbf89 Binary files /dev/null and b/Samples~/XRController/Mesh/RightController.fbx differ diff --git a/Samples~/XRController/Mesh/RightController.fbx.meta b/Samples~/XRController/Mesh/RightController.fbx.meta new file mode 100644 index 0000000..690bb20 --- /dev/null +++ b/Samples~/XRController/Mesh/RightController.fbx.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: 6776c902296b26441b87a0a88dc19696 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Prefab.meta b/Samples~/XRController/Prefab.meta new file mode 100644 index 0000000..03a38fa --- /dev/null +++ b/Samples~/XRController/Prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e17c0cbddd44c9e448e6729ded58daeb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Prefab/LeftController.prefab b/Samples~/XRController/Prefab/LeftController.prefab new file mode 100644 index 0000000..8682272 --- /dev/null +++ b/Samples~/XRController/Prefab/LeftController.prefab @@ -0,0 +1,381 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &4204891181824414388 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LocalPosition.y + value: 0.01 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LocalPosition.z + value: -0.05 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LocalRotation.w + value: 0.9063079 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LocalRotation.x + value: -0.42261827 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -50 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -6663248615839425721, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_CastShadows + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -6663248615839425721, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_LightProbeUsage + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -6663248615839425721, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: bdd1862cd6f2b16499c1452732012561, type: 2} + - target: {fileID: -1380771316523579159, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: 919132149155446097, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: m_Name + value: LeftController + objectReference: {fileID: 0} + - target: {fileID: 2619218313309105869, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: b9a1629f76681a042b010d162c2fdc2b, type: 2} + - target: {fileID: 3022904049054381717, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: 5325284574502630797, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: 5785143619850038663, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: 7912577938104809701, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: 8129873126111405855, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + insertIndex: -1 + addedObject: {fileID: -2191443546594941805} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + insertIndex: -1 + addedObject: {fileID: 106320436904039793} + m_SourcePrefab: {fileID: 100100000, guid: 1b49b762dca79f24f931179a91f05289, type: 3} +--- !u!4 &762857701643272421 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -5706921328002510255, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + m_PrefabInstance: {fileID: 4204891181824414388} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3294422559947940247 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1721190471195947811, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + m_PrefabInstance: {fileID: 4204891181824414388} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3338177163201177434 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1443773330459751918, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + m_PrefabInstance: {fileID: 4204891181824414388} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3535638649786920005 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8409387228586705167, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + m_PrefabInstance: {fileID: 4204891181824414388} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3934931739962257381 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + m_PrefabInstance: {fileID: 4204891181824414388} + m_PrefabAsset: {fileID: 0} +--- !u!114 &-2191443546594941805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3934931739962257381} + m_Enabled: 1 + m_EditorHideFlags: 0 + 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: + m_Name: Thumb Stick Input + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 711525a7-0492-4a70-98ac-b741737e98c2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: bcae8ab2-80a4-4c77-8354-7556a13143a9 + m_Path: {LeftHand}/thumbstick + m_Interactions: + m_Processors: + m_Groups: + m_Action: Thumb Stick Input + m_Flags: 0 + m_Flags: 0 + thumbStickPressedInput: + m_Name: Thumb Stick Pressed Input + m_Type: 1 + m_ExpectedControlType: Button + m_Id: 9cf9d271-fef7-43c7-8d44-c9fd4f5e6d87 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 43eaba42-3217-4a56-ad11-d26c1cbd4ac1 + m_Path: {LeftHand}/thumbstickClicked + m_Interactions: + m_Processors: + m_Groups: + m_Action: Thumb Stick Pressed Input + m_Flags: 0 + m_Flags: 0 + upperButtonPressedInput: + m_Name: Upper Button Pressed Input + m_Type: 1 + m_ExpectedControlType: Button + m_Id: 5dbbc449-b607-4c35-bda1-fc566b51366d + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: cac6bf0f-0c70-4f73-9891-4fe5fba227be + m_Path: {LeftHand}/secondaryButton + m_Interactions: + m_Processors: + m_Groups: + m_Action: Upper Button Pressed Input + m_Flags: 0 + m_Flags: 0 + lowerButtonPressedInput: + m_Name: Lower Button Pressed Input + m_Type: 1 + m_ExpectedControlType: Button + m_Id: 02bcf1e5-2435-4705-8c2c-8ab97a73c035 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: eb17d3ec-4ab3-4add-a146-e98a4716fd8f + m_Path: {LeftHand}/primaryButton + m_Interactions: + m_Processors: + m_Groups: + m_Action: Lower Button Pressed Input + m_Flags: 0 + m_Flags: 0 + systemButtonPressedInput: + m_Name: System Button Pressed Input + m_Type: 1 + m_ExpectedControlType: Button + m_Id: 1d5d05fd-0136-4c54-9f6b-1526fd10a600 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: d3613966-6fdd-4f0f-bd30-a1848e8eee7c + m_Path: {LeftHand}/menu + m_Interactions: + m_Processors: + m_Groups: + m_Action: System Button Pressed Input + m_Flags: 0 + m_Flags: 0 + triggerInput: + m_Name: Trigger Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 6ec42fef-8025-41cf-a5f4-9b22268ec4c1 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f89cd8e3-3dfd-4f94-bed9-c0505d9d065a + m_Path: {LeftHand}/trigger + m_Interactions: + m_Processors: + m_Groups: + m_Action: Trigger Input + m_Flags: 0 + m_Flags: 0 + gripInput: + m_Name: Grip Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 0b5e7be1-a919-4e02-9a6a-d2b11d7b85a1 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 7a8533a8-7d9d-4e20-ac5d-9b66f1fb83f1 + m_Path: {LeftHand}/grip + m_Interactions: + m_Processors: + m_Groups: + 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} +--- !u!114 &106320436904039793 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3934931739962257381} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 6c89bbec-85b0-479b-9957-ee0ca649c504 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 43920afb-23e6-4706-97dc-6bb36b1b6ef5 + m_Path: {LeftHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: f2fc1659-d32b-47f0-b459-d1eab4bd76ab + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f3da4612-de2e-4340-92c2-292ce4a5c83a + m_Path: {LeftHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: 91c97358-615f-4b1c-a8c9-d12f5433d0d0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 97f6baaf-0224-4299-b7ce-bff780809976 + m_Path: {LeftHand}/trackingState + m_Interactions: + m_Processors: + m_Groups: + m_Action: Tracking State + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: dbc2eb1a-8ebf-4c9c-a89c-1ab6a46f4c41 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 4247e993-057b-44dc-9d84-edc8179067d7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!4 &6560750023782525230 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7013988232356461466, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + m_PrefabInstance: {fileID: 4204891181824414388} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8090141865140552173 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5341044213140755289, guid: 1b49b762dca79f24f931179a91f05289, type: 3} + m_PrefabInstance: {fileID: 4204891181824414388} + m_PrefabAsset: {fileID: 0} diff --git a/Samples~/XRController/Prefab/LeftController.prefab.meta b/Samples~/XRController/Prefab/LeftController.prefab.meta new file mode 100644 index 0000000..0bf79dd --- /dev/null +++ b/Samples~/XRController/Prefab/LeftController.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 28d082d6c802a844384715111b194769 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Prefab/RightController.prefab b/Samples~/XRController/Prefab/RightController.prefab new file mode 100644 index 0000000..385d258 --- /dev/null +++ b/Samples~/XRController/Prefab/RightController.prefab @@ -0,0 +1,381 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &7103663176713473981 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -8784341879701893518, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: -8679921383154817045, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LocalPosition.y + value: 0.01 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LocalPosition.z + value: -0.05 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LocalRotation.w + value: 0.9063079 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LocalRotation.x + value: -0.42261827 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -50 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -6862024747161618847, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: -5314042243280585700, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: -3217550034380309225, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: -2125337632178896584, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: -145678107328856847, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 35f2f0f62b2b97c07ae2ba643569349c, type: 2} + - target: {fileID: 919132149155446097, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_Name + value: RightController + objectReference: {fileID: 0} + - target: {fileID: 5083040237849557129, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: b9a1629f76681a042b010d162c2fdc2b, type: 2} + - target: {fileID: 9208272126419478429, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_CastShadows + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9208272126419478429, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: m_LightProbeUsage + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9208272126419478429, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: bdd1862cd6f2b16499c1452732012561, type: 2} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + insertIndex: -1 + addedObject: {fileID: -6543063263856533454} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + insertIndex: -1 + addedObject: {fileID: 8259703150381748233} + m_SourcePrefab: {fileID: 100100000, guid: 6776c902296b26441b87a0a88dc19696, type: 3} +--- !u!4 &447389116888004299 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1972512806318392970, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + m_PrefabInstance: {fileID: 7103663176713473981} + m_PrefabAsset: {fileID: 0} +--- !u!4 &858690377499744557 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7602047982978766480, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + m_PrefabInstance: {fileID: 7103663176713473981} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4833032538134728416 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2415945325235355997, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + m_PrefabInstance: {fileID: 7103663176713473981} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6831642413329840564 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4349235418747893257, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + m_PrefabInstance: {fileID: 7103663176713473981} + m_PrefabAsset: {fileID: 0} +--- !u!1 &7950016438109647596 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + m_PrefabInstance: {fileID: 7103663176713473981} + m_PrefabAsset: {fileID: 0} +--- !u!114 &-6543063263856533454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7950016438109647596} + m_Enabled: 1 + m_EditorHideFlags: 0 + 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: + m_Name: Thumb Stick Input + m_Type: 0 + m_ExpectedControlType: Vector2 + m_Id: 8c7e2def-b6ba-4664-8f6a-66af72fdb1c0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 3a9d57d1-cf09-4679-ba7b-a0ab8a8777e7 + m_Path: {RightHand}/thumbstick + m_Interactions: + m_Processors: + m_Groups: + m_Action: Thumb Stick Input + m_Flags: 0 + m_Flags: 0 + thumbStickPressedInput: + m_Name: Thumb Stick Pressed Input + m_Type: 1 + m_ExpectedControlType: Button + m_Id: 99b58c0a-2f29-4009-9194-31c2dceb7aa4 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 3e571457-2758-47aa-9466-67c6ac94dd46 + m_Path: {RightHand}/thumbstickClicked + m_Interactions: + m_Processors: + m_Groups: + m_Action: Thumb Stick Pressed Input + m_Flags: 0 + m_Flags: 0 + upperButtonPressedInput: + m_Name: Upper Button Pressed Input + m_Type: 1 + m_ExpectedControlType: Button + m_Id: f49c71ff-10f3-4cac-b31d-30934359bc33 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 4f302464-f8d4-4e01-8f27-1f3998825ca9 + m_Path: {RightHand}/secondaryButton + m_Interactions: + m_Processors: + m_Groups: + m_Action: Upper Button Pressed Input + m_Flags: 0 + m_Flags: 0 + lowerButtonPressedInput: + m_Name: Lower Button Pressed Input + m_Type: 1 + m_ExpectedControlType: Button + m_Id: 0d589104-79d9-4292-9906-6ec3ffb3fbc3 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f8bf1b01-29db-46c0-b2f7-812d5335510a + m_Path: {RightHand}/primaryButton + m_Interactions: + m_Processors: + m_Groups: + m_Action: Lower Button Pressed Input + m_Flags: 0 + m_Flags: 0 + systemButtonPressedInput: + m_Name: System Button Pressed Input + m_Type: 1 + m_ExpectedControlType: Button + m_Id: 204582f4-3b37-4564-bc46-47d78719a08b + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 7f1b74e6-09ce-4f89-bd15-256046c7cdfa + m_Path: {RightHand}/menu + m_Interactions: + m_Processors: + m_Groups: + m_Action: System Button Pressed Input + m_Flags: 0 + m_Flags: 0 + triggerInput: + m_Name: Trigger Input + m_Type: 0 + m_ExpectedControlType: + m_Id: 61f541b4-96cf-4366-908a-ed3e700cb741 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f3628654-d886-46a8-890c-0e0704e59331 + m_Path: {RightHand}/trigger + m_Interactions: + m_Processors: + m_Groups: + m_Action: Trigger Input + m_Flags: 0 + m_Flags: 0 + gripInput: + m_Name: Grip Input + m_Type: 0 + m_ExpectedControlType: + m_Id: c5c87782-108d-421e-b8c3-b200bb931da2 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 76b0f182-2468-4a72-a816-9cc007cd343c + m_Path: {RightHand}/grip + m_Interactions: + m_Processors: + m_Groups: + 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} +--- !u!114 &8259703150381748233 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7950016438109647596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 6c89bbec-85b0-479b-9957-ee0ca649c504 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 43920afb-23e6-4706-97dc-6bb36b1b6ef5 + m_Path: {RightHand}/devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: f2fc1659-d32b-47f0-b459-d1eab4bd76ab + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: f3da4612-de2e-4340-92c2-292ce4a5c83a + m_Path: {RightHand}/deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: 91c97358-615f-4b1c-a8c9-d12f5433d0d0 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 97f6baaf-0224-4299-b7ce-bff780809976 + m_Path: {RightHand}/trackingState + m_Interactions: + m_Processors: + m_Groups: + m_Action: Tracking State + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: dbc2eb1a-8ebf-4c9c-a89c-1ab6a46f4c41 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 4247e993-057b-44dc-9d84-edc8179067d7 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!4 &7963703494288566308 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 869628106617186201, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + m_PrefabInstance: {fileID: 7103663176713473981} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8563786927995694241 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7760292788115692772, guid: 6776c902296b26441b87a0a88dc19696, type: 3} + m_PrefabInstance: {fileID: 7103663176713473981} + m_PrefabAsset: {fileID: 0} diff --git a/Samples~/XRController/Prefab/RightController.prefab.meta b/Samples~/XRController/Prefab/RightController.prefab.meta new file mode 100644 index 0000000..e0cd5ed --- /dev/null +++ b/Samples~/XRController/Prefab/RightController.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 85bf3796aed1db840ad839bab28c9abc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/README.md b/Samples~/XRController/README.md new file mode 100644 index 0000000..aa38245 --- /dev/null +++ b/Samples~/XRController/README.md @@ -0,0 +1,12 @@ +# XR Controller Sample + +Contains a controller asset and demonstrates its usage. + +To enable this sample: + +* Navigate to **Edit** > **Project Settings** > **XR Plug-in Management** > + **OpenXR**. +* Switch to the **Android** platform tab. +* Add **Controller Profile**. +* Under **XR Plug-in Management > Project Validation**, fix all **OpenXR** + related issues. This will help to configure your **Player Settings**. diff --git a/Samples~/XRController/README.md.meta b/Samples~/XRController/README.md.meta new file mode 100644 index 0000000..6cc558d --- /dev/null +++ b/Samples~/XRController/README.md.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cd288df01d0317172b080ab6ec18fc82 +labels: +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Script.meta b/Samples~/XRController/Script.meta new file mode 100644 index 0000000..f00e3d0 --- /dev/null +++ b/Samples~/XRController/Script.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8bf879de7c1c3753dbcde90f131bb182 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Script/XRControllerDisplay.cs b/Samples~/XRController/Script/XRControllerDisplay.cs new file mode 100644 index 0000000..4404b09 --- /dev/null +++ b/Samples~/XRController/Script/XRControllerDisplay.cs @@ -0,0 +1,228 @@ +// +// +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +//----------------------------------------------------------------------- + +namespace Google.XR.Extensions.Samples.Controller.Script +{ + using UnityEngine; + using UnityEngine.InputSystem; + + public class XRControllerDisplay : MonoBehaviour + { + [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; + + [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; + + [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; + + + private Quaternion _initThumbStickRot; + private Vector3 _initThumbStickPos; + private Vector3 _initUpperButtonPos; + private Vector3 _initLowerButtonPos; + private Vector3 _initSystemButtonPos; + 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; + } + + + 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; + } + + + private void Start() + { + _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)); + } + + + private void ThumbStickInputCanceled(InputAction.CallbackContext obj) + { + thumbStick.localRotation = _initThumbStickRot; + } + + + private void ThumbStickPressedInputStarted(InputAction.CallbackContext obj) + { + Vector3 targetPos = transform.TransformPoint(_initThumbStickPos) - (thumbStick.up * pressedThumbStickOffset); + thumbStick.position = targetPos; + } + + + private void ThumbStickPressedInputCanceled(InputAction.CallbackContext obj) + { + thumbStick.position = transform.TransformPoint(_initThumbStickPos); + } + + + private void UpperButtonPressedInputStarted(InputAction.CallbackContext obj) + { + Vector3 targetPos = transform.TransformPoint(_initUpperButtonPos) - (upperButton.up * pressedUpperBtnOffset); + upperButton.position = targetPos; + } + + + private void UpperButtonPressedInputCanceled(InputAction.CallbackContext obj) + { + upperButton.position = transform.TransformPoint(_initUpperButtonPos); + } + + + private void LowerButtonPressedInputStarted(InputAction.CallbackContext obj) + { + Vector3 targetPos = transform.TransformPoint(_initLowerButtonPos) - (lowerButton.up * pressedLowerBtnOffset); + lowerButton.position = targetPos; + } + + + private void LowerButtonPressedInputCanceled(InputAction.CallbackContext obj) + { + lowerButton.position = transform.TransformPoint(_initLowerButtonPos); + } + + + private void SystemButtonPressedInputStarted(InputAction.CallbackContext obj) + { + Vector3 targetPos = transform.TransformPoint(_initSystemButtonPos) - (systemButton.up * pressedSystemBtnOffset); + systemButton.position = targetPos; + } + + + private void SystemButtonPressedInputCanceled(InputAction.CallbackContext obj) + { + 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); + } + + + private void TriggerInputCanceled(InputAction.CallbackContext obj) + { + 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); + } + + + private void GripInputCanceled(InputAction.CallbackContext obj) + { + grip.localRotation = _initGripRot; + } + } +} diff --git a/Samples~/XRController/Script/XRControllerDisplay.cs.meta b/Samples~/XRController/Script/XRControllerDisplay.cs.meta new file mode 100644 index 0000000..7a862aa --- /dev/null +++ b/Samples~/XRController/Script/XRControllerDisplay.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 49ad92e74cacea040be7c224f4f331c3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Texture.meta b/Samples~/XRController/Texture.meta new file mode 100644 index 0000000..52d08f5 --- /dev/null +++ b/Samples~/XRController/Texture.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7144b25601655fd4bb9acfccbadd94b8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Texture/Controller_AO.png b/Samples~/XRController/Texture/Controller_AO.png new file mode 100644 index 0000000..adc107a Binary files /dev/null and b/Samples~/XRController/Texture/Controller_AO.png differ diff --git a/Samples~/XRController/Texture/Controller_AO.png.meta b/Samples~/XRController/Texture/Controller_AO.png.meta new file mode 100644 index 0000000..2c74d90 --- /dev/null +++ b/Samples~/XRController/Texture/Controller_AO.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 86bcd70ff1fc9d542b1bbf038888893a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Texture/Controller_BaseColor.png b/Samples~/XRController/Texture/Controller_BaseColor.png new file mode 100644 index 0000000..977f466 Binary files /dev/null and b/Samples~/XRController/Texture/Controller_BaseColor.png differ diff --git a/Samples~/XRController/Texture/Controller_BaseColor.png.meta b/Samples~/XRController/Texture/Controller_BaseColor.png.meta new file mode 100644 index 0000000..868697f --- /dev/null +++ b/Samples~/XRController/Texture/Controller_BaseColor.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 0bce9db852d150a46abc1386096610a7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Texture/Controller_Metallic.png b/Samples~/XRController/Texture/Controller_Metallic.png new file mode 100644 index 0000000..1beedae Binary files /dev/null and b/Samples~/XRController/Texture/Controller_Metallic.png differ diff --git a/Samples~/XRController/Texture/Controller_Metallic.png.meta b/Samples~/XRController/Texture/Controller_Metallic.png.meta new file mode 100644 index 0000000..966a414 --- /dev/null +++ b/Samples~/XRController/Texture/Controller_Metallic.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 0d4e4e18e326ea34a9555ce353ba4203 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Texture/Controller_Normal.png b/Samples~/XRController/Texture/Controller_Normal.png new file mode 100644 index 0000000..f941c6d Binary files /dev/null and b/Samples~/XRController/Texture/Controller_Normal.png differ diff --git a/Samples~/XRController/Texture/Controller_Normal.png.meta b/Samples~/XRController/Texture/Controller_Normal.png.meta new file mode 100644 index 0000000..6e1492e --- /dev/null +++ b/Samples~/XRController/Texture/Controller_Normal.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: d1c4ec6d57a3cc7428cc3f89e4cb9ac2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/Texture/Controller_Roughness.png b/Samples~/XRController/Texture/Controller_Roughness.png new file mode 100644 index 0000000..415696c Binary files /dev/null and b/Samples~/XRController/Texture/Controller_Roughness.png differ diff --git a/Samples~/XRController/Texture/Controller_Roughness.png.meta b/Samples~/XRController/Texture/Controller_Roughness.png.meta new file mode 100644 index 0000000..284746b --- /dev/null +++ b/Samples~/XRController/Texture/Controller_Roughness.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: ae2912a83fccc5f4f94484e407ee8c24 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Samples~/XRController/XRControllerSample.unity b/Samples~/XRController/XRControllerSample.unity new file mode 100644 index 0000000..f964772 --- /dev/null +++ b/Samples~/XRController/XRControllerSample.unity @@ -0,0 +1,626 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585548} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.01 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1962637911} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2fadf230d1919748a9aa21d40f74619, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackingType: 0 + m_UpdateType: 0 + m_IgnoreTrackingState: 0 + m_PositionInput: + m_UseReference: 0 + m_Action: + m_Name: Position + m_Type: 0 + m_ExpectedControlType: Vector3 + m_Id: 5ca8c082-47b5-4e81-8087-4f537ce9dddb + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: 9338c6c3-667a-4c27-9c66-460f857f7739 + m_Path: /centerEyePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + - m_Name: + m_Id: 842ef9d7-e2ac-467e-92a3-78c665a8c3cb + m_Path: /devicePosition + m_Interactions: + m_Processors: + m_Groups: + m_Action: Position + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_RotationInput: + m_UseReference: 0 + m_Action: + m_Name: Rotation + m_Type: 0 + m_ExpectedControlType: Quaternion + m_Id: 3ae266cd-8e49-476d-8095-6367997678e1 + m_Processors: + m_Interactions: + m_SingletonActionBindings: + - m_Name: + m_Id: bedef77f-fa6b-419a-afd0-1f927b2c1fd8 + m_Path: /centerEyeRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + - m_Name: + m_Id: 19ec1da6-72fd-4788-80b3-c66aee8c7800 + m_Path: /deviceRotation + m_Interactions: + m_Processors: + m_Groups: + m_Action: Rotation + m_Flags: 0 + m_Flags: 0 + m_Reference: {fileID: 0} + m_TrackingStateInput: + m_UseReference: 0 + m_Action: + m_Name: Tracking State + m_Type: 0 + m_ExpectedControlType: Integer + m_Id: 96610ac7-ac96-4358-956f-c0bb2e5c902f + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_Reference: {fileID: 0} + m_PositionAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: d619c3b5-e10d-4688-9d8b-1fbc42ddf67d + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 + m_RotationAction: + m_Name: + m_Type: 0 + m_ExpectedControlType: + m_Id: 73674e1a-3c71-4ae1-87d8-040c98354d30 + m_Processors: + m_Interactions: + m_SingletonActionBindings: [] + m_Flags: 0 +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1001 &721646432 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1962637911} + m_Modifications: + - target: {fileID: 3934931739962257381, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_Name + value: LeftController + objectReference: {fileID: 0} + - target: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 28d082d6c802a844384715111b194769, type: 3} +--- !u!4 &721646433 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4454199932067018079, guid: 28d082d6c802a844384715111b194769, type: 3} + m_PrefabInstance: {fileID: 721646432} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1507901172 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1962637911} + m_Modifications: + - target: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7950016438109647596, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + propertyPath: m_Name + value: RightController + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} +--- !u!4 &1507901173 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7286808223074150486, guid: 85bf3796aed1db840ad839bab28c9abc, type: 3} + m_PrefabInstance: {fileID: 1507901172} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1962637910 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1962637911} + m_Layer: 0 + m_Name: Camera Offset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1962637911 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962637910} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.36144, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 330585546} + - {fileID: 1507901173} + - {fileID: 721646433} + m_Father: {fileID: 2050088264} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2050088262 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2050088264} + - component: {fileID: 2050088263} + m_Layer: 0 + m_Name: XRRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2050088263 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2050088262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a2483b9bd782f9449a5972b61b7d51a9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_CameraFloorOffsetObject: {fileID: 1962637910} + m_RequestedTrackingMode: 0 + m_TrackingOriginMode: 1 + m_TrackingSpace: 0 + m_CameraYOffset: 1.36144 +--- !u!4 &2050088264 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2050088262} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1962637911} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 410087041} + - {fileID: 2050088264} diff --git a/Samples~/XRController/XRControllerSample.unity.meta b/Samples~/XRController/XRControllerSample.unity.meta new file mode 100644 index 0000000..22de3cf --- /dev/null +++ b/Samples~/XRController/XRControllerSample.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bda923acb3f603b428b4cb80b567e9b5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json index 8933a39..d456162 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,11 @@ "displayName": "Unbounded Reference Space", "description": "This sample uses XRInputSubsystem to check if the tracking origin mode is Unbounded.", "path": "Samples~/UnboundedRefSpace" + }, + { + "displayName": "XRController", + "description": "This sample includes the XRController asset.", + "path": "Samples~/XRController" } ] }