diff --git a/Assets/XR/Settings/OpenXR Editor Settings.asset b/Assets/XR/Settings/OpenXR Editor Settings.asset index c2917a2..57b57c1 100644 --- a/Assets/XR/Settings/OpenXR Editor Settings.asset +++ b/Assets/XR/Settings/OpenXR Editor Settings.asset @@ -12,6 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 975057b4fdcfb8142b3080d19a5cc712, type: 3} m_Name: OpenXR Editor Settings m_EditorClassIdentifier: - Keys: - Values: [] + Keys: 07000000 + Values: + - featureSets: [] m_vulkanAdditionalGraphicsQueue: 0 diff --git a/Assets/XR/Settings/OpenXR Package Settings.asset b/Assets/XR/Settings/OpenXR Package Settings.asset index 9733229..59a1ccf 100644 --- a/Assets/XR/Settings/OpenXR Package Settings.asset +++ b/Assets/XR/Settings/OpenXR Package Settings.asset @@ -1,5 +1,26 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!114 &-9108296238869793286 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: b1248416ce414cd0a788c5240bec5766, type: 3} + m_Name: PICOSpatialMesh Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: PICO Spatial Mesh + version: 1.0.0 + featureIdInternal: com.pico.openxr.feature.spatialmesh + openxrExtensionStrings: XR_PICO_spatial_mesh XR_PICO_spatial_sensing XR_EXT_future + company: PICO + priority: 0 + required: 0 + LOD: 0 --- !u!114 &-8146551627752511340 MonoBehaviour: m_ObjectHideFlags: 0 @@ -20,6 +41,46 @@ MonoBehaviour: company: Unity priority: 0 required: 0 +--- !u!114 &-7649041839370906959 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: e2a7d8f73c864e74eb753124087176f4, type: 3} + m_Name: PICO4ControllerProfile Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: PICO4 Touch Controller Profile + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.input.PICO4touch + openxrExtensionStrings: XR_BD_controller_interaction + company: PICO + priority: 0 + required: 0 +--- !u!114 &-6034472836761018925 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: 2b8a6d03de5f8f34383932f29d464a21, type: 3} + m_Name: PICONeo3ControllerProfile Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: PICO Neo3 Touch Controller Profile + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.input.PICONeo3touch + openxrExtensionStrings: XR_BD_controller_interaction + company: PICO + priority: 0 + required: 0 --- !u!114 &-5226143836710836960 MonoBehaviour: m_ObjectHideFlags: 0 @@ -101,6 +162,46 @@ MonoBehaviour: m_depthSubmissionMode: 0 m_optimizeBufferDiscards: 0 m_symmetricProjection: 0 +--- !u!114 &-3679551036866486216 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: 48a4218836ed47e2b2fe51c7c56925c7, type: 3} + m_Name: PerformanceSettingsFeature Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: OpenXR Performance Settings + version: 1.0.0 + featureIdInternal: com.pico.openxr.feature.performancesettings + openxrExtensionStrings: XR_EXT_performance_settings + company: PICO + priority: 0 + required: 0 +--- !u!114 &-3649495988766833426 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: a8b7731b990240c0b289e41fb880787b, type: 3} + m_Name: PICOSpatialAnchor Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: PICO Spatial Anchor + version: 1.0.0 + featureIdInternal: com.pico.openxr.feature.spatialanchor + openxrExtensionStrings: XR_PICO_spatial_anchor XR_PICO_spatial_sensing XR_EXT_future + company: PICO + priority: 0 + required: 0 --- !u!114 &-3481567510871780715 MonoBehaviour: m_ObjectHideFlags: 0 @@ -201,6 +302,46 @@ MonoBehaviour: company: Unity priority: 0 required: 0 +--- !u!114 &-1321381335546775959 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: 233eef4f97ef4b0b8b65c5030c0b05f7, type: 3} + m_Name: DisplayRefreshRateFeature Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: OpenXR Display Refresh Rate + version: 1.0.0 + featureIdInternal: com.pico.openxr.feature.refreshrate + openxrExtensionStrings: XR_FB_display_refresh_rate + company: PICO + priority: 0 + required: 0 +--- !u!114 &-1143834028155632764 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: 7d49168b6dfb469dadf8cd56e4ab8884, type: 3} + m_Name: PassthroughFeature Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: OpenXR Passthrough + version: 1.0.0 + featureIdInternal: com.pico.openxr.feature.passthrough + openxrExtensionStrings: XR_FB_passthrough + company: PICO + priority: 0 + required: 0 --- !u!114 &-855441602587113020 MonoBehaviour: m_ObjectHideFlags: 0 @@ -247,6 +388,20 @@ MonoBehaviour: m_Name: Android m_EditorClassIdentifier: features: + - {fileID: 5914258216375899849} + - {fileID: -7649041839370906959} + - {fileID: 5561620637849874631} + - {fileID: -6034472836761018925} + - {fileID: -3679551036866486216} + - {fileID: 2289632375106342978} + - {fileID: -1321381335546775959} + - {fileID: 7125477652608497091} + - {fileID: 4556434061474762281} + - {fileID: -1143834028155632764} + - {fileID: -3649495988766833426} + - {fileID: -9108296238869793286} + - {fileID: 4523401926784539240} + - {fileID: 3321646004850517085} - {fileID: -2466123344957557661} - {fileID: 2718171240348235491} - {fileID: 1141069219629280137} @@ -448,6 +603,26 @@ MonoBehaviour: company: Unity priority: 0 required: 0 +--- !u!114 &2289632375106342978 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: a0b5403262c64d5888bf5672e1e1f3bb, type: 3} + m_Name: PICOSceneCapture Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: PICO Scene Capture + version: 1.0.0 + featureIdInternal: com.pico.openxr.feature.scenecapture + openxrExtensionStrings: XR_PICO_scene_capture XR_PICO_spatial_sensing XR_EXT_future + company: PICO + priority: 0 + required: 0 --- !u!114 &2463518056143399292 MonoBehaviour: m_ObjectHideFlags: 0 @@ -543,6 +718,27 @@ MonoBehaviour: required: 0 cacheSize: 1048576 perThreadCacheSize: 51200 +--- !u!114 &3321646004850517085 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: baa5b568c4324bd4faad2da2e7ee7e84, type: 3} + m_Name: PICOFeature Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: PICO Support + version: 1.3.3 + featureIdInternal: com.unity.openxr.feature.pico + openxrExtensionStrings: + company: PICO + priority: 0 + required: 0 + isPicoSupport: 0 --- !u!114 &3911856449119357355 MonoBehaviour: m_ObjectHideFlags: 0 @@ -605,6 +801,48 @@ MonoBehaviour: required: 0 cacheSize: 1048576 perThreadCacheSize: 51200 +--- !u!114 &4523401926784539240 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: 077bca9897b444788c83491c066a79b1, type: 3} + m_Name: OpenXRExtensions Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: PICO OpenXR Features + version: 1.0.0 + featureIdInternal: com.unity.openxr.pico.features + openxrExtensionStrings: XR_EXT_local_floor XR_FB_triangle_mesh XR_FB_composition_layer_alpha_blend + XR_KHR_composition_layer_color_scale_bias XR_KHR_composition_layer_cylinder XR_KHR_composition_layer_equirect + XR_KHR_composition_layer_cube + company: PICO + priority: 0 + required: 0 +--- !u!114 &4556434061474762281 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: 105a2b5276c1435d8411162e42e5064e, type: 3} + m_Name: LayerSecureContentFeature Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: OpenXR Composition Layer Secure Content + version: 1.0.0 + featureIdInternal: com.pico.openxr.feature.LayerSecureContent + openxrExtensionStrings: XR_FB_composition_layer_secure_content + company: PICO + priority: 0 + required: 0 --- !u!114 &4583337648497013858 MonoBehaviour: m_ObjectHideFlags: 0 @@ -668,6 +906,46 @@ MonoBehaviour: required: 0 targetQuest: 1 targetQuest2: 1 +--- !u!114 &5561620637849874631 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: f528fb360066460c862f7a0ce1d8ad4c, type: 3} + m_Name: PICO4UltraControllerProfile Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: PICO4 Ultra Touch Controller Profile + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.input.PICO4Ultratouch + openxrExtensionStrings: XR_BD_controller_interaction + company: PICO + priority: 0 + required: 0 +--- !u!114 &5914258216375899849 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: 21ea647c7f744df897be6365cbf559b7, type: 3} + m_Name: PICOG3ControllerProfile Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: PICOG3 Touch Controller Profile + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.input.PICOG3touch + openxrExtensionStrings: XR_BD_controller_interaction + company: PICO + priority: 0 + required: 0 --- !u!114 &5935454854569405708 MonoBehaviour: m_ObjectHideFlags: 0 @@ -748,6 +1026,27 @@ MonoBehaviour: company: Unity priority: 0 required: 0 +--- !u!114 &7125477652608497091 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: 5f636716e11d15b4bbafb76eb9d63555, type: 3} + m_Name: FoveationFeature Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: OpenXR Foveation + version: 1.0.0 + featureIdInternal: com.pico.openxr.feature.foveation + openxrExtensionStrings: 'XR_FB_foveation XR_FB_foveation_configuration XR_FB_foveation_vulkan + XR_META_foveation_eye_tracked XR_META_vulkan_swapchain_create_info XR_FB_swapchain_update_state ' + company: PICO + priority: 0 + required: 0 --- !u!114 &7240929883912825054 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets.meta new file mode 100644 index 0000000..e295e67 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9d4180f0db76cb44ab748525ae8906ff +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources.meta new file mode 100644 index 0000000..d8625ba --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b1debb95d47439345a691476b4f5c077 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller.meta new file mode 100644 index 0000000..b34d68e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bec0b6a8822fa3545bd8d1865e2c8940 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand.meta new file mode 100644 index 0000000..ff5de8c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 68b8fe83288a79c4bb1634e9e9e80640 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l.meta new file mode 100644 index 0000000..0a6cb8a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 383e67c791dfb4c4b90e2c2ad7ce512d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_b_l.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_b_l.mask new file mode 100644 index 0000000..dc0027b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_b_l.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_a_b_l + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_left + m_Weight: 0 + - m_Path: o_com_sparrow_left + m_Weight: 0 + - m_Path: o_com_sparrow_left_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/left_wrist + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_palm + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + m_Weight: 1 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLX + m_Weight: 1 + - m_Path: root/SkinRoot/SkinLY + m_Weight: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_b_l.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_b_l.mask.meta new file mode 100644 index 0000000..ecaf5c0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_b_l.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 173621e98c19c493a8f0288d8a933bed +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_l.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_l.mask new file mode 100644 index 0000000..bcfe5f7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_l.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_a_l + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_left + m_Weight: 0 + - m_Path: o_com_sparrow_left + m_Weight: 0 + - m_Path: o_com_sparrow_left_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/left_wrist + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_palm + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + m_Weight: 1 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLX + m_Weight: 1 + - m_Path: root/SkinRoot/SkinLY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_l.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_l.mask.meta new file mode 100644 index 0000000..93fffb4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_a_l.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f29a0ab70d309499c9c2d61a919d5020 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_axis_l.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_axis_l.mask new file mode 100644 index 0000000..e91cd56 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_axis_l.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_axis_l + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_left + m_Weight: 0 + - m_Path: o_com_sparrow_left + m_Weight: 0 + - m_Path: o_com_sparrow_left_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/left_wrist + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_palm + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + m_Weight: 1 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLJoystick + m_Weight: 1 + - m_Path: root/SkinRoot/SkinLMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_axis_l.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_axis_l.mask.meta new file mode 100644 index 0000000..dfedf29 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_axis_l.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bbb43fe65b38f4083bc5e644fe958f95 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_b_l.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_b_l.mask new file mode 100644 index 0000000..b5ff66e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_b_l.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_b_l + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_left + m_Weight: 0 + - m_Path: o_com_sparrow_left + m_Weight: 0 + - m_Path: o_com_sparrow_left_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/left_wrist + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_palm + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + m_Weight: 1 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLY + m_Weight: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_b_l.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_b_l.mask.meta new file mode 100644 index 0000000..b37b96e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_b_l.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a887bf25b2d04a1bae1669ae6747419 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_grip_l.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_grip_l.mask new file mode 100644 index 0000000..3432e2a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_grip_l.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_grip_l + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_left + m_Weight: 0 + - m_Path: o_com_sparrow_left + m_Weight: 0 + - m_Path: o_com_sparrow_left_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/left_wrist + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal + m_Weight: 1 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + m_Weight: 1 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + m_Weight: 1 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + m_Weight: 1 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + m_Weight: 1 + - m_Path: root/left_wrist/left_palm + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + m_Weight: 0 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLGrip + m_Weight: 1 + - m_Path: root/SkinRoot/SkinLJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_grip_l.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_grip_l.mask.meta new file mode 100644 index 0000000..44fdda4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_grip_l.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a1294d789b914d428541b480a16682c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_index_l.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_index_l.mask new file mode 100644 index 0000000..1628c21 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_index_l.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_index_l + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_left + m_Weight: 0 + - m_Path: o_com_sparrow_left + m_Weight: 0 + - m_Path: o_com_sparrow_left_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/left_wrist + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal + m_Weight: 1 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal + m_Weight: 1 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + m_Weight: 1 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + m_Weight: 1 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + m_Weight: 1 + - m_Path: root/left_wrist/left_little_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_palm + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + m_Weight: 0 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_index_l.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_index_l.mask.meta new file mode 100644 index 0000000..f2b370e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_index_l.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1a1333616d23d473a9564f02435a3d0b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_thumb_l.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_thumb_l.mask new file mode 100644 index 0000000..f22ae7b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_thumb_l.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_thumb_l + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_left + m_Weight: 0 + - m_Path: o_com_sparrow_left + m_Weight: 0 + - m_Path: o_com_sparrow_left_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/left_wrist + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_palm + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + m_Weight: 1 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + m_Weight: 1 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_thumb_l.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_thumb_l.mask.meta new file mode 100644 index 0000000..912a637 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_thumb_l.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fe8f7cd36e24d495c91d49ab5dcedc71 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_trigger_l.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_trigger_l.mask new file mode 100644 index 0000000..9489bdd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_trigger_l.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_trigger_l + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_left + m_Weight: 0 + - m_Path: o_com_sparrow_left + m_Weight: 0 + - m_Path: o_com_sparrow_left_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/left_wrist + m_Weight: 0 + - m_Path: root/left_wrist/left_index_metacarpal + m_Weight: 1 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal + m_Weight: 1 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + m_Weight: 1 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + m_Weight: 1 + - m_Path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + m_Weight: 1 + - m_Path: root/left_wrist/left_little_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_palm + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + m_Weight: 0 + - m_Path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + m_Weight: 0 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLTrigger + m_Weight: 1 + - m_Path: root/SkinRoot/SkinLX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinLY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_trigger_l.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_trigger_l.mask.meta new file mode 100644 index 0000000..a43fa19 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_l/mask_trigger_l.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: af135a35702834f20bb1e953c31f88ab +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r.meta new file mode 100644 index 0000000..7f73650 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e625d500d45755c40a6c0a77b7efedbe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_axis_r.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_axis_r.mask new file mode 100644 index 0000000..2c91aa0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_axis_r.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_axis_r + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_right + m_Weight: 0 + - m_Path: o_com_sparrow_right + m_Weight: 0 + - m_Path: o_com_sparrow_right_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/right_wrist + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_palm + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + m_Weight: 1 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRJoystick + m_Weight: 1 + - m_Path: root/SkinRoot/SkinRMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_axis_r.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_axis_r.mask.meta new file mode 100644 index 0000000..826001e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_axis_r.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19109cae5d3dd4a21ab383ac58d3eb7d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_grip_r.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_grip_r.mask new file mode 100644 index 0000000..8ea3a58 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_grip_r.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_grip_r + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_right + m_Weight: 0 + - m_Path: o_com_sparrow_right + m_Weight: 0 + - m_Path: o_com_sparrow_right_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/right_wrist + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal + m_Weight: 1 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + m_Weight: 1 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + m_Weight: 1 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + m_Weight: 1 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + m_Weight: 1 + - m_Path: root/right_wrist/right_palm + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + m_Weight: 0 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRGrip + m_Weight: 1 + - m_Path: root/SkinRoot/SkinRJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_grip_r.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_grip_r.mask.meta new file mode 100644 index 0000000..ca5e465 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_grip_r.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7a424ef8cd6e9456fa0284c70460ce38 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_index_r.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_index_r.mask new file mode 100644 index 0000000..4ee9d12 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_index_r.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_index_r + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_right + m_Weight: 0 + - m_Path: o_com_sparrow_right + m_Weight: 0 + - m_Path: o_com_sparrow_right_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/right_wrist + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal + m_Weight: 1 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal + m_Weight: 1 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + m_Weight: 1 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + m_Weight: 1 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + m_Weight: 1 + - m_Path: root/right_wrist/right_little_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_palm + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + m_Weight: 0 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_index_r.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_index_r.mask.meta new file mode 100644 index 0000000..376bd9b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_index_r.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b12bcf1b2bfdc440999b5f1bc7dde1a2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_thumb_r.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_thumb_r.mask new file mode 100644 index 0000000..072afff --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_thumb_r.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_thumb_r + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_right + m_Weight: 0 + - m_Path: o_com_sparrow_right + m_Weight: 0 + - m_Path: o_com_sparrow_right_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/right_wrist + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_palm + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + m_Weight: 1 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_thumb_r.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_thumb_r.mask.meta new file mode 100644 index 0000000..a3bdfec --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_thumb_r.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6cb34d0ab58a45b99e72f6e91ab2f6a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_trigger_r.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_trigger_r.mask new file mode 100644 index 0000000..16374f1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_trigger_r.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_trigger_r + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_right + m_Weight: 0 + - m_Path: o_com_sparrow_right + m_Weight: 0 + - m_Path: o_com_sparrow_right_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/right_wrist + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal + m_Weight: 1 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal + m_Weight: 1 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + m_Weight: 1 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + m_Weight: 1 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + m_Weight: 1 + - m_Path: root/right_wrist/right_little_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_palm + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + m_Weight: 0 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRTrigger + m_Weight: 1 + - m_Path: root/SkinRoot/SkinRX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_trigger_r.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_trigger_r.mask.meta new file mode 100644 index 0000000..0bdda88 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_trigger_r.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2f872c920e7224f889cde9b63d7311cc +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_r.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_r.mask new file mode 100644 index 0000000..1047a10 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_r.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_x_r + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_right + m_Weight: 0 + - m_Path: o_com_sparrow_right + m_Weight: 0 + - m_Path: o_com_sparrow_right_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/right_wrist + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_palm + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + m_Weight: 1 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRX + m_Weight: 1 + - m_Path: root/SkinRoot/SkinRY + m_Weight: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_r.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_r.mask.meta new file mode 100644 index 0000000..5a0dcca --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_r.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b357b560d85dd4660a59d2c642820a26 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_y_r.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_y_r.mask new file mode 100644 index 0000000..6156e55 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_y_r.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_x_y_r + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_right + m_Weight: 0 + - m_Path: o_com_sparrow_right + m_Weight: 0 + - m_Path: o_com_sparrow_right_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/right_wrist + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_palm + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + m_Weight: 1 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRX + m_Weight: 1 + - m_Path: root/SkinRoot/SkinRY + m_Weight: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_y_r.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_y_r.mask.meta new file mode 100644 index 0000000..a3cc595 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_x_y_r.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 730b35d2a61a0402999fef7755ab7266 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_y_r.mask b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_y_r.mask new file mode 100644 index 0000000..6e8edf4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_y_r.mask @@ -0,0 +1,89 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!319 &31900000 +AvatarMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: mask_y_r + m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + m_Elements: + - m_Path: + m_Weight: 1 + - m_Path: base_right + m_Weight: 0 + - m_Path: o_com_sparrow_right + m_Weight: 0 + - m_Path: o_com_sparrow_right_power + m_Weight: 0 + - m_Path: root + m_Weight: 0 + - m_Path: root/right_wrist + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_palm + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + m_Weight: 0 + - m_Path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + m_Weight: 0 + - m_Path: root/right_wrist/right_thumb_metacarpal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + m_Weight: 1 + - m_Path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + m_Weight: 1 + - m_Path: root/SkinRoot + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRGrip + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRJoystick + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRMenu + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRPico + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRTrigger + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRX + m_Weight: 0 + - m_Path: root/SkinRoot/SkinRY + m_Weight: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_y_r.mask.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_y_r.mask.meta new file mode 100644 index 0000000..92e996b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mask_r/mask_y_r.mask.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 166b3d4f510e047ab9e97a27b546eca5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 31900000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material.meta new file mode 100644 index 0000000..2ee61a3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 056de3362d95e1f40bf86fc4371d0f73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_L.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_L.mat new file mode 100644 index 0000000..63c98f8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_L.mat @@ -0,0 +1,156 @@ +%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: Hand_L + m_Shader: {fileID: 4800000, guid: 4ae4d410c1995fa4e8fea1ab6359ea37, type: 3} + 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: [] + 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: + - _AlphaClip: 0 + - _AlphaEnd: 0.56 + - _AlphaPower: 13 + - _AlphaSize: 0.1 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ClickLightRange: 0.0315 + - _ClickRange: 0.0166 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _FadeIn: 1 + - _FresnelPower: 2.2 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _IndexRadius: 0.01 + - _LightIntens: 0 + - _LightRange: 1 + - _MainAlpha: 1 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _OutLineWidth: 0.00056 + - _Parallax: 0.005 + - _PressIntensity: 0 + - _PressLightRange: 0.0315 + - _PressRange: 0.0152 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _ThumbRadius: 0.01 + - _WorkflowMode: 1 + - _WristFadeRange: 0.4 + - _ZWrite: 1 + - _inClickMode: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _ClickLight: {r: 1, g: 0.8117647, b: 0.3254902, a: 1} + - _ClickPosition: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _IndexPos: {r: 0, g: 0, b: 0, a: 0} + - _InnerColor: {r: 0.29411766, g: 0.3254902, b: 0.41568628, a: 0.6509804} + - _MainColor: {r: 1, g: 1, b: 1, a: 1} + - _OutColor: {r: 0.7695, g: 0.8176333, b: 0.95, a: 0.65882355} + - _OutLineColor: {r: 0.77875537, g: 0.8521459, b: 0.95, a: 0.5019608} + - _PressLight: {r: 1, g: 0.9843137, b: 0.95686275, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - _SpotLightColor: {r: 1, g: 1, b: 1, a: 1} + - _ThumbPos: {r: 0, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &1413629291158964113 +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: 4 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_L.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_L.mat.meta new file mode 100644 index 0000000..1bdaa00 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_L.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5b6164e7d4f7e94fa1b1e7ac41fd5e9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_R.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_R.mat new file mode 100644 index 0000000..92bd2f9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_R.mat @@ -0,0 +1,156 @@ +%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: Hand_R + m_Shader: {fileID: 4800000, guid: 4ae4d410c1995fa4e8fea1ab6359ea37, type: 3} + 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: [] + 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: + - _AlphaClip: 0 + - _AlphaEnd: 0.56 + - _AlphaPower: 13 + - _AlphaSize: 0.1 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ClickLightRange: 0.0315 + - _ClickRange: 0.0166 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _FadeIn: 1 + - _FresnelPower: 2.2 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _IndexRadius: 0.01 + - _LightIntens: 0 + - _LightRange: 1 + - _MainAlpha: 1 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _OutLineWidth: 0.00056 + - _Parallax: 0.005 + - _PressIntensity: 1 + - _PressLightRange: 0.0315 + - _PressRange: 0.0152 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _ThumbRadius: 0.01 + - _WorkflowMode: 1 + - _WristFadeRange: 0.4 + - _ZWrite: 1 + - _inClickMode: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _ClickLight: {r: 1, g: 0.8117647, b: 0.3254902, a: 1} + - _ClickPosition: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _IndexPos: {r: 0, g: 0, b: 0, a: 0} + - _InnerColor: {r: 0.29411766, g: 0.3254902, b: 0.41568628, a: 0.6509804} + - _MainColor: {r: 1, g: 1, b: 1, a: 1} + - _OutColor: {r: 0.7695, g: 0.8176333, b: 0.95, a: 0.65882355} + - _OutLineColor: {r: 0.77875537, g: 0.8521459, b: 0.95, a: 0.5019608} + - _PressLight: {r: 1, g: 0.9843137, b: 0.95686275, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - _SpotLightColor: {r: 1, g: 1, b: 1, a: 1} + - _ThumbPos: {r: 0, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] +--- !u!114 &1413629291158964113 +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: 4 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_R.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_R.mat.meta new file mode 100644 index 0000000..9f3dda8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Material/Hand_R.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 89939a917a9c35648a30ca15048f9e01 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh.meta new file mode 100644 index 0000000..603eba5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a308fac840f92c14ab254335fb950162 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand.meta new file mode 100644 index 0000000..ca5e7db --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 865c2da40ff796d47a25cfc111b85a0d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand.fbx new file mode 100644 index 0000000..cf25baf --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:066bd752139939f0029ae272597af8ba8d1b8621f8eb2873877e29fd98261e5f +size 1234944 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand.fbx.meta new file mode 100644 index 0000000..dd3b56c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand.fbx.meta @@ -0,0 +1,1526 @@ +fileFormatVersion: 2 +guid: 39b162b3758bf435f97c925ab0a320a3 +ModelImporter: + serializedVersion: 21300 + 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: + - serializedVersion: 16 + name: idle + takeName: Take 001 + internalID: 1827226128182048838 + firstFrame: 0 + lastFrame: 3 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {fileID: 31900000, guid: bbb43fe65b38f4083bc5e644fe958f95, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: X_A_touch + takeName: Take 001 + internalID: -998496362607748373 + firstFrame: 5 + lastFrame: 9 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: fe8f7cd36e24d495c91d49ab5dcedc71, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: X_A_press + takeName: Take 001 + internalID: 3060872287085348379 + firstFrame: 10 + lastFrame: 14 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 1 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: f29a0ab70d309499c9c2d61a919d5020, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: trigger_press + takeName: Take 001 + internalID: 6641085478485924818 + firstFrame: 20 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 1 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 1 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 1 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 1 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 1 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 0 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 1 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: af135a35702834f20bb1e953c31f88ab, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: grjp_press + takeName: Take 001 + internalID: -5059006814000262888 + firstFrame: 30 + lastFrame: 34 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 1 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 1 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 1 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 1 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 1 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 0 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 1 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: 4a1294d789b914d428541b480a16682c, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: Y_B_touch + takeName: Take 001 + internalID: 6234510843852800090 + firstFrame: 35 + lastFrame: 39 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: fe8f7cd36e24d495c91d49ab5dcedc71, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: Y_B_press + takeName: Take 001 + internalID: -6788666626592393668 + firstFrame: 40 + lastFrame: 44 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 1 + maskType: 1 + maskSource: {fileID: 31900000, guid: 4a887bf25b2d04a1bae1669ae6747419, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: axis_touch + takeName: Take 001 + internalID: 1702301948168947093 + firstFrame: 65 + lastFrame: 69 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: fe8f7cd36e24d495c91d49ab5dcedc71, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: axis_vertial_up + takeName: Take 001 + internalID: 9093586079265926502 + firstFrame: 70 + lastFrame: 74 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 1 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: bbb43fe65b38f4083bc5e644fe958f95, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: axis_vertial_down + takeName: Take 001 + internalID: -4045831500588228705 + firstFrame: 75 + lastFrame: 79 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 1 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: bbb43fe65b38f4083bc5e644fe958f95, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: axis_horizontal_left + takeName: Take 001 + internalID: 7731641710072435382 + firstFrame: 80 + lastFrame: 84 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 1 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: bbb43fe65b38f4083bc5e644fe958f95, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: axis_horizontal_right + takeName: Take 001 + internalID: -6577145938085917429 + firstFrame: 85 + lastFrame: 89 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 1 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: bbb43fe65b38f4083bc5e644fe958f95, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: trigger_touch + takeName: Take 001 + internalID: -5912188926831197812 + firstFrame: 8 + lastFrame: 14 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 1 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 1 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 1 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 1 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 1 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 0 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: 1a1333616d23d473a9564f02435a3d0b, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: thumbstick_touch + takeName: Take 001 + internalID: -8608414141577764740 + firstFrame: 90 + lastFrame: 94 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: fe8f7cd36e24d495c91d49ab5dcedc71, type: 2} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 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 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 1 + 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: root + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand_X_A_Y_B.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand_X_A_Y_B.fbx new file mode 100644 index 0000000..cf25baf --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand_X_A_Y_B.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:066bd752139939f0029ae272597af8ba8d1b8621f8eb2873877e29fd98261e5f +size 1234944 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand_X_A_Y_B.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand_X_A_Y_B.fbx.meta new file mode 100644 index 0000000..e0281b1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/LeftHand/leftHand_X_A_Y_B.fbx.meta @@ -0,0 +1,323 @@ +fileFormatVersion: 2 +guid: 96071472ed1b841ddb13555bb3a2e3b3 +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: + - serializedVersion: 16 + name: X_A_Y_B_touch + takeName: Take 001 + internalID: 6641085478485924818 + firstFrame: 95 + lastFrame: 99 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 0 + - path: root/SkinRoot/SkinLY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: fe8f7cd36e24d495c91d49ab5dcedc71, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: X_A_Y_B_press + takeName: Take 001 + internalID: -998496362607748373 + firstFrame: 100 + lastFrame: 105 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_left + weight: 0 + - path: o_com_sparrow_left + weight: 0 + - path: o_com_sparrow_left_power + weight: 0 + - path: root + weight: 0 + - path: root/left_wrist + weight: 0 + - path: root/left_wrist/left_index_metacarpal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal + weight: 0 + - path: root/left_wrist/left_index_metacarpal/left_index_proximal/left_index_intermediate/left_index_distal/left_index_tip + weight: 0 + - path: root/left_wrist/left_little_metacarpal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal + weight: 0 + - path: root/left_wrist/left_little_metacarpal/left_little_proximal/left_little_intermediate/left_little_distal/left_little_tip + weight: 0 + - path: root/left_wrist/left_middle_metacarpal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal + weight: 0 + - path: root/left_wrist/left_middle_metacarpal/left_middle_proximal/left_middle_intermediate/left_middle_distal/left_middle_tip + weight: 0 + - path: root/left_wrist/left_palm + weight: 0 + - path: root/left_wrist/left_ring_metacarpal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal + weight: 0 + - path: root/left_wrist/left_ring_metacarpal/left_ring_proximal/left_ring_intermediate/left_ring_distal/left_ring_tip + weight: 0 + - path: root/left_wrist/left_thumb_metacarpal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal + weight: 1 + - path: root/left_wrist/left_thumb_metacarpal/left_thumb_proximal/left_thumb_distal/left_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinLGrip + weight: 0 + - path: root/SkinRoot/SkinLJoystick + weight: 0 + - path: root/SkinRoot/SkinLMenu + weight: 0 + - path: root/SkinRoot/SkinLPico + weight: 0 + - path: root/SkinRoot/SkinLTrigger + weight: 0 + - path: root/SkinRoot/SkinLX + weight: 1 + - path: root/SkinRoot/SkinLY + weight: 1 + maskType: 1 + maskSource: {fileID: 31900000, guid: 173621e98c19c493a8f0288d8a933bed, type: 2} + additiveReferencePoseFrame: 0 + 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: root + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand.meta new file mode 100644 index 0000000..af15bb8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c1501896a3605b428668e13b98374da +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand.fbx new file mode 100644 index 0000000..f2a6511 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30b504127336300334d03a448c23ca3293ae4d6a216c3d2c4bb1da1a121d1980 +size 964768 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand.fbx.meta new file mode 100644 index 0000000..4230892 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand.fbx.meta @@ -0,0 +1,1526 @@ +fileFormatVersion: 2 +guid: dba11ee6c324e46f8bd36ffa00d5b6a2 +ModelImporter: + serializedVersion: 21300 + 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: + - serializedVersion: 16 + name: idle + takeName: Take 001 + internalID: 9067093048684652814 + firstFrame: 0 + lastFrame: 3 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: X_A_touch + takeName: Take 001 + internalID: -3291206362154003629 + firstFrame: 5 + lastFrame: 9 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: a6cb34d0ab58a45b99e72f6e91ab2f6a, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: X_A_press + takeName: Take 001 + internalID: 1465369574596688972 + firstFrame: 10 + lastFrame: 14 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 1 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: b357b560d85dd4660a59d2c642820a26, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: trigger_press + takeName: Take 001 + internalID: 644589263403131068 + firstFrame: 20 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 1 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 1 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 1 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 1 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 1 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 0 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 1 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: 2f872c920e7224f889cde9b63d7311cc, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: grip_press + takeName: Take 001 + internalID: -7727135423134997463 + firstFrame: 30 + lastFrame: 34 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 1 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 1 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 1 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 1 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 1 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 0 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 1 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: 7a424ef8cd6e9456fa0284c70460ce38, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: Y_B_touch + takeName: Take 001 + internalID: 8069544894991528799 + firstFrame: 35 + lastFrame: 39 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: a6cb34d0ab58a45b99e72f6e91ab2f6a, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: Y_B_press + takeName: Take 001 + internalID: 2937323276152918717 + firstFrame: 40 + lastFrame: 44 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 1 + maskType: 1 + maskSource: {fileID: 31900000, guid: 166b3d4f510e047ab9e97a27b546eca5, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: axis_touch + takeName: Take 001 + internalID: 1053076475599293515 + firstFrame: 65 + lastFrame: 69 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: a6cb34d0ab58a45b99e72f6e91ab2f6a, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: axis_vertical_up + takeName: Take 001 + internalID: 4007025634288975674 + firstFrame: 70 + lastFrame: 74 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 1 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: 19109cae5d3dd4a21ab383ac58d3eb7d, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: axis_vertical_down + takeName: Take 001 + internalID: -4034711142557885395 + firstFrame: 75 + lastFrame: 79 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 1 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: 19109cae5d3dd4a21ab383ac58d3eb7d, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: axis_horizontal_right + takeName: Take 001 + internalID: 6625385973239635098 + firstFrame: 80 + lastFrame: 84 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 1 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: 19109cae5d3dd4a21ab383ac58d3eb7d, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: axis_horizontal_left + takeName: Take 001 + internalID: 9065212045443361151 + firstFrame: 85 + lastFrame: 89 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 1 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: 19109cae5d3dd4a21ab383ac58d3eb7d, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: trigger_touch + takeName: Take 001 + internalID: -3628734692961605625 + firstFrame: 8 + lastFrame: 14 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 1 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 1 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 1 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 1 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 1 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 0 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: b12bcf1b2bfdc440999b5f1bc7dde1a2, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: thumbstick_touch + takeName: Take 001 + internalID: -8608414141577764740 + firstFrame: 91 + lastFrame: 94 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 0 + - path: root/SkinRoot/SkinRY + weight: 0 + maskType: 1 + maskSource: {fileID: 31900000, guid: a6cb34d0ab58a45b99e72f6e91ab2f6a, type: 2} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 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 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 1 + 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: root + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand_X_A_Y_B.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand_X_A_Y_B.fbx new file mode 100644 index 0000000..f2a6511 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand_X_A_Y_B.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30b504127336300334d03a448c23ca3293ae4d6a216c3d2c4bb1da1a121d1980 +size 964768 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand_X_A_Y_B.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand_X_A_Y_B.fbx.meta new file mode 100644 index 0000000..b9e2661 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/Mesh/RightHand/rightHand_X_A_Y_B.fbx.meta @@ -0,0 +1,323 @@ +fileFormatVersion: 2 +guid: be856c9e1a47247068ebfc44ad402df6 +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: + - serializedVersion: 16 + name: X_A_Y_B_touch + takeName: Take 001 + internalID: 9067093048684652814 + firstFrame: 95 + lastFrame: 99 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 1 + - path: root/SkinRoot/SkinRY + weight: 1 + maskType: 1 + maskSource: {fileID: 31900000, guid: 730b35d2a61a0402999fef7755ab7266, type: 2} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: X_A_Y_B_press + takeName: Take 001 + internalID: -998496362607748373 + firstFrame: 100 + lastFrame: 105 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: + - path: + weight: 1 + - path: base_right + weight: 0 + - path: o_com_sparrow_right + weight: 0 + - path: o_com_sparrow_right_power + weight: 0 + - path: root + weight: 0 + - path: root/right_wrist + weight: 0 + - path: root/right_wrist/right_index_metacarpal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal + weight: 0 + - path: root/right_wrist/right_index_metacarpal/right_index_proximal/right_index_intermediate/right_index_distal/right_index_tip + weight: 0 + - path: root/right_wrist/right_little_metacarpal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal + weight: 0 + - path: root/right_wrist/right_little_metacarpal/right_little_proximal/right_little_intermediate/right_little_distal/right_little_tip + weight: 0 + - path: root/right_wrist/right_middle_metacarpal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal + weight: 0 + - path: root/right_wrist/right_middle_metacarpal/right_middle_proximal/right_middle_intermediate/right_middle_distal/right_middle_tip + weight: 0 + - path: root/right_wrist/right_palm + weight: 0 + - path: root/right_wrist/right_ring_metacarpal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal + weight: 0 + - path: root/right_wrist/right_ring_metacarpal/right_ring_proximal/right_ring_intermediate/right_ring_distal/right_ring_tip + weight: 0 + - path: root/right_wrist/right_thumb_metacarpal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal + weight: 1 + - path: root/right_wrist/right_thumb_metacarpal/right_thumb_proximal/right_thumb_distal/right_thumb_tip + weight: 1 + - path: root/SkinRoot + weight: 0 + - path: root/SkinRoot/SkinRGrip + weight: 0 + - path: root/SkinRoot/SkinRJoystick + weight: 0 + - path: root/SkinRoot/SkinRMenu + weight: 0 + - path: root/SkinRoot/SkinRPico + weight: 0 + - path: root/SkinRoot/SkinRTrigger + weight: 0 + - path: root/SkinRoot/SkinRX + weight: 1 + - path: root/SkinRoot/SkinRY + weight: 1 + maskType: 1 + maskSource: {fileID: 31900000, guid: 730b35d2a61a0402999fef7755ab7266, type: 2} + additiveReferencePoseFrame: 0 + 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: root + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_l.overrideController b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_l.overrideController new file mode 100644 index 0000000..4b2fbdd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_l.overrideController @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!221 &22100000 +AnimatorOverrideController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: controller_l + m_Controller: {fileID: 9100000, guid: 7eff928b71cfd46f298284c8e67429ed, type: 2} + m_Clips: + - m_OriginalClip: {fileID: 9065212045443361151, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: 7731641710072435382, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: 6625385973239635098, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: -6577145938085917429, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: 1053076475599293515, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: 1702301948168947093, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: -4034711142557885395, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: -4045831500588228705, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: 4007025634288975674, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: 9093586079265926502, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: -7727135423134997463, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: -5059006814000262888, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: 9067093048684652814, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: 1827226128182048838, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: -8608414141577764740, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: -8608414141577764740, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: 644589263403131068, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: 6641085478485924818, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: -3628734692961605625, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: -5912188926831197812, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: 1465369574596688972, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: 3060872287085348379, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: -3291206362154003629, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: -998496362607748373, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: -998496362607748373, guid: be856c9e1a47247068ebfc44ad402df6, type: 3} + m_OverrideClip: {fileID: -998496362607748373, guid: 96071472ed1b841ddb13555bb3a2e3b3, type: 3} + - m_OriginalClip: {fileID: 9067093048684652814, guid: be856c9e1a47247068ebfc44ad402df6, type: 3} + m_OverrideClip: {fileID: 6641085478485924818, guid: 96071472ed1b841ddb13555bb3a2e3b3, type: 3} + - m_OriginalClip: {fileID: 2937323276152918717, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: -6788666626592393668, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} + - m_OriginalClip: {fileID: 8069544894991528799, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_OverrideClip: {fileID: 6234510843852800090, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_l.overrideController.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_l.overrideController.meta new file mode 100644 index 0000000..5155f21 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_l.overrideController.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9a993e003cd304ee9b10e2c8a65fbdb1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 22100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_r.controller b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_r.controller new file mode 100644 index 0000000..464ec34 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_r.controller @@ -0,0 +1,799 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-7101555362032542151 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: grip + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -7727135423134997463, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &-5264670380286320971 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: X_A_Y_B_touch + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -3768238520865437085} + m_Position: {x: 310, y: 220, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -3768238520865437085} +--- !u!1102 &-4567637703452413114 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: trigger_touch + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3628734692961605625, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &-4042532970288595488 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: thumbstick_touch + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 6003891639258260656} + m_Position: {x: 330, y: 160, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 6003891639258260656} +--- !u!1102 &-3768238520865437085 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Y_B_touch + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 9067093048684652814, guid: be856c9e1a47247068ebfc44ad402df6, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-2416898166414759475 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: thumbXTouch + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3291206362154003629, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &-2313129190453320430 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Y_B_touch + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 4233361181473184775} + m_Position: {x: 328.40527, y: 174.54456, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 4233361181473184775} +--- !u!1107 &-1242863904759397218 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: trigger_press + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 6773728840484310869} + m_Position: {x: 520, y: 220, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 6773728840484310869} +--- !u!206 &-1009412455799080891 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: + - serializedVersion: 2 + m_Motion: {fileID: 1053076475599293515, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Threshold: 0 + m_Position: {x: 0, y: 0} + m_TimeScale: 0.3 + m_CycleOffset: 0 + m_DirectBlendParameter: axisUp + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 4007025634288975674, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Threshold: 0.25 + m_Position: {x: 0, y: 1} + m_TimeScale: 0.3 + m_CycleOffset: 0 + m_DirectBlendParameter: axisUp + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: -4034711142557885395, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Threshold: 0.5 + m_Position: {x: 0, y: -1} + m_TimeScale: 0.3 + m_CycleOffset: 0 + m_DirectBlendParameter: axisDown + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 6625385973239635098, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Threshold: 0.75 + m_Position: {x: 1, y: 0} + m_TimeScale: 0.3 + m_CycleOffset: 0 + m_DirectBlendParameter: axisRigh + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 9065212045443361151, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Threshold: 1 + m_Position: {x: -1, y: 0} + m_TimeScale: 0.3 + m_CycleOffset: 0 + m_DirectBlendParameter: axisLeft + m_Mirror: 0 + m_BlendParameter: axis_horizontal + m_BlendParameterY: axis_vertical + m_MinThreshold: 0 + m_MaxThreshold: 1 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 2 +--- !u!1102 &-219832957408517205 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: thumbY + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 2937323276152918717, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: controller_r + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: axis_vertical + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: axis_horizontal + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: idle + m_StateMachine: {fileID: 4517447404130276652} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 1 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: trigger_touch + m_StateMachine: {fileID: 1957189739035770365} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: trigger_press + m_StateMachine: {fileID: -1242863904759397218} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: grip_press + m_StateMachine: {fileID: 4115632580455608622} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: thumbstick_touch + m_StateMachine: {fileID: -4042532970288595488} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: axis_touch + m_StateMachine: {fileID: 2929857927626961192} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: X_A_touch + m_StateMachine: {fileID: 7024025097188696438} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Y_B_touch + m_StateMachine: {fileID: -2313129190453320430} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: X_A_Y_B_touch + m_StateMachine: {fileID: -5264670380286320971} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: X_A_press + m_StateMachine: {fileID: 8293626763525540544} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Y_B_press + m_StateMachine: {fileID: 3899624571922000302} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: X_A_Y_B_press + m_StateMachine: {fileID: 4041127951310560090} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &1384623190067455544 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: thumbX + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 1465369574596688972, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &1957189739035770365 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: trigger_touch + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -4567637703452413114} + m_Position: {x: 440, y: 80, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -4567637703452413114} +--- !u!1107 &2929857927626961192 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: axis_touch + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 7307173898641926813} + m_Position: {x: 360, y: 130, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 7307173898641926813} +--- !u!1102 &3899581534921788144 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: allIdle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 9067093048684652814, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &3899624571922000302 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Y_B_press + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -219832957408517205} + m_Position: {x: 380, y: 200, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -219832957408517205} +--- !u!1107 &4041127951310560090 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: X_A_Y_B_press + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 4284270414835866810} + m_Position: {x: 296.16403, y: 180.89337, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 4284270414835866810} +--- !u!1107 &4115632580455608622 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: grip_press + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -7101555362032542151} + m_Position: {x: 390, y: 210, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -7101555362032542151} +--- !u!1102 &4233361181473184775 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: thumbYTouch + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 8069544894991528799, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &4284270414835866810 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: X_A_Y_B_press + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -998496362607748373, guid: be856c9e1a47247068ebfc44ad402df6, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &4517447404130276652 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: idle + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 3899581534921788144} + m_Position: {x: 380, y: 160, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 3899581534921788144} +--- !u!1102 &6003891639258260656 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: thumbstick_touch + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -8608414141577764740, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &6773728840484310869 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: trigger + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 644589263403131068, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &7024025097188696438 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: X_A_touch + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -2416898166414759475} + m_Position: {x: 360, y: 170, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -2416898166414759475} +--- !u!1102 &7307173898641926813 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -1009412455799080891} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &8293626763525540544 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: X_A_press + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 1384623190067455544} + m_Position: {x: 410, y: 180, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 1384623190067455544} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_r.controller.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_r.controller.meta new file mode 100644 index 0000000..ebea28e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/controller_r.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7eff928b71cfd46f298284c8e67429ed +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/leftHand.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/leftHand.prefab new file mode 100644 index 0000000..6d7e9d3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/leftHand.prefab @@ -0,0 +1,130 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &3045104879649255626 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -8721002785652668686, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: e5b6164e7d4f7e94fa1b1e7ac41fd5e9, type: 2} + - target: {fileID: -8679921383154817045, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -5693625846569519967, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: ad8827df856b77c48911d03893186baa, type: 2} + - target: {fileID: -3692213176466563813, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: a1b3dee6f3915d041b67ebcd32db75de, type: 2} + - target: {fileID: 919132149155446097, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_Name + value: leftHand + objectReference: {fileID: 0} + - target: {fileID: 5866666021909216657, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + propertyPath: m_Controller + value: + objectReference: {fileID: 22100000, guid: 9a993e003cd304ee9b10e2c8a65fbdb1, + type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 39b162b3758bf435f97c925ab0a320a3, type: 3} +--- !u!1 &2775073962953035163 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + m_PrefabInstance: {fileID: 3045104879649255626} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3072678336823176712 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2775073962953035163} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 510be29229b88df4f9dd7b7a4a59ee39, type: 3} + m_Name: + m_EditorClassIdentifier: + controller: 0 +--- !u!1 &7092911202625823648 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5200944990257927018, guid: 39b162b3758bf435f97c925ab0a320a3, + type: 3} + m_PrefabInstance: {fileID: 3045104879649255626} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3666775096546563306 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7092911202625823648} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7cfc8380945cdad43ae2cacaadf47013, type: 3} + m_Name: + m_EditorClassIdentifier: + power1: {fileID: 2800000, guid: 64029f435f4d71f4999ea9c75b80c91a, type: 3} + power2: {fileID: 2800000, guid: d7540181fc229e8448f8276f14347b1b, type: 3} + power3: {fileID: 2800000, guid: c874b39fd1d35274cb34a60847385eb5, type: 3} + power4: {fileID: 2800000, guid: c097f47a26972414d93241c55296c220, type: 3} + power5: {fileID: 2800000, guid: a0967be76a24d48428a3f5bff9c73fed, type: 3} + hand: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/leftHand.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/leftHand.prefab.meta new file mode 100644 index 0000000..69d64d6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/leftHand.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: add26d782c2f14487a27bc09c2d6f4a6 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/rightHand.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/rightHand.prefab new file mode 100644 index 0000000..1553250 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/rightHand.prefab @@ -0,0 +1,129 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &7373002392040224902 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -1185065108108141888, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 89939a917a9c35648a30ca15048f9e01, type: 2} + - target: {fileID: 919132149155446097, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_Name + value: rightHand + objectReference: {fileID: 0} + - target: {fileID: 5866666021909216657, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_Controller + value: + objectReference: {fileID: 9100000, guid: 7eff928b71cfd46f298284c8e67429ed, type: 2} + - target: {fileID: 6972209725336936091, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: ad8827df856b77c48911d03893186baa, type: 2} + - target: {fileID: 7244500070870471560, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: a1b3dee6f3915d041b67ebcd32db75de, type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, type: 3} +--- !u!1 &7246052014470150246 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -9017033875622821664, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + m_PrefabInstance: {fileID: 7373002392040224902} + m_PrefabAsset: {fileID: 0} +--- !u!114 &9037552036973013468 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7246052014470150246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7cfc8380945cdad43ae2cacaadf47013, type: 3} + m_Name: + m_EditorClassIdentifier: + power1: {fileID: 2800000, guid: 64029f435f4d71f4999ea9c75b80c91a, type: 3} + power2: {fileID: 2800000, guid: d7540181fc229e8448f8276f14347b1b, type: 3} + power3: {fileID: 2800000, guid: c874b39fd1d35274cb34a60847385eb5, type: 3} + power4: {fileID: 2800000, guid: c097f47a26972414d93241c55296c220, type: 3} + power5: {fileID: 2800000, guid: a0967be76a24d48428a3f5bff9c73fed, type: 3} + hand: 1 +--- !u!1 &7679555789696304599 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: dba11ee6c324e46f8bd36ffa00d5b6a2, + type: 3} + m_PrefabInstance: {fileID: 7373002392040224902} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4674844603613058633 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7679555789696304599} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 510be29229b88df4f9dd7b7a4a59ee39, type: 3} + m_Name: + m_EditorClassIdentifier: + controller: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/rightHand.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/rightHand.prefab.meta new file mode 100644 index 0000000..d2da72b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/ControllerWithHand/rightHand.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1fc5f47805e00457ca97da2351c04180 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3.meta new file mode 100644 index 0000000..904d4ae --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5926953c3ce96b54abb1beeeeb603374 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3.prefab new file mode 100644 index 0000000..fcb4730 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3.prefab @@ -0,0 +1,274 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3592357975929350142 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3592357975929350017} + - component: {fileID: 1534429355808917736} + m_Layer: 0 + m_Name: G3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3592357975929350017 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3592357975929350142} + 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: + - {fileID: 7393112420434179706} + - {fileID: 3853582020136445660} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1534429355808917736 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3592357975929350142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e4ee62d8e7a57c8458f969922f7a06a2, type: 3} + m_Name: + m_EditorClassIdentifier: + triggerTran: {fileID: 6165355476879913558} + menuTran: {fileID: 826874955553734840} + touchPadTran: {fileID: 3786392915043907200} + controllerPower: {fileID: 1295782513} +--- !u!1001 &3670456869294293303 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3592357975929350017} + m_Modifications: + - target: {fileID: -8743162529194615082, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_Name + value: Home + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7371581722876817658, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_Name + value: Touch + objectReference: {fileID: 0} + - target: {fileID: -5342078123755387799, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 618e026a94e14184ca67698c5e8fa58a, type: 2} + - target: {fileID: -2586074106950604098, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_Name + value: Menu + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_Name + value: G3 + objectReference: {fileID: 0} + - target: {fileID: 4146042257782292879, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalPosition.y + value: 0.01594 + objectReference: {fileID: 0} + - target: {fileID: 4146042257782292879, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalPosition.z + value: 0.00019 + objectReference: {fileID: 0} + - target: {fileID: 6344076142717186503, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_Name + value: Trigger + objectReference: {fileID: 0} + - target: {fileID: 7457867762417955681, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7457867762417955681, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7457867762417955681, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7457867762417955681, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalRotation.z + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7457867762417955681, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 7457867762417955681, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 8779315993546084768, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + propertyPath: m_Name + value: G3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} +--- !u!4 &826874955553734840 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4146042257782292879, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + m_PrefabInstance: {fileID: 3670456869294293303} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3786392915043907200 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 467227952477812663, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + m_PrefabInstance: {fileID: 3670456869294293303} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3853582020136445660 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + m_PrefabInstance: {fileID: 3670456869294293303} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6165355476879913558 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7457867762417955681, guid: d77ad19165d84b844ac6b715a2ef6998, type: 3} + m_PrefabInstance: {fileID: 3670456869294293303} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6994976350540698001 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3592357975929350017} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7511558181221131132, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 0e8851bbd4d7b2b4787a54d6d1f11f80, type: 2} + - target: {fileID: 919132149155446097, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + propertyPath: m_Name + value: Power + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} +--- !u!4 &7393112420434179706 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + m_PrefabInstance: {fileID: 6994976350540698001} + m_PrefabAsset: {fileID: 0} +--- !u!1 &7913471332706266304 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: c8f6a9fe365b9dd40a3886228ff5b74c, type: 3} + m_PrefabInstance: {fileID: 6994976350540698001} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1295782513 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7913471332706266304} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7cfc8380945cdad43ae2cacaadf47013, type: 3} + m_Name: + m_EditorClassIdentifier: + power1: {fileID: 2800000, guid: 559b0277d5f635545a7b034007f4f42c, type: 3} + power2: {fileID: 2800000, guid: 41938f04a6f4d884f82644a294f64a74, type: 3} + power3: {fileID: 2800000, guid: fa81cec4ef495964295e19ee18428ddf, type: 3} + power4: {fileID: 2800000, guid: 8d99b31c7444c73479bb9169420ddad9, type: 3} + power5: {fileID: 2800000, guid: 7dfa52c3c61f61542881145b740c7635, type: 3} + controllerL: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3.prefab.meta new file mode 100644 index 0000000..a1e86b3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4632f3d33fc5ea94e8a7673306cbb3e2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials.meta new file mode 100644 index 0000000..f72f89b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 658334ab213323343b6c43f7ca340548 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3.mat new file mode 100644 index 0000000..acb3fe1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3.mat @@ -0,0 +1,79 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: G3 + m_Shader: {fileID: 4800000, guid: 60580f3955898e04bb2f7401cd521e89, type: 3} + m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 7216779f532dc2042bf61c3bc6dcf89b, 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: 46eff69f4f8c8e64ca295ba7356521f1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: 58049bb103947be4cb30fcec054206bc, type: 3} + 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: 2800000, guid: 5f5ec102e78a6a14e850fe5af6a2063b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 0.5 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 0 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3.mat.meta new file mode 100644 index 0000000..7f0549a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 618e026a94e14184ca67698c5e8fa58a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3_Power.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3_Power.mat new file mode 100644 index 0000000..36f206f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3_Power.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: G3_Power + m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 7216779f532dc2042bf61c3bc6dcf89b, 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: 7dfa52c3c61f61542881145b740c7635, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: 58049bb103947be4cb30fcec054206bc, type: 3} + 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: 2800000, guid: 5f5ec102e78a6a14e850fe5af6a2063b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 0.5 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 0 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Tint: {r: 0.14388269, g: 0.9150943, b: 0.66478205, a: 1} + m_BuildTextureStacks: [] diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3_Power.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3_Power.mat.meta new file mode 100644 index 0000000..4e28f34 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/G3_Power.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0e8851bbd4d7b2b4787a54d6d1f11f80 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/TouchSphere.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/TouchSphere.mat new file mode 100644 index 0000000..02bec60 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/TouchSphere.mat @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: TouchSphere + m_Shader: {fileID: 4800000, guid: 60580f3955898e04bb2f7401cd521e89, type: 3} + m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _METALLICGLOSSMAP _NORMALMAP _PARALLAXMAP + _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 2800000, guid: 7216779f532dc2042bf61c3bc6dcf89b, 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: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 2800000, guid: 58049bb103947be4cb30fcec054206bc, type: 3} + 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: 2800000, guid: 5f5ec102e78a6a14e850fe5af6a2063b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 0.5 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 0 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Tint: {r: 0.14388269, g: 0.9150943, b: 0.66478205, a: 1} + m_BuildTextureStacks: [] diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/TouchSphere.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/TouchSphere.mat.meta new file mode 100644 index 0000000..944d7da --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Materials/TouchSphere.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4bfadd3e60167a44fa27c370bfe2ae26 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes.meta new file mode 100644 index 0000000..40a20a2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ffefa80e9b147a444923a7a4d6059a8a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/G3.FBX b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/G3.FBX new file mode 100644 index 0000000..dd028bc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/G3.FBX @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79452bc872755d419862d59539b4204a82bd44983fd2eab7377ece77966e0e7e +size 189040 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/G3.FBX.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/G3.FBX.meta new file mode 100644 index 0000000..a35b929 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/G3.FBX.meta @@ -0,0 +1,105 @@ +fileFormatVersion: 2 +guid: d77ad19165d84b844ac6b715a2ef6998 +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: + - first: + 74: 1827226128182048838 + second: Take 001 + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 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 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + 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 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/dianliang.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/dianliang.fbx new file mode 100644 index 0000000..a91390f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/dianliang.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:276d805c8d6425f4d39419f9113e0c9485a313ec07aae46c0c929226438c109e +size 26912 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/dianliang.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/dianliang.fbx.meta new file mode 100644 index 0000000..40569ed --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Meshes/dianliang.fbx.meta @@ -0,0 +1,102 @@ +fileFormatVersion: 2 +guid: c8f6a9fe365b9dd40a3886228ff5b74c +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 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 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + 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 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Shaders.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Shaders.meta new file mode 100644 index 0000000..4fc8653 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0fe67ffe669552498e1201efc3132bd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Shaders/PXR_G3.shader b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Shaders/PXR_G3.shader new file mode 100644 index 0000000..5076164 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Shaders/PXR_G3.shader @@ -0,0 +1,111 @@ +Shader "PXR/G3" +{ + Properties + { + [NoScaleOffset]_MainTex ("Texture", 2D) = "white" {} + _Tint("Tint",Color) = (1,1,1,1) + } + + SubShader + { + Tags + { + "RenderType"="Opaque" + "Queue"="Geometry" + "IgnoreProjector"="True" + "RenderPipeline" = "UniversalPipeline" + } + LOD 100 + ZWrite On + ZTest On + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + uniform half4 _Tint; + + v2f vert(appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + fixed4 col = tex2D(_MainTex, i.uv) * _Tint; + return col; + } + ENDCG + } + } + SubShader + { + Tags + { + "RenderType"="Opaque" + "Queue"="Geometry" + "IgnoreProjector"="True" + } + LOD 100 + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + uniform half4 _Tint; + + v2f vert(appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + fixed4 col = tex2D(_MainTex, i.uv) * _Tint; + + return col; + } + ENDCG + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Shaders/PXR_G3.shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Shaders/PXR_G3.shader.meta new file mode 100644 index 0000000..95d2d69 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Shaders/PXR_G3.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 60580f3955898e04bb2f7401cd521e89 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures.meta new file mode 100644 index 0000000..60c2f47 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d94e0932c37e8049bf7abab81d4fb4a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/G3.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/G3.png new file mode 100644 index 0000000..858af22 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/G3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df18e0377df880c49d779be67b50d47ec714f174b594015b15eae29c16c8507d +size 106484 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/G3.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/G3.png.meta new file mode 100644 index 0000000..e4fdde2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/G3.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 46eff69f4f8c8e64ca295ba7356521f1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power.meta new file mode 100644 index 0000000..3e81375 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d89c307ebaf152d409ccd2a6bde97451 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_01.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_01.png new file mode 100644 index 0000000..a54fd59 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4203383bff8603641ae357c6d5b9198465f782e48ab397ef84a3e4877cc90779 +size 2237 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_01.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_01.png.meta new file mode 100644 index 0000000..815e7f9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_01.png.meta @@ -0,0 +1,121 @@ +fileFormatVersion: 2 +guid: 7dfa52c3c61f61542881145b740c7635 +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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_02.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_02.png new file mode 100644 index 0000000..cb448da --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41db5ab39c839ef8788c949815e92b48a90d4e4b81a86eb0c88c523d0ae4a682 +size 2202 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_02.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_02.png.meta new file mode 100644 index 0000000..eb68e07 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_02.png.meta @@ -0,0 +1,121 @@ +fileFormatVersion: 2 +guid: 8d99b31c7444c73479bb9169420ddad9 +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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_03.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_03.png new file mode 100644 index 0000000..2ccd1fa --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e60186a2103c37f6da751e7dc51e82e7b66820c3a65406487e8ae5fb09e6ee5b +size 2202 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_03.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_03.png.meta new file mode 100644 index 0000000..3390cd2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_03.png.meta @@ -0,0 +1,121 @@ +fileFormatVersion: 2 +guid: fa81cec4ef495964295e19ee18428ddf +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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_04.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_04.png new file mode 100644 index 0000000..ae1afc4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_04.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c9f04324fbe80c6d7b23fca369c88cebc444822297433c2cc4384d42df82796 +size 2191 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_04.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_04.png.meta new file mode 100644 index 0000000..693db01 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_04.png.meta @@ -0,0 +1,121 @@ +fileFormatVersion: 2 +guid: 41938f04a6f4d884f82644a294f64a74 +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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_05.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_05.png new file mode 100644 index 0000000..1b500ef --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_05.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e4765b125aa9858bedc21b68ffef587661ab35710a5906a2cec775d4bc4a278 +size 2222 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_05.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_05.png.meta new file mode 100644 index 0000000..89374a3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/G3/Textures/Power/dianliang_05.png.meta @@ -0,0 +1,121 @@ +fileFormatVersion: 2 +guid: 559b0277d5f635545a7b034007f4f42c +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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 L.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 L.prefab new file mode 100644 index 0000000..2173a70 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 L.prefab @@ -0,0 +1,220 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7118676274473289238 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7602444466196782252} + m_Layer: 0 + m_Name: Neo 3 L + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7602444466196782252 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7118676274473289238} + 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: + - {fileID: 3664634973460246780} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &3842097607210915607 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 7602444466196782252} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -5608155238930693728, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 850f34a4baa4b4545af156ceeb07a90d, type: 2} + - target: {fileID: -4365425836530490892, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 89969b2a6b51f5e4a90da8a71cec1861, type: 2} + - target: {fileID: 919132149155446097, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + propertyPath: m_Name + value: Neo3_Controller_Left + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + insertIndex: -1 + addedObject: {fileID: 5005911789627569033} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + insertIndex: -1 + addedObject: {fileID: 4528417179619170961} + - targetCorrespondingSourceObject: {fileID: 8245864472737768373, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + insertIndex: -1 + addedObject: {fileID: 2615662343440698278} + m_SourcePrefab: {fileID: 100100000, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} +--- !u!4 &3572223861192634285 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 343058374925023418, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + m_PrefabInstance: {fileID: 3842097607210915607} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3664634973460246780 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + m_PrefabInstance: {fileID: 3842097607210915607} + m_PrefabAsset: {fileID: 0} +--- !u!1 &4148016172058700358 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + m_PrefabInstance: {fileID: 3842097607210915607} + m_PrefabAsset: {fileID: 0} +--- !u!95 &5005911789627569033 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4148016172058700358} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: ad20dacf4b9790246baf957cfb1caf6b, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &4528417179619170961 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4148016172058700358} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0551a3e12ecf0614fa83e84a93d87bb5, type: 3} + m_Name: + m_EditorClassIdentifier: + primary2DAxisTran: {fileID: 7146597371438031146} + gripTran: {fileID: 3572223861192634285} + triggerTran: {fileID: 6103518825919152096} + controllerL: 1 +--- !u!1 &5133801649565021346 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8245864472737768373, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + m_PrefabInstance: {fileID: 3842097607210915607} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2615662343440698278 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5133801649565021346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7cfc8380945cdad43ae2cacaadf47013, type: 3} + m_Name: + m_EditorClassIdentifier: + power1: {fileID: 2800000, guid: 12a19b71643cd314291e0f6c3e9a2ac9, type: 3} + power2: {fileID: 2800000, guid: 00b918d38c21608499365dcf824b50ac, type: 3} + power3: {fileID: 2800000, guid: 77c7eb2aadfa27c40bbae105b90de610, type: 3} + power4: {fileID: 2800000, guid: 2feddea28647636409e9100780016736, type: 3} + power5: {fileID: 2800000, guid: bd452ee420c4d4945abec2c258c1f3b0, type: 3} + controllerL: 1 +--- !u!4 &6103518825919152096 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7054274610534983927, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + m_PrefabInstance: {fileID: 3842097607210915607} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7146597371438031146 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6231872593874564669, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, + type: 3} + m_PrefabInstance: {fileID: 3842097607210915607} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 L.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 L.prefab.meta new file mode 100644 index 0000000..a918aac --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 L.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4ff92632f801a7444958bb72ef6aee53 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 R.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 R.prefab new file mode 100644 index 0000000..30000e8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 R.prefab @@ -0,0 +1,201 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8449525692238721171 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9081911576199211561} + m_Layer: 0 + m_Name: Neo 3 R + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &9081911576199211561 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8449525692238721171} + 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_Children: + - {fileID: 5822148990318121413} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &6288947943713207854 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 9081911576199211561} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4365425836530490892, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 8bc837c9cb3f760448bfd88ed47169ff, type: 2} + - target: {fileID: -4032244408182837490, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: faf88df9fae0748438ea9807963c3787, type: 2} + - target: {fileID: 919132149155446097, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + propertyPath: m_Name + value: Neo3_Controller_Right + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} +--- !u!1 &6595448005392845695 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + m_PrefabInstance: {fileID: 6288947943713207854} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5822148990318121413 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + m_PrefabInstance: {fileID: 6288947943713207854} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2677925273273275803 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8245864472737768373, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + m_PrefabInstance: {fileID: 6288947943713207854} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2840689723880156062 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1140821836707635792, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + m_PrefabInstance: {fileID: 6288947943713207854} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1351744298325674262 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5009278849061388088, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + m_PrefabInstance: {fileID: 6288947943713207854} + m_PrefabAsset: {fileID: 0} +--- !u!4 &4533033954023121504 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1608270464383724466, guid: 98595991fd68c5e419d1d37fed8658ff, + type: 3} + m_PrefabInstance: {fileID: 6288947943713207854} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2394182678425697692 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2677925273273275803} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7cfc8380945cdad43ae2cacaadf47013, type: 3} + m_Name: + m_EditorClassIdentifier: + power1: {fileID: 2800000, guid: 12a19b71643cd314291e0f6c3e9a2ac9, type: 3} + power2: {fileID: 2800000, guid: 00b918d38c21608499365dcf824b50ac, type: 3} + power3: {fileID: 2800000, guid: 77c7eb2aadfa27c40bbae105b90de610, type: 3} + power4: {fileID: 2800000, guid: 2feddea28647636409e9100780016736, type: 3} + power5: {fileID: 2800000, guid: bd452ee420c4d4945abec2c258c1f3b0, type: 3} + hand: 1 +--- !u!95 &9202479174731645555 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6595448005392845695} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: cfd242c98ab12cc40b8b74aedee1ba0c, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!114 &6465803819032203205 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6595448005392845695} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0551a3e12ecf0614fa83e84a93d87bb5, type: 3} + m_Name: + m_EditorClassIdentifier: + primary2DAxisTran: {fileID: 1351744298325674262} + gripTran: {fileID: 2840689723880156062} + triggerTran: {fileID: 4533033954023121504} + controller: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 R.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 R.prefab.meta new file mode 100644 index 0000000..4193eff --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo 3 R.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d22bd72bebc3950409d2de288cdcabd2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3.meta new file mode 100644 index 0000000..a55eea9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c98e2bb991bbb54284c8085323c4904 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators.meta new file mode 100644 index 0000000..07fe938 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 734905aa77a4579459ba901553081a82 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Left.controller b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Left.controller new file mode 100644 index 0000000..2730aa9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Left.controller @@ -0,0 +1,808 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-9191426595414499654 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PrimaryUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -6927826148070536318} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 8118803008505274171, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-6927826148070536318 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 7792254372272168406} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-6816635007179886073 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -693724927639952508} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-6814073410482776126 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsMenuDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -2734212588652438439} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-6290513898463596878 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PicoUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -6816635007179886073} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 4758964296961227170, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-5612465918457798565 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -2567483912494208015} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-4900741514691368024 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsPrimaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3146770524075603833} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-4482213543690290020 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Secondary + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -5612465918457798565} + m_Position: {x: 251.85501, y: 126.734314, z: 0} + - serializedVersion: 1 + m_State: {fileID: 8832678459180422744} + m_Position: {x: 600, y: 140, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1202892387143743188} + m_Position: {x: 600, y: 260, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 940, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -5612465918457798565} +--- !u!1101 &-4398415816402801420 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 4473067805030766429} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-4009141972638398933 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Pico + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -693724927639952508} + m_Position: {x: 260, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: -1220407785047893222} + m_Position: {x: 620, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: -6290513898463596878} + m_Position: {x: 620, y: 250, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 890, y: 130, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -693724927639952508} +--- !u!1102 &-3146770524075603833 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PrimaryDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1322590568204847764} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 2244685009488511520, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &-2829783097282865317 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Menu + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 4473067805030766429} + m_Position: {x: 270, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: -2734212588652438439} + m_Position: {x: 630, y: 130, z: 0} + - serializedVersion: 1 + m_State: {fileID: 2617223191236027407} + m_Position: {x: 630, y: 240, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 890, y: 80, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 4473067805030766429} +--- !u!1102 &-2734212588652438439 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: MenuDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 8727316902194714031} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -6138657454295028014, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-2567483912494208015 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsSecondaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 8832678459180422744} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-1854017476551497913 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsSecondaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1202892387143743188} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-1220407785047893222 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PicoDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 6068134341188172826} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -5170297881424512605, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-758330942240963927 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsPicoDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -1220407785047893222} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-706155607306262420 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Primary + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 7792254372272168406} + m_Position: {x: 299.33624, y: 137.02191, z: 0} + - serializedVersion: 1 + m_State: {fileID: -3146770524075603833} + m_Position: {x: 640, y: 140, z: 0} + - serializedVersion: 1 + m_State: {fileID: -9191426595414499654} + m_Position: {x: 640, y: 250, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 970, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 7792254372272168406} +--- !u!1102 &-693724927639952508 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -758330942240963927} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Neo3_Controller_Left + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: IsPrimaryDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: IsSecondaryDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: IsPicoDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: IsMenuDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Primary + m_StateMachine: {fileID: -706155607306262420} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Secondary + m_StateMachine: {fileID: -4482213543690290020} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Pico + m_StateMachine: {fileID: -4009141972638398933} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Menu + m_StateMachine: {fileID: -2829783097282865317} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &469022800903853931 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -5612465918457798565} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &1202892387143743188 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SecondaryUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 469022800903853931} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 1953617875055348134, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &1322590568204847764 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsPrimaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -9191426595414499654} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &2617223191236027407 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: MenuUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -4398415816402801420} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 5422713515743487830, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &4473067805030766429 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -6814073410482776126} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &6068134341188172826 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsPicoDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -6290513898463596878} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &7792254372272168406 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -4900741514691368024} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &8727316902194714031 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsMenuDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 2617223191236027407} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &8832678459180422744 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SecondaryDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -1854017476551497913} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 3341406217657718590, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Left.controller.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Left.controller.meta new file mode 100644 index 0000000..e6a3cfc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Left.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad20dacf4b9790246baf957cfb1caf6b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Right.controller b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Right.controller new file mode 100644 index 0000000..359c534 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Right.controller @@ -0,0 +1,808 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1101 &-9045032698417526354 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsMediaDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -460965442740021154} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-8390896896939170708 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 3192612043098231889} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-8128492238898596255 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsSecondaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -6936306114273760050} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-7896126806570162014 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsPicoDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 3859518462256462490} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-7212493111924076526 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -7896126806570162014} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-6936306114273760050 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SecondaryDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1108449149145172535} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 3341406217657718590, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-6157458088790806486 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 3943993260266916066} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-5823646784878515946 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Pico + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -7212493111924076526} + m_Position: {x: 300, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: 3859518462256462490} + m_Position: {x: 638, y: 129.66666, z: 0} + - serializedVersion: 1 + m_State: {fileID: 8573725440443162463} + m_Position: {x: 660, y: 240, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 870, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -7212493111924076526} +--- !u!1101 &-2733696436075571451 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsMediaDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 4365221441376584097} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-1067385579691444256 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsPicoDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 8573725440443162463} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-918642885656837873 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -8128492238898596255} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-460965442740021154 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: MediaUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -6157458088790806486} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -7235812280335252764, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Neo3_Controller_Right + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: IsPrimaryDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: IsSecondaryDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: IsPicoDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: IsMediaDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Primary + m_StateMachine: {fileID: 8129606154356254233} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Secondary + m_StateMachine: {fileID: 4978737676985428957} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Pico + m_StateMachine: {fileID: -5823646784878515946} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Media + m_StateMachine: {fileID: 4453794217295508409} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &1108449149145172535 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsSecondaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 8111245043167298827} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &1195131607914064634 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PrimaryUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1728685265371160449} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 8118803008505274171, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &1728685265371160449 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -8390896896939170708} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &2025996920936480961 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7212493111924076526} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &2573745656207587165 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PrimaryDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 5708640103914936983} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 2244685009488511520, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &2638273129834115965 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -918642885656837873} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &3192612043098231889 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsPrimaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 2573745656207587165} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &3859518462256462490 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PicoDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -1067385579691444256} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -5170297881424512605, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &3943993260266916066 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -2733696436075571451} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &4365221441376584097 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: MediaDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -9045032698417526354} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 526006779981904284, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &4453794217295508409 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Media + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 3943993260266916066} + m_Position: {x: 300, y: 130, z: 0} + - serializedVersion: 1 + m_State: {fileID: 4365221441376584097} + m_Position: {x: 664, y: 135.66666, z: 0} + - serializedVersion: 1 + m_State: {fileID: -460965442740021154} + m_Position: {x: 660, y: 270, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 900, y: 80, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 3943993260266916066} +--- !u!1107 &4978737676985428957 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Secondary + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -918642885656837873} + m_Position: {x: 280, y: 130, z: 0} + - serializedVersion: 1 + m_State: {fileID: -6936306114273760050} + m_Position: {x: 620, y: 140, z: 0} + - serializedVersion: 1 + m_State: {fileID: 8111245043167298827} + m_Position: {x: 620, y: 260, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 850, y: 130, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -918642885656837873} +--- !u!1101 &5708640103914936983 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsPrimaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1195131607914064634} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &8111245043167298827 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SecondaryUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 2638273129834115965} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 1953617875055348134, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &8129606154356254233 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Primary + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -8390896896939170708} + m_Position: {x: 260, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: 2573745656207587165} + m_Position: {x: 660, y: 130, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1195131607914064634} + m_Position: {x: 660, y: 270, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 890, y: 50, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -8390896896939170708} +--- !u!1102 &8573725440443162463 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PicoUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 2025996920936480961} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 4758964296961227170, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Right.controller.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Right.controller.meta new file mode 100644 index 0000000..2e33534 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Animators/Neo3_Controller_Right.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cfd242c98ab12cc40b8b74aedee1ba0c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials.meta new file mode 100644 index 0000000..32f6db2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94780a832bc18474793e7b411cab8942 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Left.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Left.mat new file mode 100644 index 0000000..56bbc8c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Left.mat @@ -0,0 +1,128 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-224097736212801340 +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: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Neo3_Controller_Left + m_Shader: {fileID: 4800000, guid: 081528f6308b1134db2b9871766dd820, type: 3} + m_ShaderKeywords: _RENDERMODE_CUTOFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: e2e56f25585aba74f8b763341de4bd95, type: 3} + 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: 2800000, guid: e2e56f25585aba74f8b763341de4bd95, type: 3} + 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_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _FresnelPower: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RenderMode: 0 + - _SampleGI: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 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} + - _DiffuseColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _FresnelCol: {r: 1, g: 1, b: 1, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Left.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Left.mat.meta new file mode 100644 index 0000000..c46934d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Left.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 850f34a4baa4b4545af156ceeb07a90d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Right.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Right.mat new file mode 100644 index 0000000..b822ada --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Right.mat @@ -0,0 +1,125 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-224097736212801340 +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: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Neo3_Controller_Right + m_Shader: {fileID: 4800000, guid: 081528f6308b1134db2b9871766dd820, type: 3} + m_ShaderKeywords: _RENDERMODE_CUTOFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: e2e56f25585aba74f8b763341de4bd95, type: 3} + 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: 2800000, guid: e2e56f25585aba74f8b763341de4bd95, type: 3} + 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_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RenderMode: 0 + - _SampleGI: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 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: [] diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Right.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Right.mat.meta new file mode 100644 index 0000000..47877c6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Controller_Right.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: faf88df9fae0748438ea9807963c3787 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Left.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Left.mat new file mode 100644 index 0000000..e8b61ab --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Left.mat @@ -0,0 +1,144 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-224097736212801340 +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: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Neo3_Power_Left + m_Shader: {fileID: 4800000, guid: 081528f6308b1134db2b9871766dd820, type: 3} + m_ShaderKeywords: _RENDERMODE_CUTOFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: bd452ee420c4d4945abec2c258c1f3b0, type: 3} + 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: 2800000, guid: bd452ee420c4d4945abec2c258c1f3b0, type: 3} + 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_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ColorMode: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 10 + - _EnvironmentReflections: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RenderMode: 0 + - _SampleGI: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Left.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Left.mat.meta new file mode 100644 index 0000000..4e6eb9b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Left.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 89969b2a6b51f5e4a90da8a71cec1861 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Right.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Right.mat new file mode 100644 index 0000000..27ee1cc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Right.mat @@ -0,0 +1,144 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-224097736212801340 +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: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Neo3_Power_Right + m_Shader: {fileID: 4800000, guid: 081528f6308b1134db2b9871766dd820, type: 3} + m_ShaderKeywords: _RENDERMODE_CUTOFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: bd452ee420c4d4945abec2c258c1f3b0, type: 3} + 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: 2800000, guid: bd452ee420c4d4945abec2c258c1f3b0, type: 3} + 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_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ColorMode: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 10 + - _EnvironmentReflections: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RenderMode: 0 + - _SampleGI: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Right.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Right.mat.meta new file mode 100644 index 0000000..86827de --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Materials/Neo3_Power_Right.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8bc837c9cb3f760448bfd88ed47169ff +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes.meta new file mode 100644 index 0000000..467ceec --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 68aa82e03bf3cf9469d5a4ea10953820 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Left.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Left.fbx new file mode 100644 index 0000000..653b465 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Left.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b1089032b8f1cd929b1df2fd1ad37704ae9e273a9de2e92b602fb38f870b05e +size 206528 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Left.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Left.fbx.meta new file mode 100644 index 0000000..aba1e7b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Left.fbx.meta @@ -0,0 +1,422 @@ +fileFormatVersion: 2 +guid: fe8d9fd131b04ed4a8be3355cb9d4aa9 +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: + - first: + 74: 1827226128182048838 + second: Total + - first: + 74: -3100369314251171874 + second: Idle + - first: + 74: 3341406217657718590 + second: SecondaryDown + - first: + 74: 1953617875055348134 + second: SecondaryUp + - first: + 74: 2244685009488511520 + second: PrimaryDown + - first: + 74: 8118803008505274171 + second: PrimaryUp + - first: + 74: -5170297881424512605 + second: PicoDown + - first: + 74: 4758964296961227170 + second: PicoUp + - first: + 74: -6138657454295028014 + second: MenuDown + - first: + 74: 5422713515743487830 + second: MenuUp + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 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: + - serializedVersion: 16 + name: Total + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: Idle + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 0 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondaryDown + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 3 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondaryUp + takeName: Take 001 + internalID: 0 + firstFrame: 3 + lastFrame: 6 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryDown + takeName: Take 001 + internalID: 0 + firstFrame: 6 + lastFrame: 9 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryUp + takeName: Take 001 + internalID: 0 + firstFrame: 9 + lastFrame: 12 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PicoDown + takeName: Take 001 + internalID: 0 + firstFrame: 12 + lastFrame: 15 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PicoUp + takeName: Take 001 + internalID: 0 + firstFrame: 15 + lastFrame: 18 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MenuDown + takeName: Take 001 + internalID: 0 + firstFrame: 18 + lastFrame: 21 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MenuUp + takeName: Take 001 + internalID: 0 + firstFrame: 21 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + 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 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Right.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Right.fbx new file mode 100644 index 0000000..d32ee8d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Right.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84eaa9a6402fba4d164e6c3e708e38b1cd5e17a1287dfc9d3bbd9c2fbc25b396 +size 207136 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Right.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Right.fbx.meta new file mode 100644 index 0000000..c6987cf --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Meshes/Neo3_Controller_Right.fbx.meta @@ -0,0 +1,422 @@ +fileFormatVersion: 2 +guid: 98595991fd68c5e419d1d37fed8658ff +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: + - first: + 74: 1827226128182048838 + second: Total + - first: + 74: -3100369314251171874 + second: Idle + - first: + 74: 3341406217657718590 + second: SecondaryDown + - first: + 74: 1953617875055348134 + second: SecondaryUp + - first: + 74: 2244685009488511520 + second: PrimaryDown + - first: + 74: 8118803008505274171 + second: PrimaryUp + - first: + 74: -5170297881424512605 + second: PicoDown + - first: + 74: 4758964296961227170 + second: PicoUp + - first: + 74: 526006779981904284 + second: MediaDown + - first: + 74: -7235812280335252764 + second: MediaUp + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 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: + - serializedVersion: 16 + name: Total + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: Idle + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 0 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondaryDown + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 3 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondaryUp + takeName: Take 001 + internalID: 0 + firstFrame: 3 + lastFrame: 6 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryDown + takeName: Take 001 + internalID: 0 + firstFrame: 6 + lastFrame: 9 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryUp + takeName: Take 001 + internalID: 0 + firstFrame: 9 + lastFrame: 12 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PicoDown + takeName: Take 001 + internalID: 0 + firstFrame: 12 + lastFrame: 15 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PicoUp + takeName: Take 001 + internalID: 0 + firstFrame: 15 + lastFrame: 18 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MediaDown + takeName: Take 001 + internalID: 0 + firstFrame: 18 + lastFrame: 21 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MediaUp + takeName: Take 001 + internalID: 0 + firstFrame: 21 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + 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 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/PXR_Neo3.shader b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/PXR_Neo3.shader new file mode 100644 index 0000000..9663daa --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/PXR_Neo3.shader @@ -0,0 +1,88 @@ +Shader "PXR/Neo3" +{ + Properties + { + [NoScaleOffset] _MainTex("Texture", 2D) = "white" {} + [KeywordEnum(CutOff,Transparent)]_RenderMode("RenderMode",float) = 0 + } + CGINCLUDE +#include "UnityCG.cginc" + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + uniform float _AlphaScale; + + v2f vert(appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + fixed4 col = tex2D(_MainTex, i.uv); + + #if defined(_RENDERMODE_CUTOFF) + clip(col.a - 0.1); + #elif defined(_RENDERMODE_TRANSPARENT) + + #endif + return col; + } + ENDCG + SubShader + { + Tags + { + "RenderType" = "Opaque" + "IgnoreProjector" = "True" + "RenderPipeline" = "UniversalPipeline" + } + LOD 100 + ZWrite On + ZTest On + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma shader_feature _RENDERMODE_CUTOFF _RENDERMODE_TRANSPARENT + ENDCG + } + } + SubShader + { + Tags + { + "RenderType" = "Opaque" + "IgnoreProjector" = "True" + } + LOD 100 + ZWrite On + ZTest On + Pass + { + Tags + { + "Queue" = "Geometry" + } + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma shader_feature _RENDERMODE_CUTOFF _RENDERMODE_TRANSPARENT + ENDCG + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/PXR_Neo3.shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/PXR_Neo3.shader.meta new file mode 100644 index 0000000..068d1e1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/PXR_Neo3.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 081528f6308b1134db2b9871766dd820 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Textures.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Textures.meta new file mode 100644 index 0000000..cce11a3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b340260f5f0024438d140a6a8246cc5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Textures/controller5_idle.jpg b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Textures/controller5_idle.jpg new file mode 100644 index 0000000..62687ee --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Textures/controller5_idle.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abda2a45afda20b21f440fc0fdfa917552fc3a057ce831498f66499d839cfbd4 +size 57540 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Textures/controller5_idle.jpg.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Textures/controller5_idle.jpg.meta new file mode 100644 index 0000000..d0465d1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/Neo3/Textures/controller5_idle.jpg.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: e2e56f25585aba74f8b763341de4bd95 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 L.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 L.prefab new file mode 100644 index 0000000..bbda764 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 L.prefab @@ -0,0 +1,225 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3222469904833361626 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3222469904833361628} + m_Layer: 0 + m_Name: PICO 4 L + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3222469904833361628 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3222469904833361626} + 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: + - {fileID: 629444517539979649} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1096209834479765098 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3222469904833361628} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4365425836530490892, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: f8ac02e5e051a384ea4184a3dc488e7b, type: 2} + - target: {fileID: 919132149155446097, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_Name + value: PICO4_Controller_Left + objectReference: {fileID: 0} + - target: {fileID: 5493962918168504272, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5493962918168504272, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 44423fbc73cf1334c8ab8ec0d0d79aa0, type: 2} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1183846128716313513} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + insertIndex: -1 + addedObject: {fileID: 6494698954608102966} + - targetCorrespondingSourceObject: {fileID: 8245864472737768373, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + insertIndex: -1 + addedObject: {fileID: 5279413507387948785} + m_SourcePrefab: {fileID: 100100000, guid: c26f3085d9135a54a94a9b180e4e3b03, type: 3} +--- !u!1 &285957516829522747 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_PrefabInstance: {fileID: 1096209834479765098} + m_PrefabAsset: {fileID: 0} +--- !u!95 &1183846128716313513 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 285957516829522747} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 19363699162b3b842a8355f3f58473a7, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &6494698954608102966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 285957516829522747} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0551a3e12ecf0614fa83e84a93d87bb5, type: 3} + m_Name: + m_EditorClassIdentifier: + primary2DAxisTran: {fileID: 6434106829245411415} + gripTran: {fileID: 861397882452066000} + triggerTran: {fileID: 7985819383929400989} + controllerL: 1 +--- !u!4 &629444517539979649 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_PrefabInstance: {fileID: 1096209834479765098} + m_PrefabAsset: {fileID: 0} +--- !u!4 &861397882452066000 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 343058374925023418, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_PrefabInstance: {fileID: 1096209834479765098} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6434106829245411415 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6231872593874564669, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_PrefabInstance: {fileID: 1096209834479765098} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7985819383929400989 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7054274610534983927, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_PrefabInstance: {fileID: 1096209834479765098} + m_PrefabAsset: {fileID: 0} +--- !u!1 &9032451764015113695 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8245864472737768373, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_PrefabInstance: {fileID: 1096209834479765098} + m_PrefabAsset: {fileID: 0} +--- !u!114 &5279413507387948785 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9032451764015113695} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7cfc8380945cdad43ae2cacaadf47013, type: 3} + m_Name: + m_EditorClassIdentifier: + power1: {fileID: 2800000, guid: 12a19b71643cd314291e0f6c3e9a2ac9, type: 3} + power2: {fileID: 2800000, guid: 00b918d38c21608499365dcf824b50ac, type: 3} + power3: {fileID: 2800000, guid: 77c7eb2aadfa27c40bbae105b90de610, type: 3} + power4: {fileID: 2800000, guid: 2feddea28647636409e9100780016736, type: 3} + power5: {fileID: 2800000, guid: bd452ee420c4d4945abec2c258c1f3b0, type: 3} + controllerL: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 L.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 L.prefab.meta new file mode 100644 index 0000000..ddcc26b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 L.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 853840c5196b2486a97e1785f3a68575 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 R.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 R.prefab new file mode 100644 index 0000000..697e7d0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 R.prefab @@ -0,0 +1,206 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1704171135803129665 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1704171135803129664} + m_Layer: 0 + m_Name: PICO 4 R + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1704171135803129664 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1704171135803129665} + 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_Children: + - {fileID: 1597370572271799518} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1270500456293018421 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1704171135803129664} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4365425836530490892, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: f8ac02e5e051a384ea4184a3dc488e7b, type: 2} + - target: {fileID: 919132149155446097, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_Name + value: PICO4_Controller_Right + objectReference: {fileID: 0} + - target: {fileID: 5493962918168504272, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5493962918168504272, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 44423fbc73cf1334c8ab8ec0d0d79aa0, type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} +--- !u!1 &2116921343157737060 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + m_PrefabInstance: {fileID: 1270500456293018421} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1597370572271799518 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + m_PrefabInstance: {fileID: 1270500456293018421} + m_PrefabAsset: {fileID: 0} +--- !u!1 &7191838915158689920 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8245864472737768373, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + m_PrefabInstance: {fileID: 1270500456293018421} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7028788585488283269 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1140821836707635792, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + m_PrefabInstance: {fileID: 1270500456293018421} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6063307438897976333 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5009278849061388088, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + m_PrefabInstance: {fileID: 1270500456293018421} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8651414779421196155 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -1608270464383724466, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, + type: 3} + m_PrefabInstance: {fileID: 1270500456293018421} + m_PrefabAsset: {fileID: 0} +--- !u!95 &5693470270003671477 +Animator: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116921343157737060} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: e5d23cb97e44b93469029f476f8ebd37, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!114 &6541657482657834481 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116921343157737060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0551a3e12ecf0614fa83e84a93d87bb5, type: 3} + m_Name: + m_EditorClassIdentifier: + primary2DAxisTran: {fileID: 6063307438897976333} + gripTran: {fileID: 7028788585488283269} + triggerTran: {fileID: 8651414779421196155} + controller: 1 +--- !u!114 &6808795965444519179 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7191838915158689920} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7cfc8380945cdad43ae2cacaadf47013, type: 3} + m_Name: + m_EditorClassIdentifier: + power1: {fileID: 2800000, guid: 12a19b71643cd314291e0f6c3e9a2ac9, type: 3} + power2: {fileID: 2800000, guid: 00b918d38c21608499365dcf824b50ac, type: 3} + power3: {fileID: 2800000, guid: 77c7eb2aadfa27c40bbae105b90de610, type: 3} + power4: {fileID: 2800000, guid: 2feddea28647636409e9100780016736, type: 3} + power5: {fileID: 2800000, guid: bd452ee420c4d4945abec2c258c1f3b0, type: 3} + hand: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 R.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 R.prefab.meta new file mode 100644 index 0000000..a3103c7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4 R.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3a5f20f82a5224d7d969e99da633fc69 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4.meta new file mode 100644 index 0000000..4368b10 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 04d9107a7fba37040b00fc49724aec9c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators.meta new file mode 100644 index 0000000..3a94935 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ef928aae6bfdf4fdfa39a94329a85fed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Left.controller b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Left.controller new file mode 100644 index 0000000..f86a5b7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Left.controller @@ -0,0 +1,820 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-8818356342431189118 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SecondaryUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 5536540826773790151} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 1953617875055348134, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-7605083351917315223 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 6975715809872034687} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-4573287747299122731 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsSecondaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -8818356342431189118} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-4276026456054432818 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Left_Pico + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -7605083351917315223} + m_Position: {x: 300, y: 140, z: 0} + - serializedVersion: 1 + m_State: {fileID: 5570321150895322606} + m_Position: {x: 680, y: 150, z: 0} + - serializedVersion: 1 + m_State: {fileID: -1992010328539058354} + m_Position: {x: 680, y: 260, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 990, y: 90, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -7605083351917315223} +--- !u!1101 &-3244158346234801040 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsPrimaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 5966179677768690360} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-3194180289695574249 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 3536466409710944805} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-2348111599403223308 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: MenuUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 9142567890135588128} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 5422713515743487830, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-2329523692143257082 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7605083351917315223} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-2256320500683155624 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsPrimaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 5435236245373241787} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-2249603525314330928 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Left_Menu + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -3194180289695574249} + m_Position: {x: 270, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: 4570890459704206221} + m_Position: {x: 690, y: 130, z: 0} + - serializedVersion: 1 + m_State: {fileID: -2348111599403223308} + m_Position: {x: 690, y: 280, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 950, y: 10, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -3194180289695574249} +--- !u!1102 &-1992010328539058354 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PicoUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -2329523692143257082} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -998496362607748373, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-451635216026892401 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 2658436297363880646} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PICO4_Controller_Left + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: IsPrimaryDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: IsSecondaryDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: IsPicoDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: IsMenuDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Left_Primary + m_StateMachine: {fileID: 1741492897020245041} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Left_Secondary + m_StateMachine: {fileID: 3033588339987718297} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Left_Pico + m_StateMachine: {fileID: -4276026456054432818} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Left_Menu + m_StateMachine: {fileID: -2249603525314330928} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &1154757746583211870 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsMenuDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -2348111599403223308} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &1741492897020245041 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Left_Primary + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 2658436297363880646} + m_Position: {x: 270, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: 5966179677768690360} + m_Position: {x: 640, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: 5435236245373241787} + m_Position: {x: 640, y: 240, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 660, y: -60, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 2658436297363880646} +--- !u!1102 &1951878301412197700 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SecondaryDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -4573287747299122731} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 3341406217657718590, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &2658436297363880646 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -3244158346234801040} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &2964063397659424392 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsPicoDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -1992010328539058354} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &3033588339987718297 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Left_Secondary + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 4361785475527541325} + m_Position: {x: 290, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: 1951878301412197700} + m_Position: {x: 652.6667, y: 127.33334, z: 0} + - serializedVersion: 1 + m_State: {fileID: -8818356342431189118} + m_Position: {x: 660, y: 240, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 1000, y: 110, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 4361785475527541325} +--- !u!1101 &3536466409710944805 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsMenuDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 4570890459704206221} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &4361785475527541325 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 5475568207224369914} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &4570890459704206221 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: MenuDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1154757746583211870} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -6138657454295028014, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &5435236245373241787 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PrimaryUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -451635216026892401} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 8118803008505274171, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &5475568207224369914 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsSecondaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1951878301412197700} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &5536540826773790151 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 4361785475527541325} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &5570321150895322606 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PicoDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 2964063397659424392} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -5170297881424512605, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &5966179677768690360 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PrimaryDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -2256320500683155624} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 2244685009488511520, guid: c26f3085d9135a54a94a9b180e4e3b03, + type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &6975715809872034687 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsPicoDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 5570321150895322606} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &9142567890135588128 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3194180289695574249} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Left.controller.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Left.controller.meta new file mode 100644 index 0000000..889921c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Left.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19363699162b3b842a8355f3f58473a7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Right.controller b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Right.controller new file mode 100644 index 0000000..93359d1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Right.controller @@ -0,0 +1,808 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1101 &-9142415716745207845 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsMediaDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -2091816153108118916} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-8562300235842683068 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -3295593606822919124} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-8105266188358090069 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SecondaryDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -1832480346775740714} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 3341406217657718590, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &-8044824831811141246 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Right_Secondary + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 1569132227166347998} + m_Position: {x: 320, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: -8105266188358090069} + m_Position: {x: 760, y: 130, z: 0} + - serializedVersion: 1 + m_State: {fileID: -6212634821001877007} + m_Position: {x: 760, y: 270, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 820, y: -60, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 1569132227166347998} +--- !u!1101 &-7682713894074598839 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsMediaDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 2875392017600832700} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-6212634821001877007 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: SecondaryUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -4500905726358492655} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 1953617875055348134, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-5207325196031152572 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PrimaryUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 4329112968746719182} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 8118803008505274171, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-4904489857285493996 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PicoDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 2744517339392778882} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -5170297881424512605, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-4843961785427834047 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 241017678758796491} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-4500905726358492655 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 1569132227166347998} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-4107606665455645861 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsSecondaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -8105266188358090069} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-3295593606822919124 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsPrimaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 8319416289159210106} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-2091816153108118916 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: MediaDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -7682713894074598839} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 526006779981904284, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &-1832480346775740714 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsSecondaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -6212634821001877007} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &-922973215208669470 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Right_Media + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 6484473039313678328} + m_Position: {x: 290, y: 130, z: 0} + - serializedVersion: 1 + m_State: {fileID: -2091816153108118916} + m_Position: {x: 770, y: 140, z: 0} + - serializedVersion: 1 + m_State: {fileID: 2875392017600832700} + m_Position: {x: 770, y: 300, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 1070, y: -10, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 6484473039313678328} +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PICO4_Controller_Right + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: IsPrimaryDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: IsSecondaryDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: IsPicoDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: IsMediaDown + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Right_Primary + m_StateMachine: {fileID: 1741492897020245041} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Right_Secondary + m_StateMachine: {fileID: -8044824831811141246} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Right_Pico + m_StateMachine: {fileID: 7789198567620252306} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: Right_Media + m_StateMachine: {fileID: -922973215208669470} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 1 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &241017678758796491 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1881500008282669313} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &1569132227166347998 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -4107606665455645861} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &1741492897020245041 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Right_Primary + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -8562300235842683068} + m_Position: {x: 321.6667, y: 115.33334, z: 0} + - serializedVersion: 1 + m_State: {fileID: 8319416289159210106} + m_Position: {x: 780, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: -5207325196031152572} + m_Position: {x: 780, y: 260, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 1020, y: -90, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -8562300235842683068} +--- !u!1101 &1881500008282669313 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: IsPicoDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -4904489857285493996} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &2744517339392778882 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsPicoDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 4554068413230075127} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &2875392017600832700 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: MediaUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 7208228054265189186} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -7235812280335252764, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &4329112968746719182 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -8562300235842683068} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &4554068413230075127 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PicoUp + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -4843961785427834047} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 4758964296961227170, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &6484473039313678328 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Idle + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -9142415716745207845} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -3100369314251171874, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &7208228054265189186 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6484473039313678328} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &7789198567620252306 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Right_Pico + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 241017678758796491} + m_Position: {x: 290, y: 120, z: 0} + - serializedVersion: 1 + m_State: {fileID: -4904489857285493996} + m_Position: {x: 681.6667, y: 128.33334, z: 0} + - serializedVersion: 1 + m_State: {fileID: 4554068413230075127} + m_Position: {x: 700, y: 260, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 840, y: 60, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 241017678758796491} +--- !u!1101 &8279857929998094422 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: IsPrimaryDown + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -5207325196031152572} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0 + m_TransitionOffset: 0 + m_ExitTime: 0 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 3 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &8319416289159210106 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PrimaryDown + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 8279857929998094422} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 2244685009488511520, guid: 88d8ac3ceef6b33439f56e9ca1e2fccd, type: 3} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Right.controller.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Right.controller.meta new file mode 100644 index 0000000..e52b3d9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Animators/PICO4_Controller_Right.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5d23cb97e44b93469029f476f8ebd37 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials.meta new file mode 100644 index 0000000..6621a7c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9073cd4a9198f9749a649545ba11d662 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4_Controller.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4_Controller.mat new file mode 100644 index 0000000..1141974 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4_Controller.mat @@ -0,0 +1,133 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PICO4_Controller + m_Shader: {fileID: 4800000, guid: 4ef37ef333c3dc149b842dd2a3534ca1, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AoTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: a00fd7b7e9b6c0d48951c6cb35cbf9e3, type: 3} + 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: 2800000, guid: a9229f83992ae6c439fd8eb7c677e0e8, type: 3} + 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_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DiffusePower: 0.436 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _FresnelPower: 2.6 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _SampleGI: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 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} + - _DiffuseCol: {r: 1, g: 1, b: 1, a: 1} + - _DiffuseColor: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _FresnelCol: {r: 0.8025545, g: 0.9340862, b: 1.3155276, a: 1} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &2599002908461301438 +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: 4 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4_Controller.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4_Controller.mat.meta new file mode 100644 index 0000000..c283a55 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4_Controller.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44423fbc73cf1334c8ab8ec0d0d79aa0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4__Power.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4__Power.mat new file mode 100644 index 0000000..21387cd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4__Power.mat @@ -0,0 +1,126 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8514308122103988610 +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: 4 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PICO4__Power + m_Shader: {fileID: 4800000, guid: 574ae8e957555df43b4cd9257e834e36, type: 3} + m_ShaderKeywords: _ALPHATEST_ON _RENDERMODE_CUTOFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: bd452ee420c4d4945abec2c258c1f3b0, type: 3} + 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: 2800000, guid: bd452ee420c4d4945abec2c258c1f3b0, type: 3} + 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_Floats: + - _AlphaClip: 1 + - _AlphaScale: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.514 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RenderMode: 0 + - _SampleGI: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 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: [] diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4__Power.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4__Power.mat.meta new file mode 100644 index 0000000..50e8253 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Materials/PICO4__Power.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f8ac02e5e051a384ea4184a3dc488e7b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes.meta new file mode 100644 index 0000000..a219e48 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f71b377fc9dc4444cbca3ac0030da63c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Left.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Left.fbx new file mode 100644 index 0000000..0efb85b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Left.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a8359b0283b53330b8eb20bc30db404520d57b447ea46be34952908a5749f3a +size 276912 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Left.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Left.fbx.meta new file mode 100644 index 0000000..01d49ff --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Left.fbx.meta @@ -0,0 +1,425 @@ +fileFormatVersion: 2 +guid: c26f3085d9135a54a94a9b180e4e3b03 +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: + - first: + 74: -2551817162246492632 + second: CINEMA_4D___ + - first: + 74: 1827226128182048838 + second: Total + - first: + 74: 3341406217657718590 + second: SecondaryDown + - first: + 74: 1953617875055348134 + second: SecondaryUp + - first: + 74: 2244685009488511520 + second: PrimaryDown + - first: + 74: 8118803008505274171 + second: PrimaryUp + - first: + 74: -5170297881424512605 + second: PicoDown + - first: + 74: -998496362607748373 + second: PicoUp + - first: + 74: -6138657454295028014 + second: MenuDown + - first: + 74: 5422713515743487830 + second: MenuUp + - first: + 74: -3100369314251171874 + second: Idle + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 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: + - serializedVersion: 16 + name: Total + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondaryDown + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 3 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondaryUp + takeName: Take 001 + internalID: 0 + firstFrame: 3 + lastFrame: 6 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryDown + takeName: Take 001 + internalID: 0 + firstFrame: 6 + lastFrame: 9 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryUp + takeName: Take 001 + internalID: 0 + firstFrame: 9 + lastFrame: 12 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PicoDown + takeName: Take 001 + internalID: 0 + firstFrame: 12 + lastFrame: 15 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PicoUp + takeName: Take 001 + internalID: 0 + firstFrame: 15 + lastFrame: 18 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MenuDown + takeName: Take 001 + internalID: 0 + firstFrame: 18 + lastFrame: 21 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MenuUp + takeName: Take 001 + internalID: 0 + firstFrame: 21 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: Idle + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 0 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + 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 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Right.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Right.fbx new file mode 100644 index 0000000..42d4179 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Right.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecd8188ca72a8c3b07569cc0691fcead6de23a974cd52cce1b46f1e7f5555a2a +size 274576 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Right.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Right.fbx.meta new file mode 100644 index 0000000..282252b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Meshes/PICO4_Controller_Right.fbx.meta @@ -0,0 +1,425 @@ +fileFormatVersion: 2 +guid: 88d8ac3ceef6b33439f56e9ca1e2fccd +ModelImporter: + serializedVersion: 20200 + internalIDToNameTable: + - first: + 74: -2551817162246492632 + second: CINEMA_4D___ + - first: + 74: 1827226128182048838 + second: Total + - first: + 74: 3341406217657718590 + second: SecondaryDown + - first: + 74: 1953617875055348134 + second: SecondaryUp + - first: + 74: 2244685009488511520 + second: PrimaryDown + - first: + 74: 8118803008505274171 + second: PrimaryUp + - first: + 74: -5170297881424512605 + second: PicoDown + - first: + 74: 4758964296961227170 + second: PicoUp + - first: + 74: 526006779981904284 + second: MediaDown + - first: + 74: -7235812280335252764 + second: MediaUp + - first: + 74: -3100369314251171874 + second: Idle + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 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: + - serializedVersion: 16 + name: Total + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondaryDown + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 3 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondaryUp + takeName: Take 001 + internalID: 0 + firstFrame: 3 + lastFrame: 6 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryDown + takeName: Take 001 + internalID: 0 + firstFrame: 6 + lastFrame: 9 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryUp + takeName: Take 001 + internalID: 0 + firstFrame: 9 + lastFrame: 12 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PicoDown + takeName: Take 001 + internalID: 0 + firstFrame: 12 + lastFrame: 15 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PicoUp + takeName: Take 001 + internalID: 0 + firstFrame: 15 + lastFrame: 18 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MediaDown + takeName: Take 001 + internalID: 0 + firstFrame: 18 + lastFrame: 21 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MediaUp + takeName: Take 001 + internalID: 0 + firstFrame: 21 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: Idle + takeName: Take 001 + internalID: 0 + firstFrame: 0 + lastFrame: 0 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + 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 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders.meta new file mode 100644 index 0000000..8dfeb73 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f38dcd9536298e44939e3670807fa7d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4.shader b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4.shader new file mode 100644 index 0000000..2a822f9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4.shader @@ -0,0 +1,141 @@ +Shader "PXR/PICO4" +{ + Properties + { + [NoScaleOffset]_MainTex ("Texture", 2D) = "white" {} + _DiffuseColor("DiffuseColor",Color) = (1,1,1,1) + [HDR]_FresnelCol("FresnelColor",Color) =(1,1,1,1) + _FresnelPower("FresnelPower",Range(0,99))=1 + } + + SubShader + { + Tags + { + "RenderType"="Opaque" + "Queue"="Geometry" + "IgnoreProjector"="True" + "RenderPipeline" = "UniversalPipeline" + } + LOD 100 + ZWrite On + ZTest On + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + float3 normal:NORMAL; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + float3 nDir:TEXCOORD1; + float3 wsPos:TEXCOORD2; + }; + + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + uniform float4 _FresnelCol; + uniform float _FresnelPower; + uniform float4 _DiffuseColor; + + v2f vert(appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + o.nDir = UnityObjectToWorldNormal(v.normal); + o.wsPos = mul(unity_ObjectToWorld, v.vertex).xyz; + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + float3 vDir = normalize(_WorldSpaceCameraPos.xyz - i.wsPos); + float fresnelRate = 1 - saturate(dot(i.nDir, vDir)); + float3 fresnelCol = pow(fresnelRate, _FresnelPower) * _FresnelCol; + + //非菲尼尔区域的颜色 + fixed4 col = tex2D(_MainTex, i.uv); + col.rgb *= (1 - fresnelCol) * _DiffuseColor; + col.rgb += fresnelCol; + return col; + } + ENDCG + } + } + SubShader + { + Tags + { + "RenderType"="Opaque" "Queue"="Geometry" "IgnoreProjector"="True" + } + LOD 100 + ZWrite On + ZTest On + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + float3 normal:NORMAL; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + float3 nDir:TEXCOORD1; + float3 wsPos:TEXCOORD2; + }; + + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + uniform float4 _FresnelCol; + uniform float _FresnelPower; + uniform float4 _DiffuseColor; + + v2f vert(appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + o.nDir = UnityObjectToWorldNormal(v.normal); + o.wsPos = mul(unity_ObjectToWorld, v.vertex).xyz; + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + float3 vDir = normalize(_WorldSpaceCameraPos.xyz - i.wsPos); + float fresnelRate = 1 - saturate(dot(i.nDir, vDir)); + float3 fresnelCol = pow(fresnelRate, _FresnelPower) * _FresnelCol; + + //非菲尼尔区域的颜色 + fixed4 col = tex2D(_MainTex, i.uv); + col.rgb *= (1 - fresnelCol) * _DiffuseColor; + col.rgb += fresnelCol; + return col; + } + ENDCG + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4.shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4.shader.meta new file mode 100644 index 0000000..f66bf0e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 4ef37ef333c3dc149b842dd2a3534ca1 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4_Power.shader b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4_Power.shader new file mode 100644 index 0000000..13ca4df --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4_Power.shader @@ -0,0 +1,88 @@ +Shader "PXR/PICO4_Power" +{ + Properties + { + [NoScaleOffset]_MainTex ("Texture", 2D) = "white" {} + [KeywordEnum(CutOff,Transparent)]_RenderMode("RenderMode",float) = 0 + } + CGINCLUDE + #include "UnityCG.cginc" + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + uniform sampler2D _MainTex; + uniform float4 _MainTex_ST; + uniform float _AlphaScale; + + v2f vert(appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + fixed4 col = tex2D(_MainTex, i.uv); + + #if defined(_RENDERMODE_CUTOFF) + clip(col.a-0.1); + #elif defined(_RENDERMODE_TRANSPARENT) + + #endif + return col; + } + ENDCG + SubShader + { + Tags + { + "RenderType"="Opaque" + "IgnoreProjector"="True" + "RenderPipeline" = "UniversalPipeline" + } + LOD 100 + ZWrite On + ZTest On + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma shader_feature _RENDERMODE_CUTOFF _RENDERMODE_TRANSPARENT + ENDCG + } + } + SubShader + { + Tags + { + "RenderType"="Opaque" + "IgnoreProjector"="True" + } + LOD 100 + ZWrite On + ZTest On + Pass + { + Tags + { + "Queue"="Geometry" + } + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma shader_feature _RENDERMODE_CUTOFF _RENDERMODE_TRANSPARENT + ENDCG + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4_Power.shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4_Power.shader.meta new file mode 100644 index 0000000..03b85e9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Shaders/PXR_PICO4_Power.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 574ae8e957555df43b4cd9257e834e36 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures.meta new file mode 100644 index 0000000..0c90f45 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0fae7aa8781394852b7e6927142a7e87 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/PICO4_Controller_Albedo.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/PICO4_Controller_Albedo.png new file mode 100644 index 0000000..18e52d3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/PICO4_Controller_Albedo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43012d5c153f64f411be1cc0290d69cf2e68ed78fd4cb1e67e757475a090fdab +size 619759 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/PICO4_Controller_Albedo.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/PICO4_Controller_Albedo.png.meta new file mode 100644 index 0000000..52d9506 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/PICO4_Controller_Albedo.png.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: a9229f83992ae6c439fd8eb7c677e0e8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power.meta new file mode 100644 index 0000000..7c9b232 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 64c8adb70b82f7140ac34539203c3f03 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_01.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_01.png new file mode 100644 index 0000000..a54fd59 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4203383bff8603641ae357c6d5b9198465f782e48ab397ef84a3e4877cc90779 +size 2237 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_01.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_01.png.meta new file mode 100644 index 0000000..e7e48f0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_01.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: bd452ee420c4d4945abec2c258c1f3b0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_02.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_02.png new file mode 100644 index 0000000..cb448da --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41db5ab39c839ef8788c949815e92b48a90d4e4b81a86eb0c88c523d0ae4a682 +size 2202 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_02.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_02.png.meta new file mode 100644 index 0000000..d47b1cf --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_02.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: 2feddea28647636409e9100780016736 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_03.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_03.png new file mode 100644 index 0000000..2ccd1fa --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e60186a2103c37f6da751e7dc51e82e7b66820c3a65406487e8ae5fb09e6ee5b +size 2202 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_03.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_03.png.meta new file mode 100644 index 0000000..8909c56 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_03.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: 77c7eb2aadfa27c40bbae105b90de610 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_04.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_04.png new file mode 100644 index 0000000..ae1afc4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_04.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c9f04324fbe80c6d7b23fca369c88cebc444822297433c2cc4384d42df82796 +size 2191 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_04.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_04.png.meta new file mode 100644 index 0000000..cc9f165 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_04.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: 00b918d38c21608499365dcf824b50ac +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_05.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_05.png new file mode 100644 index 0000000..1b500ef --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_05.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e4765b125aa9858bedc21b68ffef587661ab35710a5906a2cec775d4bc4a278 +size 2222 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_05.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_05.png.meta new file mode 100644 index 0000000..fb3e0f9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4/Textures/Power/PICO4_ControllerPower_05.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: 12a19b71643cd314291e0f6c3e9a2ac9 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L WithHand.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L WithHand.prefab new file mode 100644 index 0000000..dc4083d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L WithHand.prefab @@ -0,0 +1,147 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6884707070625379956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6884707070625379957} + m_Layer: 0 + m_Name: PICO 4U L WithHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6884707070625379957 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6884707070625379956} + 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: + - {fileID: 8233634716778276665} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &6884707071545356312 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 6884707070625379957} + m_Modifications: + - target: {fileID: 2775073962953035163, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_Name + value: leftHand + objectReference: {fileID: 0} + - target: {fileID: 2775073962953035163, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.0042 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_LocalPosition.y + value: -0.0021 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_LocalPosition.z + value: 0.0259 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.99691737 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.078459114 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3666775096546563306, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + propertyPath: controllerL + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 3072678336823176712, guid: add26d782c2f14487a27bc09c2d6f4a6, type: 3} + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 2775073962953035163, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + insertIndex: -1 + addedObject: {fileID: 2572623064472739066} + m_SourcePrefab: {fileID: 100100000, guid: add26d782c2f14487a27bc09c2d6f4a6, type: 3} +--- !u!4 &8233634716778276665 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3299128329192347425, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + m_PrefabInstance: {fileID: 6884707071545356312} + m_PrefabAsset: {fileID: 0} +--- !u!1 &8721343317659680131 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2775073962953035163, guid: add26d782c2f14487a27bc09c2d6f4a6, + type: 3} + m_PrefabInstance: {fileID: 6884707071545356312} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2572623064472739066 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8721343317659680131} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ad904341cd701b544911a03d77412e1d, type: 3} + m_Name: + m_EditorClassIdentifier: + controllerL: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L WithHand.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L WithHand.prefab.meta new file mode 100644 index 0000000..0172495 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L WithHand.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: da2bf9c72e4199340af64e2d379620d3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L.prefab new file mode 100644 index 0000000..cc6500d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L.prefab @@ -0,0 +1,295 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5160734707760153619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5931069152408530641} + m_Layer: 0 + m_Name: PICO 4U L + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5931069152408530641 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5160734707760153619} + 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_Children: + - {fileID: 8080892964840390870} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &8624287918854154045 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5931069152408530641} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7781127744997363934, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0.12693742 + objectReference: {fileID: 0} + - target: {fileID: -7781127744997363934, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0.000015263475 + objectReference: {fileID: 0} + - target: {fileID: -7781127744997363934, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0.0022329798 + objectReference: {fileID: 0} + - target: {fileID: -7688996594785051263, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -29.697998 + objectReference: {fileID: 0} + - target: {fileID: -7688996594785051263, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -2.2798352 + objectReference: {fileID: 0} + - target: {fileID: -7688996594785051263, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 11.741386 + objectReference: {fileID: 0} + - target: {fileID: -5693625846569519967, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -5693625846569519967, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: ad8827df856b77c48911d03893186baa, type: 2} + - target: {fileID: -5693625846569519967, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: f95c08f6b37807e48aed9305bd74470c, type: 2} + - target: {fileID: -5654570259525832428, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 11.724536 + objectReference: {fileID: 0} + - target: {fileID: -5654570259525832428, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0.0000037200857 + objectReference: {fileID: 0} + - target: {fileID: -5654570259525832428, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.00001537513 + objectReference: {fileID: 0} + - target: {fileID: -3323942411010345545, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 8.535552 + objectReference: {fileID: 0} + - target: {fileID: -3323942411010345545, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0.000006142815 + objectReference: {fileID: 0} + - target: {fileID: -3323942411010345545, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000007747097 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_Name + value: o_com_sparrow_left_01 + objectReference: {fileID: 0} + - target: {fileID: 3555671689143584517, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3555671689143584517, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: a1b3dee6f3915d041b67ebcd32db75de, type: 2} + - target: {fileID: 3555671689143584517, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: 06aea12221e3c5d458026234d7a29f76, type: 2} + - target: {fileID: 4603592652929191832, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 7.5000005 + objectReference: {fileID: 0} + - target: {fileID: 4603592652929191832, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.00000010925675 + objectReference: {fileID: 0} + - target: {fileID: 4603592652929191832, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000025799762 + objectReference: {fileID: 0} + - target: {fileID: 5995699586787853611, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 3.6719027 + objectReference: {fileID: 0} + - target: {fileID: 5995699586787853611, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0.0000053415224 + objectReference: {fileID: 0} + - target: {fileID: 5995699586787853611, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000009319388 + objectReference: {fileID: 0} + - target: {fileID: 6026766672989926305, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 84.42591 + objectReference: {fileID: 0} + - target: {fileID: 6026766672989926305, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -32.479977 + objectReference: {fileID: 0} + - target: {fileID: 6026766672989926305, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -32.603096 + objectReference: {fileID: 0} + - target: {fileID: 7929762451639249347, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -89.98021 + objectReference: {fileID: 0} + - target: {fileID: 8969264202375571010, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0.016179634 + objectReference: {fileID: 0} + - target: {fileID: 8969264202375571010, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0.000011937906 + objectReference: {fileID: 0} + - target: {fileID: 8969264202375571010, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -0.000014395326 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b164e7767f1088a458acb6f692c01d83, type: 3} +--- !u!1 &8894268393305381484 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + m_PrefabInstance: {fileID: 8624287918854154045} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8080892964840390870 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + m_PrefabInstance: {fileID: 8624287918854154045} + m_PrefabAsset: {fileID: 0} +--- !u!1 &73386776818536768 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -672416466577623427, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + m_PrefabInstance: {fileID: 8624287918854154045} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7125981584487398076 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7688996594785051263, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + m_PrefabInstance: {fileID: 8624287918854154045} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7182187669596686367 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7781127744997363934, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + m_PrefabInstance: {fileID: 8624287918854154045} + m_PrefabAsset: {fileID: 0} +--- !u!4 &853038978361164159 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8969264202375571010, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + m_PrefabInstance: {fileID: 8624287918854154045} + m_PrefabAsset: {fileID: 0} +--- !u!114 &6968056708381636659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 73386776818536768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7cfc8380945cdad43ae2cacaadf47013, type: 3} + m_Name: + m_EditorClassIdentifier: + power1: {fileID: 2800000, guid: 64029f435f4d71f4999ea9c75b80c91a, type: 3} + power2: {fileID: 2800000, guid: d7540181fc229e8448f8276f14347b1b, type: 3} + power3: {fileID: 2800000, guid: c874b39fd1d35274cb34a60847385eb5, type: 3} + power4: {fileID: 2800000, guid: c097f47a26972414d93241c55296c220, type: 3} + power5: {fileID: 2800000, guid: a0967be76a24d48428a3f5bff9c73fed, type: 3} + controllerL: 1 +--- !u!95 &1939619644872643197 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8894268393305381484} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 22100000, guid: 3e6da93ce58c14438a129fc637235b7d, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &7733379151853503014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8894268393305381484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0551a3e12ecf0614fa83e84a93d87bb5, type: 3} + m_Name: + m_EditorClassIdentifier: + primary2DAxisTran: {fileID: 7182187669596686367} + gripTran: {fileID: 7125981584487398076} + triggerTran: {fileID: 853038978361164159} + controllerL: 1 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L.prefab.meta new file mode 100644 index 0000000..a35313d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U L.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d600af752179d4343b26d6d3eab89e8d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R WithHand.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R WithHand.prefab new file mode 100644 index 0000000..47c874f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R WithHand.prefab @@ -0,0 +1,115 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2955502424807515460 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2955502424807515459} + m_Layer: 0 + m_Name: PICO 4U R WithHand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2955502424807515459 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2955502424807515460} + 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: + - {fileID: 5250245170303330170} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &2955502423956207639 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2955502424807515459} + m_Modifications: + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_LocalPosition.x + value: -0.0042 + objectReference: {fileID: 0} + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_LocalPosition.y + value: -0.0021 + objectReference: {fileID: 0} + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_LocalPosition.z + value: 0.0259 + objectReference: {fileID: 0} + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_LocalRotation.w + value: 0.99691737 + objectReference: {fileID: 0} + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_LocalRotation.x + value: 0.078459114 + objectReference: {fileID: 0} + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7679555789696304599, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + propertyPath: m_Name + value: rightHand + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 4674844603613058633, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} +--- !u!1 &4870447862897688000 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7679555789696304599, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + m_PrefabInstance: {fileID: 2955502423956207639} + m_PrefabAsset: {fileID: 0} +--- !u!114 &4897895960739835987 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4870447862897688000} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ad904341cd701b544911a03d77412e1d, type: 3} + m_Name: + m_EditorClassIdentifier: + controller: 1 +--- !u!4 &5250245170303330170 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7050547815102340973, guid: 1fc5f47805e00457ca97da2351c04180, type: 3} + m_PrefabInstance: {fileID: 2955502423956207639} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R WithHand.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R WithHand.prefab.meta new file mode 100644 index 0000000..590a2b6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R WithHand.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a46f059c710f4d4448336f95461ea483 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R.prefab new file mode 100644 index 0000000..6859353 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R.prefab @@ -0,0 +1,295 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2641197622611298662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1125849990618630095} + m_Layer: 0 + m_Name: PICO 4U R + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1125849990618630095 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2641197622611298662} + 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: + - {fileID: 5551578648160335081} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &5368732899296154370 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1125849990618630095} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalRotation.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8109707847617594908, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -31.27538 + objectReference: {fileID: 0} + - target: {fileID: -8109707847617594908, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -11.728481 + objectReference: {fileID: 0} + - target: {fileID: -8109707847617594908, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 4.831497 + objectReference: {fileID: 0} + - target: {fileID: -7932800877738653352, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -7932800877738653352, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: a1b3dee6f3915d041b67ebcd32db75de, type: 2} + - target: {fileID: -7932800877738653352, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: 06aea12221e3c5d458026234d7a29f76, type: 2} + - target: {fileID: -7416185511445563616, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0.00000028176754 + objectReference: {fileID: 0} + - target: {fileID: -7416185511445563616, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.00000614979 + objectReference: {fileID: 0} + - target: {fileID: -7416185511445563616, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -179.99998 + objectReference: {fileID: 0} + - target: {fileID: -7218032476936822789, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0.00000028634938 + objectReference: {fileID: 0} + - target: {fileID: -7218032476936822789, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.0000082433335 + objectReference: {fileID: 0} + - target: {fileID: -7218032476936822789, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 179.99998 + objectReference: {fileID: 0} + - target: {fileID: -6218109077856969745, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0.00000028176416 + objectReference: {fileID: 0} + - target: {fileID: -6218109077856969745, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.0000060185657 + objectReference: {fileID: 0} + - target: {fileID: -6218109077856969745, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 179.99998 + objectReference: {fileID: 0} + - target: {fileID: -4611111201729923251, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0.00000028176754 + objectReference: {fileID: 0} + - target: {fileID: -4611111201729923251, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.0000061498104 + objectReference: {fileID: 0} + - target: {fileID: -4611111201729923251, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -179.99998 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_Name + value: o_com_sparrow_right_01 + objectReference: {fileID: 0} + - target: {fileID: 1444753995505789054, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0.00000028176754 + objectReference: {fileID: 0} + - target: {fileID: 1444753995505789054, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.0000061497535 + objectReference: {fileID: 0} + - target: {fileID: 1444753995505789054, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -179.99998 + objectReference: {fileID: 0} + - target: {fileID: 3489955779830630181, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0.00000027768849 + objectReference: {fileID: 0} + - target: {fileID: 3489955779830630181, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -0.000004317258 + objectReference: {fileID: 0} + - target: {fileID: 3489955779830630181, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 179.99998 + objectReference: {fileID: 0} + - target: {fileID: 4975900088886697368, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -84.42591 + objectReference: {fileID: 0} + - target: {fileID: 4975900088886697368, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -147.52031 + objectReference: {fileID: 0} + - target: {fileID: 4975900088886697368, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 147.39717 + objectReference: {fileID: 0} + - target: {fileID: 6972209725336936091, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6972209725336936091, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: ad8827df856b77c48911d03893186baa, type: 2} + - target: {fileID: 6972209725336936091, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: f95c08f6b37807e48aed9305bd74470c, type: 2} + - target: {fileID: 7593785717723561821, guid: 85013fab55cf932458682912756a4fcb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -89.98021 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 85013fab55cf932458682912756a4fcb, type: 3} +--- !u!4 &5040959055159241446 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8109707847617594908, guid: 85013fab55cf932458682912756a4fcb, type: 3} + m_PrefabInstance: {fileID: 5368732899296154370} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5062322995424210515 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 85013fab55cf932458682912756a4fcb, type: 3} + m_PrefabInstance: {fileID: 5368732899296154370} + m_PrefabAsset: {fileID: 0} +--- !u!95 &6502569784002467861 +Animator: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5062322995424210515} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 22100000, guid: 5b670b470d1b64368901166ffb20d7ed, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorControllerStateOnDisable: 0 +--- !u!114 &4495004757731146630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5062322995424210515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0551a3e12ecf0614fa83e84a93d87bb5, type: 3} + m_Name: + m_EditorClassIdentifier: + primary2DAxisTran: {fileID: 6813205415513488252} + gripTran: {fileID: 5040959055159241446} + triggerTran: {fileID: 7148695427224963309} + controller: 1 +--- !u!4 &5551578648160335081 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 85013fab55cf932458682912756a4fcb, type: 3} + m_PrefabInstance: {fileID: 5368732899296154370} + m_PrefabAsset: {fileID: 0} +--- !u!4 &6813205415513488252 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1444753995505789054, guid: 85013fab55cf932458682912756a4fcb, type: 3} + m_PrefabInstance: {fileID: 5368732899296154370} + m_PrefabAsset: {fileID: 0} +--- !u!1 &6819263356154732396 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1451128595764268142, guid: 85013fab55cf932458682912756a4fcb, type: 3} + m_PrefabInstance: {fileID: 5368732899296154370} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3161037079813014974 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6819263356154732396} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7cfc8380945cdad43ae2cacaadf47013, type: 3} + m_Name: + m_EditorClassIdentifier: + power1: {fileID: 2800000, guid: 64029f435f4d71f4999ea9c75b80c91a, type: 3} + power2: {fileID: 2800000, guid: d7540181fc229e8448f8276f14347b1b, type: 3} + power3: {fileID: 2800000, guid: c874b39fd1d35274cb34a60847385eb5, type: 3} + power4: {fileID: 2800000, guid: c097f47a26972414d93241c55296c220, type: 3} + power5: {fileID: 2800000, guid: a0967be76a24d48428a3f5bff9c73fed, type: 3} + hand: 0 +--- !u!4 &7148695427224963309 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -6218109077856969745, guid: 85013fab55cf932458682912756a4fcb, type: 3} + m_PrefabInstance: {fileID: 5368732899296154370} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R.prefab.meta new file mode 100644 index 0000000..99a6bcf --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U R.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ab854e81d8fcde04eb1603f397457afc +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U.meta new file mode 100644 index 0000000..afaf315 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f830968c51875e48baa2c46abf7c5c6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation.meta new file mode 100644 index 0000000..d8a7130 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d098d43efa69d894bb8c41514e5ac2f6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Left.overrideController b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Left.overrideController new file mode 100644 index 0000000..3355b61 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Left.overrideController @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!221 &22100000 +AnimatorOverrideController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PICO4U_Controller_Left + m_Controller: {fileID: 9100000, guid: ad20dacf4b9790246baf957cfb1caf6b, type: 2} + m_Clips: + - m_OriginalClip: {fileID: -3100369314251171874, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_OverrideClip: {fileID: 6313567973396844840, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + - m_OriginalClip: {fileID: -6138657454295028014, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_OverrideClip: {fileID: 542095706707716219, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + - m_OriginalClip: {fileID: 5422713515743487830, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_OverrideClip: {fileID: -6322513800116873103, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + - m_OriginalClip: {fileID: -5170297881424512605, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_OverrideClip: {fileID: -4492507055040485151, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + - m_OriginalClip: {fileID: 4758964296961227170, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_OverrideClip: {fileID: -2820481499951442891, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + - m_OriginalClip: {fileID: 2244685009488511520, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_OverrideClip: {fileID: -3903663820710633180, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + - m_OriginalClip: {fileID: 8118803008505274171, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_OverrideClip: {fileID: -2480445514951097906, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + - m_OriginalClip: {fileID: 3341406217657718590, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_OverrideClip: {fileID: -4524156999063776215, guid: b164e7767f1088a458acb6f692c01d83, type: 3} + - m_OriginalClip: {fileID: 1953617875055348134, guid: fe8d9fd131b04ed4a8be3355cb9d4aa9, type: 3} + m_OverrideClip: {fileID: -4813023440974984355, guid: b164e7767f1088a458acb6f692c01d83, type: 3} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Left.overrideController.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Left.overrideController.meta new file mode 100644 index 0000000..d667d5a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Left.overrideController.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3e6da93ce58c14438a129fc637235b7d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 22100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Right.overrideController b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Right.overrideController new file mode 100644 index 0000000..114b2b4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Right.overrideController @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!221 &22100000 +AnimatorOverrideController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PICO4U_Controller_Right + m_Controller: {fileID: 9100000, guid: cfd242c98ab12cc40b8b74aedee1ba0c, type: 2} + m_Clips: + - m_OriginalClip: {fileID: -3100369314251171874, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_OverrideClip: {fileID: -8910972301016173187, guid: 85013fab55cf932458682912756a4fcb, type: 3} + - m_OriginalClip: {fileID: 526006779981904284, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_OverrideClip: {fileID: 6038508935759725102, guid: 85013fab55cf932458682912756a4fcb, type: 3} + - m_OriginalClip: {fileID: -7235812280335252764, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_OverrideClip: {fileID: -3963122108496336211, guid: 85013fab55cf932458682912756a4fcb, type: 3} + - m_OriginalClip: {fileID: -5170297881424512605, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_OverrideClip: {fileID: 5544957027817521514, guid: 85013fab55cf932458682912756a4fcb, type: 3} + - m_OriginalClip: {fileID: 4758964296961227170, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_OverrideClip: {fileID: 8638949603956449617, guid: 85013fab55cf932458682912756a4fcb, type: 3} + - m_OriginalClip: {fileID: 2244685009488511520, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_OverrideClip: {fileID: 6191762636365824326, guid: 85013fab55cf932458682912756a4fcb, type: 3} + - m_OriginalClip: {fileID: 8118803008505274171, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_OverrideClip: {fileID: -1761757082966585417, guid: 85013fab55cf932458682912756a4fcb, type: 3} + - m_OriginalClip: {fileID: 3341406217657718590, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_OverrideClip: {fileID: 580736372498371490, guid: 85013fab55cf932458682912756a4fcb, type: 3} + - m_OriginalClip: {fileID: 1953617875055348134, guid: 98595991fd68c5e419d1d37fed8658ff, type: 3} + m_OverrideClip: {fileID: 6550963475456108365, guid: 85013fab55cf932458682912756a4fcb, type: 3} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Right.overrideController.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Right.overrideController.meta new file mode 100644 index 0000000..8910de6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/PICO4U_Controller_Right.overrideController.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5b670b470d1b64368901166ffb20d7ed +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 22100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh.meta new file mode 100644 index 0000000..ef5d694 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: af0c9322577f6934a87d316856b2b115 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_left_01.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_left_01.fbx new file mode 100644 index 0000000..8d3fa15 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_left_01.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9059a68298a1a710cdea59410e54faab6d585f07f9628e61538599e48f795547 +size 748828 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_left_01.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_left_01.fbx.meta new file mode 100644 index 0000000..603bee8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_left_01.fbx.meta @@ -0,0 +1,396 @@ +fileFormatVersion: 2 +guid: b164e7767f1088a458acb6f692c01d83 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + 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: + - serializedVersion: 16 + name: Total + takeName: o_com_sparrow_left_01|PICO4S_Controller_Left|CINEMA_4D___|Layer0 + internalID: 6533314452094762490 + firstFrame: 0 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondaryDown + takeName: o_com_sparrow_left_01|PICO4S_Controller_Left|CINEMA_4D___|Layer0 + internalID: -4524156999063776215 + firstFrame: 0 + lastFrame: 3 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondayUp + takeName: o_com_sparrow_left_01|PICO4S_Controller_Left|CINEMA_4D___|Layer0 + internalID: -4813023440974984355 + firstFrame: 3 + lastFrame: 6 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryDown + takeName: o_com_sparrow_left_01|PICO4S_Controller_Left|CINEMA_4D___|Layer0 + internalID: -3903663820710633180 + firstFrame: 6 + lastFrame: 9 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryUp + takeName: o_com_sparrow_left_01|PICO4S_Controller_Left|CINEMA_4D___|Layer0 + internalID: -2480445514951097906 + firstFrame: 9 + lastFrame: 12 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PICODown + takeName: o_com_sparrow_left_01|PICO4S_Controller_Left|CINEMA_4D___|Layer0 + internalID: -4492507055040485151 + firstFrame: 12 + lastFrame: 15 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PICOUp + takeName: o_com_sparrow_left_01|PICO4S_Controller_Left|CINEMA_4D___|Layer0 + internalID: -2820481499951442891 + firstFrame: 15 + lastFrame: 18 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MenuDown + takeName: o_com_sparrow_left_01|PICO4S_Controller_Left|CINEMA_4D___|Layer0 + internalID: 542095706707716219 + firstFrame: 18 + lastFrame: 21 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MenuUp + takeName: o_com_sparrow_left_01|PICO4S_Controller_Left|CINEMA_4D___|Layer0 + internalID: -6322513800116873103 + firstFrame: 21 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: Idle + takeName: o_com_sparrow_left_01|PICO4S_Controller_Left|CINEMA_4D___|Layer0 + internalID: 6313567973396844840 + firstFrame: 0 + lastFrame: 0 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 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 + 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 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_right_01.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_right_01.fbx new file mode 100644 index 0000000..dc6e8d0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_right_01.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1874bc6786ebb90085db42fcaee8c63dd92f779a5b556f28afaad3c68ed84578 +size 749228 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_right_01.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_right_01.fbx.meta new file mode 100644 index 0000000..5197a14 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Animation/mesh/o_com_PICO4U_right_01.fbx.meta @@ -0,0 +1,396 @@ +fileFormatVersion: 2 +guid: 85013fab55cf932458682912756a4fcb +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + 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: + - serializedVersion: 16 + name: Total + takeName: o_com_sparrow_right_01|PICO4S_Controller_Right|CINEMA_4D___|Layer0 + internalID: 1873956295834415900 + firstFrame: 0 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondaryDown + takeName: o_com_sparrow_right_01|PICO4S_Controller_Right|CINEMA_4D___|Layer0 + internalID: 580736372498371490 + firstFrame: 0 + lastFrame: 3 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: SecondayUp + takeName: o_com_sparrow_right_01|PICO4S_Controller_Right|CINEMA_4D___|Layer0 + internalID: 6550963475456108365 + firstFrame: 3 + lastFrame: 6 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryDown + takeName: o_com_sparrow_right_01|PICO4S_Controller_Right|CINEMA_4D___|Layer0 + internalID: 6191762636365824326 + firstFrame: 6 + lastFrame: 9 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PrimaryUp + takeName: o_com_sparrow_right_01|PICO4S_Controller_Right|CINEMA_4D___|Layer0 + internalID: -1761757082966585417 + firstFrame: 9 + lastFrame: 12 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PICODown + takeName: o_com_sparrow_right_01|PICO4S_Controller_Right|CINEMA_4D___|Layer0 + internalID: 5544957027817521514 + firstFrame: 12 + lastFrame: 15 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: PICOUp + takeName: o_com_sparrow_right_01|PICO4S_Controller_Right|CINEMA_4D___|Layer0 + internalID: 8638949603956449617 + firstFrame: 15 + lastFrame: 18 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MenuDown + takeName: o_com_sparrow_right_01|PICO4S_Controller_Right|CINEMA_4D___|Layer0 + internalID: 6038508935759725102 + firstFrame: 18 + lastFrame: 21 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: MenuUp + takeName: o_com_sparrow_right_01|PICO4S_Controller_Right|CINEMA_4D___|Layer0 + internalID: -3963122108496336211 + firstFrame: 21 + lastFrame: 24 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + - serializedVersion: 16 + name: Idle + takeName: o_com_sparrow_right_01|PICO4S_Controller_Right|CINEMA_4D___|Layer0 + internalID: -8910972301016173187 + firstFrame: 0 + lastFrame: 0 + wrapMode: 0 + orientationOffsetY: 0 + level: 0 + cycleOffset: 0 + loop: 0 + hasAdditiveReferencePose: 0 + loopTime: 0 + loopBlend: 0 + loopBlendOrientation: 0 + loopBlendPositionY: 0 + loopBlendPositionXZ: 0 + keepOriginalOrientation: 0 + keepOriginalPositionY: 1 + keepOriginalPositionXZ: 0 + heightFromFeet: 0 + mirror: 0 + bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 + curves: [] + events: [] + transformMask: [] + maskType: 3 + maskSource: {instanceID: 0} + additiveReferencePoseFrame: 0 + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 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 + 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 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader.meta new file mode 100644 index 0000000..d050467 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b7d78c478152ec4fa1a887be8f572f8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_power.shader b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_power.shader new file mode 100644 index 0000000..3288636 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_power.shader @@ -0,0 +1,96 @@ +Shader "o_com_power_code" +{ + Properties + { + _MainTex ("Texture", 2D) = "white" {} + } + + CGINCLUDE + #include "UnityCG.cginc" + #pragma target 3.0 + + sampler2D _MainTex; + float4 _MainTex_ST; + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + }; + + + + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + UNITY_TRANSFER_FOG(o,o.vertex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + // sample the texture + fixed4 col = tex2D(_MainTex, i.uv); + return col; + } + ENDCG + SubShader + { + Tags + { + "RenderPipeline"="UniversalPipeline" + "Queue" = "Transparent" + "RenderType" = "Opaque" + } + + Pass + { + Name "Forward" + Tags { "LightMode"="UniversalForward" } + + Blend One Zero, One Zero + ZWrite On + ZTest LEqual + Offset 0,0 + ColorMask RGBA + + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } + + + } + SubShader + { + Tags + { + "Queue" = "Transparent" + "RenderType" = "Opaque" + "IgnoreProjector" = "True" + } + Pass + { + Name "Interior" + Blend SrcAlpha OneMinusSrcAlpha + ZWrite On + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } + } +} + diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_power.shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_power.shader.meta new file mode 100644 index 0000000..36950d4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_power.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6837ed7aa7a8c8d4597569922ffcbca5 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_shader_code.shader b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_shader_code.shader new file mode 100644 index 0000000..12ac460 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_shader_code.shader @@ -0,0 +1,146 @@ +Shader "o_com_shader_code" +{ + Properties + { + [HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5 + [HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1) + _LightColor_01("Light Color_01", Color) = (0.3921569,0.3921569,0.3921569,1) + _LightColor_02("Light Color_02", Color) = (0.3921569,0.3921569,0.3921569,1) + _MainTex("MainTex", 2D) = "white" {} + _Tint("Tint", Color) = (1,1,1,0) + _Matcap_01("Matcap_01", 2D) = "white" {} + _Matcap_02("Matcap_02", 2D) = "white" {} + _MatcapIntensity("MatcapIntensity", Range( 0 , 2)) = 0 + _Light("Light", Vector) = (0,0,0,0) + _Light_Power("Light_Power", Range( 0 , 4)) = 1 + [Toggle(_LIGHT_O_ON)] _Light_O("Light_O", Float) = 0 + _Mask("Mask", 2D) = "white" {} + } + + + CGINCLUDE + #include "Lighting.cginc" + #pragma target 3.0 + + float4 _Tint; + float4 _LightColor_01; + float4 _LightColor_02; + float3 _Light; + float _MatcapIntensity; + float _Light_Power; + + sampler2D _MainTex; + sampler2D _Matcap_01; + sampler2D _Matcap_02; + sampler2D _Mask; + + + struct VertexInput + { + float4 vertex : POSITION; + float3 normal : NORMAL; + float4 texcoord : TEXCOORD0; + }; + + struct VertexOutput + { + float4 clipPos : SV_POSITION; + float4 uv : TEXCOORD3; + float4 vertex : TEXCOORD4; + float4 worldNormal : TEXCOORD5; + }; + + + VertexOutput vert ( VertexInput v ) + { + VertexOutput o = (VertexOutput)0; + o.worldNormal.xyz = UnityObjectToWorldNormal(v.normal); + o.uv.xy = v.texcoord.xy; + o.vertex = v.vertex; + //float3 positionWS = mul(unity_ObjectToWorld, v.vertex.xyz); + float4 positionCS = UnityObjectToClipPos(v.vertex); + o.clipPos = positionCS; + return o; + } + + half4 frag ( VertexOutput IN ) : SV_Target + { + float2 uv = IN.uv.xy * float2( 1,1 ) + float2( 0,0 ); + float4 maintex = tex2D( _MainTex, uv ); + float3 ViewPos = mul( UNITY_MATRIX_MV, float4( IN.vertex.xyz, 1 ) ).xyz; + ViewPos = normalize( ViewPos ); + float3 worldNormal = normalize(IN.worldNormal.xyz); + float3 break80 = cross( ViewPos , mul( UNITY_MATRIX_V, float4( worldNormal , 0.0 ) ).xyz ); + float2 MatCapUV = (float2(-break80.y , break80.x)); + MatCapUV = (MatCapUV*0.5 + 0.5); + float4 mask = tex2D( _Mask, uv ); + float4 lerpMatCap = lerp( tex2D( _Matcap_01, MatCapUV ) , tex2D( _Matcap_02, MatCapUV ) , mask.r); + float4 mainColor = ( ( maintex * _Tint ) * ( lerpMatCap * _MatcapIntensity ) ); + mainColor+=mainColor; + float4 lerpLightColor = lerp( _LightColor_01 , _LightColor_02 , mask.r); + float lambert = dot( worldNormal , _Light ); + float4 Color = ( mainColor + ( ( ( lerpLightColor * max( lambert , 0.0 ) ) / 20.0 ) * _Light_Power ) ); + float4 finalCol = float4(Color.rgb, 1); + + return finalCol; + } + + ENDCG + + SubShader + { + Tags + { + "RenderPipeline"="UniversalPipeline" + "Queue" = "Geometry" + "RenderType" = "Opaque" + } + + Pass + { + Name "Forward" + Tags { "LightMode"="UniversalForward" } + + Blend One Zero, One Zero + ZWrite On + ZTest LEqual + Offset 0,0 + ColorMask RGBA + + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } + + + } + + SubShader + { + Tags + { + "Queue" = "Transparent" + "RenderType" = "Opaque" + "IgnoreProjector" = "True" + } + LOD 200 + Pass + { + Name "Depth" + ZWrite On + ColorMask 0 + } + Pass + { + Name "Interior" + Blend SrcAlpha OneMinusSrcAlpha + ZWrite On + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_shader_code.shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_shader_code.shader.meta new file mode 100644 index 0000000..42bfb8b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Shader/o_com_shader_code.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 296b2106775d132469d4ddadfa937fc4 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture.meta new file mode 100644 index 0000000..4dec829 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1fe299767e7d8db4eaefe18b72634458 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_01_b.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_01_b.png new file mode 100644 index 0000000..f650805 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_01_b.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8e89696ff362b2703dc17c340f715078dee74617487acfc200a144eea1efc1e +size 227660 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_01_b.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_01_b.png.meta new file mode 100644 index 0000000..121a029 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_01_b.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: e1721d77f8f68c941899d270ca2b57f5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_a.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_a.png new file mode 100644 index 0000000..3b984fa --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_a.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71045c6c27d36b6497ae8a52a4d8583491554ad0580d763bb9f1a879750d43fd +size 11870 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_a.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_a.png.meta new file mode 100644 index 0000000..f03bc08 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_a.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: c4959a0adbe7a874cb1b2b7641284ede +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_b.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_b.png new file mode 100644 index 0000000..944f0f9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_b.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80c27cef24fbc99c854d409aa6867c78f5f5a111b9ee921ce6eeeb103d0ff0d6 +size 170972 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_b.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_b.png.meta new file mode 100644 index 0000000..9ba8439 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_02_b.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: a12a0e3ab0496e54688b85ba2e1d4ea7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_01.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_01.png new file mode 100644 index 0000000..bf5df6c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6472f05338a30915d0106fbed09318774e7ecb7d325bbff900dfd6ecb51c7622 +size 2480 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_01.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_01.png.meta new file mode 100644 index 0000000..388da74 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_01.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 6a8f8e966738570459db901ed84ef9b6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_02.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_02.png new file mode 100644 index 0000000..e4193fd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77f00a01fad87d668e71d3144c354beac43087c4850e38a499947eaf4e4c54cd +size 2812 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_02.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_02.png.meta new file mode 100644 index 0000000..19dc968 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_02.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 4f3c1260c5bd8c64985946fc6af20f00 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_03.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_03.png new file mode 100644 index 0000000..57a63bc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbdb576ed55458b08f3ee4fcdfe2726e21f50c8100289cfa849881ce9bc67fbe +size 2812 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_03.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_03.png.meta new file mode 100644 index 0000000..91d6f4a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_03.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: ec194f0bc3d9ae14082c5e7cff8fb17c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_04.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_04.png new file mode 100644 index 0000000..67aa278 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_04.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c62f70748e516b98122003beb1767c3c6e1179a40dbf15c1115ce1653ca8604 +size 1512 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_04.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_04.png.meta new file mode 100644 index 0000000..7f691f8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_04.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 5496c96b97fb7ee469f4ca36671c32d0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_05.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_05.png new file mode 100644 index 0000000..484d2f0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_05.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9831761497540bed67c62652c1007c99ff83445f615363a138a7599dff9e2c1e +size 1521 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_05.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_05.png.meta new file mode 100644 index 0000000..f841971 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_PICO4U_power_05.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 0f37039b4a5cd3f48bff00c92911c80c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_01_b.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_01_b.png new file mode 100644 index 0000000..d4cdbfe --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_01_b.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9e0add7b235555dfe974b1e066f339c36896e965697ca0f9b722568dba4405e +size 22292 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_01_b.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_01_b.png.meta new file mode 100644 index 0000000..8424890 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_01_b.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: ac8818945755185409a09289d09dda7a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_02_b.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_02_b.png new file mode 100644 index 0000000..bf7a7ac --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_02_b.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1473c1ac1eea230e40569e462c97583bcfd3b963c760278ccca9056e17cfef7 +size 34050 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_02_b.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_02_b.png.meta new file mode 100644 index 0000000..ee1f72f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_02_b.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 85601fedf8a9794499989ae0ccb88a86 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_03_b.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_03_b.png new file mode 100644 index 0000000..54f4119 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_03_b.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34fc236f4bfc2f33520b45cd63c5bba9bd9bddfc8afec3d8a985bd0f4d4a562a +size 28215 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_03_b.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_03_b.png.meta new file mode 100644 index 0000000..f99a090 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Texture/o_com_matcap_03_b.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 768b1dc8c63b0c44d91c84b5cf367592 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 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 + 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 + 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 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures.meta new file mode 100644 index 0000000..6111c1d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5398d8d2caaa346cba7c055a0d458983 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power.meta new file mode 100644 index 0000000..7586eb8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0a82278058340fe45aa3e09270569443 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_01.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_01.png new file mode 100644 index 0000000..bf5df6c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6472f05338a30915d0106fbed09318774e7ecb7d325bbff900dfd6ecb51c7622 +size 2480 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_01.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_01.png.meta new file mode 100644 index 0000000..f38ae13 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_01.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: a0967be76a24d48428a3f5bff9c73fed +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_02.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_02.png new file mode 100644 index 0000000..e4193fd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_02.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77f00a01fad87d668e71d3144c354beac43087c4850e38a499947eaf4e4c54cd +size 2812 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_02.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_02.png.meta new file mode 100644 index 0000000..c51070c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_02.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: c097f47a26972414d93241c55296c220 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_03.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_03.png new file mode 100644 index 0000000..57a63bc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_03.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbdb576ed55458b08f3ee4fcdfe2726e21f50c8100289cfa849881ce9bc67fbe +size 2812 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_03.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_03.png.meta new file mode 100644 index 0000000..c9d5de3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_03.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: c874b39fd1d35274cb34a60847385eb5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_04.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_04.png new file mode 100644 index 0000000..67aa278 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_04.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c62f70748e516b98122003beb1767c3c6e1179a40dbf15c1115ce1653ca8604 +size 1512 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_04.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_04.png.meta new file mode 100644 index 0000000..b1fc79d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_04.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: d7540181fc229e8448f8276f14347b1b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_05.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_05.png new file mode 100644 index 0000000..484d2f0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_05.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9831761497540bed67c62652c1007c99ff83445f615363a138a7599dff9e2c1e +size 1521 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_05.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_05.png.meta new file mode 100644 index 0000000..4d74fef --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/Power/o_com_PICO4U_power_05.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 64029f435f4d71f4999ea9c75b80c91a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_01_b.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_01_b.png new file mode 100644 index 0000000..d4cdbfe --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_01_b.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9e0add7b235555dfe974b1e066f339c36896e965697ca0f9b722568dba4405e +size 22292 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_01_b.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_01_b.png.meta new file mode 100644 index 0000000..3c3b56d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_01_b.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 9d3720e74aa770c4ab771954af51c36b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_02_b.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_02_b.png new file mode 100644 index 0000000..bf7a7ac --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_02_b.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1473c1ac1eea230e40569e462c97583bcfd3b963c760278ccca9056e17cfef7 +size 34050 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_02_b.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_02_b.png.meta new file mode 100644 index 0000000..7ffdb1a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_matcap_02_b.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 2fc108a4d4e9d5d41bf34f493b563d76 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_01_b.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_01_b.png new file mode 100644 index 0000000..f650805 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_01_b.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8e89696ff362b2703dc17c340f715078dee74617487acfc200a144eea1efc1e +size 227660 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_01_b.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_01_b.png.meta new file mode 100644 index 0000000..4a4b2e4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_01_b.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: a0d171ecb61251f499e61977161e37fe +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_02_a.png b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_02_a.png new file mode 100644 index 0000000..b44e31f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_02_a.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac5eb5f3a5e5fa79a6c6b6b263be9168094c234dc0c729b7253b7da80e3da055 +size 6774 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_02_a.png.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_02_a.png.meta new file mode 100644 index 0000000..bf0a99b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/Textures/o_com_sparrow_02_a.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: c5365c6b6f861ed4ebbf709f331de625 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material.meta new file mode 100644 index 0000000..728e917 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6299756a9ccfcbb4093bb461d74b9264 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_01_m.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_01_m.mat new file mode 100644 index 0000000..a9aeaaa --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_01_m.mat @@ -0,0 +1,173 @@ +%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: o_com_PICO4U_01_m + m_Shader: {fileID: 4800000, guid: 296b2106775d132469d4ddadfa937fc4, type: 3} + m_ValidKeywords: [] + m_InvalidKeywords: + - _LIGHT_O_ON + m_LightmapFlags: 6 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _EmissiveTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HighlightTex: + m_Texture: {fileID: 2800000, guid: 674e40a4815815440b1f5c6a63260ac7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: a0d171ecb61251f499e61977161e37fe, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Mask: + m_Texture: {fileID: 2800000, guid: c5365c6b6f861ed4ebbf709f331de625, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap: + m_Texture: {fileID: 2800000, guid: 1b486dd9692504f4f852148b8f2fd182, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap2: + m_Texture: {fileID: 2800000, guid: 1e308ef411232ca42b498443156b90e0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MatcapTex: + m_Texture: {fileID: 2800000, guid: c49e9f056be7ab0468d21c8fffe1bcc0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap_01: + m_Texture: {fileID: 2800000, guid: 2fc108a4d4e9d5d41bf34f493b563d76, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap_02: + m_Texture: {fileID: 2800000, guid: 9d3720e74aa770c4ab771954af51c36b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NorTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Normal: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 2800000, guid: cc5bd5c060be2b74f87d38bd724cecf7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Texture2D: + m_Texture: {fileID: 2800000, guid: 674e40a4815815440b1f5c6a63260ac7, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Texture2D_1: + m_Texture: {fileID: 2800000, guid: 95a1ae9b50ef24a4cac8ec71828e553d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TextureSample1: + m_Texture: {fileID: 2800000, guid: adfd0344911d9c340951e341ad9367a9, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _texcoord: + 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: + - _Alpha: 1 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _Blend: 0 + - _CastShadows: 1 + - _Cull: 2 + - _CullMode: 2 + - _DstBlend: 0 + - _Emission: 0 + - _EmissiveIntensity: 1 + - _Float: 0.48 + - _Float_1: 0.3 + - _Fre: -1 + - _Fre_Range: 0 + - _Fre_Strength: 0 + - _FresPower: -0.09411765 + - _FresScale: -0.11 + - _FresScale1: -0.09411765 + - _Fresnel: 0 + - _Keyword0: 0 + - _Light: 0 + - _LightOn: 1 + - _LightPower: 0.33 + - _Light_O: 1 + - _Light_Power: 1.4 + - _MatcapIntensity: 1.2 + - _MatcapStrength: 1.4 + - _Metallic: 0 + - _NormalScale: 1 + - _NormalStrength: 0 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RimScale: 3 + - _ShadowPosition: 0 + - _ShadowSoftness: 0.2 + - _Smoothness: 0.155 + - _SrcBlend: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 1 + - _ZWriteControl: 0 + - _power2: 0.8 + m_Colors: + - _Color: {r: 0.2924528, g: 0.29107332, b: 0.29107332, a: 1} + - _Color_1: {r: 0.13207549, g: 0.13207549, b: 0.13207549, a: 1} + - _EmissionColor: {r: 1, g: 1, b: 1, a: 0} + - _FreColor: {r: 0.16981131, g: 0.16981131, b: 0.16981131, a: 0} + - _FresColor: {r: 0.62264144, g: 0.62264144, b: 0.62264144, a: 0} + - _FresColor1: {r: 0.62264144, g: 0.62264144, b: 0.62264144, a: 0} + - _HighlightColor: {r: 0.14150941, g: 0.14150941, b: 0.14150941, a: 1} + - _HighlightO: {r: 0.3, g: -0.15, b: 0, a: 0} + - _HighlightT: {r: 1, g: 1, b: 0, a: 0} + - _LDir: {r: 0.14, g: 1, b: -0.2, a: 0} + - _Light: {r: 0.28, g: 3.41, b: 1.24, a: 0} + - _LightColor: {r: 0.8104307, g: 0.8155927, b: 0.8207547, a: 1} + - _LightColor_01: {r: 0.5299631, g: 0.54144835, b: 0.5471698, a: 1} + - _LightColor_02: {r: 0.8104307, g: 0.8155927, b: 0.8207547, a: 1} + - _MainColor: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1} + - _MatcapColor: {r: 2.4748788, g: 2.4748788, b: 2.4748788, a: 0} + - _RimColor: {r: 0, g: 0, b: 0, a: 0} + - _Tint: {r: 0.7815355, g: 0.80573845, b: 0.8396226, a: 1} + - _Vector0: {r: 1, g: 1, b: 1, a: 0} + - _Vector2: {r: 1, g: 1, b: 0, a: 0} + - _Vector2_1: {r: 0.3, g: -0.15, b: 0, a: 0} + - _Vector4: {r: 3, g: 3.51, b: -0.3, a: -0.23} + m_BuildTextureStacks: [] diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_01_m.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_01_m.mat.meta new file mode 100644 index 0000000..529faab --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_01_m.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad8827df856b77c48911d03893186baa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_power_m.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_power_m.mat new file mode 100644 index 0000000..75737b4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_power_m.mat @@ -0,0 +1,251 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7996032717077748679 +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: 5 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: o_com_PICO4U_power_m + m_Shader: {fileID: 4800000, guid: 574ae8e957555df43b4cd9257e834e36, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AlphaMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 6a8f8e966738570459db901ed84ef9b6, type: 3} + 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} + - _EmissiveTex: + m_Texture: {fileID: 2800000, guid: c7025285d77eb6a4bb4f3eb515babe35, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmssionCubemap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _HighlightTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LayerAlphaMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LayerBaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LayerBumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 64029f435f4d71f4999ea9c75b80c91a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Mask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap: + m_Texture: {fileID: 2800000, guid: c49e9f056be7ab0468d21c8fffe1bcc0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MatcapTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap_01: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Matcap_02: + 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} + - _Tex: + m_Texture: {fileID: 2800000, guid: c7025285d77eb6a4bb4f3eb515babe35, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _texcoord: + 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_Floats: + - _AdjustColorIntensity: 1 + - _Advanced: 0 + - _Alpha: 1 + - _AlphaClip: 0 + - _AlphaCutoff: 0.5 + - _ApplyVertexColor: 0 + - _BaseMapBias: 0 + - _Blend: 0 + - _BlendOp: 0 + - _BumpMapBias: 0 + - _BumpScale: 1 + - _CastShadows: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _CloudShadowIntensity: 1 + - _Cull: 2 + - _CullMode: 2 + - _CustomFogFragment: 0 + - _CustomSpecularIntensity: 1 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailInputs: 0 + - _DetailNormalMapScale: 1 + - _DisableHeightmapRenderer: 0 + - _DstBlend: 10 + - _Emission: 1 + - _EmissionCubemapIntensity: 1 + - _EmissionCubemapLod: 0 + - _EmissiveIntensity: 1 + - _EnableAlphaMap: 0 + - _EnableBoxProjection: 0 + - _EnableCustomSpecular: 0 + - _EnableLayerBlend: 0 + - _EnvironmentReflections: 1 + - _Fre: 0 + - _Fre_Range: 0 + - _Fre_Strength: 0 + - _FresScale: -0.15 + - _Fresnel: 1 + - _FresnelBias: 0 + - _FresnelPower: 4 + - _FresnelScale: 1 + - _GlobalCloudShadow: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossinessSource: 0 + - _GlossyReflections: 0 + - _LayerBlendGroup: 0 + - _LayerBlendSmoothness: 1 + - _LayerBlendStrength: 0.5 + - _LayerBumpScale: 1 + - _LayerEnableAlphaMap: 0 + - _LayerMetallic: 0 + - _LayerOcclusionStrength: 1 + - _LayerSmoothness: 0.5 + - _Light_O: 0 + - _Light_Power: 1 + - _LightingModel: 1 + - _LightmapSpecular: 1 + - _MatcapIntensity: 0.7 + - _MatcapStrength: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _RenderMode: 0 + - _SampleGI: 0 + - _Shininess: 0 + - _Smoothness: 0.5 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _SurfaceInputs: 0 + - _SurfaceOptions: 0 + - _WeatherMode: 0 + - _WorkflowMode: 1 + - _ZTest: 4 + - _ZWrite: 0 + - _ZWriteControl: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _BlingPhongSpecColor: {r: 0, g: 0, b: 0, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0.07227186, g: 0.69387203, b: 0.12743773, a: 1} + - _FreColor: {r: 0, g: 0, b: 0, a: 0} + - _FresColor: {r: 1, g: 1, b: 1, a: 0} + - _HighlightColor: {r: 0, g: 0, b: 0, a: 0} + - _HighlightO: {r: 0, g: 0, b: 0, a: 0} + - _HighlightT: {r: 0, g: 0, b: 0, a: 0} + - _LayerBaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Light: {r: 0, g: 0, b: 0, a: 0} + - _LightColor_01: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1} + - _LightColor_02: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1} + - _MatcapColor: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - _Tint: {r: 1, g: 1, b: 1, a: 0} + m_BuildTextureStacks: [] diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_power_m.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_power_m.mat.meta new file mode 100644 index 0000000..1c9687b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Controller/PICO 4U/material/o_com_PICO4U_power_m.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a1b3dee6f3915d041b67ebcd32db75de +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand.meta new file mode 100644 index 0000000..6247ab9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6a441e8ade2dce4f8996ad56ebc2834 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models.meta new file mode 100644 index 0000000..5d7385d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e642f8eaef9fbb0459ed63c0e614e9e1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_L.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_L.fbx new file mode 100644 index 0000000..21e7e92 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_L.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c5903a4392a0742c521f04e3fb0318ddce69dc6aeaa8db66cdb8e7c624427da +size 178320 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_L.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_L.fbx.meta new file mode 100644 index 0000000..d21ec41 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_L.fbx.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: d103d152776d96a448730ac45c026750 +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/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_R.fbx b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_R.fbx new file mode 100644 index 0000000..135293e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_R.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d5d05b01e46a498c23f40474688f2d4718f3e2b2a7d42143a37d003753ad04a +size 178688 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_R.fbx.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_R.fbx.meta new file mode 100644 index 0000000..dfa83ed --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Hand/Models/Hand_R.fbx.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: 32e4299f223a5e74ba6c96aa836018a1 +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/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials.meta new file mode 100644 index 0000000..65f4375 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e49344338b17e1548a84e517fbff4ace +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/PXR_Hand.shader b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/PXR_Hand.shader new file mode 100644 index 0000000..4033285 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/PXR_Hand.shader @@ -0,0 +1,203 @@ +Shader "PXR/Hand" +{ + Properties + { + [Header(BaseColor)] + _InnerColor("内部颜色",Color) = (1,1,1,1) + _OutColor("外部颜色",Color) = (1,1,1,1) + _FresnelPower("菲涅尔强度",float) = 1 + + [Header(Light)][Space(5)] + _PressLight("按下光照",Color) = (1,1,1,1) + _ClickLight("点击光照",Color) = (1,1,1,1) + _PressRange("按压范围",Range(0,1)) = 0.015 + _ClickRange("点击范围",Range(0,1)) = 0.015 + _ClickPosition("点击位置",Vector)=(1,1,1,1) + _PressIntensity("按压强度",Range(0,1)) = 1 + + [Header(Wrist)][Space(10)] + _WristFadeRange("腕部渐变范围",Range(0,1)) = 1 + _MainAlpha("总透明度",Range(0,1)) = 1 + + _FadeIn("透明消隐",Range(0,1))=0 + } + + CGINCLUDE + #include "Lighting.cginc" + #pragma target 3.0 + + float4 _InnerColor; + float4 _OutColor; + float _FresnelPower; + + float4 _PressLight; + float4 _ClickLight; + half _PressIntensity; + float4 _ClickPosition; + + float _PressRange; + float _ClickRange; + + float _WristFadeRange; + float _FadeIn; + float _MainAlpha; + + //-----------------描边参数---------------- + struct OutlineVertexInput + { + float4 vertex : POSITION; + float3 normal : NORMAL; + float2 texcoord : TEXCOORD0; + }; + + struct OutlineVertexOutput + { + float4 vertex : SV_POSITION; + float2 uv:TEXCOORD3; + }; + + //------------------------------------------- + + //---------------------正常绘制参数------------------- + struct VertexInput + { + float4 vertex : POSITION; + half3 normal : NORMAL; + half4 vertexColor : COLOR; + float2 texcoord : TEXCOORD0; + }; + + struct VertexOutput + { + float4 vertex : SV_POSITION; + float3 worldPos : TEXCOORD1; + float3 worldNormal : TEXCOORD2; + float2 uv:TEXCOORD3; + }; + + void CustomRemap(in float4 inValue, float2 inMinMax, float2 outMinMax, out float4 outValue) + { + outValue = outMinMax.x + (inValue - inMinMax.x) * (outMinMax.y - outMinMax.x) / (inMinMax.y - inMinMax.x); + } + + float GetAlpha(float2 uv) + { + float dis = distance(float2(0.5, 0), uv * float2(0.9, 1) + float2(0.05, 0)); + float4 s1; + CustomRemap(_WristFadeRange, float2(0, 1), float2(0.12, 1), s1); + const float s2 = 0.12; + float alpha = smoothstep(s2, s1, dis); + + float s3 = 1 - _FadeIn; + float4 s4; + CustomRemap(s3, float2(0, 0.5), float2(0, 1), s4); + s4 = 1.1 * saturate(s4); + + return alpha * smoothstep(s3, s4, dis); + } + float GetFresnel(float3 viewDir, float3 normal, float power) + { + return pow(1 - dot(viewDir, normal), power); + } + + //-----------------正常绘制------------------------ + VertexOutput baseVertex(VertexInput v) + { + VertexOutput o; + o.worldPos = mul(unity_ObjectToWorld, v.vertex); + o.worldNormal = UnityObjectToWorldNormal(v.normal); + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = v.texcoord; + return o; + } + + fixed4 baseFragment(VertexOutput v) : SV_Target + { + float3 normalWS = normalize(v.worldNormal); + float3 viewWS = normalize(UnityWorldSpaceViewDir(v.worldPos)); + float fresnel = saturate(GetFresnel(viewWS, normalWS, _FresnelPower)); + + float4 baseColor = lerp(_InnerColor, _OutColor, fresnel); + float4 clickColor = lerp(_PressLight, _ClickLight, step(0.99, _PressIntensity)); + + + float3 localClickPos = mul((float3x3)unity_WorldToObject, _ClickPosition); + float3 vertexPos = mul((float3x3)unity_WorldToObject, v.worldPos); + float dis = distance(localClickPos, vertexPos); + + float2 inMinMax = float2(0, lerp(_PressRange, _ClickRange, _PressIntensity)); + float2 outMinMax = float2(1, 0); + float4 s; + CustomRemap(dis, inMinMax, outMinMax, s); + float4 r = smoothstep(0, 1, clamp(s, 0, 1)); + r.a *= _PressIntensity; + + fixed4 finalCol = lerp(baseColor, clickColor, r.a); + finalCol.a *= saturate(GetAlpha(v.uv)); + finalCol.a *= _MainAlpha; + return finalCol; + } + + ENDCG + + SubShader + { + Tags + { + "RenderPipeline" = "UniversalPipeline" + "Queue" = "Transparent" + "RenderType" = "Transparent" + "IgnoreProjector" = "True" + } + Pass + { + Name "Depth" + Tags + { + "LightMode" = "SRPDefaultUnlit" + } + ZWrite On + ColorMask 0 + } + Pass + { + Name "BaseColor" + Tags + { + "LightMode" = "UniversalForward" + } + Blend SrcAlpha OneMinusSrcAlpha + Cull Off + CGPROGRAM + #pragma vertex baseVertex + #pragma fragment baseFragment + ENDCG + } + } + SubShader + { + Tags + { + "Queue" = "Transparent" + "RenderType" = "Transparent" + "IgnoreProjector" = "True" + } + LOD 200 + Pass + { + Name "Depth" + ZWrite On + ColorMask 0 + } + Pass + { + Name "Interior" + Blend SrcAlpha OneMinusSrcAlpha + ZWrite On + CGPROGRAM + #pragma vertex baseVertex + #pragma fragment baseFragment + ENDCG + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/PXR_Hand.shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/PXR_Hand.shader.meta new file mode 100644 index 0000000..0af1bcc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/PXR_Hand.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4ae4d410c1995fa4e8fea1ab6359ea37 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/UnderlayHole.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/UnderlayHole.mat new file mode 100644 index 0000000..2347812 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/UnderlayHole.mat @@ -0,0 +1,123 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: UnderlayHole + m_Shader: {fileID: 4800000, guid: 4212f1d23993b2640922b428f2748e20, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + 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_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 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: [] +--- !u!114 &2824030880348393175 +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: 5 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/UnderlayHole.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/UnderlayHole.mat.meta new file mode 100644 index 0000000..409b988 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Materials/UnderlayHole.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7dceaed51abddf64eb52ba3f767eb4dd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs.meta new file mode 100644 index 0000000..ff9172f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e3ad957f0e359774baa4931b2c24b81b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/LeftControllerModel.prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/LeftControllerModel.prefab new file mode 100644 index 0000000..42f56bd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/LeftControllerModel.prefab @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2673240740586844485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2673240740586844490} + - component: {fileID: 8805142202525567399} + m_Layer: 0 + m_Name: LeftControllerModel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2673240740586844490 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2673240740586844485} + 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: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8805142202525567399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2673240740586844485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c1ba2bcdb414e3b47aca41fdc1a87e64, type: 3} + m_Name: + m_EditorClassIdentifier: + Lefthand: 1 + neo3L: {fileID: 7118676274473289238, guid: 4ff92632f801a7444958bb72ef6aee53, type: 3} + neo3R: {fileID: 8449525692238721171, guid: d22bd72bebc3950409d2de288cdcabd2, type: 3} + PICO_4L: {fileID: 3222469904833361626, guid: 853840c5196b2486a97e1785f3a68575, type: 3} + PICO_4R: {fileID: 1704171135803129665, guid: 3a5f20f82a5224d7d969e99da633fc69, type: 3} + G3: {fileID: 3592357975929350142, guid: 4632f3d33fc5ea94e8a7673306cbb3e2, type: 3} + PICO_4U_L: {fileID: 5160734707760153619, guid: d600af752179d4343b26d6d3eab89e8d, type: 3} + PICO_4U_R: {fileID: 2641197622611298662, guid: ab854e81d8fcde04eb1603f397457afc, type: 3} + legacyMaterial: {fileID: 2100000, guid: ea5d1bb890cef78439598b7062576fa3, type: 2} + controllerSimulation: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/LeftControllerModel.prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/LeftControllerModel.prefab.meta new file mode 100644 index 0000000..00813f9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/LeftControllerModel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c29eabddf8367d4429e891ca7fe078a2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/RightControllerModel .prefab b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/RightControllerModel .prefab new file mode 100644 index 0000000..bcf8cef --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/RightControllerModel .prefab @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &588274493876933136 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2281696399307846454} + - component: {fileID: 8151791578876099827} + m_Layer: 0 + m_Name: 'RightControllerModel ' + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2281696399307846454 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 588274493876933136} + 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: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8151791578876099827 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 588274493876933136} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c1ba2bcdb414e3b47aca41fdc1a87e64, type: 3} + m_Name: + m_EditorClassIdentifier: + hand: 1 + neo3L: {fileID: 7118676274473289238, guid: 4ff92632f801a7444958bb72ef6aee53, type: 3} + neo3R: {fileID: 8449525692238721171, guid: d22bd72bebc3950409d2de288cdcabd2, type: 3} + PICO_4L: {fileID: 3222469904833361626, guid: 853840c5196b2486a97e1785f3a68575, type: 3} + PICO_4R: {fileID: 1704171135803129665, guid: 3a5f20f82a5224d7d969e99da633fc69, type: 3} + G3: {fileID: 3592357975929350142, guid: 4632f3d33fc5ea94e8a7673306cbb3e2, type: 3} + PICO_4U_L: {fileID: 5160734707760153619, guid: d600af752179d4343b26d6d3eab89e8d, type: 3} + PICO_4U_R: {fileID: 2641197622611298662, guid: ab854e81d8fcde04eb1603f397457afc, type: 3} + legacyMaterial: {fileID: 2100000, guid: ea5d1bb890cef78439598b7062576fa3, type: 2} + controllerSimulation: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/RightControllerModel .prefab.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/RightControllerModel .prefab.meta new file mode 100644 index 0000000..319def0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Prefabs/RightControllerModel .prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d8ac97d549ca7354c9183e745cb8d4ae +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader.meta new file mode 100644 index 0000000..8104e04 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: de5364a3f922c924488e72bc45c0ccb0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_CubemapBlit.shader b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_CubemapBlit.shader new file mode 100644 index 0000000..7154462 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_CubemapBlit.shader @@ -0,0 +1,53 @@ +Shader "PXR_SDK/PXR_CubemapBlit" { + Properties{ + _MainTex("MainTex", CUBE) = "white" {} + _d("Direction", Int) = 0 + } + SubShader{ + Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" } + + Pass{ + ZWrite Off + ColorMask RGBA + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + }; + + struct v2f + { + float4 vertex : POSITION; + half3 cubedir : TEXCOORD0; + }; + + samplerCUBE _MainTex; + int _d; + + v2f vert(appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + float3 of[6] = { {1.0, -1.0, 1.0}, {-1.0, -1.0, -1.0}, {-1.0, 1.0, 1.0}, {-1.0, -1.0, -1.0}, {-1.0, -1.0, 1.0}, { 1.0, -1.0, -1.0} }; + float3 uf[6] = { {0.0, 0.0, -1.0}, { 0.0, 0.0, 1.0}, { 1.0, 0.0, 0.0}, { 1.0, 0.0, 0.0}, { 1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0} }; + float3 vf[6] = { {0.0, 1.0, 0.0}, { 0.0, 1.0, 0.0}, { 0.0, 0.0, -1.0}, { 0.0, 0.0, 1.0}, { 0.0, 1.0, 0.0}, { 0.0, 1.0, 0.0} }; + o.cubedir = of[_d] + 2.0 * v.texcoord.x * uf[_d] + 2.0 * (1.0 - v.texcoord.y) * vf[_d]; + return o; + } + + fixed4 frag(v2f v) : COLOR + { + fixed4 col = texCUBE(_MainTex, v.cubedir); + return col; + } + ENDCG + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_CubemapBlit.shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_CubemapBlit.shader.meta new file mode 100644 index 0000000..b12ca4c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_CubemapBlit.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 964f6c596d90fce419911a05881292e3 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_Fade.shader b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_Fade.shader new file mode 100644 index 0000000..220de32 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_Fade.shader @@ -0,0 +1,16 @@ +Shader "PXR_SDK/PXR_Fade" { + Properties{ + _Color("Color", Color) = (0,0,0,1) + } + SubShader{ + Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" } + LOD 100 + + ZWrite Off + ZTest Always + Blend SrcAlpha OneMinusSrcAlpha + Color[_Color] + + Pass{} + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_Fade.shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_Fade.shader.meta new file mode 100644 index 0000000..f06f458 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_Fade.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a993dd2c437a2b3409060ffcdd23b83f +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_UnderlayHole.shader b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_UnderlayHole.shader new file mode 100644 index 0000000..e98a82b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_UnderlayHole.shader @@ -0,0 +1,58 @@ +Shader "PXR_SDK/PXR_UnderlayHole" +{ + Properties + { + _MainTex("Texture(A)", 2D) = "black" {} + } + + SubShader + { + Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" } + LOD 100 + ZWrite Off + Blend Zero OneMinusSrcAlpha,Zero Zero + ColorMask RGBA + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + float2 texcoord : TEXCOORD0; + }; + + sampler2D _MainTex; + + v2f vert(appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.texcoord = v.texcoord; + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + fixed4 col = tex2D(_MainTex, i.texcoord); + col.r = 0; + col.g = 0; + col.b = 0; + col.a = col.a; + return col; + } + ENDCG + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_UnderlayHole.shader.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_UnderlayHole.shader.meta new file mode 100644 index 0000000..b2b763b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Assets/Resources/Shader/PXR_UnderlayHole.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 4212f1d23993b2640922b428f2748e20 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor.meta new file mode 100644 index 0000000..4334daf --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca66dac516e3a1247b7f1694f1a6a677 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOCompositeLayerEditor.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOCompositeLayerEditor.cs new file mode 100644 index 0000000..6f5db85 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOCompositeLayerEditor.cs @@ -0,0 +1,201 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained hererin are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using UnityEditor; +using UnityEngine; + + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(CompositeLayerFeature))] + public class PICOCompositeLayerEditor : UnityEditor.Editor + { + public override void OnInspectorGUI() + { + var guiContent = new GUIContent(); + foreach (CompositeLayerFeature overlayTarget in targets) + { + EditorGUILayout.LabelField("Overlay Settings", EditorStyles.boldLabel); + + EditorGUILayout.BeginVertical("frameBox"); + guiContent.text = "Type"; + overlayTarget.overlayType = (CompositeLayerFeature.OverlayType)EditorGUILayout.EnumPopup(guiContent, overlayTarget.overlayType); + guiContent.text = "Shape"; + overlayTarget.overlayShape = (CompositeLayerFeature.OverlayShape)EditorGUILayout.EnumPopup(guiContent, overlayTarget.overlayShape); + guiContent.text = "Depth"; + overlayTarget.layerDepth = EditorGUILayout.IntField(guiContent, overlayTarget.layerDepth); + + EditorGUILayout.EndVertical(); + + EditorGUILayout.Separator(); + EditorGUILayout.LabelField("Overlay Textures", EditorStyles.boldLabel); + guiContent.text = "Texture Type"; + overlayTarget.textureType = (CompositeLayerFeature.TextureType)EditorGUILayout.EnumPopup(guiContent, overlayTarget.textureType); + EditorGUILayout.Separator(); + + if (overlayTarget.textureType == CompositeLayerFeature.TextureType.StaticTexture) + { + overlayTarget.isDynamic = false; + } + else if (overlayTarget.textureType == CompositeLayerFeature.TextureType.DynamicTexture) + { + overlayTarget.isDynamic = true; + } + else + { + overlayTarget.isDynamic = false; + } + + EditorGUILayout.LabelField("Texture"); + EditorGUILayout.BeginVertical("frameBox"); + + var labelControlRect = EditorGUILayout.GetControlRect(); + EditorGUI.LabelField(new Rect(labelControlRect.x, labelControlRect.y, labelControlRect.width / 2, labelControlRect.height), new GUIContent("Left", "Texture used for the left eye")); + EditorGUI.LabelField(new Rect(labelControlRect.x + labelControlRect.width / 2, labelControlRect.y, labelControlRect.width / 2, labelControlRect.height), new GUIContent("Right", "Texture used for the right eye")); + + var textureControlRect = EditorGUILayout.GetControlRect(GUILayout.Height(64)); + overlayTarget.layerTextures[0] = (Texture)EditorGUI.ObjectField(new Rect(textureControlRect.x, textureControlRect.y, 64, textureControlRect.height), overlayTarget.layerTextures[0], typeof(Texture), false); + overlayTarget.layerTextures[1] = (Texture)EditorGUI.ObjectField(new Rect(textureControlRect.x + textureControlRect.width / 2, textureControlRect.y, 64, textureControlRect.height), overlayTarget.layerTextures[1] != null ? overlayTarget.layerTextures[1] : overlayTarget.layerTextures[0], typeof(Texture), false); + + EditorGUILayout.EndVertical(); + + EditorGUILayout.Separator(); + + + if (overlayTarget.overlayShape == CompositeLayerFeature.OverlayShape.Equirect) + { + guiContent.text = "Radius"; + overlayTarget.radius = EditorGUILayout.FloatField(guiContent, Mathf.Abs(overlayTarget.radius)); + } + + if (overlayTarget.overlayShape == CompositeLayerFeature.OverlayShape.Quad || overlayTarget.overlayShape == CompositeLayerFeature.OverlayShape.Cylinder || overlayTarget.overlayShape == CompositeLayerFeature.OverlayShape.Equirect) + { + guiContent.text = "Texture Rects"; + overlayTarget.useImageRect = EditorGUILayout.Toggle(guiContent, overlayTarget.useImageRect); + if (overlayTarget.useImageRect) + { + guiContent.text = "Source Rects"; + overlayTarget.textureRect = (CompositeLayerFeature.TextureRect)EditorGUILayout.EnumPopup(guiContent, overlayTarget.textureRect); + + if (overlayTarget.textureRect == CompositeLayerFeature.TextureRect.Custom) + { + EditorGUILayout.BeginVertical("frameBox"); + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField("Left Rect"); + EditorGUILayout.LabelField("Right Rect"); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + overlayTarget.srcRectLeft = ClampRect(EditorGUILayout.RectField(overlayTarget.srcRectLeft)); + EditorGUILayout.Space(15); + guiContent.text = "Right"; + overlayTarget.srcRectRight = ClampRect(EditorGUILayout.RectField(overlayTarget.srcRectRight)); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.EndVertical(); + EditorGUILayout.Space(); + } + else if (overlayTarget.textureRect == CompositeLayerFeature.TextureRect.MonoScopic) + { + overlayTarget.srcRectLeft = new Rect(0, 0, 1, 1); + overlayTarget.srcRectRight = new Rect(0, 0, 1, 1); + } + else if (overlayTarget.textureRect == CompositeLayerFeature.TextureRect.StereoScopic) + { + overlayTarget.srcRectLeft = new Rect(0, 0, 0.5f, 1); + overlayTarget.srcRectRight = new Rect(0.5f, 0, 0.5f, 1); + } + + if (overlayTarget.overlayShape == CompositeLayerFeature.OverlayShape.Quad || overlayTarget.overlayShape == CompositeLayerFeature.OverlayShape.Equirect) + { + guiContent.text = "Destination Rects"; + overlayTarget.destinationRect = (CompositeLayerFeature.DestinationRect)EditorGUILayout.EnumPopup(guiContent, overlayTarget.destinationRect); + + if (overlayTarget.destinationRect == CompositeLayerFeature.DestinationRect.Custom) + { + EditorGUILayout.BeginVertical("frameBox"); + + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField("Left Rect"); + EditorGUILayout.LabelField("Right Rect"); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + overlayTarget.dstRectLeft = ClampRect(EditorGUILayout.RectField(overlayTarget.dstRectLeft)); + EditorGUILayout.Space(15); + guiContent.text = "Right"; + overlayTarget.dstRectRight = ClampRect(EditorGUILayout.RectField(overlayTarget.dstRectRight)); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.EndVertical(); + EditorGUILayout.Space(); + } + else + { + overlayTarget.dstRectLeft = new Rect(0, 0, 1, 1); + overlayTarget.dstRectRight = new Rect(0, 0, 1, 1); + } + } + } + } + + guiContent.text = "Layer Blend"; + overlayTarget.useLayerBlend = EditorGUILayout.Toggle(guiContent, overlayTarget.useLayerBlend); + if (overlayTarget.useLayerBlend) + { + EditorGUILayout.BeginVertical("frameBox"); + guiContent.text = "Src Color"; + overlayTarget.srcColor = (PxrBlendFactor)EditorGUILayout.EnumPopup(guiContent, overlayTarget.srcColor); + guiContent.text = "Dst Color"; + overlayTarget.dstColor = (PxrBlendFactor)EditorGUILayout.EnumPopup(guiContent, overlayTarget.dstColor); + guiContent.text = "Src Alpha"; + overlayTarget.srcAlpha = (PxrBlendFactor)EditorGUILayout.EnumPopup(guiContent, overlayTarget.srcAlpha); + guiContent.text = "Dst Alpha"; + overlayTarget.dstAlpha = (PxrBlendFactor)EditorGUILayout.EnumPopup(guiContent, overlayTarget.dstAlpha); + + EditorGUILayout.EndVertical(); + } + + guiContent.text = "Override Color Scale"; + overlayTarget.overrideColorScaleAndOffset = EditorGUILayout.Toggle(guiContent, overlayTarget.overrideColorScaleAndOffset); + if (overlayTarget.overrideColorScaleAndOffset) + { + EditorGUILayout.BeginVertical("frameBox"); + + guiContent.text = "Scale"; + Vector4 colorScale = EditorGUILayout.Vector4Field(guiContent, overlayTarget.colorScale); + + guiContent.text = "Offset"; + Vector4 colorOffset = EditorGUILayout.Vector4Field(guiContent, overlayTarget.colorOffset); + overlayTarget.SetLayerColorScaleAndOffset(colorScale, colorOffset); + + EditorGUILayout.EndVertical(); + } + } + + if (GUI.changed) + { + UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager.GetActiveScene()); + } + } + private Rect ClampRect(Rect rect) + { + rect.x = Mathf.Clamp01(rect.x); + rect.y = Mathf.Clamp01(rect.y); + rect.width = Mathf.Clamp01(rect.width); + rect.height = Mathf.Clamp01(rect.height); + return rect; + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOCompositeLayerEditor.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOCompositeLayerEditor.cs.meta new file mode 100644 index 0000000..e226df6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOCompositeLayerEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9d0dfa675096f67419bbdde07d4e7b65 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureEditor.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureEditor.cs new file mode 100644 index 0000000..89ef550 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureEditor.cs @@ -0,0 +1,95 @@ +using Unity.XR.PXR; +using UnityEditor; +using UnityEngine; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + [CustomEditor(typeof(PICOFeature))] + internal class PICOFeatureEditor : Editor + { + void OnEnable() + { + + } + + public override void OnInspectorGUI() + { + PICOFeature picoFeature = (PICOFeature)target; + PICOProjectSetting projectConfig = PICOProjectSetting.GetProjectConfig(); + EditorGUIUtility.labelWidth = 180; + //eye tracking + GUIStyle firstLevelStyle = new GUIStyle(GUI.skin.label); + firstLevelStyle.alignment = TextAnchor.UpperLeft; + firstLevelStyle.fontStyle = FontStyle.Bold; + firstLevelStyle.fontSize = 12; + firstLevelStyle.wordWrap = true; + var guiContent = new GUIContent(); + guiContent.text = "Eye Tracking"; + guiContent.tooltip = "Before calling EyeTracking API, enable this option first, only for Neo3 Pro Eye , PICO 4 Pro device."; + projectConfig.isEyeTracking = EditorGUILayout.Toggle(guiContent, projectConfig.isEyeTracking); + if (projectConfig.isEyeTracking) + { + projectConfig.isEyeTrackingCalibration = EditorGUILayout.Toggle(new GUIContent("Eye Tracking Calibration"), projectConfig.isEyeTrackingCalibration); + EditorGUILayout.BeginVertical("box"); + EditorGUILayout.LabelField("Note: Eye Tracking is supported only on Neo 3 Pro Eye , PICO 4 Pro", firstLevelStyle); + EditorGUILayout.EndVertical(); + } + projectConfig.isHandTracking = EditorGUILayout.Toggle("Hand Tracking", projectConfig.isHandTracking); + + var displayFrequencyContent = new GUIContent(); + displayFrequencyContent.text = "Display Refresh Rates"; + projectConfig.displayFrequency = (SystemDisplayFrequency)EditorGUILayout.EnumPopup(displayFrequencyContent, projectConfig.displayFrequency); + + // content protect + projectConfig.useContentProtect = EditorGUILayout.Toggle("Use Content Protect", projectConfig.useContentProtect); + if (projectConfig.useContentProtect) + { + projectConfig.contentProtectFlags = (SecureContentFlag)EditorGUILayout.EnumPopup("Content Protect", projectConfig.contentProtectFlags); + } + + //FFR + var foveationEnableContent = new GUIContent(); + foveationEnableContent.text = "Foveated Rendering"; + projectConfig.foveationEnable = EditorGUILayout.Toggle(foveationEnableContent, projectConfig.foveationEnable); + if (projectConfig.foveationEnable) + { + var foveationContent = new GUIContent(); + foveationContent.text = "Foveated Rendering Mode"; + projectConfig.foveatedRenderingMode = (FoveationFeature.FoveatedRenderingMode)EditorGUILayout.EnumPopup(foveationContent, projectConfig.foveatedRenderingMode); + + var foveationLevel = new GUIContent(); + foveationLevel.text = "Foveated Rendering Level"; + projectConfig.foveatedRenderingLevel = (FoveationFeature.FoveatedRenderingLevel)EditorGUILayout.EnumPopup(foveationLevel, projectConfig.foveatedRenderingLevel); + + if (projectConfig.foveatedRenderingLevel !=FoveationFeature.FoveatedRenderingLevel.Off) + { + var subsampledEnabledContent = new GUIContent(); + subsampledEnabledContent.text = "Subsampling"; + projectConfig.isSubsampledEnabled = EditorGUILayout.Toggle(subsampledEnabledContent, projectConfig.isSubsampledEnabled); + } + } + GUILayout.BeginHorizontal(); + guiContent.text = "System Splash Screen"; + guiContent.tooltip = ""; + EditorGUILayout.LabelField(guiContent, GUILayout.Width(165)); + projectConfig.systemSplashScreen = (Texture2D)EditorGUILayout.ObjectField(projectConfig.systemSplashScreen, typeof(Texture2D), true); + GUILayout.EndHorizontal(); + + EditorGUILayout.BeginVertical("box"); + EditorGUILayout.LabelField("Note: Set the system splash screen picture in PNG format.", firstLevelStyle); + EditorGUILayout.EndVertical(); + + var MRSafeguard = new GUIContent(); + MRSafeguard.text = "MR Safeguard"; + MRSafeguard.tooltip = "MR safety, if you choose this option, your application will adopt MR safety policies during runtime. If not selected, it will continue to use VR safety policies by default."; + projectConfig.MRSafeguard = EditorGUILayout.Toggle(MRSafeguard, projectConfig.MRSafeguard); + + serializedObject.Update(); + if (GUI.changed) + { + EditorUtility.SetDirty(projectConfig); + } + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureEditor.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureEditor.cs.meta new file mode 100644 index 0000000..5a0bba4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fcd29c90e0340f14d89d51672511f326 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureSet.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureSet.cs new file mode 100644 index 0000000..a73a5e3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureSet.cs @@ -0,0 +1,37 @@ + +using UnityEditor; +using UnityEditor.XR.OpenXR.Features; + + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + + [OpenXRFeatureSet( + FeatureIds = new string[] { + PICOFeature.featureId, + OpenXRExtensions.featureId, + DisplayRefreshRateFeature.featureId, + LayerSecureContentFeature.featureId, + FoveationFeature.featureId, + PassthroughFeature.featureId, + PICOSpatialMesh.featureId, + PICOSceneCapture.featureId, + PICOSpatialAnchor.featureId, + }, + UiName = "PICO XR", + Description = "Feature set for using PICO XR Features", + FeatureSetId = featureSetId, + SupportedBuildTargets = new BuildTargetGroup[] { BuildTargetGroup.Android}, + RequiredFeatureIds = new string[] + { + PICOFeature.featureId, + OpenXRExtensions.featureId, + } + )] + class PICOFeatureSet + { + public const string featureSetId = "com.picoxr.openxr.features"; + } +} + + diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureSet.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureSet.cs.meta new file mode 100644 index 0000000..60843c7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOFeatureSet.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8d880f62ed1684040b6a86b50393d5f0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOModifyAndroidManifest.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOModifyAndroidManifest.cs new file mode 100644 index 0000000..22547e3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOModifyAndroidManifest.cs @@ -0,0 +1,260 @@ +using System; +using System.IO; +using System.Text; +using System.Xml; +using UnityEditor; +using UnityEditor.Build.Reporting; +using UnityEditor.XR.OpenXR.Features; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; + + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + internal class PICOModifyAndroidManifest : OpenXRFeatureBuildHooks + { + public override int callbackOrder => 1; + public override Type featureType => typeof(PICOFeature); + protected override void OnPreprocessBuildExt(BuildReport report) { } + protected override void OnPostGenerateGradleAndroidProjectExt(string path) + { + var androidManifest = new AndroidManifest(GetManifestPath(path)); + androidManifest.AddPICOMetaData(path); + androidManifest.Save(); + } + protected override void OnPostprocessBuildExt(BuildReport report) { } + private string _manifestFilePath; + private string GetManifestPath(string basePath) + { + if (!string.IsNullOrEmpty(_manifestFilePath)) return _manifestFilePath; + var pathBuilder = new StringBuilder(basePath); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("src"); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("main"); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("AndroidManifest.xml"); + _manifestFilePath = pathBuilder.ToString(); + + return _manifestFilePath; + } + private class AndroidXmlDocument : XmlDocument + { + private string m_Path; + protected XmlNamespaceManager nsMgr; + public readonly string AndroidXmlNamespace = "http://schemas.android.com/apk/res/android"; + + public AndroidXmlDocument(string path) + { + m_Path = path; + using (var reader = new XmlTextReader(m_Path)) + { + reader.Read(); + Load(reader); + } + nsMgr = new XmlNamespaceManager(NameTable); + nsMgr.AddNamespace("android", AndroidXmlNamespace); + } + public string Save() + { + return SaveAs(m_Path); + } + public string SaveAs(string path) + { + using (var writer = new XmlTextWriter(path, new UTF8Encoding(false))) + { + writer.Formatting = Formatting.Indented; + Save(writer); + } + return path; + } + } + private class AndroidManifest : AndroidXmlDocument + { + private readonly XmlElement ApplicationElement; + private readonly XmlElement ManifestElement; + public AndroidManifest(string path) : base(path) + { + ManifestElement = SelectSingleNode("/manifest") as XmlElement; + ApplicationElement = SelectSingleNode("/manifest/application") as XmlElement; + } + private XmlAttribute CreateOrUpdateAndroidAttribute(string key, string value) + { + XmlAttribute attr = CreateAttribute("android", key, AndroidXmlNamespace); + attr.Value = value; + return attr; + } + private void CreateOrUpdateAndroidPermissionData(string name) + { + XmlNodeList nodeList = ManifestElement.SelectNodes("uses-permission"); + foreach (XmlNode node in nodeList) + { + if (node != null) + { + // Update existing nodes + if (node.Attributes != null && name.Equals(node.Attributes[0].Value)) + { + return; + } + } + } + + // Create new node + var md = ManifestElement.AppendChild(CreateElement("uses-permission")); + md.Attributes.Append(CreateOrUpdateAndroidAttribute("name", name.ToString())); + } + + private void DeleteAndroidPermissionData(string name) + { + XmlNodeList nodeList = ManifestElement.SelectNodes("uses-permission"); + foreach (XmlNode node in nodeList) + { + if (node != null) + { + // Delete existing nodes + if (node.Attributes != null && name.Equals(node.Attributes[0].Value)) + { + node.ParentNode?.RemoveChild(node); + return; + } + } + } + } + + private void CreateOrUpdateAndroidMetaData(string name, string value) + { + XmlNodeList nodeList = ApplicationElement.SelectNodes("meta-data"); + foreach (XmlNode node in nodeList) + { + if (node != null) + { + // Update existing nodes + if (node.Attributes != null && name.Equals(node.Attributes[0].Value)) + { + node.Attributes[0].Value = name; + node.Attributes[1].Value = value; + return; + } + } + } + + // Create new node + var md = ApplicationElement.AppendChild(CreateElement("meta-data")); + md.Attributes.Append(CreateOrUpdateAndroidAttribute("name", name.ToString())); + md.Attributes.Append(CreateOrUpdateAndroidAttribute("value", value.ToString())); + } + + private void DeleteAndroidMetaData(string name) + { + XmlNodeList nodeList = ApplicationElement.SelectNodes("meta-data"); + foreach (XmlNode node in nodeList) + { + if (node != null) + { + // Delete existing nodes + if (node.Attributes != null && name.Equals(node.Attributes[0].Value)) + { + node.ParentNode?.RemoveChild(node); + return; + } + } + } + } + + internal void AddPICOMetaData(string path) + { + CreateOrUpdateAndroidMetaData("pvr.app.type", "vr"); + CreateOrUpdateAndroidMetaData("pvr.sdk.version", "Unity OpenXR "+PICOFeature.SDKVersion); + CreateOrUpdateAndroidMetaData("pxr.sdk.version_code", "5800"); + + if (PICOProjectSetting.GetProjectConfig().isHandTracking) + { + CreateOrUpdateAndroidPermissionData("com.picovr.permission.HAND_TRACKING"); + CreateOrUpdateAndroidMetaData("handtracking", "1"); + } + else + { + DeleteAndroidPermissionData("com.picovr.permission.HAND_TRACKING"); + DeleteAndroidMetaData("handtracking"); + } + + if (PICOProjectSetting.GetProjectConfig().isEyeTracking) + { + CreateOrUpdateAndroidPermissionData("com.picovr.permission.EYE_TRACKING"); + CreateOrUpdateAndroidMetaData("picovr.software.eye_tracking", "1"); + CreateOrUpdateAndroidMetaData("eyetracking_calibration", PICOProjectSetting.GetProjectConfig().isEyeTrackingCalibration ? "true" : "false"); + } + else + { + DeleteAndroidPermissionData("com.picovr.permission.EYE_TRACKING"); + DeleteAndroidMetaData("picovr.software.eye_tracking"); + DeleteAndroidMetaData("eyetracking_calibration"); + } + + var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(BuildTargetGroup.Android); + bool mrPermission = false; + + foreach (var feature in settings.GetFeatures()) + { + + if (feature is PICOSceneCapture) + { + if (feature.enabled) + { + CreateOrUpdateAndroidMetaData("enable_scene_anchor", "1"); + + mrPermission = true; + } + else + { + DeleteAndroidMetaData("enable_scene_anchor"); + } + } + + if (feature is PICOSpatialAnchor) + { + if (feature.enabled) + { + CreateOrUpdateAndroidMetaData("enable_spatial_anchor", "1"); + mrPermission = true; + } + else + { + DeleteAndroidMetaData("enable_spatial_anchor"); + } + } + + if (feature is PICOSpatialMesh) + { + if (feature.enabled) + { + CreateOrUpdateAndroidMetaData("enable_mesh_anchor", "1"); + mrPermission = true; + } + else + { + DeleteAndroidMetaData("enable_mesh_anchor"); + } + } + + } + if (PICOProjectSetting.GetProjectConfig().MRSafeguard) + { + CreateOrUpdateAndroidMetaData("enable_mr_safeguard", PICOProjectSetting.GetProjectConfig().MRSafeguard ? "1" : "0"); + } + else + { + DeleteAndroidMetaData("enable_mr_safeguard"); + } + + if (mrPermission) + { + CreateOrUpdateAndroidPermissionData("com.picovr.permission.SPATIAL_DATA"); + } + else + { + DeleteAndroidPermissionData("com.picovr.permission.SPATIAL_DATA"); + } + + CreateOrUpdateAndroidMetaData("pvr.app.splash", PICOProjectSetting.GetProjectConfig().GetSystemSplashScreen(path)); + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOModifyAndroidManifest.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOModifyAndroidManifest.cs.meta new file mode 100644 index 0000000..e75d43f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/PICOModifyAndroidManifest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d81cf8af565abea45b00eecb77ab4a3e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/Unity.XR.OpenXR.Features.PICOSupport.Editor.asmdef b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/Unity.XR.OpenXR.Features.PICOSupport.Editor.asmdef new file mode 100644 index 0000000..0d2b512 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/Unity.XR.OpenXR.Features.PICOSupport.Editor.asmdef @@ -0,0 +1,26 @@ +{ + "name": "Unity.XR.OpenXR.Features.PICOSupport.Editor", + "rootNamespace": "", + "references": [ + "GUID:96aa6ba065960476598f8f643e7252b6", + "GUID:4847341ff46394e83bb78fbd0652937e", + "GUID:d1451cc2aec4ed743adcac8be3b46381" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.xr.arfoundation", + "expression": "5.1.2", + "define": "AR_FOUNDATION" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/Unity.XR.OpenXR.Features.PICOSupport.Editor.asmdef.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/Unity.XR.OpenXR.Features.PICOSupport.Editor.asmdef.meta new file mode 100644 index 0000000..e6747d5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Editor/Unity.XR.OpenXR.Features.PICOSupport.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dfc9a0c467fa3854eb85cf2dcdebef5d +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise.meta new file mode 100644 index 0000000..edc8b3a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c84e1f5b048136144a957941625d34e7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/PICOXR.TobSupport.asmdef b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/PICOXR.TobSupport.asmdef new file mode 100644 index 0000000..acdbeeb --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/PICOXR.TobSupport.asmdef @@ -0,0 +1,25 @@ +{ + "name": "PICO.TobSupport", + "references": [ + "Unity.XR.PICO.Editor", + "Unity.XR.PICO", + "Unity.XR.OpenXR.Features.PICOSupport.Editor", + "Unity.XR.OpenXR.Features.PICOSupport", + "Unity.XR.OpenXR" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": true, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.xr.picoxr", + "expression": "2.3.3", + "define": "PICO_XR" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/PICOXR.TobSupport.asmdef.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/PICOXR.TobSupport.asmdef.meta new file mode 100644 index 0000000..36aba8a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/PICOXR.TobSupport.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f34d393b8d26cb44d9a77c73186b30d0 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts.meta new file mode 100644 index 0000000..3c622dd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d50237881bc77e4087171150691c3a1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums.meta new file mode 100644 index 0000000..13af666 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 865e330f2b0cd4141ab4a4153d535675 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerKeyEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerKeyEnum.cs new file mode 100644 index 0000000..a057b54 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerKeyEnum.cs @@ -0,0 +1,18 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum ControllerKeyEnum + { + CONTROLLER_KEY_JOYSTICK=0, + CONTROLLER_KEY_MENU=1, + CONTROLLER_KEY_TRIGGER=2, + CONTROLLER_KEY_RIGHT_A=3, + CONTROLLER_KEY_RIGHT_B=4, + CONTROLLER_KEY_LEFT_X=5, + CONTROLLER_KEY_LEFT_Y=6, + CONTROLLER_KEY_LEFT_GRIP=7, + CONTROLLER_KEY_RIGHT_GRIP=8, + CONTROLLER_KEY_VOLUME_DOWN=9, + CONTROLLER_KEY_VOLUME_UP=10, + CONTROLLER_KEY_CLICK=11 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerKeyEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerKeyEnum.cs.meta new file mode 100644 index 0000000..8b15a17 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerKeyEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 71820ab70affcbd4faa8707df25e1725 +timeCreated: 1685945465 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerPairTimeEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerPairTimeEnum.cs new file mode 100644 index 0000000..8f1ba69 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerPairTimeEnum.cs @@ -0,0 +1,12 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum ControllerPairTimeEnum + { + DEFAULT=0, + FIFTEEN=15, + SIXTY=60, + ONE_HUNDRED_AND_TWENTY=120, + SIX_HUNDRED=600, + NEVER=-1 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerPairTimeEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerPairTimeEnum.cs.meta new file mode 100644 index 0000000..e35ae15 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ControllerPairTimeEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 88ffdfff23fd922469ae84af0a209731 +timeCreated: 1685943806 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/CustomizeSettingsTabEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/CustomizeSettingsTabEnum.cs new file mode 100644 index 0000000..202ffca --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/CustomizeSettingsTabEnum.cs @@ -0,0 +1,13 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum CustomizeSettingsTabEnum + { + CUSTOMIZE_SETTINGS_TAB_WLAN = 0, + CUSTOMIZE_SETTINGS_TAB_CONTROLLER = 1, + CUSTOMIZE_SETTINGS_TAB_BLUETOOTH = 2, + CUSTOMIZE_SETTINGS_TAB_DISPLAY = 3, + CUSTOMIZE_SETTINGS_TAB_LAB = 4, + CUSTOMIZE_SETTINGS_TAB_GENERAL_LOCKSCREEN = 5, + CUSTOMIZE_SETTINGS_TAB_GENERAL_FACTORY_RESET = 6 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/CustomizeSettingsTabEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/CustomizeSettingsTabEnum.cs.meta new file mode 100644 index 0000000..049ce2b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/CustomizeSettingsTabEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f2714615e3a23d9449fdf19cdf584b48 +timeCreated: 1685945379 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/DeviceControlEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/DeviceControlEnum.cs new file mode 100644 index 0000000..ed1cea3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/DeviceControlEnum.cs @@ -0,0 +1,8 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum DeviceControlEnum + { + DEVICE_CONTROL_REBOOT=0, + DEVICE_CONTROL_SHUTDOWN=1 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/DeviceControlEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/DeviceControlEnum.cs.meta new file mode 100644 index 0000000..1d1b593 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/DeviceControlEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9cfd7333ed47ab44a874e4fe98c1c08d +timeCreated: 1685937183 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeEventEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeEventEnum.cs new file mode 100644 index 0000000..3863bab --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeEventEnum.cs @@ -0,0 +1,18 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum HomeEventEnum + { + SINGLE_CLICK=0, + DOUBLE_CLICK=1, + LONG_PRESS=2, + SINGLE_CLICK_RIGHT_CTL=3, + DOUBLE_CLICK_RIGHT_CTL=4, + LONG_PRESS_RIGHT_CTL=5, + SINGLE_CLICK_LEFT_CTL=6, + DOUBLE_CLICK_LEFT_CTL=7, + LONG_PRESS_LEFT_CTL=8, + SINGLE_CLICK_HMD=9, + DOUBLE_CLICK_HMD=10, + LONG_PRESS_HMD=11 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeEventEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeEventEnum.cs.meta new file mode 100644 index 0000000..a4e5d81 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeEventEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 599cdfc907c46d6488436b1622eafd50 +timeCreated: 1685937306 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeFunctionEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeFunctionEnum.cs new file mode 100644 index 0000000..9dd934e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeFunctionEnum.cs @@ -0,0 +1,17 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum HomeFunctionEnum + { + VALUE_HOME_GO_TO_SETTING=0, + VALUE_HOME_BACK=1, + VALUE_HOME_RECENTER=2, + VALUE_HOME_OPEN_APP=3, + VALUE_HOME_DISABLE=4, + VALUE_HOME_GO_TO_HOME=5, + VALUE_HOME_SEND_BROADCAST=6, + VALUE_HOME_CLEAN_MEMORY=7, + VALUE_HOME_QUICK_SETTING=8, + VALUE_HOME_SCREEN_CAP=9, + VALUE_HOME_SCREEN_RECORD=10 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeFunctionEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeFunctionEnum.cs.meta new file mode 100644 index 0000000..635f048 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/HomeFunctionEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6effac1077bec9348aaf4f68c8787e7f +timeCreated: 1685937603 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionOrStatusEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionOrStatusEnum.cs new file mode 100644 index 0000000..2330107 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionOrStatusEnum.cs @@ -0,0 +1,10 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum PICOCastOptionOrStatusEnum + { + OPTION_RESOLUTION_LEVEL=0, + OPTION_BITRATE_LEVEL=1, + OPTION_AUDIO_ENABLE=2, + PICO_CAST_STATUS=3 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionOrStatusEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionOrStatusEnum.cs.meta new file mode 100644 index 0000000..560d170 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionOrStatusEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: aab97c5d20f1fe940beb18a3fe308e46 +timeCreated: 1685945051 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionValueEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionValueEnum.cs new file mode 100644 index 0000000..312f5dd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionValueEnum.cs @@ -0,0 +1,22 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum PICOCastOptionValueEnum + { + OPTION_VALUE_RESOLUTION_HIGH, + OPTION_VALUE_RESOLUTION_MIDDLE, + OPTION_VALUE_RESOLUTION_AUTO, + OPTION_VALUE_RESOLUTION_HIGH_2K, + OPTION_VALUE_RESOLUTION_HIGH_4K, + + OPTION_VALUE_BITRATE_HIGH, + OPTION_VALUE_BITRATE_MIDDLE, + OPTION_VALUE_BITRATE_LOW, + + OPTION_VALUE_AUDIO_ON, + OPTION_VALUE_AUDIO_OFF, + + STATUS_VALUE_STATE_STARTED, + STATUS_VALUE_STATE_STOPPED, + STATUS_VALUE_ERROR + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionValueEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionValueEnum.cs.meta new file mode 100644 index 0000000..0a4bfc8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastOptionValueEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1de348b2dfe662e4b9053c101bbda4fa +timeCreated: 1685945106 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastUrlTypeEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastUrlTypeEnum.cs new file mode 100644 index 0000000..63a0c3d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastUrlTypeEnum.cs @@ -0,0 +1,9 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum PICOCastUrlTypeEnum + { + NORMAL_URL=0, + NO_CONFIRM_URL=1, + RTMP_URL=2 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastUrlTypeEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastUrlTypeEnum.cs.meta new file mode 100644 index 0000000..10c2ccf --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PICOCastUrlTypeEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1d04bb6dfca248143bdd812fb00ea7b2 +timeCreated: 1685944504 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PackageControlEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PackageControlEnum.cs new file mode 100644 index 0000000..031521a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PackageControlEnum.cs @@ -0,0 +1,8 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum PackageControlEnum + { + PACKAGE_SILENCE_INSTALL=0, + PACKAGE_SILENCE_UNINSTALL=1 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PackageControlEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PackageControlEnum.cs.meta new file mode 100644 index 0000000..6bbd616 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PackageControlEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f9508b93fb3d76f49ae71ad9e3d679f9 +timeCreated: 1685937232 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PicoCastMediaFormat.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PicoCastMediaFormat.cs new file mode 100644 index 0000000..99bc0e5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PicoCastMediaFormat.cs @@ -0,0 +1,7 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public class PicoCastMediaFormat + { + public int bitrate = -1;//kb + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PicoCastMediaFormat.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PicoCastMediaFormat.cs.meta new file mode 100644 index 0000000..db577b7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PicoCastMediaFormat.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8eca65ab8e7e4984a8415528a35a2f3d +timeCreated: 1686223794 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PoseErrorTypeEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PoseErrorTypeEnum.cs new file mode 100644 index 0000000..32c59d1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PoseErrorTypeEnum.cs @@ -0,0 +1,20 @@ +using System; +using System.Runtime.InteropServices; + +namespace Unity.XR.PICO.TOBSupport +{ + public enum PoseErrorType + { + BRIGHT_LIGHT_ERROR = (1 << 0), + LOW_LIGHT_ERROR = (1 << 1), + LOW_FEATURE_COUNT_ERROR = (1 << 2), + CAMERA_CALIBRATION_ERROR = (1 << 3), + RELOCATION_IN_PROGRESS = (1 << 4), + INITILIZATION_IN_PROGRESS = (1 << 5), + NO_CAMERA_ERROR = (1 << 6), + NO_IMU_ERROR = (1 << 7), + IMU_JITTER_ERROR = (1 << 8), + UNKNOWN_ERROR = (1 << 9) + }; + +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PoseErrorTypeEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PoseErrorTypeEnum.cs.meta new file mode 100644 index 0000000..4c41c43 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PoseErrorTypeEnum.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 46bdaa338aeb42e4c813168706e540f3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PowerOnOffLogoEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PowerOnOffLogoEnum.cs new file mode 100644 index 0000000..3af59cd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PowerOnOffLogoEnum.cs @@ -0,0 +1,9 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum PowerOnOffLogoEnum + { + PLPowerOnLogo=0, + PLPowerOnAnimation=1, + PLPowerOffAnimation=2 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PowerOnOffLogoEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PowerOnOffLogoEnum.cs.meta new file mode 100644 index 0000000..1c735d3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/PowerOnOffLogoEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f7e0adfb5b4e8e342ad0fa15263e54ca +timeCreated: 1685945676 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreenOffDelayTimeEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreenOffDelayTimeEnum.cs new file mode 100644 index 0000000..01fe7d1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreenOffDelayTimeEnum.cs @@ -0,0 +1,13 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum ScreenOffDelayTimeEnum + { + THREE, + TEN , + THIRTY , + SIXTY, + THREE_HUNDRED, + SIX_HUNDRED , + NEVER + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreenOffDelayTimeEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreenOffDelayTimeEnum.cs.meta new file mode 100644 index 0000000..2964be2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreenOffDelayTimeEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 22e9ab23329ae354097af770cf179472 +timeCreated: 1685943725 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreencastAudioOutputEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreencastAudioOutputEnum.cs new file mode 100644 index 0000000..def253e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreencastAudioOutputEnum.cs @@ -0,0 +1,10 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum ScreencastAudioOutputEnum + { + AUDIO_ERROR=0, + AUDIO_SINK = 1, + AUDIO_TARGET = 2, + AUDIO_SINK_TARGET = 3, + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreencastAudioOutputEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreencastAudioOutputEnum.cs.meta new file mode 100644 index 0000000..e955fe4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/ScreencastAudioOutputEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d484897b4d6e06b4281b6e25e222c723 +timeCreated: 1685945230 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SleepDelayTimeEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SleepDelayTimeEnum.cs new file mode 100644 index 0000000..1484096 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SleepDelayTimeEnum.cs @@ -0,0 +1,13 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum SleepDelayTimeEnum + { + FIFTEEN , + THIRTY , + SIXTY , + THREE_HUNDRED , + SIX_HUNDRED , + ONE_THOUSAND_AND_EIGHT_HUNDRED , + NEVER + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SleepDelayTimeEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SleepDelayTimeEnum.cs.meta new file mode 100644 index 0000000..4373976 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SleepDelayTimeEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ca0a63d4310322847a9569df3fb34d4a +timeCreated: 1685943762 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/StartVRSettingsEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/StartVRSettingsEnum.cs new file mode 100644 index 0000000..3a08071 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/StartVRSettingsEnum.cs @@ -0,0 +1,13 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum StartVRSettingsEnum + { + START_VR_SETTINGS_ITEM_WIFI=0, + START_VR_SETTINGS_ITEM_BLUETOOT=1, + START_VR_SETTINGS_ITEM_CONTROLLER=2, + START_VR_SETTINGS_ITEM_LAB=3, + START_VR_SETTINGS_ITEM_BRIGHTNESS=4, + START_VR_SETTINGS_ITEM_GENERAL=5, + START_VR_SETTINGS_ITEM_NOTIFICATION=6 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/StartVRSettingsEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/StartVRSettingsEnum.cs.meta new file mode 100644 index 0000000..b6076e9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/StartVRSettingsEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 47b4eb0018f80d5428bed27d2e7f69bf +timeCreated: 1685944404 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SwitchEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SwitchEnum.cs new file mode 100644 index 0000000..b43d8fa --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SwitchEnum.cs @@ -0,0 +1,8 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum SwitchEnum + { + S_ON=0, + S_OFF=1 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SwitchEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SwitchEnum.cs.meta new file mode 100644 index 0000000..bd54909 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SwitchEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ef3b88f2e4c726543b34bbb0f0aca35f +timeCreated: 1685937261 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemFunctionSwitchEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemFunctionSwitchEnum.cs new file mode 100644 index 0000000..5cdc814 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemFunctionSwitchEnum.cs @@ -0,0 +1,66 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum SystemFunctionSwitchEnum + { + SFS_USB=0, + SFS_AUTOSLEEP=1, + SFS_SCREENON_CHARGING=2, + SFS_OTG_CHARGING=3, + SFS_RETURN_MENU_IN_2DMODE=4, + SFS_COMBINATION_KEY=5, + SFS_CALIBRATION_WITH_POWER_ON=6, + SFS_SYSTEM_UPDATE=7, + SFS_CAST_SERVICE=8, + SFS_EYE_PROTECTION=9, + SFS_SECURITY_ZONE_PERMANENTLY=10, + SFS_GLOBAL_CALIBRATION=11, + SFS_Auto_Calibration=12, + SFS_USB_BOOT=13, + SFS_VOLUME_UI=14, + SFS_CONTROLLER_UI=15, + SFS_NAVGATION_SWITCH=16, + SFS_SHORTCUT_SHOW_RECORD_UI=17, + SFS_SHORTCUT_SHOW_FIT_UI=18, + SFS_SHORTCUT_SHOW_CAST_UI=19, + SFS_SHORTCUT_SHOW_CAPTURE_UI=20, + SFS_STOP_MEM_INFO_SERVICE=21, + SFS_START_APP_BOOT_COMPLETED=22, + SFS_USB_FORCE_HOST=23, + SFS_SET_DEFAULT_SAFETY_ZONE=24, + SFS_ALLOW_RESET_BOUNDARY=25, + SFS_BOUNDARY_CONFIRMATION_SCREEN=26, + SFS_LONG_PRESS_HOME_TO_RECENTER=27, + SFS_POWER_CTRL_WIFI_ENABLE=28, + SFS_WIFI_DISABLE=29, + SFS_SIX_DOF_SWITCH=30, + SFS_INVERSE_DISPERSION=31, + SFS_LOGCAT=32, + SFS_PSENSOR=33, + SFS_SYSTEM_UPDATE_OTA=34, + SFS_SYSTEM_UPDATE_APP=35, + SFS_SHORTCUT_SHOW_WLAN_UI=36, + SFS_SHORTCUT_SHOW_BOUNDARY_UI=37, + SFS_SHORTCUT_SHOW_BLUETOOTH_UI=38, + SFS_SHORTCUT_SHOW_CLEAN_TASK_UI=39, + SFS_SHORTCUT_SHOW_IPD_ADJUSTMENT_UI=40, + SFS_SHORTCUT_SHOW_POWER_UI=41, + SFS_SHORTCUT_SHOW_EDIT_UI=42, + SFS_BASIC_SETTING_APP_LIBRARY_UI=43, + SFS_BASIC_SETTING_SHORTCUT_UI=44, + SFS_LED_FLASHING_WHEN_SCREEN_OFF=45, + SFS_BASIC_SETTING_CUSTOMIZE_SETTING_UI=46, + SFS_BASIC_SETTING_SHOW_APP_QUIT_CONFIRM_DIALOG=47, + SFS_BASIC_SETTING_KILL_BACKGROUND_VR_APP=48, + SFS_BASIC_SETTING_SHOW_CAST_NOTIFICATION=49, + SFS_AUTOMATIC_IPD=50, + SFS_QUICK_SEETHROUGH_MODE=51, + SFS_HIGN_REFERSH_MODE=52, + SFS_SEETHROUGH_APP_KEEP_RUNNING=53, + SFS_OUTDOOR_TRACKING_ENHANCEMENT=54, + SFS_AUTOIPD_AUTO_COMFIRM=55, + SFS_LAUNCH_AUTOIPD_IF_GLASSES_WEARED=56, + SFS_GESTURE_RECOGNITION_HOME_ENABLE=57, + SFS_GESTURE_RECOGNITION_RESET_ENABLE=58, + SFS_AUTO_COPY_FILES_FROM_USB_DEVICE=59 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemFunctionSwitchEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemFunctionSwitchEnum.cs.meta new file mode 100644 index 0000000..336f0a7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemFunctionSwitchEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d478586fa3b0236429ce81bab6f48957 +timeCreated: 1685943877 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemInfoEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemInfoEnum.cs new file mode 100644 index 0000000..f1a2275 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemInfoEnum.cs @@ -0,0 +1,20 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum SystemInfoEnum + { + ELECTRIC_QUANTITY=0, + PUI_VERSION=1, + EQUIPMENT_MODEL=2, + EQUIPMENT_SN=3, + CUSTOMER_SN=4, + INTERNAL_STORAGE_SPACE_OF_THE_DEVICE=5, + DEVICE_BLUETOOTH_STATUS=6, + BLUETOOTH_NAME_CONNECTED=7, + BLUETOOTH_MAC_ADDRESS=8, + DEVICE_WIFI_STATUS=9, + WIFI_NAME_CONNECTED=10, + WLAN_MAC_ADDRESS=11, + DEVICE_IP=12, + CHARGING_STATUS=13 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemInfoEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemInfoEnum.cs.meta new file mode 100644 index 0000000..f6390c0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/SystemInfoEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1fb47fac324da0244b89e5cba9b606db +timeCreated: 1685937098 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/USBConfigModeEnum.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/USBConfigModeEnum.cs new file mode 100644 index 0000000..5f8284c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/USBConfigModeEnum.cs @@ -0,0 +1,8 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public enum USBConfigModeEnum + { + MTP=0, + CHARGE=1 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/USBConfigModeEnum.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/USBConfigModeEnum.cs.meta new file mode 100644 index 0000000..70b7e53 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Enums/USBConfigModeEnum.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 83c4de97e8bbda3448a5180986a87c33 +timeCreated: 1685944441 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces.meta new file mode 100644 index 0000000..3a3d17f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c5c24af23d2b3de43bf3444f7edca288 +timeCreated: 1685952511 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BindCallback.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BindCallback.cs new file mode 100644 index 0000000..b22332c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BindCallback.cs @@ -0,0 +1,28 @@ +using System; +using UnityEngine; + +namespace Unity.XR.PICO.TOBSupport +{ + public class BindCallback : AndroidJavaProxy + { + public Action mCallback; + + public BindCallback(Action callback) : base("com.picoxr.tobservice.interfaces.BoolCallback") + { + mCallback = callback; + } + + public void CallBack(bool var1) + { + Debug.Log("ToBService bindCallBack 回调:" + var1); + PXR_EnterprisePlugin.GetServiceBinder(); + PXR_EnterpriseTools.QueueOnMainThread(() => + { + if (mCallback != null) + { + mCallback(var1); + } + }); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BindCallback.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BindCallback.cs.meta new file mode 100644 index 0000000..dcbee72 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BindCallback.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 51a5199660b7a714aae526c9e8ecf42e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BoolCallback.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BoolCallback.cs new file mode 100644 index 0000000..da1fbf2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BoolCallback.cs @@ -0,0 +1,26 @@ +using System; +using UnityEngine; + +namespace Unity.XR.PICO.TOBSupport +{ + public class BoolCallback : AndroidJavaProxy + { + public Action mCallback; + + public BoolCallback(Action callback) : base("com.picoxr.tobservice.interfaces.BoolCallback") + { + mCallback = callback; + } + + public void CallBack(bool var1) + { + PXR_EnterpriseTools.QueueOnMainThread(() => + { + if (mCallback!=null) + { + mCallback(var1); + } + }); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BoolCallback.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BoolCallback.cs.meta new file mode 100644 index 0000000..7dff9e1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/BoolCallback.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4ec069c2f433a8649af361d7ff835006 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/FileCopyCallback.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/FileCopyCallback.cs new file mode 100644 index 0000000..080cccb --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/FileCopyCallback.cs @@ -0,0 +1,50 @@ +using System; +using UnityEngine; + +namespace Unity.XR.PICO.TOBSupport +{ + public class FileCopyCallback: AndroidJavaProxy + { + public Action mOnCopyStart; + public Action mOnCopyProgress; + public Action mOnCopyFinish; + + public FileCopyCallback(Action onCopyStart,Action onCopyProgress,Action onCopyFinish) : base("com.picoxr.tobservice.interfaces.FileCopyCallback") + { + mOnCopyStart = onCopyStart; + mOnCopyProgress = onCopyProgress; + mOnCopyFinish = onCopyFinish; + } + + public void OnCopyStart() + { + PXR_EnterpriseTools.QueueOnMainThread(() => + { + if (mOnCopyStart!=null) + { + mOnCopyStart(); + } + }); + } + public void OnCopyProgress(double var1) + { + PXR_EnterpriseTools.QueueOnMainThread(() => + { + if (mOnCopyProgress!=null) + { + mOnCopyProgress(var1); + } + }); + } + public void OnCopyFinish(int var1) + { + PXR_EnterpriseTools.QueueOnMainThread(() => + { + if (mOnCopyFinish!=null) + { + mOnCopyFinish(var1); + } + }); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/FileCopyCallback.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/FileCopyCallback.cs.meta new file mode 100644 index 0000000..eec7912 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/FileCopyCallback.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f1ff22a32748af4ebc61fc3e215b7c1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/IntCallback.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/IntCallback.cs new file mode 100644 index 0000000..edbf1dc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/IntCallback.cs @@ -0,0 +1,26 @@ +using System; +using UnityEngine; + +namespace Unity.XR.PICO.TOBSupport +{ + public class IntCallback : AndroidJavaProxy + { + public Action mCallback; + + public IntCallback(Action callback) : base("com.picoxr.tobservice.interfaces.IntCallback") + { + mCallback = callback; + } + + public void CallBack(int var1) + { + PXR_EnterpriseTools.QueueOnMainThread(() => + { + if (mCallback != null) + { + mCallback(var1); + } + }); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/IntCallback.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/IntCallback.cs.meta new file mode 100644 index 0000000..5354dd7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/IntCallback.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 96277bb913de2a84e8f29f38fbdc9f29 +timeCreated: 1685959032 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/LongCallback.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/LongCallback.cs new file mode 100644 index 0000000..2463ec3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/LongCallback.cs @@ -0,0 +1,26 @@ +using System; +using UnityEngine; + +namespace Unity.XR.PICO.TOBSupport +{ + public class LongCallback : AndroidJavaProxy + { + public Action mCallback; + + public LongCallback(Action callback) : base("com.picoxr.tobservice.interfaces.LongCallback") + { + mCallback = callback; + } + + public void CallBack(long var1) + { + PXR_EnterpriseTools.QueueOnMainThread(() => + { + if (mCallback != null) + { + mCallback(var1); + } + }); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/LongCallback.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/LongCallback.cs.meta new file mode 100644 index 0000000..a6e02fa --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/LongCallback.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: be7c175a931c58d43adc4dfd8b4919a2 +timeCreated: 1685959096 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/MarkerInfoCallback.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/MarkerInfoCallback.cs new file mode 100644 index 0000000..f9172b3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/MarkerInfoCallback.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using LitJson; +using UnityEngine; +using UnityEngine.XR; +#if PICO_XR +using Unity.XR.PXR; +#else +using Unity.XR.OpenXR.Features.PICOSupport; +#endif + +namespace Unity.XR.PICO.TOBSupport +{ + public class MarkerInfoCallback : AndroidJavaProxy + { + public Action> mCallback; + private List mlist = new List(); + private TrackingOriginModeFlags TrackingMode; + private float YOffset; + + public MarkerInfoCallback(TrackingOriginModeFlags trackingMode, float cameraYOffset, + Action> callback) : base("com.picoxr.tobservice.interfaces.StringCallback") + { + TrackingMode = trackingMode; + YOffset = cameraYOffset; + mCallback = callback; + mlist.Clear(); +#if PICO_XR +#else + OpenXRExtensions.SetMarkMode(); +#endif + } + + public void CallBack(string var1) + { + Debug.Log("ToBService MarkerInfo Callback 回调:" + var1); + List tmp = JsonToMarkerInfos(var1); + PXR_EnterpriseTools.QueueOnMainThread(() => + { + if (mCallback != null) + { + mCallback(tmp); + } + }); + } + + public List JsonToMarkerInfos(string json) + { + if (string.IsNullOrEmpty(json)) + { + return null; + } + + List ModelList = new List(); + JsonData jsonData = JsonMapper.ToObject(json); + IDictionary dictionary = jsonData as IDictionary; + for (int i = 0; i < dictionary.Count; i++) + { + Debug.Log("TOB TestDemo---- MarkerInfo Callback 回调:1"); + + float OriginHeight = 0; + if (TrackingMode == TrackingOriginModeFlags.Device || TrackingMode == TrackingOriginModeFlags.Floor) + { + +#if PICO_XR + OriginHeight = PXR_Plugin.System.UPxr_GetConfigFloat(ConfigType.ToDelaSensorY); +#else + float trackingorigin_height = PXR_EnterprisePlugin.oxr_get_trackingorigin_height(); + float locationheight = OpenXRExtensions.GetLocationHeight(); + if (TrackingMode == TrackingOriginModeFlags.Floor) + { + YOffset = 0; + OriginHeight = -trackingorigin_height; + } + else + { + // OriginHeight = trackingorigin_height + locationheight; + // OriginHeight = locationheight; + OriginHeight = -trackingorigin_height; + } +#endif + } + else + { + OriginHeight = 0; + YOffset = 0; + } + + Debug.Log("TOB TestDemo---- MarkerInfo Callback 回调:OriginHeight:"+OriginHeight ); + MarkerInfo model = new MarkerInfo(); + model.posX = double.Parse(jsonData[i]["posX"].ToString()); + model.posY = double.Parse(jsonData[i]["posY"].ToString()) + OriginHeight + YOffset; + model.posZ = -double.Parse(jsonData[i]["posZ"].ToString()); + + model.rotationX = -double.Parse(jsonData[i]["rotationX"].ToString()); + model.rotationY = -double.Parse(jsonData[i]["rotationY"].ToString()); + model.rotationZ = double.Parse(jsonData[i]["rotationZ"].ToString()); + model.rotationW = double.Parse(jsonData[i]["rotationW"].ToString()); + + model.validFlag = int.Parse(jsonData[i]["validFlag"].ToString()); + model.markerType = int.Parse(jsonData[i]["markerType"].ToString()); + model.iMarkerId = int.Parse(jsonData[i]["iMarkerId"].ToString()); + model.dTimestamp = double.Parse(jsonData[i]["dTimestamp"].ToString()); + + IDictionary dictionaryReserve = jsonData[i]["reserve"] as IDictionary; + model.reserve = new float[dictionaryReserve.Count]; + for (int j = 0; j < dictionaryReserve.Count; j++) + { + model.reserve[j] = float.Parse(jsonData[i]["reserve"][j].ToString()); + } + + ModelList.Add(model); + } + + return ModelList; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/MarkerInfoCallback.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/MarkerInfoCallback.cs.meta new file mode 100644 index 0000000..e6121a8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/MarkerInfoCallback.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0f3dd52fe57c0fc4490989b3e1841b24 +timeCreated: 1686224891 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/StringCallback.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/StringCallback.cs new file mode 100644 index 0000000..b577e71 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/StringCallback.cs @@ -0,0 +1,26 @@ +using System; +using UnityEngine; + +namespace Unity.XR.PICO.TOBSupport +{ + public class StringCallback : AndroidJavaProxy + { + public Action mCallback; + + public StringCallback(Action callback) : base("com.picoxr.tobservice.interfaces.StringCallback") + { + mCallback = callback; + } + + public void CallBack(string var1) + { + PXR_EnterpriseTools.QueueOnMainThread(() => + { + if (mCallback != null) + { + mCallback(var1); + } + }); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/StringCallback.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/StringCallback.cs.meta new file mode 100644 index 0000000..67a621b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/StringCallback.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0032579f19172484ebd2e85a16a8194d +timeCreated: 1685959143 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/WifiDisplayModelCallback.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/WifiDisplayModelCallback.cs new file mode 100644 index 0000000..57d4e29 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/WifiDisplayModelCallback.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using LitJson; +using UnityEngine; + +namespace Unity.XR.PICO.TOBSupport +{ + public class WifiDisplayModelCallback : AndroidJavaProxy + { + public Action> mCallback; + + public WifiDisplayModelCallback(Action> callback) : base("com.picoxr.tobservice.interfaces.StringCallback") + { + mCallback = callback; + } + + public void CallBack(string var1) + { + Debug.Log("ToBService WifiDisplayModelCallback 回调:" + var1); + List tmp = JsonToWifiDisplayModel(var1); + PXR_EnterpriseTools.QueueOnMainThread(() => + { + if (mCallback != null) + { + mCallback(tmp); + } + }); + } + + public List JsonToWifiDisplayModel(string json) + { + if (string.IsNullOrEmpty(json)) + { + return null; + } + + List ModelList = new List(); + JsonData jsonData = JsonMapper.ToObject(json); + IDictionary dictionary = jsonData as IDictionary; + for (int i = 0; i < dictionary.Count; i++) + { + WifiDisplayModel model = new WifiDisplayModel(); + model.deviceAddress = jsonData[i]["deviceAddress"].ToString(); + model.deviceName = jsonData[i]["deviceName"].ToString(); + model.isAvailable = bool.Parse(jsonData[i]["isAvailable"].ToString()); + model.canConnect = bool.Parse(jsonData[i]["canConnect"].ToString()); + model.isRemembered = bool.Parse(jsonData[i]["isRemembered"].ToString()); + model.statusCode = int.Parse(jsonData[i]["statusCode"].ToString()); + model.status = jsonData[i]["status"].ToString(); + model.description = jsonData[i]["description"].ToString(); + + ModelList.Add(model); + } + + return ModelList; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/WifiDisplayModelCallback.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/WifiDisplayModelCallback.cs.meta new file mode 100644 index 0000000..268cf47 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Interfaces/WifiDisplayModelCallback.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6cf02f2e31d415c41b26dd8e5108dada +timeCreated: 1686050869 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model.meta new file mode 100644 index 0000000..ac5555a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1f65db304235e324c898720b2c3f4ce1 +timeCreated: 1686224723 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/MarkerInfo.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/MarkerInfo.cs new file mode 100644 index 0000000..ef5f6fd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/MarkerInfo.cs @@ -0,0 +1,38 @@ +using System.Linq; + +namespace Unity.XR.PICO.TOBSupport +{ + public class MarkerInfo + { + // position + public double posX; + public double posY; + public double posZ; + + // rotation + public double rotationX; + public double rotationY; + public double rotationZ; + public double rotationW; + + // 标志位:识别无效=0,识别有效=1 + public int validFlag; + + // 类型:静态=1/动态=0 + public int markerType; + + // marker id + public int iMarkerId; + + // 检测图像的时间戳 + public double dTimestamp; + + // 预留标志位 + public float[] reserve; + + public override string ToString() + { + return $"{nameof(posX)}: {posX}, {nameof(posY)}: {posY}, {nameof(posZ)}: {posZ}, {nameof(rotationX)}: {rotationX}, {nameof(rotationY)}: {rotationY}, {nameof(rotationZ)}: {rotationZ}, {nameof(rotationW)}: {rotationW}, {nameof(validFlag)}: {validFlag}, {nameof(markerType)}: {markerType}, {nameof(iMarkerId)}: {iMarkerId}, {nameof(dTimestamp)}: {dTimestamp}, {nameof(reserve)}: {string.Join(" ", reserve)}"; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/MarkerInfo.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/MarkerInfo.cs.meta new file mode 100644 index 0000000..49b0230 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/MarkerInfo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f68848d9c705ba340a11b2713ae79b83 +timeCreated: 1686224373 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/WifiDisplayModel.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/WifiDisplayModel.cs new file mode 100644 index 0000000..50c39f9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/WifiDisplayModel.cs @@ -0,0 +1,23 @@ +namespace Unity.XR.PICO.TOBSupport +{ + public class WifiDisplayModel + { + public static int STATUS_NOT_CONNECT = -1; + public static int STATUS_NONE = 0; + public static int STATUS_SCANNING = 1; + public static int STATUS_CONNECTING = 2; + public static int STATUS_AVAILABLE = 3; + public static int STATUS_NOT_AVAILABLE = 4; + public static int STATUS_IN_USE = 5; + public static int STATUS_CONNECTED = 6; + + public string deviceAddress; + public string deviceName; + public bool isAvailable; + public bool canConnect; + public bool isRemembered; + public int statusCode; + public string status; + public string description; + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/WifiDisplayModel.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/WifiDisplayModel.cs.meta new file mode 100644 index 0000000..9090523 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Model/WifiDisplayModel.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 39f5fd05aee2d0047932945fab6f46a1 +timeCreated: 1686050281 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/PXR_Enterprise.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/PXR_Enterprise.cs new file mode 100644 index 0000000..82eed57 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/PXR_Enterprise.cs @@ -0,0 +1,2012 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Generic; +using UnityEngine.XR; + +namespace Unity.XR.PICO.TOBSupport +{ + /** + * Enterprise APIs are only supported by enterprise devices, including PICO Neo2, Neo2 Eye, Neo3 Pro、Neo3 Pro Eye, G2 4K/4K E/4K Plus (system version 4.0.3 or later), and PICO 4 Enterprise. + * Do not use them on consumer devices. + */ + public class PXR_Enterprise + { + /// + /// Initializes the enterprise service for a specified object. Must be called before calling other enterprise APIs. + /// + /// Whether the enterprise service has been initialized: + /// * `true`: success + /// * `false`: failure + /// @note OpenXR does not support the returns. The returns belong to EasyAR initialization. + public static bool InitEnterpriseService() + { + PXR_EnterpriseTools.Instance.StartUp(); + bool result = PXR_EnterprisePlugin.UPxr_InitEnterpriseService(); + return result; + } + + /// + /// Binds the enterprise service. Must be called before calling other system related functions. + /// + /// + /// Service-binding result callback that allows for bool values: + /// * `true`: success + /// * `false`: failure + /// If no callback is specified, the parameter will default to null. + /// + public static void BindEnterpriseService(Action callback=null) + { + PXR_EnterprisePlugin.UPxr_BindEnterpriseService(callback); + } + + /// + /// Unbinds the enterprise service. + /// + public static void UnBindEnterpriseService() + { + PXR_EnterprisePlugin.UPxr_UnBindEnterpriseService(); + } + + /// + /// Gets the specified type of device information. + /// + /// The target information type. Enumerations: + /// * `ELECTRIC_QUANTITY`: battery + /// * `PUI_VERSION`: system version + /// * `EQUIPMENT_MODEL`: device model + /// * `EQUIPMENT_SN`: device SN code + /// * `CUSTOMER_SN`: customer SN code + /// * `INTERNAL_STORAGE_SPACE_OF_THE_DEVICE`: device storage + /// * `DEVICE_BLUETOOTH_STATUS`: bluetooth status + /// * `BLUETOOTH_NAME_CONNECTED`: bluetooth name + /// * `BLUETOOTH_MAC_ADDRESS`: bluetooth MAC address + /// * `DEVICE_WIFI_STATUS`: Wi-Fi connection status + /// * `WIFI_NAME_CONNECTED`: connected Wi-Fi name + /// * `WLAN_MAC_ADDRESS`: WLAN MAC address + /// * `DEVICE_IP`: device IP address + /// * `CHARGING_STATUS`: device charging status + /// + /// The specified type of device information. For `CHARGING_STATUS`, an int value will be returned: `2`-charging; `3`-not charging. + public static string StateGetDeviceInfo(SystemInfoEnum type) + { + return PXR_EnterprisePlugin.UPxr_StateGetDeviceInfo(type); + } + + /// + /// Shuts down or reboots the device. + /// @note This is a protected API. You need to add `` + /// to the app's AndroidManifest.xml file for calling this API, after which the app is unable to be published on the PICO Store. + /// + /// Device action. Enumerations: + /// * `DEVICE_CONTROL_REBOOT` + /// * `DEVICE_CONTROL_SHUTDOWN` + /// + /// Callback: + /// * `1`: failed to shut down or reboot the device + /// * `2`: no permission to perform this operation + /// + public static void ControlSetDeviceAction(DeviceControlEnum deviceControl, Action callback) + { + PXR_EnterprisePlugin.UPxr_ControlSetDeviceAction(deviceControl, callback); + } + + /// + /// Installs or uninstalls app silently. + /// @note This is a protected API. You need to add `` + /// to the app's AndroidManifest.xml file for calling this API, after which the app is unable to be published on the PICO Store. + /// + /// The action. Enumerations: + /// * `PACKAGE_SILENCE_INSTALL`: silent installation + /// * `PACKAGE_SILENCE_UNINSTALL`: silent uninstallation + /// + /// The path to the app package for silent installation or the name of the app package for silent uninstallation. + /// Callback: + /// * `0`: success + /// * `1`: failure + /// * `2`: no permission to perform this operation + /// + public static void ControlAPPManager(PackageControlEnum packageControl, string path, Action callback) + { + PXR_EnterprisePlugin.UPxr_ControlAPPManager(packageControl, path, callback); + } + + /// + /// Sets a Wi-Fi that the device is automatically connected to. + /// + /// Wi-Fi name. + /// Wi-Fi password. + /// Callback: + /// * `true`: connected + /// * `false`: failed to connect + /// + public static void ControlSetAutoConnectWIFI(string ssid, string pwd, Action callback) + { + PXR_EnterprisePlugin.UPxr_ControlSetAutoConnectWIFI(ssid, pwd, callback); + } + + /// + /// Removes the Wi-Fi that the device is automatically connected to. + /// + /// Callback: + /// * `true`: removed + /// * `false`: failed to remove + /// + public static void ControlClearAutoConnectWIFI(Action callback) + { + PXR_EnterprisePlugin.UPxr_ControlClearAutoConnectWIFI(callback); + } + + /// + /// Sets the Home button event. + /// + /// Target event. Enumerations: + /// * `SINGLE_CLICK`: single-click + /// * `DOUBLE_CLICK`: double-click + /// * `LONG_PRESS`: long press + /// * `SINGLE_CLICK_RIGHT_CTL`: single-click on the right controller's Home button + /// * `DOUBLE_CLICK_RIGHT_CTL`: double-click on the right controller's Home button + /// * `LONG_PRESS_RIGHT_CTL`: long press on the right controller's Home button + /// * `SINGLE_CLICK_LEFT_CTL`: single-click on the left controller's Home button + /// * `DOUBLE_CLICK_LEFT_CTL`: double-click on the left controller's Home button + /// * `LONG_PRESS_LEFT_CTL`: long press on the left controller's Home button + /// * `SINGLE_CLICK_HMD`: single-click on the HMD's Home button + /// * `DOUBLE_CLICK_HMD`: double-click on the HMD's Home button + /// * `LONG_PRESS_HMD`: long press on the HMD's Home button + /// + /// The function of the event. Enumerations: + /// * `VALUE_HOME_GO_TO_SETTING`: go to Settings + /// * `VALUE_HOME_BACK`: back (only supported by PICO G2 4K) + /// * `VALUE_HOME_RECENTER`: recenter the screen + /// * `VALUE_HOME_OPEN_APP`: open a specified app + /// * `VALUE_HOME_DISABLE`: disable the Home button + /// * `VALUE_HOME_GO_TO_HOME`: open the launcher + /// * `VALUE_HOME_SEND_BROADCAST`: send Home-button-click broadcast + /// * `VALUE_HOME_CLEAN_MEMORY`: clear background apps + /// * `VALUE_HOME_QUICK_SETTING`: enable quick settings + /// * `VALUE_HOME_SCREEN_CAP`: enable screen capture + /// * `VALUE_HOME_SCREEN_RECORD`: enable screen recording + /// + /// Callback: + /// * `true`: success + /// * `false`: failure + /// + public static void PropertySetHomeKey(HomeEventEnum eventEnum, HomeFunctionEnum function, Action callback) + { + PXR_EnterprisePlugin.UPxr_PropertySetHomeKey(eventEnum, function, callback); + } + + /// + /// Sets extended settings for the Home button. + /// + /// Target event. Enumerations: + /// * `SINGLE_CLICK_RIGHT_CTL`: single-click on the right controller's Home button + /// * `DOUBLE_CLICK_RIGHT_CTL`: double-click on the right controller's Home button + /// * `LONG_PRESS_RIGHT_CTL`: long press on the right controller's Home button + /// * `SINGLE_CLICK_LEFT_CTL`: single-click on the left controller's Home button + /// * `DOUBLE_CLICK_LEFT_CTL`: double-click on the left controller's Home button + /// * `LONG_PRESS_LEFT_CTL`: long press on the left controller's Home button + /// * `SINGLE_CLICK_HMD`: single-click on the HMD's Home button + /// * `DOUBLE_CLICK_HMD`: double-click on the HMD's Home button + /// * `LONG_PRESS_HMD`: long press on the HMD's Home button + /// + /// The function of the event. Enumerations: + /// * `VALUE_HOME_GO_TO_SETTING`: go to Settings + /// * `VALUE_HOME_BACK`: back (only supported by PICO G2 4K) + /// * `VALUE_HOME_RECENTER`: recenter the screen + /// * `VALUE_HOME_OPEN_APP`: open a specified app + /// * `VALUE_HOME_DISABLE`: disable the Home button + /// * `VALUE_HOME_GO_TO_HOME`: open the launcher + /// * `VALUE_HOME_SEND_BROADCAST`: send Home-key-click broadcast + /// * `VALUE_HOME_CLEAN_MEMORY`: clear background apps + /// * `VALUE_HOME_QUICK_SETTING`: enable quick settings + /// * `VALUE_HOME_SCREEN_CAP`: enable screen capture + /// * `VALUE_HOME_SCREEN_RECORD`: enable screen recording + /// + /// The interval of key pressing is set only if there is the double click event or long pressing event. When shortly pressing the Home button, pass `0`. + /// Pass `null`. + /// Pass `null`. + /// Callback: + /// * `true`: set + /// * `false`: failed to set + /// + public static void PropertySetHomeKeyAll(HomeEventEnum eventEnum, HomeFunctionEnum function, int timesetup, string pkg, string className, Action callback) + { + PXR_EnterprisePlugin.UPxr_PropertySetHomeKeyAll(eventEnum, function, timesetup, pkg, className, callback); + } + + /// + /// Sets the Power button's event. + /// + /// Whether it is a single click event: + /// * `true`: single-click event + /// * `false`: long-press event + /// + /// Enable or disable the Power button: + /// * `true`: enable + /// * `false`: disable + /// + /// Callback: + /// * `0`: set + /// * `1`: failed to set + /// + public static void PropertyDisablePowerKey(bool isSingleTap, bool enable, Action callback) + { + PXR_EnterprisePlugin.UPxr_PropertyDisablePowerKey(isSingleTap, enable, callback); + } + + /// + /// Sets the time the screen turns off when the device is not in use. + /// + /// Screen off timeout. Enumerations: + /// * `Never`: never off + /// * `THREE`: 3s (only supported by PICO G2 4K) + /// * `TEN`: 10s (only supported by PICO G2 4K) + /// * `THIRTY`: 30s + /// * `SIXTY`: 60s + /// * `THREE_HUNDRED`: 5 mins + /// * `SIX_HUNDRED`: 10 mins + /// + /// Callback: + /// * `0`: set + /// * `1`: failed to set + /// * `10`: the screen off timeout should not be longer than the system sleep timeout + /// + public static void PropertySetScreenOffDelay(ScreenOffDelayTimeEnum timeEnum, Action callback) + { + PXR_EnterprisePlugin.UPxr_PropertySetScreenOffDelay(timeEnum, callback); + } + + /// + /// Sets the time the system sleeps when the device is not in use. + /// + /// System sleep timeout. Enumerations: + /// * `Never`: never sleep + /// * `FIFTEEN`: 15s (only supported by PICO G2 4K) + /// * `THIRTY`: 30s (only supported by PICO G2 4K) + /// * `SIXTY`: 60s (only supported by PICO G2 4K) + /// * `THREE_HUNDRED`: 5 mins + /// * `SIX_HUNDRED`: 10 mins + /// * `ONE_THOUSAND_AND_EIGHT_HUNDRED`: 30 mins + /// + public static void PropertySetSleepDelay(SleepDelayTimeEnum timeEnum) + { + PXR_EnterprisePlugin.UPxr_PropertySetSleepDelay(timeEnum); + } + + /// + /// Switches specified system function on/off. + /// + /// Function name. Enumerations: + /// * `SFS_USB`: USB debugging + /// * `SFS_AUTOSLEEP`: auto sleep + /// * `SFS_SCREENON_CHARGING`: screen-on charging + /// * `SFS_OTG_CHARGING`: OTG charging (supported by G2 devices) + /// * `SFS_RETURN_MENU_IN_2DMODE`: display the Return icon on the 2D screen + /// * `SFS_COMBINATION_KEY`: combination key + /// * `SFS_CALIBRATION_WITH_POWER_ON`: calibration with power on + /// * `SFS_SYSTEM_UPDATE`: system update (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_CAST_SERVICE`: phone casting service + /// * `SFS_EYE_PROTECTION`: eye-protection mode + /// * `SFS_SECURITY_ZONE_PERMANENTLY`: permanently disable the 6DoF play area (supported by PICO Neo2 devices) + /// * `SFS_GLOBAL_CALIBRATION`: global calibration (supported by PICO G2 devices) + /// * `SFS_Auto_Calibration`: auto calibration + /// * `SFS_USB_BOOT`: USB plug-in boot + /// * `SFS_VOLUME_UI`: global volume UI (need to restart the device to make the setting take effect) + /// * `SFS_CONTROLLER_UI`: global controller connected UI + /// * `SFS_NAVGATION_SWITCH`: navigation bar + /// * `SFS_SHORTCUT_SHOW_RECORD_UI`: screen recording button UI + /// * `SFS_SHORTCUT_SHOW_FIT_UI`: PICO fit UI + /// * `SFS_SHORTCUT_SHOW_CAST_UI`: screencast button UI + /// * `SFS_SHORTCUT_SHOW_CAPTURE_UI`: screenshot button UI + /// * `SFS_USB_FORCE_HOST`: set the Neo3 Pro/Pro Eye device as the host device + /// * `SFS_SET_DEFAULT_SAFETY_ZONE`: set a default play area for PICO Neo3 and PICO 4 series devices + /// * `SFS_ALLOW_RESET_BOUNDARY`: allow to reset customized boundary for PICO Neo3 series devices + /// * `SFS_BOUNDARY_CONFIRMATION_SCREEN`: whether to display the boundary confirmation screen for PICO Neo3 and PICO 4 series devices + /// * `SFS_LONG_PRESS_HOME_TO_RECENTER`: long press the Home button to recenter for PICO Neo3 and PICO 4 series devices + /// * `SFS_POWER_CTRL_WIFI_ENABLE`: stay connected to the network when the device sleeps/turns off (supported by PICO Neo3 Pro with system version 4.8.0 or later and PICO 4 Enterprise with system version OTA-5.2.8 or later) + /// * `SFS_WIFI_DISABLE`: disable Wi-Fi (supported by PICO Neo3 Pro with system version 4.8.0 or later and PICO 4 Enterprise with system version OTA-5.2.8 or later) + /// * `SFS_SIX_DOF_SWITCH`: 6DoF position tracking for PICO Neo3 and PICO 4 series devices + /// * `SFS_INVERSE_DISPERSION`: anti-dispersion (supported by PICO Neo3 Pro with system version 4.8.0 or later and PICO 4 Enterprise with system version OTA0-5.2.8 or later) + /// * `SFS_LOGCAT`: system log switch (/data/logs) (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_PSENSOR`: PSensor switch (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SYSTEM_UPDATE_OTA`: OTA upgrade (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SYSTEM_UPDATE_APP`: app upgrade and update (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_WLAN_UI`: quickly set whether to show the WLAN button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_BOUNDARY_UI`: quickly set whether to show the boundary button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_BLUETOOTH_UI`: quickly set whether to show the bluetooth button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_CLEAN_TASK_UI`: quickly set whether to show the one-click clear button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_IPD_ADJUSTMENT_UI`: quickly set whether to show the IPD adjustment button (supported by PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_POWER_UI`: quickly set whether to show the power button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_EDIT_UI`: quickly set whether to show the edit button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_BASIC_SETTING_APP_LIBRARY_UI`: the button for customizing the app library (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_BASIC_SETTING_SHORTCUT_UI`: the button for customizing quick settings (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_LED_FLASHING_WHEN_SCREEN_OFF`: whether to keep the LED indicator light on when the device's screen is off and the battery is below 20% (supported by PICO G3 devices) + /// * `SFS_BASIC_SETTING_CUSTOMIZE_SETTING_UI`: customize settings item to show or hide in basic settings + /// * `SFS_BASIC_SETTING_SHOW_APP_QUIT_CONFIRM_DIALOG`: whether to show the app-quit dialog box when switching to a new app + /// * `SFS_BASIC_SETTING_KILL_BACKGROUND_VR_APP`: whether to kill background VR apps (`1`: kill, and this is the default setting; `2`: do not kill) + /// * `SFS_BASIC_SETTING_SHOW_CAST_NOTIFICATION`: whether to show a blue icon when casting the screen. The icon is displayed by default, and you can set the value to `0` to hide it. + /// * `SFS_AUTOMATIC_IPD`: auto IPD switch (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.7.0 or later) + /// * `SFS_QUICK_SEETHROUGH_MODE`: quick seethrough mode switch (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.7.0 or later) + /// * `SFS_HIGN_REFERSH_MODE`: high refresh mode switch (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.7.0 or later) + /// * `SFS_SEETHROUGH_APP_KEEP_RUNNING`: set whether to keep the app running under the seethrough mode (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_OUTDOOR_TRACKING_ENHANCEMENT`: enhance outdoor position tracking (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_AUTOIPD_AUTO_COMFIRM`: quick auto-IPD (supported by PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_LAUNCH_AUTOIPD_IF_GLASSES_WEARED`: set whether to launch auto-IPD after wearing the headset (supported by PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_GESTURE_RECOGNITION_HOME_ENABLE`: Home gesture switch (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_GESTURE_RECOGNITION_RESET_ENABLE`: enable/disable the Reset gesture (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_AUTO_COPY_FILES_FROM_USB_DEVICE`: automatically import OTG resources (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.8.0 or later) + /// + /// Whether to switch the function on/off: + /// * `S_ON`: switch on + /// * `S_OFF`: switch off + /// + public static void SwitchSystemFunction(SystemFunctionSwitchEnum systemFunction, SwitchEnum switchEnum) + { + PXR_EnterprisePlugin.UPxr_SwitchSystemFunction(systemFunction, switchEnum); + } + + /// + /// Sets the USB configuration mode. + /// + /// USB configuration mode. Enumerations: + /// * `MTP`: MTP mode + /// * `CHARGE`: charging mode + /// + public static void SwitchSetUsbConfigurationOption(USBConfigModeEnum uSBConfigModeEnum) + { + PXR_EnterprisePlugin.UPxr_SwitchSetUsbConfigurationOption(uSBConfigModeEnum); + } + + /// + /// Sets the duration after which the controllers enter the pairing mode. + /// @note Supported by PICO Neo3 Pro (system version 5.4.0 or later) and PICO 4 Enterprise (system version 5.2.8 or later) + /// + /// Duration enumerations: + /// * `SIX`: 6 seconds + /// * `FIFTEEN`: 15 seconds + /// * `SIXTY`: 60 seconds + /// * `ONE_HUNDRED_AND_TWENTY`: 120 seconds (2 minutes) + /// * `SIX_HUNDRED`: 600 seconds (5 minutes) + /// * `NEVER`: never enter the pairing mode + /// + /// Returns the result: + /// * `0`: failure + /// * `1`: success + /// + public static void SetControllerPairTime(ControllerPairTimeEnum timeEnum, Action callback) + { + PXR_EnterprisePlugin.UPxr_SetControllerPairTime(timeEnum, callback); + } + + /// + /// Gets the duration after which the controllers enter the pairing mode. + /// @note Supported by PICO Neo3 Pro (system version 5.4.0 or later) and PICO 4 Enterprise (system version 5.2.8 or later) + /// + /// Returns a duration enumeration from the following: + /// * `SIX`: 6 seconds + /// * `FIFTEEN`: 15 seconds + /// * `SIXTY`: 60 seconds + /// * `ONE_HUNDRED_AND_TWENTY`: 120 seconds (2 minutes) + /// * `SIX_HUNDRED`: 600 seconds (5 minutes) + /// * `NEVER`: never enter the pairing mode + /// + public static void GetControllerPairTime(Action callback) + { + PXR_EnterprisePlugin.UPxr_GetControllerPairTime(callback); + } + + /// + /// Turns the screen on. + /// @note This is a protected API. You need to add `` + /// to the app's AndroidManifest.xml file for calling this API, after which the app is unable to be published on the PICO Store. + /// + public static void ScreenOn() + { + PXR_EnterprisePlugin.UPxr_ScreenOn(); + } + + /// + /// Turns the screen off. + /// @note This is a protected API. You need to add `` + /// to the app's AndroidManifest.xml file for calling this API, after which the app is unable to be published on the PICO Store. + /// + public static void ScreenOff() + { + PXR_EnterprisePlugin.UPxr_ScreenOff(); + } + + /// + /// Acquires the wake lock. + /// + public static void AcquireWakeLock() + { + PXR_EnterprisePlugin.UPxr_AcquireWakeLock(); + } + + /// + /// Releases the wake lock. + /// + public static void ReleaseWakeLock() + { + PXR_EnterprisePlugin.UPxr_ReleaseWakeLock(); + } + + /// + /// Enables the Confirm button. + /// + public static void EnableEnterKey() + { + PXR_EnterprisePlugin.UPxr_EnableEnterKey(); + } + + /// + /// Disables the Confirm button. + /// + public static void DisableEnterKey() + { + PXR_EnterprisePlugin.UPxr_DisableEnterKey(); + } + + /// + /// Enables the Volume button. + /// + public static void EnableVolumeKey() + { + PXR_EnterprisePlugin.UPxr_EnableVolumeKey(); + } + + /// + /// Disables the Volume button. + /// + public static void DisableVolumeKey() + { + PXR_EnterprisePlugin.UPxr_DisableVolumeKey(); + } + + /// + /// Enables the Back button. + /// + public static void EnableBackKey() + { + PXR_EnterprisePlugin.UPxr_EnableBackKey(); + } + + /// + /// Disables the Back button. + /// + public static void DisableBackKey() + { + PXR_EnterprisePlugin.UPxr_DisableBackKey(); + } + + + /// + /// Resets all buttons to default configuration. + /// + /// Whether all keys have been successfully reset to default configuration: + /// * `true`: reset + /// * `false`: failed to reset + /// + public static void ResetAllKeyToDefault(Action callback) + { + PXR_EnterprisePlugin.UPxr_ResetAllKeyToDefault(callback); + } + + /// + /// Sets an app as the launcher app. Need to restart the device to make the setting work. + /// + /// (deprecated) + /// The app's package name. + public static void SetAPPAsHome(SwitchEnum switchEnum, string packageName) + { + PXR_EnterprisePlugin.UPxr_SetAPPAsHome(switchEnum, packageName); + } + + /// + /// Force quits app(s) by passing app PID or package name. + /// @note This is a protected API. You need to add `` + /// to the app's AndroidManifest.xml file for calling this API, after which the app is unable to be published on the PICO Store. + /// + /// An array of app PID(s). + /// An array of package name(s). + public static void KillAppsByPidOrPackageName(int[] pids, string[] packageNames) + { + PXR_EnterprisePlugin.UPxr_KillAppsByPidOrPackageName(pids, packageNames); + } + + /// + /// Force quits background app(s) expect those in the allowlist. + /// @note This is a protected API. You need to add `` + /// to the app's AndroidManifest.xml file for calling this API, after which the app is unable to be published on the PICO Store. + /// + /// An array of package name(s) to be added to the allowlist. The corresponding app(s) in the allowlist will not be force quit. + public static void KillBackgroundAppsWithWhiteList(string[] packageNames) + { + PXR_EnterprisePlugin.UPxr_KillBackgroundAppsWithWhiteList(packageNames); + } + + /// + /// Freezes the screen to the front. The screen will turn around with the HMD. + /// @note Supported by G2 4K and Neo2 devices. + /// + /// Whether to freeze the screen: + /// * `true`: freeze + /// * `false`: stop freezing + /// + public static void FreezeScreen(bool freeze) + { + PXR_EnterprisePlugin.UPxr_FreezeScreen(freeze); + } + + /// + /// Turns on the screencast function. + /// + public static void OpenMiracast() + { + PXR_EnterprisePlugin.UPxr_OpenMiracast(); + } + + /// + /// Gets the status of the screencast function. + /// + /// The status of the screencast function: + /// * `true`: on + /// * `false`: off + /// + public static bool IsMiracastOn() + { + return PXR_EnterprisePlugin.UPxr_IsMiracastOn(); + } + + /// + /// Turns off the screencast function. + /// + public static void CloseMiracast() + { + PXR_EnterprisePlugin.UPxr_CloseMiracast(); + } + + /// + /// Starts looking for devices that can be used for screen casting. + /// + public static void StartScan() + { + PXR_EnterprisePlugin.UPxr_StartScan(); + } + + /// + /// Stops looking for devices that can be used for screen casting. + /// + public static void StopScan() + { + PXR_EnterprisePlugin.UPxr_StopScan(); + } + + /// + /// Casts the screen to the specified device. + /// + /// A modelJson structure containing the following fields: + /// * `deviceAddress` + /// * `deviceName` + /// * `isAvailable` (`true`-device available; `false`-device not available) + /// + public static void ConnectWifiDisplay(string modelJson) + { + PXR_EnterprisePlugin.UPxr_ConnectWifiDisplay(modelJson); + } + + /// + /// Stops casting the screen to the current device. + /// + public static void DisConnectWifiDisplay() + { + PXR_EnterprisePlugin.UPxr_DisConnectWifiDisplay(); + } + + /// + /// Forgets the device that have been connected for screencast. + /// + /// Device address. + public static void ForgetWifiDisplay(string address) + { + PXR_EnterprisePlugin.UPxr_ForgetWifiDisplay(address); + } + + /// + /// Renames the device connected for screencast. The name is only for local storage. + /// + /// The MAC address of the device. + /// The new device name. + public static void RenameWifiDisplay(string address, string newName) + { + PXR_EnterprisePlugin.UPxr_RenameWifiDisplay(address, newName); + } + + /// + /// Sets the callback for the scanning result, which returns `List` that contains the devices previously connected for screencast and the devices currently found for screencast. + /// + /// + /// Returns `List` that contains the currently scanned device. + /// + public static void SetWDModelsCallback(Action> models) + { + PXR_EnterprisePlugin.UPxr_SetWDModelsCallback(models); + } + + /// + /// Sets the callback for the scanning result, which returns the JSON string that contains the devices previously connected for screencast and the devices currently found for screencast. + /// + /// + /// Returns a JSON string that contains the currently scanned device. + /// + public static void SetWDJsonCallback(Action callback) + { + PXR_EnterprisePlugin.UPxr_SetWDJsonCallback(callback); + } + + /// + /// Manually updates the list of devices for screencast. + /// + public static void UpdateWifiDisplays() + { + PXR_EnterprisePlugin.UPxr_UpdateWifiDisplays(); + } + + /// + /// Gets the information of the currently connected device. + /// + /// The information of the currently connected device. + public static string GetConnectedWD() + { + return PXR_EnterprisePlugin.UPxr_GetConnectedWD(); + } + + /// + /// Switches the large space scene on. + /// @note Supported by 6Dof devices. + /// + /// Whether to switch the large space scene on: + /// * `true`: switch on + /// * `false`: not to switch on + /// + /// Callback: + /// * `true`: success + /// * `false`: failure + /// + public static void SwitchLargeSpaceScene(bool open, Action callback) + { + PXR_EnterprisePlugin.UPxr_SwitchLargeSpaceScene(open, callback); + } + + /// + /// Gets the status of the large space scene. + /// @note Supported by 6Dof devices. + /// + /// Returns the status of large space: + /// * `0`: switched off + /// * `1`: switched on + /// + public static void GetSwitchLargeSpaceStatus(Action callback) + { + PXR_EnterprisePlugin.UPxr_GetSwitchLargeSpaceStatus(callback); + } + + /// + /// Saves the large space map. + /// @note Supported by 6Dof devices. + /// + /// Whether the large space map has been saved: + /// * `true`: saved + /// * `false`: failed to save + /// + public static bool SaveLargeSpaceMaps() + { + return PXR_EnterprisePlugin.UPxr_SaveLargeSpaceMaps(); + } + + /// + /// Exports maps. The exported maps are stored in the /maps/export file. + /// @note Supported by 6Dof devices. + /// + /// Returns the result: + /// * `true`: exported + /// * `false`: failed to export + /// + public static void ExportMaps(Action callback) + { + PXR_EnterprisePlugin.UPxr_ExportMaps(callback); + } + + /// + /// Imports maps. Need to copy maps to the /maps folder. + /// @note Supported by 6Dof devices. + /// + /// Returns the result: + /// * `true`: imported + /// * `false`: failed to import + /// + public static void ImportMaps(Action callback) + { + PXR_EnterprisePlugin.UPxr_ImportMaps(callback); + } + + /// + /// Gets each CPU's utilization for the current device. + /// + /// An array of CPU utilization info. + public static float[] GetCpuUsages() + { + return PXR_EnterprisePlugin.UPxr_GetCpuUsages(); + } + + /// + /// Gets device temperature in Celsius. + /// + /// The requested type of device temperature: + /// * `DEVICE_TEMPERATURE_CPU`: CPU temperature + /// * `DEVICE_TEMPERATURE_GPU`: GPU temperature + /// * `DEVICE_TEMPERATURE_BATTERY`: battery temperature + /// * `DEVICE_TEMPERATURE_SKIN`: surface temperature + /// + /// The requested source of device temperature: + /// * `TEMPERATURE_CURRENT`: current temperature + /// * `TEMPERATURE_THROTTLING`: temperature threshold for throttling + /// * `TEMPERATURE_SHUTDOWN`: temperature threshold for shutdown + /// * `TEMPERATURE_THROTTLING_BELOW_VR_MIN`: temperature threshold for throttling. If the actual temperature is higher than the threshold, the lowest clock frequency for VR mode will not be met + /// + /// An array of requested float device temperatures in Celsius. + public static float[] GetDeviceTemperatures(int type, int source) + { + return PXR_EnterprisePlugin.UPxr_GetDeviceTemperatures(type, source); + } + + /// + /// Captures the current screen. + /// @note Not supported by G2 4K devices. + /// + public static void Capture() + { + PXR_EnterprisePlugin.UPxr_Capture(); + } + + /// + /// Records the screen. Call this function again to stop recording. + /// @note Not supported by G2 4K devices. + /// + public static void Record() + { + PXR_EnterprisePlugin.UPxr_Record(); + } + + /// + /// Connects the device to a specified Wi-Fi. + /// + /// Wi-Fi name. + /// Wi-Fi password. + /// Reserved parameter, pass `0` by default. + /// The callback for indicating whether the Wi-Fi connection is successful: + /// * `0`: connected + /// * `1`: password error + /// * `2`: unknown error + /// + public static void ControlSetAutoConnectWIFIWithErrorCodeCallback(String ssid, String pwd, int ext, Action callback) + { + PXR_EnterprisePlugin.UPxr_ControlSetAutoConnectWIFIWithErrorCodeCallback(ssid, pwd, ext, callback); + } + + /// + /// Keeps an app active. In other words, improves the priority of an app, thereby making the system not to force quit the app. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA-5.2.8 or later). + /// + /// App package name. + /// Whether to keep the app active (i.e., whether to enhance the priority of the app): + /// * `true`: keep + /// * `false`: not keep + /// + /// Reserved parameter, pass `0`. + public static void AppKeepAlive(String appPackageName, bool keepAlive, int ext) + { + PXR_EnterprisePlugin.UPxr_AppKeepAlive(appPackageName, keepAlive, ext); + } + + /// + /// Schedules auto startup for the device. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA-5.2.8 or later). + /// + /// Year, for example, `2022`. + /// Month, for example, `2`. + /// Day, for example, `22`. + /// Hour, for example, `22`. + /// Minute, for example, `22`. + /// Whether to enable scheduled auto startup for the device: + /// * `true`: enable + /// * `false`: disable + /// + public static void TimingStartup(int year, int month, int day, int hour, int minute, bool open) + { + PXR_EnterprisePlugin.UPxr_TimingStartup(year, month, day, hour, minute, open); + } + + /// + /// Schedules auto shutdown for the device. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version 5.4.0 or later). + /// + /// Year, for example, `2022`. + /// Month, for example, `2`. + /// Day, for example, `22`. + /// Hour, for example, `22`. + /// Minute, for example, `22`. + /// Whether to enable scheduled auto shutdown for the device: + /// * `true`: enable + /// * `false`: disable + /// + public static void TimingShutdown(int year, int month, int day, int hour, int minute, bool open) + { + PXR_EnterprisePlugin.UPxr_TimingShutdown(year, month, day, hour, minute, open); + } + + /// + /// Displays a specified settings screen. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA-5.2.8 or later). + /// + /// The enumerations of settings screen: + /// * `START_VR_SETTINGS_ITEM_WIFI`: the Wi-Fi settings screen; + /// * `START_VR_SETTINGS_ITEM_BLUETOOTH`: the bluetooth settings screen; + /// * `START_VR_SETTINGS_ITEM_CONTROLLER`: the controller settings screen; + /// * `START_VR_SETTINGS_ITEM_LAB`: the lab settings screen; + /// * `START_VR_SETTINGS_ITEM_BRIGHTNESS`: the brightness settings screen; + /// * `START_VR_SETTINGS_ITEM_GENERAL)`: the general settings screen; + /// * `START_VR_SETTINGS_ITEM_NOTIFICATION`: the notification settings screen. + /// + /// Whether to display the selected settings screen: + /// * `true`: display + /// * `false`: hide + /// + /// Reserved parameter, pass `0`. + public static void StartVrSettingsItem(StartVRSettingsEnum settingsEnum, bool hideOtherItem, int ext) + { + PXR_EnterprisePlugin.UPxr_StartVrSettingsItem(settingsEnum, hideOtherItem, ext); + } + + /// + /// Changes the Volume button's function to that of the Home and Enter button's, or restores the volume adjustment function to the Volume button. + /// @note Supported by PICO 4 Enterprise with system version OTA-5.2.8 or later. + /// + /// Whether to change the Volume button's function: + /// * `S_ON`: change + /// * `S_OFF`: do not change + /// + /// Reserved parameter, pass `0`. + public static void SwitchVolumeToHomeAndEnter(SwitchEnum switchEnum, int ext) + { + PXR_EnterprisePlugin.UPxr_SwitchVolumeToHomeAndEnter(switchEnum, ext); + } + + /// + /// Gets whether the Volume button's function has been changed to that of the Home and Enter button's. + /// @note Supported by PICO 4 Enterprise with system version OTA-5.2.8 or later. + /// + /// + /// * `S_ON`: changed + /// * `S_OFF`: not changed + /// + public static SwitchEnum IsVolumeChangeToHomeAndEnter() + { + return PXR_EnterprisePlugin.UPxr_IsVolumeChangeToHomeAndEnter(); + } + + /// + /// Upgrades the OTA. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA0-5.2.8 or later). + /// + /// The location of the OTA package. + /// + /// * `0`: success + /// * `1`: failure + /// * `21`: OTA package version too low + /// + public static int InstallOTAPackage(String otaPackagePath) + { + return PXR_EnterprisePlugin.UPxr_InstallOTAPackage(otaPackagePath); + } + + /// + /// Gets the configuration of the Wi-Fi network that the device automatically connects to. + /// + /// The SSID and password of the Wi-Fi network. + public static string GetAutoConnectWiFiConfig() + { + return PXR_EnterprisePlugin.UPxr_GetAutoConnectWiFiConfig(); + } + + /// + /// Gets the scheduled auto startup settings for the device. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA-5.2.8 or later). + /// + /// + /// * `open`: the status of scheduled auto startup: + /// * `true`: enabled + /// * `false`: disabled + /// * `time`: the time when the device auto starts up, for example, `1658980380000`. Returned when `open` is `true`. + /// + public static string GetTimingStartupStatus() + { + return PXR_EnterprisePlugin.UPxr_GetTimingStartupStatus(); + } + + /// + /// Gets the scheduled auto shutdown settings for the device. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA-5.2.8 or later). + /// + /// + /// * `open`: the status of scheduled auto shutdown: + /// * `true`: enabled + /// * `false`: disabled + /// * `time`: the time when the device auto shuts down, for example, `1658980380000`. Returned when `open` is `true`. + /// + public static string GetTimingShutdownStatus() + { + return PXR_EnterprisePlugin.UPxr_GetTimingShutdownStatus(); + } + + /// + /// Gets the status of a specified controller button. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA0-5.2.8 or later). + /// + /// The enumerations of controller button: + /// * `CONTROLLER_KEY_JOYSTICK` + /// * `CONTROLLER_KEY_MENU` + /// * `CONTROLLER_KEY_TRIGGER` + /// * `CONTROLLER_KEY_RIGHT_A` + /// * `CONTROLLER_KEY_RIGHT_B` + /// * `CONTROLLER_KEY_LEFT_X` + /// * `CONTROLLER_KEY_LEFT_Y` + /// * `CONTROLLER_KEY_LEFT_GRIP` + /// * `CONTROLLER_KEY_RIGHT_GRIP` + /// + /// The button's status: + /// * `0`: disabled + /// * `1`: enabled + /// + public static int GetControllerKeyState(ControllerKeyEnum pxrControllerKey) + { + return PXR_EnterprisePlugin.UPxr_GetControllerKeyState(pxrControllerKey); + } + + /// + /// Enables or disables a specified controller button. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA-5.2.8 or later). + /// + /// The enumerations of controller button: + /// * `CONTROLLER_KEY_JOYSTICK` + /// * `CONTROLLER_KEY_MENU` + /// * `CONTROLLER_KEY_TRIGGER` + /// * `CONTROLLER_KEY_RIGHT_A` + /// * `CONTROLLER_KEY_RIGHT_B` + /// * `CONTROLLER_KEY_LEFT_X` + /// * `CONTROLLER_KEY_LEFT_Y` + /// * `CONTROLLER_KEY_LEFT_GRIP` + /// * `CONTROLLER_KEY_RIGHT_GRIP` + /// + /// Whether to enable or disable the button: + /// * `S_ON`: enable + /// * `S_OFF`: disable + /// + /// + /// `0` indicates success, other values indicate failure. + /// + public static int SetControllerKeyState(ControllerKeyEnum pxrControllerKey, SwitchEnum status) + { + return PXR_EnterprisePlugin.UPxr_SetControllerKeyState(pxrControllerKey, status); + } + + /// + /// Gets the status of the switch which is for powering off the USB cable when the device is shut down. + /// + /// The switch's status: + /// * `S_ON`: on + /// * `S_OFF`: off + /// + public static SwitchEnum GetPowerOffWithUSBCable() + { + return PXR_EnterprisePlugin.UPxr_ControlGetPowerOffWithUSBCable(); + } + + /// + /// Gets the screen timeout setting for the device. + /// + /// `PBS_ScreenOffDelayTimeEnum`: the enumerations of screen timeout. + public static ScreenOffDelayTimeEnum GetScreenOffDelay() + { + return PXR_EnterprisePlugin.UPxr_PropertyGetScreenOffDelay(); + } + + /// + /// Gets the sleep timeout settings for the device. + /// + /// `PBS_SleepDelayTimeEnum`: the enumeration of sleep timeout. + public static SleepDelayTimeEnum GetSleepDelay() + { + return PXR_EnterprisePlugin.UPxr_PropertyGetSleepDelay(); + } + + /// + /// Gets the current settings for the Power button. + /// + /// + /// * `null`: not set + /// * `singleTap`: whether a single-tap event has been set + /// * `longTap`: whether a long-press event has been set + /// * `longPressTime`: the time after which the long-press event takes place. Returned when `longTap` is `true`. + /// + public static string GetPowerKeyStatus() + { + return PXR_EnterprisePlugin.UPxr_PropertyGetPowerKeyStatus(); + } + + /// + /// Get the Enter button's status. + /// + /// + /// * `0`: disabled + /// * `1`: enabled + /// + public static int GetEnterKeyStatus() + { + return PXR_EnterprisePlugin.UPxr_GetEnterKeyStatus(); + } + + /// + /// Get the Volume button's status. + /// + /// + /// * `0`: disabled + /// * `1`: enabled + /// + public static int GetVolumeKeyStatus() + { + return PXR_EnterprisePlugin.UPxr_GetVolumeKeyStatus(); + } + + /// + /// Get the Back button's status. + /// + /// + /// * `0`: disabled + /// * `1`: enabled + /// + public static int GetBackKeyStatus() + { + return PXR_EnterprisePlugin.UPxr_GetBackKeyStatus(); + } + + /// + /// Gets the event settings for the Home button. + /// + /// The enumerations of event type: + /// * `SINGLE_CLICK`: single-click event + /// * `DOUBLE_CLICK`: double-click event + /// * `LONG_PRESS`: long-press event + /// + /// + /// * For `SINGLE_CLICK` and `DOUBLE_CLICK`, the event(s) you set will be returned. + /// * For `LONG_PRESS`, the time and event you set will be returned. If you have not set a time for a long-press event, time will be `null`. + /// + /// * If you have not set any event for the event type you pass in the request, the response will return `null`. + /// * For event enumerations, see `PropertySetHomeKey` or `PropertySetHomeKeyAll`. + /// + public static string GetHomeKeyStatus(HomeEventEnum homeEvent) + { + return PXR_EnterprisePlugin.UPxr_PropertyGetHomeKeyStatus(homeEvent); + } + + /// + /// Gets the status of a specified system function switch. + /// + /// The enumerations of system function switch: + /// * `SFS_USB`: USB debugging + /// * `SFS_AUTOSLEEP`: auto sleep + /// * `SFS_SCREENON_CHARGING`: screen-on charging + /// * `SFS_OTG_CHARGING`: OTG charging (supported by G2 devices) + /// * `SFS_RETURN_MENU_IN_2DMODE`: display the Return icon on the 2D screen + /// * `SFS_COMBINATION_KEY`: combination key + /// * `SFS_CALIBRATION_WITH_POWER_ON`: calibration with power on + /// * `SFS_SYSTEM_UPDATE`: system update (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_CAST_SERVICE`: phone casting service + /// * `SFS_EYE_PROTECTION`: eye-protection mode + /// * `SFS_SECURITY_ZONE_PERMANENTLY`: permanently disable the 6DoF play area (supported by PICO Neo2 devices) + /// * `SFS_GLOBAL_CALIBRATION`: global calibration (supported by PICO G2 devices) + /// * `SFS_Auto_Calibration`: auto calibration + /// * `SFS_USB_BOOT`: USB plug-in boot + /// * `SFS_VOLUME_UI`: global volume UI (need to restart the device to make the setting take effect) + /// * `SFS_CONTROLLER_UI`: global controller connected UI + /// * `SFS_NAVGATION_SWITCH`: navigation bar + /// * `SFS_SHORTCUT_SHOW_RECORD_UI`: screen recording button UI + /// * `SFS_SHORTCUT_SHOW_FIT_UI`: PICO fit UI + /// * `SFS_SHORTCUT_SHOW_CAST_UI`: screencast button UI + /// * `SFS_SHORTCUT_SHOW_CAPTURE_UI`: screenshot button UI + /// * `SFS_USB_FORCE_HOST`: set the Neo3 Pro/Pro Eye device as the host device + /// * `SFS_SET_DEFAULT_SAFETY_ZONE`: set a default play area for PICO Neo3 and PICO 4 series devices + /// * `SFS_ALLOW_RESET_BOUNDARY`: allow to reset customized boundary for PICO Neo3 series devices + /// * `SFS_BOUNDARY_CONFIRMATION_SCREEN`: whether to display the boundary confirmation screen for PICO Neo3 and PICO 4 series devices + /// * `SFS_LONG_PRESS_HOME_TO_RECENTER`: long press the Home button to recenter for PICO Neo3 and PICO 4 series devices + /// * `SFS_POWER_CTRL_WIFI_ENABLE`: stay connected to the network when the device sleeps/turns off (supported by PICO Neo3 Pro with system version 4.8.0 or later and PICO 4 Enterprise with system version OTA-5.2.8 or later) + /// * `SFS_WIFI_DISABLE`: disable Wi-Fi (supported by PICO Neo3 Pro with system version 4.8.0 or later and PICO 4 Enterprise with system version OTA-5.2.8 or later) + /// * `SFS_SIX_DOF_SWITCH`: 6DoF position tracking for PICO Neo3 and PICO 4 series devices + /// * `SFS_INVERSE_DISPERSION`: anti-dispersion (supported by PICO Neo3 Pro with system version 4.8.0 or later and PICO 4 Enterprise with system version OTA0-5.2.8 or later) + /// * `SFS_LOGCAT`: system log switch (/data/logs) (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_PSENSOR`: PSensor switch (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SYSTEM_UPDATE_OTA`: OTA upgrade (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SYSTEM_UPDATE_APP`: app upgrade and update (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_WLAN_UI`: quickly set whether to show the WLAN button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_BOUNDARY_UI`: quickly set whether to show the boundary button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_BLUETOOTH_UI`: quickly set whether to show the bluetooth button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_CLEAN_TASK_UI`: quickly set whether to show the one-click clear button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_IPD_ADJUSTMENT_UI`: quickly set whether to show the IPD adjustment button (supported by PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_POWER_UI`: quickly set whether to show the power button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_SHORTCUT_SHOW_EDIT_UI`: quickly set whether to show the edit button (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_BASIC_SETTING_APP_LIBRARY_UI`: the button for customizing the app library (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_BASIC_SETTING_SHORTCUT_UI`: the button for customizing quick settings (supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later) + /// * `SFS_LED_FLASHING_WHEN_SCREEN_OFF`: whether to keep the LED indicator light on when the device's screen is off and the battery is below 20% (supported by PICO G3 devices) + /// * `SFS_BASIC_SETTING_CUSTOMIZE_SETTING_UI`: customize settings item to show or hide in basic settings + /// * `SFS_BASIC_SETTING_SHOW_APP_QUIT_CONFIRM_DIALOG`: whether to show the app-quit dialog box when switching to a new app + /// * `SFS_BASIC_SETTING_KILL_BACKGROUND_VR_APP`: whether to kill background VR apps (`1`: kill, and this is the default setting; `2`: do not kill) + /// * `SFS_BASIC_SETTING_SHOW_CAST_NOTIFICATION`: whether to show a blue icon when casting the screen. The icon is displayed by default, and you can set the value to `0` to hide it. + /// * `SFS_AUTOMATIC_IPD`: auto IPD switch (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.7.0 or later) + /// * `SFS_QUICK_SEETHROUGH_MODE`: quick seethrough mode switch (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.7.0 or later) + /// * `SFS_HIGN_REFERSH_MODE`: high refresh mode switch (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.7.0 or later) + /// * `SFS_SEETHROUGH_APP_KEEP_RUNNING`: set whether to keep the app running under the seethrough mode (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_OUTDOOR_TRACKING_ENHANCEMENT`: enhance outdoor position tracking (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_AUTOIPD_AUTO_COMFIRM`: quick auto-IPD (supported by PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_LAUNCH_AUTOIPD_IF_GLASSES_WEARED`: set whether to launch auto-IPD after wearing the headset (supported by PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_GESTURE_RECOGNITION_HOME_ENABLE`: Home gesture switch (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_GESTURE_RECOGNITION_RESET_ENABLE`: enable/disable the Reset gesture (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.8.0 or later) + /// * `SFS_AUTO_COPY_FILES_FROM_USB_DEVICE`: automatically import OTG resources (supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.8.0 or later) + /// + /// The callback that returns the switch's status: + /// * `0`: off + /// * `1`: on + /// * `2`: not supported by device + /// For `SFS_SYSTEM_UPDATE`, the returns are as follows: + /// * `0`: off + /// * `1`: OTA upgrade on + /// * `2`: app upgrade on + /// * `3`: OTA and app upgrade on + /// + public static void GetSwitchSystemFunctionStatus(SystemFunctionSwitchEnum systemFunction, Action callback) + { + PXR_EnterprisePlugin.UPxr_GetSwitchSystemFunctionStatus(systemFunction, callback); + } + + /// + /// Gets the configured USB mode. + /// + /// + /// * `MTP`: MTP mode + /// * `CHARGE`: charging mode + /// + public static string GetUsbConfigurationOption() + { + return PXR_EnterprisePlugin.UPxr_SwitchGetUsbConfigurationOption(); + } + + /// + /// Gets the current launcher. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA0-5.2.8 or later). + /// + /// The package name or class name of the launcher. + public static string GetCurrentLauncher() + { + return PXR_EnterprisePlugin.UPxr_GetCurrentLauncher(); + } + + /// + /// Initializes the screencast service. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA0-5.2.8 or later). + /// + /// The callback: + /// * `0`: disconnect + /// * `1`: connect + /// * `2`: no microphone permission + /// + /// + /// * `0`: failure + /// * `1`: success + /// Returns `0` when there is no microphone permission. + /// + public static int PICOCastInit(Action callback) + { + return PXR_EnterprisePlugin.UPxr_PICOCastInit(callback); + } + + /// + /// Sets whether to show the screencast authorization window. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA0-5.2.8 or later). + /// + /// + /// * `0`: ask every time (default) + /// * `1`: always allow + /// * `2`: not accepted + /// + /// + /// * `0`: failure + /// * `1`: success + /// + public static int PICOCastSetShowAuthorization(int authZ) + { + return PXR_EnterprisePlugin.UPxr_PICOCastSetShowAuthorization(authZ); + } + + /// + /// Gets the setting of whether to show the screencast authorization window. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA0-5.2.8 or later). + /// + /// + /// * `0`: ask every time (default) + /// * `1`: always allow + /// * `2`: not accepted + /// + public static int PICOCastGetShowAuthorization() + { + return PXR_EnterprisePlugin.UPxr_PICOCastGetShowAuthorization(); + } + + /// + /// Gets the URL for screencast. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA0-5.2.8 or later). + /// + /// The enumerations of URL type: + /// * `NormalURL`: Normal URL. The screencast authorization window will show if it is not set. + /// * `NoConfirmURL`: Non-confirm URL. The screencast authorization window will not show in the browser. Screencast will start once you enter the URL. + /// * `RtmpURL`: Returns the RTMP live streaming URL. The screencast authorization window will not appear on the VR headset's screen. + /// + /// The URL for screencast. + public static string PICOCastGetUrl(PICOCastUrlTypeEnum urlType) + { + return PXR_EnterprisePlugin.UPxr_PICOCastGetUrl(urlType); + } + + /// + /// Stops screencast. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA0-5.2.8 or later). + /// + /// + /// * `0`: failure + /// * `1`: success + /// + public static int PICOCastStopCast() + { + return PXR_EnterprisePlugin.UPxr_PICOCastStopCast(); + } + + /// + /// sets screencast options. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA0-5.2.8 or later). + /// + /// The enumerations of the property to set: + /// * `OPTION_RESOLUTION_LEVEL`: resolution level + /// * `OPTION_BITRATE_LEVEL`: bitrate level + /// * `OPTION_AUDIO_ENABLE`: whether to enable the audio + /// + /// The values that can be set for each property: + /// * For `OPTION_RESOLUTION_LEVEL`: + /// * `OPTION_VALUE_RESOLUTION_HIGH` + /// * `OPTION_VALUE_RESOLUTION_MIDDLE` + /// * `OPTION_VALUE_RESOLUTION_AUTO` + /// * `OPTION_VALUE_RESOLUTION_HIGH_2K` + /// * `OPTION_VALUE_RESOLUTION_HIGH_4K` + /// * For `OPTION_BITRATE_LEVEL`: + /// * `OPTION_VALUE_BITRATE_HIGH` + /// * `OPTION_VALUE_BITRATE_MIDDLE` + /// * `OPTION_VALUE_BITRATE_LOW` + /// * For `OPTION_AUDIO_ENABLE`: + /// * `OPTION_VALUE_AUDIO_ON` + /// * `OPTION_VALUE_AUDIO_OFF` + /// + /// + /// * `0`: failure + /// * `1`: success + /// + public static int PICOCastSetOption(PICOCastOptionOrStatusEnum castOptionOrStatus, PICOCastOptionValueEnum castOptionValue) + { + return PXR_EnterprisePlugin.UPxr_PICOCastSetOption(castOptionOrStatus, castOptionValue); + } + + /// + /// Gets the screencast settings for the current device. + /// @note Supported by PICO Neo3 Pro (system version 4.8.0 or later) and PICO 4 Enterprise (system version OTA0-5.2.8 or later). + /// + /// The enumerations of the screencast property to get setting for: + /// * `OPTION_RESOLUTION_LEVEL`: resolution level + /// * `OPTION_BITRATE_LEVEL`: bitrate level + /// * `OPTION_AUDIO_ENABLE`: whether the audio is enabled + /// * `PICOCAST_STATUS`: returns the current screencast status + /// + /// The setting of the selected property: + /// * For `OPTION_RESOLUTION_LEVEL`: + /// * `OPTION_VALUE_RESOLUTION_HIGH` + /// * `OPTION_VALUE_RESOLUTION_MIDDLE` + /// * `OPTION_VALUE_RESOLUTION_AUTO` + /// * `OPTION_VALUE_RESOLUTION_HIGH_2K` + /// * `OPTION_VALUE_RESOLUTION_HIGH_4K` + /// * For `OPTION_BITRATE_LEVEL`: + /// * `OPTION_VALUE_BITRATE_HIGH` + /// * `OPTION_VALUE_BITRATE_MIDDLE` + /// * `OPTION_VALUE_BITRATE_LOW` + /// * For `OPTION_AUDIO_ENABLE`: + /// * `OPTION_VALUE_AUDIO_ON` + /// * `OPTION_VALUE_AUDIO_OFF` + /// * `PICOCAST_STATUS` : + /// * `STATUS_VALUE_STATE_STARTED` + /// * `STATUS_VALUE_STATE_STOPPED` + /// * `STATUS_VALUE_ERROR` + /// + public static PICOCastOptionValueEnum PICOCastGetOptionOrStatus(PICOCastOptionOrStatusEnum castOptionOrStatus) + { + return PXR_EnterprisePlugin.UPxr_PICOCastGetOptionOrStatus(castOptionOrStatus); + } + + /// Sets the system language for the device. + /// For a language that is spoken in different countries/regions, the system language is then co-set by the language code and the device's country/region code. + /// For example, if the language code is set to `en` and the device's country/region code is `US`, the system language will be set to English (United States). + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// Supported language codes: + /// * `cs`: Czech + /// * `da`: Danish + /// * `de`: German + /// * `el`: Greek + /// * `en`: English (United States / United Kingdom) + /// * `es`: Spanish + /// * `fi`: Finnish + /// * `fr`: French + /// * `it`: Italian + /// * `ja`: Japanese + /// * `ko`: Korean + /// * `ms`: Malay + /// * `nb`: Norwegian + /// * `nl`: Dutch + /// * `pl`: Polish + /// * `pt`: Portuguese (Brazil / Portugal) + /// * `ro`: Romanian + /// * `ru`: Russian + /// * `sv`: Swedish + /// * `th`: Thai + /// * `tr`: Turkish + /// * `zh`: Chinese (Simplified) / Chinese (Hong Kong SAR of China) / Chinese (Traditional) + /// For devices in Mainland China / Taiwan, China / Hong Kong SAR of China / Macao SAR of China, the country/region code has been defined in factory settings. + /// + /// + /// * `0`: success + /// * `1`: failure + /// * `22`: invalid language + /// + public static int SetSystemLanguage(String language) + { + return PXR_EnterprisePlugin.UPxr_SetSystemLanguage(language); + } + + /// Gets the device's system language. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// The system language set for the device. For details, refer to the + /// parameter description for `SetSystemLanguage`. + public static String GetSystemLanguage() + { + return PXR_EnterprisePlugin.UPxr_GetSystemLanguage(); + } + + /// Sets a default Wi-Fi network for the device. Once set, the device will automatically connect to the Wi-Fi network if accessible. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// The SSID (name) of the Wi-Fi network. + /// The password of the Wi-Fi network. + /// + /// * `0`: success + /// * `1`: failure + /// + public static int ConfigWifi(String ssid, String pwd) + { + return PXR_EnterprisePlugin.UPxr_ConfigWifi(ssid, pwd); + } + + /// Gets the device's default Wi-Fi network. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// The SSID (name) of the Wi-Fi network. + public static String[] GetConfiguredWifi() + { + return PXR_EnterprisePlugin.UPxr_GetConfiguredWifi(); + } + + /// Sets a country/region for the device. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// The country/region code co-determines the device's system language with the language code you set via `SetSystemLanguage`. + /// Below are supported country/region codes: + /// * `AD`: Andorra + /// * `AT`: Austria + /// * `AU`: Australia + /// * `BE`: Belgium + /// * `BG`: Bulgaria + /// * `CA`: Canada + /// * `CH`: Switzerland + /// * `CZ`: Czech Republic + /// * `DE`: Germany + /// * `DK`: Denmark + /// * `EE`: Estonia + /// * `ES`: Spain + /// * `FI`: Finland + /// * `FR`: France + /// * `GB`: the Great Britain + /// * `GR`: Greece + /// * `HR`: Croatia + /// * `HU`: Hungary + /// * `IE`: Ireland + /// * `IL`: Israel + /// * `IS`: Iceland + /// * `IT`: Italy + /// * `JP`: Japan + /// * `KR`: Korea + /// * `LI`: Liechtenstein + /// * `LT`: Lithuania + /// * `LU`: Luxembourg + /// * `LV`: Latvia + /// * `MC`: Monaco + /// * `MT`: Malta + /// * `MY`: Malaysia + /// * `NL`: Netherlands + /// * `NO`: Norway + /// * `NZ`: New Zealand + /// * `PL`: Poland + /// * `PT`: Portugal + /// * `RO`: Romania + /// * `SE`: Sweden + /// * `SG`: Singapore + /// * `SI`: Slovenia + /// * `SK`: Slovakia + /// * `SM`: San Marino + /// * `TR`: Turkey + /// * `US`: the United States + /// * `VA`: Vatican + /// + /// Set the callback to get the result: + /// * `0`: success + /// * `1`: failure + /// + public static int SetSystemCountryCode(String countryCode, Action callback) + { + return PXR_EnterprisePlugin.UPxr_SetSystemCountryCode(countryCode, callback); + } + + /// Gets the device's country/region code. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// A string value that indicates the device's current country/region code. + /// For supported country/region codes, see the parameter description in `SetSystemCountryCode`. + public static string GetSystemCountryCode() + { + return PXR_EnterprisePlugin.UPxr_GetSystemCountryCode(); + } + + /// Sets the page to skip in initialization settings. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// Set the flag. + /// The first 6 bits are valid, the 7th to 32rd bits are reserved. For each bit, `0` indicates showing and `1` indicates hiding. + /// * `Constants#INIT_SETTING_HANDLE_CONNECTION_TEACHING`: the controller connection tutorial page + /// * `Constants#INIT_SETTING_TRIGGER_KEY_TEACHING`: the Trigger button tutorial page + /// * `Constants#INIT_SETTING_SELECT_LANGUAGE`: the language selection page + /// * `Constants#INIT_SETTING_SELECT_COUNTRY`: the country/region selection page. Only available for devices in non-Mainland China countries/regions. + /// * `Constants#INIT_SETTING_WIFI_SETTING`: the Wi-Fi settings page + /// * `Constants#INIT_SETTING_QUICK_SETTING`: the quick settings page + /// + /// Below is an example implementation: + /// ```csharp + /// int flag = Constants.INIT_SETTING_HANDLE_CONNECTION_TEACHING | Constants.INIT_SETTING_TRIGGER_KEY_TEACHING; + /// int result = serviceBinder.pbsSetSkipInitSettingPage(flag,0); + /// ``` + /// + /// * `0`: success + /// * `1`: failure + /// + public static int SetSkipInitSettingPage(int flag) + { + return PXR_EnterprisePlugin.UPxr_SetSkipInitSettingPage(flag); + } + + /// Gets the page to skip in initialization settings. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// Returns the flag set in `SetSkipInitSettingPage`. + public static int GetSkipInitSettingPage() + { + return PXR_EnterprisePlugin.UPxr_GetSkipInitSettingPage(); + } + + /// Gets whether the initialization settings have been complete. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// + /// * `0`: not complete + /// * `1`: complete + /// + public static int IsInitSettingComplete() + { + return PXR_EnterprisePlugin.UPxr_IsInitSettingComplete(); + } + + /// Starts an activity in another app. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// (Optional) The app's package name. + /// (Optional) The app's class name. + /// (Optional) The action to be performed. + /// The basic types of standard fields that can be used as extra data. + /// Standard categories that can be used to further clarify an Intent. Add a new category to the intent. + /// Add additional flags to the intent. + /// + /// * `0`: success + /// * `1`: failure + /// + public static int StartActivity(String packageName, String className, String action, String extra, String[] categories, int[] flags) + { + return PXR_EnterprisePlugin.UPxr_StartActivity(packageName, className, action, extra, categories, flags); + } + + /// Shows/hides specified app(s) in the library. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// Package name(s). If there are multiple names, use commas (,) to separate them. + /// Specifies to show/hide the app(s), enums: + /// * `S_ON`: show + /// * `S_OFF`: hide + /// + /// + /// * `0`: success + /// * `1`: failure + /// + public static int CustomizeAppLibrary(String[] packageNames, SwitchEnum switchEnum) + { + return PXR_EnterprisePlugin.UPxr_CustomizeAppLibrary(packageNames, switchEnum); + } + + /// + /// Gets the controller's battery level. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// Returns the following information: + /// * array[0]: the left controller's battery level + /// * array[1]: the right controller's battery level + /// * an integer from 1 to 5, which indicates the battery level, the bigger the integer, the higher the battery level + /// + public static int[] GetControllerBattery() + { + return PXR_EnterprisePlugin.UPxr_GetControllerBattery(); + } + + /// + /// Gets the controller's connection status. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// + /// * `0`: both controllers are disconnected + /// * `1`: the left controller is connected + /// * `2`: the right controller is connected + /// * `3`: both controllers are connected + /// + public static int GetControllerConnectState() + { + return PXR_EnterprisePlugin.UPxr_GetControllerConnectState(); + } + + /// + /// Gets the apps that are hidden in the library. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.4.0 or later. + /// + /// The packages names of hidden apps. Multiple names are separated by commas (,). + public static string GetAppLibraryHideList() + { + return PXR_EnterprisePlugin.UPxr_GetAppLibraryHideList(); + } + + /// + /// Sets the device that outputs audio during screen casting. + /// @note + /// - Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.5.0 or later. + /// - This API is only for miracast. + /// + /// Specifies the device that outputs audio. Enumerations: + /// * `AUDIO_SINK`: the HMD + /// * `AUDIO_TARGET`: the receiver + /// * `AUDIO_SINK_TARGET`: both the HMD and the receiver + /// + /// + /// * `0`: success + /// * `1`: failure + /// + public static int SetScreenCastAudioOutput(ScreencastAudioOutputEnum screencastAudioOutput) + { + return PXR_EnterprisePlugin.UPxr_SetScreenCastAudioOutput(screencastAudioOutput); + } + + /// + /// Gets the device that outputs audio during screen casting. + /// @note + /// - Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.5.0 or later. + /// - This API is only for miracast. + /// + /// + /// Enumerations: + /// * `AUDIO_SINK`: the HMD + /// * `AUDIO_TARGET`: the receiver + /// * `AUDIO_SINK_TARGET`: both the HMD and the receiver + /// + public static ScreencastAudioOutputEnum GetScreenCastAudioOutput() + { + return PXR_EnterprisePlugin.UPxr_GetScreenCastAudioOutput(); + } + + /// + /// Displays or hides the specified tab or option on the Settings pane. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.5.0 or later. + /// + /// Specifies the tab or option to display or hide. Enumerations: + /// * `CUSTOMIZE_SETTINGS_TAB_WLAN`: the "WLAN" tab + /// * `CUSTOMIZE_SETTINGS_TAB_CONTROLLER`: the "Controller" tab + /// * `CUSTOMIZE_SETTINGS_TAB_BLUETOOTH`: the "Bluetooth" tab + /// * `CUSTOMIZE_SETTINGS_TAB_DISPLAY`: the "Display" tab + /// * `CUSTOMIZE_SETTINGS_TAB_LAB`: the "LAB" tab + /// * `CUSTOMIZE_SETTINGS_TAB_GENERAL_FACTORY_RESET`: the "Factory Reset" option on the "General" tab + /// * `CUSTOMIZE_SETTINGS_TAB_GENERAL_LOCKSCREEN`: the "Lock Screen" option on the "General" tab + /// + /// Sets to display or hide the specified tab or option: + /// * `S_ON`: display + /// * `S_OFF`: hide + /// + /// + /// * `0`: success + /// * `1`: failure + /// + public static int UPxr_CustomizeSettingsTabStatus(CustomizeSettingsTabEnum customizeSettingsTabEnum, SwitchEnum switchEnum) + { + return PXR_EnterprisePlugin.UPxr_CustomizeSettingsTabStatus(customizeSettingsTabEnum, switchEnum); + } + + /// + /// Gets the status set for the specified tab or option on the Settings pane. + /// @note Supported by PICO Neo3 Pro and PICO 4 Enterprise with system version 5.5.0 or later. + /// + /// Specifies the tab or option to get status for. Enumerations: + /// * `CUSTOMIZE_SETTINGS_TAB_WLAN`: the "WLAN" tab + /// * `CUSTOMIZE_SETTINGS_TAB_CONTROLLER`: the "Controller" tab + /// * `CUSTOMIZE_SETTINGS_TAB_BLUETOOTH`: the "Bluetooth" tab + /// * `CUSTOMIZE_SETTINGS_TAB_DISPLAY`: the "Display" tab + /// * `CUSTOMIZE_SETTINGS_TAB_LAB`: the "LAB" tab + /// * `CUSTOMIZE_SETTINGS_TAB_GENERAL_FACTORY_RESET`: the "Factory Reset" option on the "General" tab + /// * `CUSTOMIZE_SETTINGS_TAB_GENERAL_LOCKSCREEN`: the "Lock Screen" option on the "General" tab + /// + /// + /// The status of the specified tab or option: + /// * `S_ON`: displayed + /// * `S_OFF`: hidden + /// + public static SwitchEnum UPxr_GetCustomizeSettingsTabStatus(CustomizeSettingsTabEnum customizeSettingsTabEnum) + { + return PXR_EnterprisePlugin.UPxr_GetCustomizeSettingsTabStatus(customizeSettingsTabEnum); + } + + /// + /// Shuts down the PICO device when the USB plug is unplugged or the plug runs out of power. + /// + /// Determines whether to enable/disable this function: + /// * `S_ON`: enable + /// * `S_OFF`: disable + /// + public static void SetPowerOffWithUSBCable(SwitchEnum switchEnum) + { + PXR_EnterprisePlugin.UPxr_SetPowerOffWithUSBCable(switchEnum); + } + /// + /// Removes a specific Home key event setting, which restores the event to its default setting. + /// + /// Specify a Home key event from the following: + /// `PBS_HomeEventEnum. SINGLE_CLICK`: single-click event + /// `PBS_HomeEventEnum. DOUBLE_CLICK`: double-click event + /// `PBS_HomeEventEnum. LONG_PRESS`: long press event + /// `PBS_HomeEventEnum. SINGLE_CLICK_RIGHT_CTL`: single-click on the right controller's Home button + /// `PBS_HomeEventEnum. DOUBLE_CLICK_RIGHT_CTL`: double-click on the right controller's Home button + /// `PBS_HomeEventEnum. LONG_PRESS_RIGHT_CTL`: long press on the right controller's Home button + /// `PBS_HomeEventEnum. SINGLE_CLICK_LEFT_CTL`: single-click on the left controller's Home button + /// `PBS_HomeEventEnum. DOUBLE_CLICK_LEFT_CTL`: double-click on the left controller's Home button + /// `PBS_HomeEventEnum. LONG_PRESS_LEFT_CTL`: long press on the left controller's Home button + /// `PBS_HomeEventEnum. SINGLE_CLICK_HMD`: single-click on the HMD's Home button + /// `PBS_HomeEventEnum. DOUBLE_CLICK_HMD`: double-click on the HMD's Home button + /// `PBS_HomeEventEnum. LONG_PRESS_HMD`: long press on the HMD's Home button + /// + public static void RemoveControllerHomeKey(HomeEventEnum EventEnum) + { + PXR_EnterprisePlugin.UPxr_RemoveControllerHomeKey(EventEnum); + } + + /// + /// Sets the power on logo or the power on/off animation. + /// + /// Specify a setting from the following: + /// * `PBS_PowerOnOffLogoEnum. PLPowerOnLogo`: sets a logo for the first frame after powering on the device + /// * `PBS_PowerOnOffLogoEnum. PLPowerOnAnimation`: sets the power on animation + /// * `PBS_PowerOnOffLogoEnum. PLPowerOffAnimation`: sets the power off animation + /// + /// + /// * For setting a logo for the first frame after powering on the device, pass the path where the .img file is stored, for example, `/sdcard/bootlogo.img`. + /// * For setting the power on/off animation, pass the folder where the pictures composing the animation is stored. + /// + /// Result callback: + /// * `true`: success + /// * `false`: failure + /// + public static void SetPowerOnOffLogo(PowerOnOffLogoEnum powerOnOffLogoEnum, String path, Action callback) + { + PXR_EnterprisePlugin.UPxr_SetPowerOnOffLogo(powerOnOffLogoEnum,path,callback); + } + /// + /// Sets an interpupillary distance (IPD). + /// @note Supported by PICO 4 Enterprise with system version 5.7.0 or later. + /// + /// + /// The IPD to set. Valid value range: [62,72]. Unit: millimeters. + /// + /// Result callback: + /// * `0`: success + /// * `1`: failure + /// * `23`: the `ipd` value is out of the valid range + /// + public static void SetIPD(float ipd, Action callback) + { + PXR_EnterprisePlugin.UPxr_SetIPD(ipd,callback); + } + + /// + /// Gets the device configured for miracast. + /// + /// + /// The name of the device. + /// + public static string GetAutoMiracastConfig() + { + return PXR_EnterprisePlugin.UPxr_GetAutoMiracastConfig(); + } + + /// + /// Sets screencast-related parameters. + /// @note Supported by PICO Neo3 series and PICO 4 Enterprise with system version 5.7.0 or later. + /// + /// + /// The mediaFormat object to set. Currently, only support settings the bitrate. + /// + /// + /// * `0`: success + /// * `1`: failure + /// + public static int SetPicoCastMediaFormat(PicoCastMediaFormat mediaFormat) + { + return PXR_EnterprisePlugin.UPxr_SetPicoCastMediaFormat(mediaFormat); + } + + /// + /// Gets the pose and ID of the marker. + /// @note Supported by 6Dof devices. + /// + /// Specify a tracking origin mode from the following: + /// * `TrackingOriginModeFlags.Device`: Device mode. The system sets the device's initial position as the origin. The device's height from the floor is not calculated. + /// * `TrackingOriginModeFlags.Floor`: Floor mode. The system sets an origin based on the device's original position and the device's height from the floor. + /// @note The PICO Unity OpenXR SDK only supports the `TrackingOriginModeFlags.Device` mode. + /// + /// + /// Set the offset added to the camera's Y direction, which is for simulating a user's height and is only applicable if you select the 'Device' mode. + /// + /// + /// The callback function for returning marker information. + /// + /// + /// * `0`: success + /// * `1`: failure + /// + public static int SetMarkerInfoCallback(TrackingOriginModeFlags trackingMode,float cameraYOffset,Action> markerInfos) + { + return PXR_EnterprisePlugin.UPxr_setMarkerInfoCallback(trackingMode,cameraYOffset,markerInfos); + } + + /// + /// Open RGB camera. + /// @note The PICO Unity OpenXR SDK does not support this API. + /// + /// Whether the RGB camera has been opened: + /// * `true`: success + /// * `false`: failure + /// + public static bool OpenVSTCamera() + { + return PXR_EnterprisePlugin.UPxr_OpenVSTCamera(); + } + + /// + /// Close RGB camera. + /// @note The PICO Unity OpenXR SDK does not support this API. + /// + /// Whether the RGB camera has been closed: + /// * `true`: success + /// * `false`: failure + /// + public static bool CloseVSTCamera() + { + return PXR_EnterprisePlugin.UPxr_CloseVSTCamera(); + } + + /// + /// Get camera parameters(including intrinsics & extrinsics). + /// @note The PICO Unity OpenXR SDK does not support this API. + /// + /// RGBCameraParams including intrinsics and extrinsics. + /// + public static RGBCameraParams GetCameraParameters() + { + return PXR_EnterprisePlugin.UPxr_GetCameraParameters(); + } + + /// + /// Get current head tracking confidence. + /// @note The PICO Unity OpenXR SDK does not support this API. + /// + /// + /// * `0`: bad + /// * `1`: good + /// + public static int GetHeadTrackingConfidence() + { + return PXR_EnterprisePlugin.UPxr_GetHeadTrackingConfidence(); + } + + /// + /// Acquire RGB camera frame,distortion + /// @note The PICO Unity OpenXR SDK does not support this API. + /// + /// [out]frame frame info + /// + /// * `0`: success + /// * other: failure + /// + public static int AcquireVSTCameraFrame(out Frame frame) + { + return PXR_EnterprisePlugin.UPxr_AcquireVSTCameraFrame(out frame); + } + + /// + /// Acquire RGB camera frame,anti-distortion + /// @note The PICO Unity OpenXR SDK does not support this API. + /// + /// [in]width desired frame width,should be less equal than 2328 + /// [in]height desired frame height, should be less equal than 1748 + /// [out]frame frame info + /// + /// * `0`: success + /// * other: failure + /// + public static int AcquireVSTCameraFrameAntiDistortion(int width, int height, out Frame frame) + { + return PXR_EnterprisePlugin.UPxr_AcquireVSTCameraFrameAntiDistortion(width, height, out frame); + } + + /// + /// Gets the predicted display time. + /// @note The PICO Unity OpenXR SDK does not support this API. + /// The predicted display time. + public static double GetPredictedDisplayTime() + { + return PXR_EnterprisePlugin.UPxr_GetPredictedDisplayTime(); + } + + /// + /// Gets the predicted status of the sensor. + /// @note The PICO Unity OpenXR SDK does not support this API. + /// + /// predict time. + /// The predicted status of the sensor. + public static SensorState GetPredictedMainSensorState(double predictTime) + { + return PXR_EnterprisePlugin.UPxr_GetPredictedMainSensorState(predictTime); + } + + /// + /// Directs the user to the floor-height-adjustment app to adjust the floor's height. + /// @note Supported by PICO Neo3 Pro, general PICO Neo3 devices activated as enterprise devices, and PICO 4 Enterprise. + /// + /// + /// * `0`: success + /// * `1`: failure + /// + public static int GotoSeeThroughFloorSetting() + { + return PXR_EnterprisePlugin.UPxr_gotoSeeThroughFloorSetting(); + } + + /// + /// Copies a file or a folder from the source path to the destination path. + /// @note Supported by PICO Neo3 Pro, general PICO Neo3 devices activated as enterprise devices, and PICO 4 Enterprise. + /// + /// + /// The source path of the file or folder. + /// * For mobile storage devices, the prefix of the path is 'udisk://'. For example, the path of the Movie folder under the root directory should be passed as 'udisk://Movie'. + /// * For internal storage paths, directly specify the path under the root directory. For example, the path of the Picture folder under the root directory should be passed as 'Picture'. + /// + /// + /// The destination path that the file or folder is copied to. + /// * For mobile storage devices, the prefix of the path is 'udisk://'. For example, the path of the Movie folder under the root directory should be passed as 'udisk://Movie'. + /// * For internal storage paths, directly write the path under the root directory. For example, the path of the Picture folder under the root directory should be passed as 'Picture'. + /// + /// The result callback: + /// * `onCopyStart`: copy start callback + /// * `onCopyProgress(double process)`: copy progress callback, value range:[0.00, 1.00] + /// * `onCopyFinish(int errorCode)`: `0` (copy succeeded); `101` (USB flash disk is not connected); `103` (insufficient storage space in the target device); `104` (copy failed) + /// + /// + /// * `0`: API call succeeded, wait for copy to start + /// * `101`: USB flash drive is not connected + /// * `102`: source file/folder does not exist + /// * `106`: null parameter + /// + public static int FileCopy(String srcPath, String dstPath, FileCopyCallback callback) + { + return PXR_EnterprisePlugin.UPxr_fileCopy(srcPath, dstPath, callback); + } + + /// + /// Checks whether a map is being used. + /// @note Supported by PICO Neo3 Pro, general PICO Neo3 devices activated as enterprise devices, and PICO 4 Enterprise. + /// + /// The path of the map's zip file. + /// The result callback: + /// * `0`: success + /// * `1`: failure + /// * `101`: file does not exist + /// * `102`: failed to unzip the file + /// * `103`: file corruption + /// * `104`: position tracking is disabled + /// * `106`: failed to get the current map's information + /// * `107`: `path` parameter is null + /// + public static void IsMapInEffect(String path, Action callback) + { + PXR_EnterprisePlugin.UPxr_IsMapInEffect(path, callback); + } + + /// + /// Imports a map. + /// @note Supported by PICO Neo3 Pro, general PICO Neo3 devices activated as enterprise devices, and PICO 4 Enterprise. + /// + /// The path of the map's zip file. + /// The result callback: + /// * `0`: success + /// * `1`: failure + /// * `101`: file does not exist + /// * `102`: failed to unzip the file + /// * `103`: file corruption + /// * `104`: position tracking is disabled + /// * `107`: `path` parameter is null + /// + public static void ImportMapByPath(String path, Action callback) + { + PXR_EnterprisePlugin.UPxr_ImportMapByPath(path, callback); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/PXR_Enterprise.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/PXR_Enterprise.cs.meta new file mode 100644 index 0000000..bbd0fdc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/PXR_Enterprise.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0ec549f2e9b5b3d48bab5cb6bcf28a7e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin.meta new file mode 100644 index 0000000..a3d3817 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b696a6381610a1f46b9bb9ca74202107 +timeCreated: 1685947774 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterprisePlugin.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterprisePlugin.cs new file mode 100644 index 0000000..0464345 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterprisePlugin.cs @@ -0,0 +1,1715 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ +#if (UNITY_ANDROID && !UNITY_EDITOR) +#define PICO_PLATFORM +#endif +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +#if PICO_XR +using Unity.XR.PXR; +#else +using Unity.XR.OpenXR.Features.PICOSupport; +#endif +using UnityEngine; +using UnityEngine.XR; + +namespace Unity.XR.PICO.TOBSupport +{ + public partial class PXR_EnterprisePlugin + { + private const string TAG = "[PXR_EnterprisePlugin]"; + public const int MAX_SIZE = 12208032; + + public static string token; + private static int curSize = 0; + private static bool camOpenned = false; + + private static FrameItemExt antiDistortionFrameItemExt; + private static FrameItemExt distortionFrameItemExt; + private static bool initDistortionFrame; + + [DllImport("libpxr_xrsdk_native", CallingConvention = CallingConvention.Cdecl)] + public static extern int getHeadTrackingConfidence(); + + [DllImport("libpxr_xrsdk_native", CallingConvention = CallingConvention.Cdecl)] + public static extern int openVSTCamera(); + + [DllImport("libpxr_xrsdk_native", CallingConvention = CallingConvention.Cdecl)] + public static extern int closeVSTCamera(); + + [DllImport("libpxr_xrsdk_native", CallingConvention = CallingConvention.Cdecl)] + public static extern int getHeadTrackingData(Int64 predictTime, ref SixDof data, int type); + + [DllImport("libpxr_xrsdk_native", CallingConvention = CallingConvention.Cdecl)] + public static extern int acquireVSTCameraFrame(ref FrameItemExt frame); + + [DllImport("libpxr_xrsdk_native", CallingConvention = CallingConvention.Cdecl)] + public static extern int acquireVSTCameraFrameAntiDistortion(string token, Int32 width, Int32 height, ref FrameItemExt frame); + + [DllImport("libpxr_xrsdk_native", CallingConvention = CallingConvention.Cdecl)] + public static extern int getCameraParameters(string token, out RGBCameraParams rgb_Camera_Params); + +#if PICO_XR + [DllImport("pxr_api", CallingConvention = CallingConvention.Cdecl)] +#else + [DllImport("openxr_pico", EntryPoint = "PICO_GetPredictedDisplayTime", + CallingConvention = CallingConvention.Cdecl)] +#endif + public static extern int Pxr_GetPredictedDisplayTime(ref double predictedDisplayTime); + +#if PICO_XR + [DllImport("pxr_api", CallingConvention = CallingConvention.Cdecl)] +#else + [DllImport("openxr_pico", EntryPoint = "PICO_GetPredictedMainSensorState2", + CallingConvention = CallingConvention.Cdecl)] +#endif + public static extern int Pxr_GetPredictedMainSensorState2(double predictTimeMs, ref PxrSensorState2 sensorState, ref int sensorFrameIndex); + +#if PICO_PLATFORM + private static AndroidJavaClass unityPlayer; + private static AndroidJavaObject currentActivity; + private static AndroidJavaObject tobHelper; + private static AndroidJavaClass tobHelperClass; + private static AndroidJavaObject IToBService; + private static AndroidJavaClass BAuthLib; +#endif + + public static Action BoolCallback; + public static Action IntCallback; + public static Action LongCallback; + public static Action StringCallback; + + private static AndroidJavaObject GetEnumType(Enum enumType) + { + AndroidJavaClass enumjs = + new AndroidJavaClass("com.pvr.tobservice.enums" + enumType.GetType().ToString().Replace("Unity.XR.PICO.TOBSupport.", ".PBS_")); + AndroidJavaObject enumjo = enumjs.GetStatic(enumType.ToString()); + return enumjo; + } + + public static bool UPxr_InitEnterpriseService() + { +#if PICO_PLATFORM + tobHelperClass = new AndroidJavaClass("com.picoxr.tobservice.ToBServiceUtils"); + tobHelper = tobHelperClass.CallStatic("getInstance"); + unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); + currentActivity = unityPlayer.GetStatic("currentActivity"); + BAuthLib = new AndroidJavaClass("com.pvr.tobauthlib.AuthCheckServer"); +#endif + return UPxr_GetToken(); + } + + public static void UPxr_SetBindCallBack(BindCallback mBoolCallback) + { +#if PICO_PLATFORM + tobHelper.Call("setBindCallBack", mBoolCallback); +#endif + } + + public static void UPxr_BindEnterpriseService(Action callback = null) + { +#if PICO_PLATFORM + + UPxr_SetBindCallBack(new BindCallback(callback)); + tobHelper.Call("bindTobService", currentActivity); +#endif + } + + public static void UPxr_UnBindEnterpriseService() + { +#if PICO_PLATFORM + tobHelper.Call("unBindTobService"); +#endif + } + + public static void GetServiceBinder() + { +#if PICO_PLATFORM + IToBService = tobHelper.Call("getServiceBinder"); +#endif + } + + public static string UPxr_StateGetDeviceInfo(SystemInfoEnum type) + { + string result = ""; +#if PICO_PLATFORM + if (IToBService == null) + { + return result; + } + result = IToBService.Call("pbsStateGetDeviceInfo", GetEnumType(type), 0); +#endif + return result; + } + + public static void UPxr_ControlSetDeviceAction(DeviceControlEnum deviceControl, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsControlSetDeviceAction", GetEnumType(deviceControl), new IntCallback(callback)); +#endif + } + + public static void UPxr_ControlAPPManager(PackageControlEnum packageControl, string path, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsControlAPPManger", GetEnumType(packageControl), path, 0, new IntCallback(callback)); +#endif + } + + public static void UPxr_ControlSetAutoConnectWIFI(string ssid, string pwd, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsControlSetAutoConnectWIFI", ssid, pwd, 0, new BoolCallback(callback)); +#endif + } + + public static void UPxr_ControlClearAutoConnectWIFI(Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsControlClearAutoConnectWIFI", new BoolCallback(callback)); +#endif + } + + public static void UPxr_PropertySetHomeKey(HomeEventEnum eventEnum, HomeFunctionEnum function, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsPropertySetHomeKey", GetEnumType(eventEnum), GetEnumType(function), new BoolCallback(callback)); +#endif + } + + public static void UPxr_PropertySetHomeKeyAll(HomeEventEnum eventEnum, HomeFunctionEnum function, int timesetup, string pkg, string className, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsPropertySetHomeKeyAll", GetEnumType(eventEnum), GetEnumType(function), timesetup, pkg, + className, new BoolCallback(callback)); +#endif + } + + public static void UPxr_PropertyDisablePowerKey(bool isSingleTap, bool enable, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsPropertyDisablePowerKey", isSingleTap, enable, new IntCallback(callback)); +#endif + } + + public static void UPxr_PropertySetScreenOffDelay(ScreenOffDelayTimeEnum timeEnum, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsPropertySetScreenOffDelay", GetEnumType(timeEnum), new IntCallback(callback)); +#endif + } + + public static void UPxr_PropertySetSleepDelay(SleepDelayTimeEnum timeEnum) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + + IToBService.Call("pbsPropertySetSleepDelay", GetEnumType(timeEnum)); +#endif + } + + public static void UPxr_SwitchSystemFunction(SystemFunctionSwitchEnum systemFunction, SwitchEnum switchEnum) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsSwitchSystemFunction", GetEnumType(systemFunction), GetEnumType(switchEnum), 0); +#endif + } + + public static void UPxr_SwitchSetUsbConfigurationOption(USBConfigModeEnum uSBConfigModeEnum) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsSwitchSetUsbConfigurationOption", GetEnumType(uSBConfigModeEnum), 0); +#endif + } + + public static void UPxr_SetControllerPairTime(ControllerPairTimeEnum timeEnum, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsSetControllerPairTime", GetEnumType(timeEnum),new IntCallback(callback), 0); +#endif + } + + public static void UPxr_GetControllerPairTime(Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsGetControllerPairTime",new IntCallback(callback), 0); +#endif + } + + public static void UPxr_ScreenOn() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsScreenOn"); +#endif + } + + public static void UPxr_ScreenOff() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsScreenOff"); +#endif + } + + public static void UPxr_AcquireWakeLock() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsAcquireWakeLock"); +#endif + } + + public static void UPxr_ReleaseWakeLock() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsReleaseWakeLock"); +#endif + } + + public static void UPxr_EnableEnterKey() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsEnableEnterKey"); +#endif + } + + public static void UPxr_DisableEnterKey() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsDisableEnterKey"); +#endif + } + + public static void UPxr_EnableVolumeKey() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsEnableVolumeKey"); +#endif + } + + public static void UPxr_DisableVolumeKey() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsDisableVolumeKey"); +#endif + } + + public static void UPxr_EnableBackKey() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsEnableBackKey"); +#endif + } + + public static void UPxr_DisableBackKey() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsDisableBackKey"); +#endif + } + + + public static void UPxr_ResetAllKeyToDefault(Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsResetAllKeyToDefault", new BoolCallback(callback)); +#endif + } + + public static void UPxr_SetAPPAsHome(SwitchEnum switchEnum, string packageName) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsAppSetAPPAsHomeTwo", GetEnumType(switchEnum), packageName); +#endif + } + + public static void UPxr_KillAppsByPidOrPackageName(int[] pids, string[] packageNames) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsKillAppsByPidOrPackageName", pids, packageNames, 0); +#endif + } + + public static void UPxr_KillBackgroundAppsWithWhiteList(string[] packageNames) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsKillBackgroundAppsWithWhiteList",packageNames, 0); +#endif + } + + public static void UPxr_FreezeScreen(bool freeze) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsFreezeScreen", freeze); +#endif + } + + public static void UPxr_OpenMiracast() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsOpenMiracast"); +#endif + } + + public static bool UPxr_IsMiracastOn() + { + bool value = false; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsIsMiracastOn"); +#endif + return value; + } + + public static void UPxr_CloseMiracast() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsCloseMiracast"); +#endif + } + + public static void UPxr_StartScan() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsStartScan"); +#endif + } + + public static void UPxr_StopScan() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsStopScan"); +#endif + } + + public static void UPxr_ConnectWifiDisplay(string modelJson) + { +#if PICO_PLATFORM + tobHelper.Call("pbsConnectWifiDisplay", modelJson); +#endif + } + + public static void UPxr_DisConnectWifiDisplay() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsDisConnectWifiDisplay"); +#endif + } + + public static void UPxr_ForgetWifiDisplay(string address) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsForgetWifiDisplay", address); +#endif + } + + public static void UPxr_RenameWifiDisplay(string address, string newName) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsRenameWifiDisplay", address, newName); +#endif + } + + public static void UPxr_SetWDModelsCallback(Action> callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsSetWDModelsCallback", new WifiDisplayModelCallback(callback)); +#endif + } + + public static void UPxr_SetWDJsonCallback(Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsSetWDJsonCallback", new StringCallback(callback)); +#endif + } + + public static void UPxr_UpdateWifiDisplays() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return; + } + IToBService.Call("pbsUpdateWifiDisplays"); +#endif + } + + public static string UPxr_GetConnectedWD() + { + string result = ""; +#if PICO_PLATFORM + result = tobHelper.Call("pbsGetConnectedWD"); +#endif + return result; + } + + public static void UPxr_SwitchLargeSpaceScene(bool open, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsSwitchLargeSpaceScene", new BoolCallback(callback), open, 0); +#endif + } + + public static void UPxr_GetSwitchLargeSpaceStatus(Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsGetSwitchLargeSpaceStatus",new StringCallback(callback), 0); +#endif + } + + public static bool UPxr_SaveLargeSpaceMaps() + { + bool value = false; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + value = IToBService.Call("pbsSaveLargeSpaceMaps", 0); +#endif + return value; + } + + public static void UPxr_ExportMaps(Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsExportMaps", new BoolCallback(callback), 0); +#endif + } + + public static void UPxr_ImportMaps(Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsImportMaps", new BoolCallback(callback), 0); +#endif + } + + public static float[] UPxr_GetCpuUsages() + { + float[] data = null; +#if PICO_PLATFORM + data = tobHelper.Call("pbsGetCpuUsages"); +#endif + return data; + } + + public static float[] UPxr_GetDeviceTemperatures(int type, int source) + { + float[] data = null; +#if PICO_PLATFORM + if (IToBService == null) + { + return null; + } + + data = IToBService.Call("pbsGetDeviceTemperatures", type, source); +#endif + + return data; + } + + public static void UPxr_Capture() + { +#if PICO_PLATFORM + IToBService.Call("pbsCapture"); +#endif + } + + public static void UPxr_Record() + { +#if PICO_PLATFORM + IToBService.Call("pbsRecord"); +#endif + } + + public static void UPxr_ControlSetAutoConnectWIFIWithErrorCodeCallback(String ssid, String pwd, int ext, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsControlSetAutoConnectWIFIWithErrorCodeCallback",ssid,pwd,ext,new IntCallback(callback)); +#endif + } + + public static void UPxr_AppKeepAlive(String appPackageName, bool keepAlive, int ext) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return ; + } + IToBService.Call("pbsAppKeepAlive",appPackageName,keepAlive,ext); +#endif + } + + public static void UPxr_TimingStartup(int year, int month, int day, int hour, int minute, bool open) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return ; + } + IToBService.Call("pbsTimingStartup", year, month, day, hour, minute, open); +#endif + } + + public static void UPxr_TimingShutdown(int year, int month, int day, int hour, int minute, bool open) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return ; + } + IToBService.Call("pbsTimingShutdown", year, month, day, hour, minute, open); +#endif + } + + public static void UPxr_StartVrSettingsItem(StartVRSettingsEnum settingsEnum, bool hideOtherItem, int ext) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return ; + } + IToBService.Call("pbsStartVrSettingsItem", GetEnumType(settingsEnum), hideOtherItem, ext); +#endif + } + + public static void UPxr_SwitchVolumeToHomeAndEnter(SwitchEnum switchEnum, int ext) + { +#if PICO_PLATFORM + if (IToBService == null) + { + return ; + } + IToBService.Call("pbsSwitchVolumeToHomeAndEnter", GetEnumType(switchEnum), ext); +#endif + } + + public static SwitchEnum UPxr_IsVolumeChangeToHomeAndEnter() + { + SwitchEnum switchEnum = SwitchEnum.S_OFF; +#if PICO_PLATFORM + int num = 0; + num = tobHelper.Call("pbsIsVolumeChangeToHomeAndEnter"); + if (num == 0) + { + switchEnum = SwitchEnum.S_ON; + } + else if (num == 1) { + switchEnum = SwitchEnum.S_OFF; + } +#endif + return switchEnum; + } + + public static int UPxr_InstallOTAPackage(String otaPackagePath) + { + int value = 0; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsInstallOTAPackage",otaPackagePath, 0); +#endif + return value; + } + + public static string UPxr_GetAutoConnectWiFiConfig() + { + string value= ""; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsGetAutoConnectWiFiConfig", 0); +#endif + return value; + } + + public static string UPxr_GetTimingStartupStatus() + { + string value = ""; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsGetTimingStartupStatus", 0); +#endif + return value; + } + + public static string UPxr_GetTimingShutdownStatus() + { + string value = ""; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsGetTimingShutdownStatus", 0); +#endif + return value; + } + + public static int UPxr_GetControllerKeyState(ControllerKeyEnum pxrControllerKey) + { + int value = 1; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsGetControllerKeyState", GetEnumType(pxrControllerKey),0); +#endif + return value; + } + + public static int UPxr_SetControllerKeyState(ControllerKeyEnum controllerKeyEnum, SwitchEnum status) + { + int value = 1; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsSetControllerKeyState", GetEnumType(controllerKeyEnum),GetEnumType(status),0); +#endif + return value; + } + + public static SwitchEnum UPxr_ControlGetPowerOffWithUSBCable() + { + SwitchEnum switchEnum = SwitchEnum.S_OFF; +#if PICO_PLATFORM + int num = 0; + num = tobHelper.Call("pbsControlGetPowerOffWithUSBCable",0); + if (num == 0) + { + switchEnum = SwitchEnum.S_ON; + } + else if (num == 1) { + switchEnum = SwitchEnum.S_OFF; + } +#endif + return switchEnum; + } + + public static ScreenOffDelayTimeEnum UPxr_PropertyGetScreenOffDelay() + { + ScreenOffDelayTimeEnum screenOffDelayTimeEnum = ScreenOffDelayTimeEnum.NEVER; +#if PICO_PLATFORM + int num = 0; + num = tobHelper.Call("pbsPropertyGetScreenOffDelay", 0); + switch (num) { + case 0: + screenOffDelayTimeEnum = ScreenOffDelayTimeEnum.THREE; + break; + case 1: + screenOffDelayTimeEnum = ScreenOffDelayTimeEnum.TEN; + break; + case 2: + screenOffDelayTimeEnum = ScreenOffDelayTimeEnum.THIRTY; + break; + case 3: + screenOffDelayTimeEnum = ScreenOffDelayTimeEnum.SIXTY; + break; + case 4: + screenOffDelayTimeEnum = ScreenOffDelayTimeEnum.THREE_HUNDRED; + break; + case 5: + screenOffDelayTimeEnum = ScreenOffDelayTimeEnum.SIX_HUNDRED; + break; + case 6: + screenOffDelayTimeEnum = ScreenOffDelayTimeEnum.NEVER; + break; + } +#endif + return screenOffDelayTimeEnum; + } + + public static SleepDelayTimeEnum UPxr_PropertyGetSleepDelay() + { + SleepDelayTimeEnum sleepDelayTime = SleepDelayTimeEnum.NEVER; +#if PICO_PLATFORM + int num = 0; + num = tobHelper.Call("pbsPropertyGetSleepDelay", 0); + switch (num) + { + case 0: + sleepDelayTime = SleepDelayTimeEnum.FIFTEEN; + break; + case 1: + sleepDelayTime = SleepDelayTimeEnum.THIRTY; + break; + case 2: + sleepDelayTime = SleepDelayTimeEnum.SIXTY; + break; + case 3: + sleepDelayTime = SleepDelayTimeEnum.THREE_HUNDRED; + break; + case 4: + sleepDelayTime = SleepDelayTimeEnum.SIX_HUNDRED; + break; + case 5: + sleepDelayTime = SleepDelayTimeEnum.ONE_THOUSAND_AND_EIGHT_HUNDRED; + break; + case 6: + sleepDelayTime = SleepDelayTimeEnum.NEVER; + break; + } +#endif + return sleepDelayTime; + } + + public static string UPxr_PropertyGetPowerKeyStatus() + { + string value = ""; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsPropertyGetPowerKeyStatus", 0); +#endif + return value; + } + + public static int UPxr_GetEnterKeyStatus() + { + int value = 1; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsGetEnterKeyStatus",0); +#endif + return value; + } + + public static int UPxr_GetVolumeKeyStatus() + { + int value = 1; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsGetVolumeKeyStatus",0); +#endif + return value; + } + + public static int UPxr_GetBackKeyStatus() + { + int value = 1; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsGetBackKeyStatus",0); +#endif + return value; + } + + public static string UPxr_PropertyGetHomeKeyStatus(HomeEventEnum homeEvent) + { + string value = ""; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsPropertyGetHomKeyStatus", GetEnumType(homeEvent),0); +#endif + return value; + } + + public static void UPxr_GetSwitchSystemFunctionStatus(SystemFunctionSwitchEnum systemFunction, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsGetSwitchSystemFunctionStatus", GetEnumType(systemFunction), new IntCallback(callback), + 0); +#endif + } + + public static string UPxr_SwitchGetUsbConfigurationOption() + { + string value = ""; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsSwitchGetUsbConfigurationOption", 0); +#endif + return value; + } + + public static string UPxr_GetCurrentLauncher() + { + string value = ""; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsGetCurrentLauncher", 0); +#endif + return value; + } + + public static int UPxr_PICOCastInit(Action callback) + { + int value = 0; +#if PICO_PLATFORM + value = tobHelper.Call("pbsPicoCastInit", new IntCallback(callback), 0); +#endif + return value; + } + + public static int UPxr_PICOCastSetShowAuthorization(int authZ) + { + int value = 0; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsPicoCastSetShowAuthorization",authZ,0); +#endif + return value; + } + + public static int UPxr_PICOCastGetShowAuthorization() + { + int value = 0; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + value = IToBService.Call("pbsPicoCastGetShowAuthorization",0); +#endif + return value; + } + + public static string UPxr_PICOCastGetUrl(PICOCastUrlTypeEnum urlType) + { + string value = ""; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + value = IToBService.Call("pbsPicoCastGetUrl",GetEnumType(urlType), 0); +#endif + return value; + } + + public static int UPxr_PICOCastStopCast() + { + int value = 0; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + value = IToBService.Call("pbsPicoCastStopCast",0); +#endif + return value; + } + + public static int UPxr_PICOCastSetOption(PICOCastOptionOrStatusEnum castOptionOrStatus, PICOCastOptionValueEnum castOptionValue) + { + int value = 0; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + value = IToBService.Call("pbsPicoCastSetOption",GetEnumType(castOptionOrStatus),GetEnumType(castOptionValue),0); +#endif + return value; + } + + public static PICOCastOptionValueEnum UPxr_PICOCastGetOptionOrStatus(PICOCastOptionOrStatusEnum castOptionOrStatus) + { + PICOCastOptionValueEnum value = PICOCastOptionValueEnum.STATUS_VALUE_ERROR; +#if PICO_PLATFORM + int num = 0; + if (tobHelper == null) + { + return value; + } + num = tobHelper.Call("pbsPicoCastGetOptionOrStatus", GetEnumType(castOptionOrStatus), 0); + switch (num) + { + case 0: + value = PICOCastOptionValueEnum.OPTION_VALUE_RESOLUTION_HIGH; + break; + case 1: + value = PICOCastOptionValueEnum.OPTION_VALUE_RESOLUTION_MIDDLE; + break; + case 2: + value = PICOCastOptionValueEnum.OPTION_VALUE_RESOLUTION_AUTO; + break; + case 3: + value = PICOCastOptionValueEnum.OPTION_VALUE_RESOLUTION_HIGH_2K; + break; + case 4: + value = PICOCastOptionValueEnum.OPTION_VALUE_RESOLUTION_HIGH_4K; + break; + case 5: + value = PICOCastOptionValueEnum.OPTION_VALUE_BITRATE_HIGH; + break; + case 6: + value = PICOCastOptionValueEnum.OPTION_VALUE_BITRATE_MIDDLE; + break; + case 7: + value = PICOCastOptionValueEnum.OPTION_VALUE_BITRATE_LOW; + break; + case 8: + value = PICOCastOptionValueEnum.OPTION_VALUE_AUDIO_ON; + break; + case 9: + value = PICOCastOptionValueEnum.OPTION_VALUE_AUDIO_OFF; + break; + case 10: + value = PICOCastOptionValueEnum.STATUS_VALUE_STATE_STARTED; + break; + case 11: + value = PICOCastOptionValueEnum.STATUS_VALUE_STATE_STOPPED; + break; + case 12: + value = PICOCastOptionValueEnum.STATUS_VALUE_ERROR; + break; + } +#endif + return value; + } + + public static int UPxr_SetSystemLanguage(String language) + { + int num = 0; +#if PICO_PLATFORM + num = IToBService.Call("pbsSetSystemLanguage", language, 0); +#endif + return num; + } + + public static String UPxr_GetSystemLanguage() + { + string value = ""; +#if PICO_PLATFORM + value = IToBService.Call("pbsGetSystemLanguage", 0); +#endif + return value; + } + + public static int UPxr_ConfigWifi(String ssid, String pwd) + { + int num = 0; +#if PICO_PLATFORM + num = IToBService.Call("pbsConfigWifi",ssid,pwd, 0); +#endif + return num; + } + + public static String[] UPxr_GetConfiguredWifi() + { +#if PICO_PLATFORM + return IToBService.Call("pbsGetConfiguredWifi",0); +#endif + return null; + } + + public static int UPxr_SetSystemCountryCode(String countryCode, Action callback) + { + int num = 0; +#if PICO_PLATFORM + num = tobHelper.Call("pbsSetSystemCountryCode",countryCode,new IntCallback(callback),0); +#endif + return num; + } + + public static string UPxr_GetSystemCountryCode() + { + string value = ""; +#if PICO_PLATFORM + value = IToBService.Call("pbsGetSystemCountryCode",0); +#endif + return value; + } + + public static int UPxr_SetSkipInitSettingPage(int flag) + { + int num = 0; +#if PICO_PLATFORM + num = IToBService.Call("pbsSetSkipInitSettingPage",flag,0); +#endif + return num; + } + + public static int UPxr_GetSkipInitSettingPage() + { + int num = 0; +#if PICO_PLATFORM + num = IToBService.Call("pbsGetSkipInitSettingPage",0); +#endif + return num; + } + + public static int UPxr_IsInitSettingComplete() + { + int num = 0; +#if PICO_PLATFORM + num = IToBService.Call("pbsIsInitSettingComplete",0); +#endif + return num; + } + + public static int UPxr_StartActivity(String packageName, String className, String action, String extra, String[] categories, int[] flags) + { + int num = 0; +#if PICO_PLATFORM + num = IToBService.Call("pbsStartActivity", packageName, className, action, extra, categories, flags, 0); +#endif + + return num; + } + + public static int UPxr_CustomizeAppLibrary(String[] packageNames, SwitchEnum switchEnum) + { + int num = 0; +#if PICO_PLATFORM + if (IToBService == null) + { + return num; + } + num = IToBService.Call("pbsCustomizeAppLibrary", packageNames,GetEnumType(switchEnum), 0); +#endif + return num; + } + + public static int[] UPxr_GetControllerBattery() + { +#if PICO_PLATFORM + if (IToBService == null) + { + return null; + } + return IToBService.Call("pbsGetControllerBattery", 0); +#endif + return null; + } + + public static int UPxr_GetControllerConnectState() + { + int num = 0; +#if PICO_PLATFORM + if (IToBService == null) + { + return num; + } + num = IToBService.Call("pbsGetControllerConnectState",0); +#endif + return num; + } + + public static string UPxr_GetAppLibraryHideList() + { + string value = " "; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsGetAppLibraryHideList",0); +#endif + return value; + } + + public static int UPxr_SetScreenCastAudioOutput(ScreencastAudioOutputEnum screencastAudioOutput) + { + int value = 0; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsSetScreenCastAudioOutput",GetEnumType(screencastAudioOutput),0); +#endif + return value; + } + + public static ScreencastAudioOutputEnum UPxr_GetScreenCastAudioOutput() + { + ScreencastAudioOutputEnum value = ScreencastAudioOutputEnum.AUDIO_ERROR; +#if PICO_PLATFORM + int num = 0; + num = tobHelper.Call("pbsGetScreenCastAudioOutput",0); + switch (num) + { + case 0: + value = ScreencastAudioOutputEnum.AUDIO_SINK; + break; + case 1: + value = ScreencastAudioOutputEnum.AUDIO_TARGET; + break; + case 2: + value = ScreencastAudioOutputEnum.AUDIO_SINK_TARGET; + break; + } +#endif + return value; + } + + public static int UPxr_CustomizeSettingsTabStatus(CustomizeSettingsTabEnum customizeSettingsTabEnum, SwitchEnum switchEnum) + { + int value = 0; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + + value = IToBService.Call("pbsCustomizeSettingsTabStatus", GetEnumType(customizeSettingsTabEnum), GetEnumType(switchEnum), 0); +#endif + return value; + } + + public static SwitchEnum UPxr_GetCustomizeSettingsTabStatus(CustomizeSettingsTabEnum customizeSettingsTabEnum) + { + SwitchEnum switchEnum = SwitchEnum.S_OFF; +#if PICO_PLATFORM + int num = 0; + num = tobHelper.Call("pbsGetCustomizeSettingsTabStatus",GetEnumType(customizeSettingsTabEnum),0); + if (num == 0) + { + switchEnum = SwitchEnum.S_ON; + } + else if (num == 1) { + switchEnum = SwitchEnum.S_OFF; + } +#endif + return switchEnum; + } + + public static void UPxr_SetPowerOffWithUSBCable(SwitchEnum switchEnum) + { + +#if PICO_PLATFORM + if (IToBService==null) + { + return; + } + IToBService.Call("pbsControlSetPowerOffwithUSBCable", GetEnumType(switchEnum),0); +#endif + } + public static void UPxr_RemoveControllerHomeKey(HomeEventEnum EventEnum) + { +#if PICO_PLATFORM + if (IToBService==null) + { + return; + } + IToBService.Call("pbsRemoveControllerHomeKey", GetEnumType(EventEnum)); +#endif + } + public static void UPxr_SetPowerOnOffLogo(PowerOnOffLogoEnum powerOnOffLogoEnum, String path, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsPropertySetPowerOnOffLogo",GetEnumType(powerOnOffLogoEnum),path,0, new BoolCallback(callback)); +#endif + } + public static void UPxr_SetIPD(float ipd, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("pbsSetIPD",ipd, new IntCallback(callback)); +#endif + } + + public static string UPxr_GetAutoMiracastConfig() + { + string value = " "; +#if PICO_PLATFORM + if (IToBService == null) + { + return value; + } + value = IToBService.Call("pbsGetAutoMiracastConfig",0); +#endif + return value; + } + public static int UPxr_SetPicoCastMediaFormat(PicoCastMediaFormat mediaFormat) + { + int value = -1; +#if PICO_PLATFORM + value = tobHelper.Call("setPicoCastMediaFormat",mediaFormat.bitrate,0); +#endif + return value; + } + + public static int UPxr_setMarkerInfoCallback(TrackingOriginModeFlags trackingMode,float cameraYOffset,Action> mediaFormat) + { + int value = -1; + +#if PICO_PLATFORM + value = tobHelper.Call("setMarkerInfoCallback",new MarkerInfoCallback(trackingMode,cameraYOffset,mediaFormat)); +#endif + return value; + } + + + private static bool UPxr_GetToken() + { + PLog.i(TAG, "GetToken Start"); +#if PICO_PLATFORM + token = BAuthLib.CallStatic("featureAuthByToken", currentActivity, "getCameraInfo"); +#endif + if (string.IsNullOrEmpty(token)) + { + PLog.e(TAG, "Failed to obtain token, camera data cannot be obtained!"); + return false; + } + PLog.i(TAG, "GetToken End token :" + token); + return true; + } + + public static int UPxr_GetHeadTrackingConfidence() + { + PLog.d(TAG, "GetHeadTrackingConfidence Start"); + int result = -1; +#if PICO_PLATFORM + result = getHeadTrackingConfidence(); +#endif + PLog.d(TAG, "GetToken End result :" + result); + + return result; + } + + public static bool UPxr_OpenVSTCamera() + { + PLog.d(TAG, "OpenVSTCamera Start"); + if (camOpenned) + { + PLog.d(TAG, "Camera has Openned!"); + return true; + } + + int result = -1; +#if PICO_PLATFORM + result = openVSTCamera(); +#endif + camOpenned = result == 0; + PLog.d(TAG, "OpenVSTCamera End result :" + result + ", camOpenned : " + camOpenned); + return result == 0; + } + + public static bool UPxr_CloseVSTCamera() + { + PLog.d(TAG, "CloseVSTCamera Start"); + if (!camOpenned) + { + PLog.d(TAG, "Camera has Closed!"); + return true; + } + + int result = -1; +#if PICO_PLATFORM + result = closeVSTCamera(); +#endif + camOpenned = !(result == 0); + PLog.d(TAG, "CloseVSTCamera End result :" + result + ", camOpenned : " + camOpenned); + return result == 0; + } + + public static int UPxr_GetHeadTrackingData(Int64 predictTime, ref SixDof data, int type) + { + PLog.d(TAG, "GetHeadTrackingData Start"); + int result = -1; +#if PICO_PLATFORM + result = getHeadTrackingData(predictTime, ref data, type); +#endif + PLog.d(TAG, "GetHeadTrackingData End result :" + result); + + return result; + } + + public static int UPxr_AcquireVSTCameraFrame(out Frame frame) + { + PLog.d(TAG, "AcquireVSTCameraFrame Start"); + frame = new Frame(); + if (string.IsNullOrEmpty(token)) + { + PLog.e(TAG, "Failed to obtain token, camera data cannot be obtained!"); + return -1; + } + + if (!camOpenned) + { + PLog.e(TAG, "Failed to obtain data due to camera not being turned on!"); + return -1; + } + + InitDistortionFrame(); + int result = -1; +#if PICO_PLATFORM + result = acquireVSTCameraFrame(ref distortionFrameItemExt); +#endif + frame.width = distortionFrameItemExt.frame.width; + frame.height = distortionFrameItemExt.frame.height; + frame.timestamp = distortionFrameItemExt.frame.timestamp; + frame.datasize = distortionFrameItemExt.frame.datasize; + frame.data = distortionFrameItemExt.frame.data; + + if (frame.pose != null) + { + frame.pose.position.x = (float)distortionFrameItemExt.six_dof_pose.pose.x; + frame.pose.position.y = (float)distortionFrameItemExt.six_dof_pose.pose.y; + frame.pose.position.z = (float)distortionFrameItemExt.six_dof_pose.pose.z; + frame.pose.rotation.w = (float)distortionFrameItemExt.six_dof_pose.pose.rw; + frame.pose.rotation.x = (float)distortionFrameItemExt.six_dof_pose.pose.rx; + frame.pose.rotation.y = (float)distortionFrameItemExt.six_dof_pose.pose.ry; + frame.pose.rotation.z = (float)distortionFrameItemExt.six_dof_pose.pose.rz; + } + frame.status = distortionFrameItemExt.six_dof_pose.pose.confidence; + + PLog.d(TAG, "AcquireVSTCameraFrame End result :" + result); + return result; + } + + public static int UPxr_AcquireVSTCameraFrameAntiDistortion(int width, int height, out Frame frame) + { + PLog.d(TAG, "AcquireVSTCameraFrameAntiDistortion Start width:" + width + ", height:" + height); + frame = new Frame(); + if (string.IsNullOrEmpty(token)) + { + PLog.e(TAG, "Failed to obtain token, camera data cannot be obtained!"); + return -1; + } + + if (!camOpenned) + { + PLog.e(TAG, "Failed to obtain data due to camera not being turned on!"); + return -1; + } + + int size = width * height * 3; + InitAntiDistortionFrame(size); + int result = -1; +#if PICO_PLATFORM + result = acquireVSTCameraFrameAntiDistortion(token, width, height, ref antiDistortionFrameItemExt); +#endif + PLog.d(TAG, "AcquireVSTCameraFrameAntiDistortion End result :" + result + + ", width : " + antiDistortionFrameItemExt.frame.width + + ", height : " + antiDistortionFrameItemExt.frame.height + + ", datasize : " + antiDistortionFrameItemExt.frame.datasize + + ", data : " + antiDistortionFrameItemExt.frame.data + + ", confidence : " + antiDistortionFrameItemExt.six_dof_pose.pose.confidence); + + frame.width = antiDistortionFrameItemExt.frame.width; + frame.height = antiDistortionFrameItemExt.frame.height; + frame.timestamp = antiDistortionFrameItemExt.frame.timestamp; + frame.datasize = antiDistortionFrameItemExt.frame.datasize; + frame.data = antiDistortionFrameItemExt.frame.data; + + if (frame.pose != null) + { + frame.pose.position.x = (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.x; + frame.pose.position.y = (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.y; + frame.pose.position.z = (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.z; + frame.pose.rotation.w = (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.rw; + frame.pose.rotation.x = (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.rx; + frame.pose.rotation.y = (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.ry; + frame.pose.rotation.z = (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.rz; + } + frame.status = antiDistortionFrameItemExt.six_dof_pose.relocation_pose.confidence; + + PLog.d(TAG, "zzzzzz relocation_pose.x=" + (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.x + + ", relocation_pose.y=" + (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.y + + ", relocation_pose.z=: " + (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.z + + ", relocation_pose.rw=: " + (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.rw + + ", relocation_pose.rx = " + (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.rx + + ", relocation_pose.ry = " + (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.ry + + ", relocation_pose.rz = " + (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.rz); + PLog.d(TAG, "zzzzzz pose.x=" + (float)antiDistortionFrameItemExt.six_dof_pose.relocation_pose.x + + ", pose.y=" + (float)antiDistortionFrameItemExt.six_dof_pose.pose.y + + ", relocation_pose.z=: " + (float)antiDistortionFrameItemExt.six_dof_pose.pose.z + + ", pose.rw=: " + (float)antiDistortionFrameItemExt.six_dof_pose.pose.rw + + ", pose.rx = " + (float)antiDistortionFrameItemExt.six_dof_pose.pose.rx + + ", pose.ry = " + (float)antiDistortionFrameItemExt.six_dof_pose.pose.ry + + ", pose.rz = " + (float)antiDistortionFrameItemExt.six_dof_pose.pose.rz); + return result; + } + + public static UnityEngine.Pose ToUnityPose(UnityEngine.Pose poseR) + { + UnityEngine.Pose poseL; + poseL.position.x = poseR.position.x; + poseL.position.y = poseR.position.y; + poseL.position.z = -poseR.position.z; + poseL.rotation.x = poseR.rotation.x; + poseL.rotation.y = poseR.rotation.y; + poseL.rotation.z = -poseR.rotation.z; + poseL.rotation.w = -poseR.rotation.w; + return poseL; + } + + // RGB Camera pose (Left-handed coordinate system: X right, Y up, Z out) + public static UnityEngine.Pose ToRGBCameraPose(RGBCameraParams cameraParams, UnityEngine.Pose headPose) + { + Vector3 headToCameraPos = new Vector3((float)cameraParams.x, (float)cameraParams.y, (float)cameraParams.z); + Quaternion headToCameraRot = new Quaternion((float)cameraParams.rx, (float)cameraParams.ry, (float)cameraParams.rz, (float)cameraParams.rw); + + Matrix4x4 headMx = Matrix4x4.TRS(headPose.position, headPose.rotation, Vector3.one); + Matrix4x4 cameraMx = Matrix4x4.TRS(headToCameraPos, headToCameraRot, Vector3.one); + Matrix4x4 rgbMx = headMx * cameraMx; + Matrix4x4 rotX180 = Matrix4x4.Rotate(Quaternion.Euler(180f, 0f, 0f)); + rgbMx *= rotX180; +#if UNITY_2021_2_OR_NEWER + UnityEngine.Pose rgbCameraPose = ToUnityPose(new UnityEngine.Pose(rgbMx.GetPosition(), rgbMx.rotation)); +#else + UnityEngine.Pose rgbCameraPose = ToUnityPose(new UnityEngine.Pose(new Vector3(rgbMx.m03, rgbMx.m13, rgbMx.m23), rgbMx.rotation)); +#endif + return rgbCameraPose; + } + + private static void InitDistortionFrame() + { + if (initDistortionFrame) + { + return; + } + distortionFrameItemExt = new FrameItemExt(); + initDistortionFrame = true; + } + + private static void InitAntiDistortionFrame(int size) + { + if (curSize == size) + { + return; + } + Debug.LogFormat("InitAntiDistortionFrame curSize={0}, size={1}", curSize, size); + antiDistortionFrameItemExt = new FrameItemExt(); + if (antiDistortionFrameItemExt.frame.data != IntPtr.Zero) + { + Marshal.FreeHGlobal(antiDistortionFrameItemExt.frame.data); + antiDistortionFrameItemExt.frame.data = IntPtr.Zero; + } + antiDistortionFrameItemExt.frame.data = Marshal.AllocHGlobal(size); + curSize = size; + } + + public static RGBCameraParams UPxr_GetCameraParameters() + { + PLog.d(TAG, "GetCameraParameters Start"); + RGBCameraParams rgbCameraParams = new RGBCameraParams(); + if (string.IsNullOrEmpty(token)) + { + PLog.e(TAG, "Failed to obtain token, camera data cannot be obtained!"); + return rgbCameraParams; + } + int result = getCameraParameters(token, out rgbCameraParams); + PLog.d(TAG, "GetCameraParameters End result :" + result); + + return rgbCameraParams; + } + + public static double UPxr_GetPredictedDisplayTime() + { + PLog.d(TAG, "UPxr_GetPredictedDisplayTime()"); + double predictedDisplayTime = 0; +#if PICO_PLATFORM + Pxr_GetPredictedDisplayTime(ref predictedDisplayTime); +#endif + PLog.d(TAG, "UPxr_GetPredictedDisplayTime() predictedDisplayTime:" + predictedDisplayTime); + return predictedDisplayTime; + } + + public static SensorState UPxr_GetPredictedMainSensorState(double predictTime) + { + SensorState sensorState = new SensorState(); + PxrSensorState2 sensorState2 = new PxrSensorState2(); + int sensorFrameIndex = 0; +#if PICO_PLATFORM + Pxr_GetPredictedMainSensorState2(predictTime, ref sensorState2, ref sensorFrameIndex); +#endif + sensorState.status = sensorState2.status == 3 ? 1 : 0; + sensorState.pose.position.x = sensorState2.pose.position.x; + sensorState.pose.position.y = sensorState2.pose.position.y; + sensorState.pose.position.z = sensorState2.pose.position.z; + sensorState.pose.rotation.x = sensorState2.pose.orientation.x; + sensorState.pose.rotation.y = sensorState2.pose.orientation.y; + sensorState.pose.rotation.z = sensorState2.pose.orientation.z; + sensorState.pose.rotation.w = sensorState2.pose.orientation.w; + return sensorState; + } + + public static int UPxr_gotoSeeThroughFloorSetting() + { + int value = -1; + +#if PICO_PLATFORM + value = IToBService.Call("gotoSeeThroughFloorSetting",0); +#endif + return value; + } + public static int UPxr_fileCopy(String srcPath, String dstPath, FileCopyCallback callback) + { + int value = -1; +#if PICO_PLATFORM + value = tobHelper.Call("FileCopy",srcPath,dstPath,callback); +#endif + return value; + } + public static void UPxr_IsMapInEffect(String path, Action callback) + { + +#if PICO_PLATFORM + tobHelper.Call("isMapInEffect",path,new IntCallback(callback),0); +#endif + } + public static void UPxr_ImportMapByPath(String path, Action callback) + { +#if PICO_PLATFORM + tobHelper.Call("importMapByPath",path,new IntCallback(callback),0); +#endif + } + + + private const string LibraryName = "PICO_TOBAPI"; + + [DllImport(LibraryName, CallingConvention = CallingConvention.Cdecl)] + public static extern float oxr_get_trackingorigin_height(); + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterprisePlugin.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterprisePlugin.cs.meta new file mode 100644 index 0000000..b313e21 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterprisePlugin.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aa2c6dd6feb090341b43b2f825f99a7e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterpriseTools.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterpriseTools.cs new file mode 100644 index 0000000..460899d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterpriseTools.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace Unity.XR.PICO.TOBSupport +{ + public class PXR_EnterpriseTools : MonoBehaviour + { + public struct NoDelayedQueueItem + { + public Action action; + } + + private List _actions = new List(); + List _currentActions = new List(); + private static PXR_EnterpriseTools instance; + + public void StartUp() + { + Debug.Log("ToBService PXR_EnterpriseTools StartUp"); + } + public static PXR_EnterpriseTools Instance + { + get + { + if (instance == null) + { + instance = FindObjectOfType(); + } + + if (instance == null) + { + GameObject obj = new GameObject("PXR_EnterpriseTools"); + instance = obj.AddComponent(); + DontDestroyOnLoad(obj); + } + + return instance; + } + } + + + public static void QueueOnMainThread(Action taction) + { + lock (instance._actions) + { + instance._actions.Add(new NoDelayedQueueItem { action = taction }); + } + } + + void Update() + { + if (_actions.Count > 0) + { + lock (_actions) + { + _currentActions.Clear(); + _currentActions.AddRange(_actions); + _actions.Clear(); + } + + for (int i = 0; i < _currentActions.Count; i++) + { + _currentActions[i].action.Invoke(); + } + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterpriseTools.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterpriseTools.cs.meta new file mode 100644 index 0000000..bcf23a4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Plugin/PXR_EnterpriseTools.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fba0173074665504b9adf96a28713621 +timeCreated: 1686053214 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Struct.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Struct.meta new file mode 100644 index 0000000..0e21a2c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Struct.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: daa051af13219a1469fa16186d42f6fa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Struct/RGBCameraStruct.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Struct/RGBCameraStruct.cs new file mode 100644 index 0000000..abaf0ec --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Struct/RGBCameraStruct.cs @@ -0,0 +1,105 @@ +using System; +using System.Runtime.InteropServices; + +namespace Unity.XR.PICO.TOBSupport +{ + // pico slam results + [StructLayout(LayoutKind.Sequential)] + public struct SixDof + { + public Int64 timestamp; // nanoseconds + public double x; // position X + public double y; // position Y + public double z; // position Z + public double rw; // rotation W + public double rx; // rotation X + public double ry; // rotation Y + public double rz; // rotation Z + public byte type; //1:6DOF 0:3DOF + public byte confidence; //1:good 0:bad + public PoseErrorType error; + public double plane_height; + public byte plane_status; + public byte relocation_status; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)] + public byte[] reserved; + } + + [StructLayout(LayoutKind.Sequential)] + public struct AlgoResult + { + public SixDof pose; + public SixDof relocation_pose; + public double vx, vy, vz; // linear velocity + public double ax, ay, az; // linear acceleration + public double wx, wy, wz; // angular velocity + public double w_ax, w_ay, w_az; // angular acceleration + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)] + public byte[] reserved; + } + + [StructLayout(LayoutKind.Sequential)] + public struct FrameItem + { + public byte camera_id; + public UInt32 width; // width + public UInt32 height; // height + public UInt32 format; // format - rgb24 + public UInt32 exposure_duration; // exposure duration:ns + public UInt64 timestamp; // start of exposure time:ns (BOOTTIME) + public UInt64 qtimer_timestamp; // nanoseconds in qtimer + public UInt64 framenumber; // frame number + public UInt32 datasize; // datasize + public IntPtr data; // image data. + } + + [StructLayout(LayoutKind.Sequential)] + public struct FrameItemExt + { + public FrameItem frame; + public bool is_rgb; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] + public double[] rgb_tsw_matrix; + public bool is_anti_distortion; + public AlgoResult six_dof_pose; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)] + public byte[] reserved; + } + + [StructLayout(LayoutKind.Sequential)] + public struct Frame + { + public UInt32 width; // width + public UInt32 height; // height + public UInt64 timestamp; // start of exposure time:ns (BOOTTIME) + public UInt32 datasize; // datasize + public IntPtr data; // image data + public UnityEngine.Pose pose; // The head Pose at the time of image production.(Right-handed coordinate system: X right, Y up, Z in) + public int status; // sensor status(1:good 0:bad) + } + + [StructLayout(LayoutKind.Sequential)] + public struct SensorState + { + public UnityEngine.Pose pose; // Predict the head Pose at the screen up time.(Right-handed coordinate system: X right, Y up, Z in) + public int status; // sensor status(1:good 0:bad) + } + + [StructLayout(LayoutKind.Sequential)] + public struct RGBCameraParams + { + // Intrinsics + public double fx; + public double fy; + public double cx; + public double cy; + // Extrinsics + public double x; + public double y; + public double z; + public double rw; + public double rx; + public double ry; + public double rz; + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Struct/RGBCameraStruct.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Struct/RGBCameraStruct.cs.meta new file mode 100644 index 0000000..d37eb82 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/Scripts/Struct/RGBCameraStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4c86b575368aebb4f8e9f6075741d50b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android.meta new file mode 100644 index 0000000..26e4fdc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec2fbac267f467b4f99f2f8519e05746 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/BAuthLib-1.0.0.aar b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/BAuthLib-1.0.0.aar new file mode 100644 index 0000000..b9c3836 Binary files /dev/null and b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/BAuthLib-1.0.0.aar differ diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/BAuthLib-1.0.0.aar.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/BAuthLib-1.0.0.aar.meta new file mode 100644 index 0000000..53822bb --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/BAuthLib-1.0.0.aar.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 3266af5006c35b545bfb0105f9ec3149 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/gson-2.10.1.jar b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/gson-2.10.1.jar new file mode 100644 index 0000000..a88c5bd Binary files /dev/null and b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/gson-2.10.1.jar differ diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/gson-2.10.1.jar.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/gson-2.10.1.jar.meta new file mode 100644 index 0000000..0a90874 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/gson-2.10.1.jar.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 5defbfa2eaac8d54bb97145f9a7e0779 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tob_api-release.aar b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tob_api-release.aar new file mode 100644 index 0000000..254a683 Binary files /dev/null and b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tob_api-release.aar differ diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tob_api-release.aar.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tob_api-release.aar.meta new file mode 100644 index 0000000..e87b5e5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tob_api-release.aar.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 9d8a4b2acf17c1347ae880d5e54af76f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tobservicelib-release.aar b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tobservicelib-release.aar new file mode 100644 index 0000000..db7bc6d Binary files /dev/null and b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tobservicelib-release.aar differ diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tobservicelib-release.aar.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tobservicelib-release.aar.meta new file mode 100644 index 0000000..e4c9fb5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Enterprise/android/tobservicelib-release.aar.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: a58c88e98c4244c4199fa9a7dbe81976 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform.meta new file mode 100644 index 0000000..82c3bb7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17149ac08e5d69f46ab76ccad514f109 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor.meta new file mode 100644 index 0000000..915f1d6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: afee36b1667143e0934e6661984401f6 +timeCreated: 1666012942 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/EditorConf.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/EditorConf.cs new file mode 100644 index 0000000..018b94a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/EditorConf.cs @@ -0,0 +1,21 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +namespace Pico.Platform.Editor +{ + public class EditorConf + { + public static int minSdkLevel = 29; + public static string minEditorVersion = "2020"; + public static string AppIdMetaDataTag = "pvr.app.id"; + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/EditorConf.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/EditorConf.cs.meta new file mode 100644 index 0000000..1bc1840 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/EditorConf.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 291ce88e932c4172b3245a1f2e8381a1 +timeCreated: 1684329960 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Gs.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Gs.cs new file mode 100644 index 0000000..956c3d2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Gs.cs @@ -0,0 +1,158 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using UnityEditor; + +namespace Pico.Platform.Editor +{ + /// + /// Unity Setting Getter and Setter + /// + public class Gs + { + public static string productName + { + get { return PlayerSettings.productName; } + set { PlayerSettings.productName = value; } + } + + public static string packageName + { + get { return PlayerSettings.GetApplicationIdentifier(EditorUserBuildSettings.selectedBuildTargetGroup); } + set { PlayerSettings.SetApplicationIdentifier(EditorUserBuildSettings.selectedBuildTargetGroup, value); } + } + + public static BuildTargetGroup buildTargetGroup + { + get { return EditorUserBuildSettings.selectedBuildTargetGroup; } + set + { + EditorUserBuildSettings.selectedBuildTargetGroup = value; + if (value == BuildTargetGroup.Android) + { + EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Android, BuildTarget.Android); + } + } + } + + public static BuildTarget buildTarget + { + get { return EditorUserBuildSettings.activeBuildTarget; } + } + + public static BuildTarget selectedStandaloneTarget + { + get { return EditorUserBuildSettings.selectedStandaloneTarget; } + set + { + EditorUserBuildSettings.selectedStandaloneTarget = value; + EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Standalone, value); + } + } + + public static AndroidSdkVersions minimumApiLevel + { + get { return PlayerSettings.Android.minSdkVersion; } + set { PlayerSettings.Android.minSdkVersion = value; } + } + + public static AndroidSdkVersions targetSdkVersion + { + get { return PlayerSettings.Android.targetSdkVersion; } + set { PlayerSettings.Android.targetSdkVersion = value; } + } + + + public static string bundleVersion + { + get { return PlayerSettings.bundleVersion; } + set { PlayerSettings.bundleVersion = value; } + } + + public static int bundleVersionCode + { + get { return PlayerSettings.Android.bundleVersionCode; } + set { PlayerSettings.Android.bundleVersionCode = value; } + } + + public static string keystoreName + { + get { return PlayerSettings.Android.keystoreName; } + set { PlayerSettings.Android.keystoreName = value; } + } + + + public static string keystorePass + { + get { return PlayerSettings.Android.keystorePass; } + set { PlayerSettings.Android.keystorePass = value; } + } + + public static string keyaliasName + { + get { return PlayerSettings.Android.keyaliasName; } + set { PlayerSettings.Android.keyaliasName = value; } + } + + public static string keyaliasPass + { + get { return PlayerSettings.Android.keyaliasPass; } + set { PlayerSettings.Android.keyaliasPass = value; } + } + + public static bool useCustomKeystore + { + get { return PlayerSettings.Android.useCustomKeystore; } + set { PlayerSettings.Android.useCustomKeystore = value; } + } + + public static ScriptingImplementation scriptBackend + { + get { return PlayerSettings.GetScriptingBackend(EditorUserBuildSettings.selectedBuildTargetGroup); } + set + { + PlayerSettings.SetScriptingBackend(EditorUserBuildSettings.selectedBuildTargetGroup, value); + if (value == ScriptingImplementation.Mono2x) + { + //mono only support armv7 + targetArchitectures = AndroidArchitecture.ARMv7; + } + else if (value == ScriptingImplementation.IL2CPP) + { + //il2cpp use a reasonable default value + if (targetArchitectures != AndroidArchitecture.ARMv7 && targetArchitectures != AndroidArchitecture.ARM64) + { + targetArchitectures = AndroidArchitecture.ARM64; + } + } + } + } + + public static AndroidArchitecture targetArchitectures + { + get { return PlayerSettings.Android.targetArchitectures; } + set { PlayerSettings.Android.targetArchitectures = value; } + } + + public static AndroidBuildType androidBuildType + { + get { return EditorUserBuildSettings.androidBuildType; } + set { EditorUserBuildSettings.androidBuildType = value; } + } + + public static UIOrientation UIOrientation + { + get { return PlayerSettings.defaultInterfaceOrientation; } + set { PlayerSettings.defaultInterfaceOrientation = value; } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Gs.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Gs.cs.meta new file mode 100644 index 0000000..c1eeac8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Gs.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3273a382b4f040e1b701c1db754ee588 +timeCreated: 1672406702 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Menu.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Menu.cs new file mode 100644 index 0000000..093e555 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Menu.cs @@ -0,0 +1,37 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using UnityEditor; +using UnityEngine; + +namespace Pico.Platform.Editor +{ + public class Menu + { + [MenuItem("PXR_SDK/Platform Settings")] + public static void ShowNewConfig() + { + PicoSettings window = ScriptableObject.CreateInstance(typeof(PicoSettings)) as PicoSettings; + window.minSize = new Vector2(400, 450); + window.maxSize = new Vector2(400, 450); + window.ShowUtility(); + } + + [MenuItem("PXR_SDK/PC Debug Settings")] + public static void EditPcConfig() + { + var obj = PcConfigEditor.load(); + obj.name = "PC Debug Configuration"; + Selection.activeObject = obj; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Menu.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Menu.cs.meta new file mode 100644 index 0000000..516315f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/Menu.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6dfff384357648919df83f7328a03901 +timeCreated: 1666014061 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PICO.Platform.Editor.asmdef b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PICO.Platform.Editor.asmdef new file mode 100644 index 0000000..224e608 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PICO.Platform.Editor.asmdef @@ -0,0 +1,29 @@ +{ + "name": "PICO.Platform.Editor", + "references": [ + "Unity.XR.PICO.Editor", + "Unity.XR.PICO", + "Unity.XR.Management", + "Unity.XR.Management.Editor", + "PICO.Platform", + "Unity.XR.OpenXR.Features.PICOSupport" + ], + "optionalUnityReferences": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "versionDefines": [ + { + "name": "com.unity.xr.management", + "expression": "", + "define": "USING_XR_MANAGEMENT" + }, + { + "name": "com.unity.xr.pico", + "expression": "", + "define": "USING_XR_SDK_PICO" + } + ] +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PICO.Platform.Editor.asmdef.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PICO.Platform.Editor.asmdef.meta new file mode 100644 index 0000000..9989d8f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PICO.Platform.Editor.asmdef.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0714fd8cd186449494c96cfeaa72dc67 +timeCreated: 1666088788 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PXR_PlatformSettingEditor.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PXR_PlatformSettingEditor.cs new file mode 100644 index 0000000..603116f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PXR_PlatformSettingEditor.cs @@ -0,0 +1,97 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using Unity.XR.PXR; +using UnityEditor; +using UnityEngine; + +namespace Pico.Platform.Editor +{ + [CustomEditor(typeof(PXR_PlatformSetting))] + public class PXR_PlatformSettingEditor : UnityEditor.Editor + { + private SerializedProperty deviceSNList; + + private void OnEnable() + { + deviceSNList = serializedObject.FindProperty("deviceSN"); + } + + public override void OnInspectorGUI() + { + var startEntitleCheckTip = "If selected, you will need to enter the APPID that is obtained from" + + " PICO Developer Platform after uploading the app for an entitlement check upon the app launch."; + var startEntitleCheckLabel = new GUIContent("User Entitlement Check[?]", startEntitleCheckTip); + + PXR_PlatformSetting.Instance.startTimeEntitlementCheck = + EditorGUILayout.Toggle(startEntitleCheckLabel, PXR_PlatformSetting.Instance.startTimeEntitlementCheck); + if (PXR_PlatformSetting.Instance.startTimeEntitlementCheck) + { + serializedObject.Update(); + EditorGUILayout.BeginHorizontal(); + GUILayout.Label("App ID ", GUILayout.Width(100)); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + PXR_PlatformSetting.Instance.appID = + EditorGUILayout.TextField(PXR_PlatformSetting.Instance.appID, GUILayout.Width(350.0f)); + EditorGUILayout.EndHorizontal(); + + if (PXR_PlatformSetting.Instance.appID == "") + { + EditorGUILayout.BeginHorizontal(GUILayout.Width(300)); + EditorGUILayout.HelpBox("APPID is required for Entitlement Check", UnityEditor.MessageType.Error, true); + EditorGUILayout.EndHorizontal(); + } + + EditorGUILayout.BeginHorizontal(); + GUILayout.Label("The APPID is required to run an Entitlement Check. Create / Find your APPID Here:", GUILayout.Width(500)); + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + GUIStyle style = new GUIStyle(); + style.normal.textColor = new Color(0, 122f / 255f, 204f / 255f); + if (GUILayout.Button("" + "https://developer.pico-interactive.com/developer/overview", style, + GUILayout.Width(200))) + { + Application.OpenURL("https://developer.pico-interactive.com/developer/overview"); + } + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.BeginHorizontal(); + GUILayout.Label("If you do not need user Entitlement Check, please uncheck it.", GUILayout.Width(500)); + EditorGUILayout.EndHorizontal(); + serializedObject.ApplyModifiedProperties(); + + var simulationTip = "If true,Development devices will simulate Entitlement Check," + + "you should enter a valid device SN codes list." + + "The SN code can be obtain in Settings-General-Device serial number or input \"adb devices\" in cmd"; + var simulationLabel = new GUIContent("Entitlement Check Simulation [?]", simulationTip); + + PXR_PlatformSetting.Instance.entitlementCheckSimulation = EditorGUILayout.Toggle(simulationLabel, PXR_PlatformSetting.Instance.entitlementCheckSimulation); + if (PXR_PlatformSetting.Instance.entitlementCheckSimulation) + { + serializedObject.Update(); + EditorGUILayout.PropertyField(deviceSNList, true); + serializedObject.ApplyModifiedProperties(); + } + + if (GUI.changed) + { + EditorUtility.SetDirty(PXR_PlatformSetting.Instance); + GUI.changed = false; + } + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PXR_PlatformSettingEditor.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PXR_PlatformSettingEditor.cs.meta new file mode 100644 index 0000000..19a7134 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PXR_PlatformSettingEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9d0f9ccd124aeb74489816ba2b80ba94 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PcConfig.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PcConfig.cs new file mode 100644 index 0000000..20c4f4f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PcConfig.cs @@ -0,0 +1,122 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.IO; +using LitJson; +using UnityEditor; +using UnityEngine; + +namespace Pico.Platform.Editor +{ + /// + /// Unity Setting Getter and Setter + /// + public enum Region + { + cn = 0, + i18n = 1, + } + + public class PcConfig : ScriptableObject + { + public Region region = Region.cn; + public string accessToken = ""; + internal bool hasError = false; + } + + [CustomEditor(typeof(PcConfig))] + public class PcConfigEditor : UnityEditor.Editor + { + static string filepath = "Assets/Resources/PicoSdkPCConfig.json"; + private static string i18nLink = "https://developer-global.pico-interactive.com/document/unity/pc-end-debugging-tool"; + private static string cnLink = "https://developer-cn.pico-interactive.com/document/unity/pc-end-debugging-tool"; + + public override void OnInspectorGUI() + { + var x = Selection.activeObject as PcConfig; + if (x.hasError) + { + EditorGUILayout.LabelField("Config file error,please check the file"); + return; + } + + base.OnInspectorGUI(); + + //Read the document + { + GUILayout.Space(5); + var referenceStyle = new GUIStyle(EditorStyles.label); + referenceStyle.normal.textColor = new Color(0, 122f / 255f, 204f / 255f); + referenceStyle.focused.textColor = new Color(0, 122f / 255f, 204f / 255f); + referenceStyle.hover.textColor = new Color(0, 122f / 255f, 204f / 255f); + if (GUILayout.Button("Read the document", referenceStyle)) + { + var link = i18nLink; + if (Application.systemLanguage == SystemLanguage.Chinese || Application.systemLanguage == SystemLanguage.ChineseSimplified || Application.systemLanguage == SystemLanguage.ChineseTraditional) + { + link = cnLink; + } + + Application.OpenURL(link); + } + } + this.save(); + } + + public static PcConfig load() + { + var obj = CreateInstance(); + obj.hasError = false; + try + { + if (File.Exists(filepath)) + { + var jsonContent = File.ReadAllText(filepath); + var jsonConf = JsonMapper.ToObject(jsonContent); + obj.accessToken = jsonConf["account"]["access_token"].ToString(); + if (!Region.TryParse(jsonConf["general"]["region"].ToString() ?? "", out obj.region)) + { + obj.region = Region.cn; + } + } + } + catch (Exception e) + { + Debug.LogError(e); + obj.hasError = true; + } + + return obj; + } + + public void save() + { + var obj = Selection.activeObject as PcConfig; + if (obj.hasError) + { + return; + } + + var conf = new JsonData(); + conf["general"] = new JsonData(); + conf["account"] = new JsonData(); + conf["package"] = new JsonData(); + conf["general"]["region"] = obj.region.ToString(); + conf["account"]["access_token"] = obj.accessToken.Trim(); + conf["package"]["package_name"] = Gs.packageName.Trim(); + conf["package"]["package_version_code"] = Gs.bundleVersionCode; + conf["package"]["package_version_name"] = Gs.bundleVersion; + File.WriteAllText(filepath, JsonMapper.ToJson(conf)); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PcConfig.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PcConfig.cs.meta new file mode 100644 index 0000000..c3c8623 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PcConfig.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2de2dab76a48474c904742a232922902 +timeCreated: 1665473073 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PicoGs.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PicoGs.cs new file mode 100644 index 0000000..45b4f25 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PicoGs.cs @@ -0,0 +1,118 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System.Collections.Generic; +using Unity.XR.PXR; +using UnityEditor; +using UnityEditor.XR.Management; +using UnityEditor.XR.Management.Metadata; +using UnityEngine; +using UnityEngine.XR.Management; + +namespace Pico.Platform.Editor +{ + public class PicoGs + { + public static string appId + { + get { return PXR_PlatformSetting.Instance.appID; } + set + { + PXR_PlatformSetting.Instance.appID = value; + EditorUtility.SetDirty(PXR_PlatformSetting.Instance); + } + } + + public static bool useHighlight + { + get { return PXR_PlatformSetting.Instance.useHighlight; } + set + { + PXR_PlatformSetting.Instance.useHighlight = value; + EditorUtility.SetDirty(PXR_PlatformSetting.Instance); + } + } + + public static bool enableEntitlementCheck + { + get { return PXR_PlatformSetting.Instance.entitlementCheckSimulation; } + set + { + PXR_PlatformSetting.Instance.entitlementCheckSimulation = value; + EditorUtility.SetDirty(PXR_PlatformSetting.Instance); + } + } + + public static List entitlementCheckDeviceList + { + get { return PXR_PlatformSetting.Instance.deviceSN; } + set { PXR_PlatformSetting.Instance.deviceSN = value; } + } + +#if USING_XR_SDK_PICO + static XRManagerSettings GetXrSettings() + { + XRGeneralSettings generalSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildTargetGroup.Android); + if (generalSettings == null) return null; + var assignedSettings = generalSettings.AssignedSettings; + return assignedSettings; + } + + static PXR_Loader GetPxrLoader() + { + var x = GetXrSettings(); + if (x == null) return null; + foreach (var i in x.activeLoaders) + { + if (i is PXR_Loader) + { + return i as PXR_Loader; + } + } + + return null; + } + + public static bool UsePicoXr + { + get { return GetPxrLoader() != null; } + set + { + var x = GetXrSettings(); + if (x == null) return; + var loader = GetPxrLoader(); + if (value == false) + { + if (loader == null) + { + } + else + { + x.TryRemoveLoader(loader); + } + } + else + { + if (loader == null) + { + var res = XRPackageMetadataStore.AssignLoader(x, nameof(PXR_Loader), BuildTargetGroup.Android); + Debug.Log($"设置XR{res} {value}"); + } + else + { + } + } + } + } +#endif + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PicoGs.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PicoGs.cs.meta new file mode 100644 index 0000000..65ff79a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PicoGs.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b67c9049a1bc4e1c90c2c7b99918f856 +timeCreated: 1673612884 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformConfig.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformConfig.cs new file mode 100644 index 0000000..5ded058 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformConfig.cs @@ -0,0 +1,381 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using Unity.XR.PXR; +using UnityEditor; +using UnityEngine; + +namespace Pico.Platform.Editor +{ + public class PicoSettings : EditorWindow + { + enum Language + { + English = 0, + Chinese = 1, + } + + private SerializedObject serObj; + private SerializedProperty gosPty; + static Language language = Language.English; + + static string[] strAppIdText = {"Paste your App ID here", "请粘贴你的AppID"}; + static string[] strAppIdHelpText = {"App ID is the unique identification ID of the PICO Application. Without AppID, you will not be able to use PICO platform feature.", "APP ID 是应用的唯一标识"}; + static string[] strBuildSettingText = {"Recommend Settings [?]", "推荐设置"}; + static string[] strBuildSettingHelpText = {"Recommended project settings for PXR SDK", "推荐项目设置"}; + static string[] strPlatformBuildText = {"Set Platform To Android", "设置目标平台为Android"}; + static string[] strUnityVersionLimit = {$"Unity Editor Version ≥ {EditorConf.minEditorVersion}", $"Unity Editor版本不小于{EditorConf.minEditorVersion}"}; + static string[] strOrientationBuildText = {"Set Orientation To LandscapeLeft", "设置屏幕方向为水平"}; + static string[] strMinApiLevel = {$"Android Min API Level ≥ {EditorConf.minSdkLevel}", $"Android最小API不低于{EditorConf.minSdkLevel}"}; + static string[] strIgnoreButtonText = {"Ask me later", "稍后询问"}; + static string[] strApplyButtonText = {"Apply", "应用"}; + static string[] strHighlightText = {"Use Highlight", "开启高光时刻"}; + + private class Res + { + public readonly Texture PicoDeveloper; + public string Correct = "✔️"; + public string Wrong = "×"; + public GUIStyle correctStyle; + public GUIStyle wrongStyle; + + public Res() + { + this.PicoDeveloper = Resources.Load("PICODeveloper"); + correctStyle = new GUIStyle(GUI.skin.label); + correctStyle.normal.textColor = Color.green; + wrongStyle = new GUIStyle(); + wrongStyle.normal.textColor = Color.red; + wrongStyle.fontStyle = FontStyle.Bold; + } + } + + private Res _R; + + private Res R + { + get + { + if (_R != null) return _R; + _R = new Res(); + return _R; + } + } + + internal enum ConfigStatus + { + Correct, + Wrong, + Fix, + Hide, + } + + internal abstract class ConfigField + { + public bool value = true; + public abstract string[] GetText(); + public abstract ConfigStatus GetStatus(); + public abstract void Fix(); + } + + internal class ConfigIsAndroid : ConfigField + { + public override string[] GetText() + { + return strPlatformBuildText; + } + + public override ConfigStatus GetStatus() + { + return Gs.buildTargetGroup == BuildTargetGroup.Android ? ConfigStatus.Correct : ConfigStatus.Fix; + } + + public override void Fix() + { + Gs.buildTargetGroup = BuildTargetGroup.Android; + } + } + + internal class ConfigIsLandscapeLeft : ConfigField + { + public override string[] GetText() + { + return strOrientationBuildText; + } + + public override ConfigStatus GetStatus() + { + return Gs.UIOrientation == UIOrientation.LandscapeLeft ? ConfigStatus.Correct : ConfigStatus.Fix; + } + + public override void Fix() + { + Gs.UIOrientation = UIOrientation.LandscapeLeft; + } + } + + internal class ConfigMinApiLevel : ConfigField + { + public override string[] GetText() + { + return strMinApiLevel; + } + + public override ConfigStatus GetStatus() + { + return Gs.minimumApiLevel >= (AndroidSdkVersions) EditorConf.minSdkLevel ? ConfigStatus.Correct : ConfigStatus.Fix; + } + + public override void Fix() + { + Gs.minimumApiLevel = (AndroidSdkVersions) EditorConf.minSdkLevel; + } + } + + internal class ConfigUnityVersion : ConfigField + { + public override string[] GetText() + { + return strUnityVersionLimit; + } + + public override ConfigStatus GetStatus() + { + return String.Compare(Application.unityVersion, EditorConf.minEditorVersion, StringComparison.Ordinal) >= 0 ? ConfigStatus.Hide : ConfigStatus.Wrong; + } + + public override void Fix() + { + throw new NotImplementedException(); + } + } + + public static string appId + { + get { return PicoGs.appId; } + set { PicoGs.appId = value; } + } + + public static bool useHighlight + { + get { return PicoGs.useHighlight; } + set { PicoGs.useHighlight = value; } + } + + bool enableEC + { + get { return PicoGs.enableEntitlementCheck; } + set { PicoGs.enableEntitlementCheck = value; } + } + + private ConfigField[] configFields; + + private void OnEnable() + { + configFields = new ConfigField[] + { + new ConfigUnityVersion(), + new ConfigIsAndroid(), + new ConfigIsLandscapeLeft(), + new ConfigMinApiLevel(), + }; + this.titleContent = new GUIContent("PICO Platform Settings"); + language = Language.English; + if (Application.systemLanguage == SystemLanguage.Chinese || Application.systemLanguage == SystemLanguage.ChineseSimplified || Application.systemLanguage == SystemLanguage.ChineseTraditional) + { + language = Language.Chinese; + } + + serObj = new SerializedObject(PXR_PlatformSetting.Instance); + gosPty = serObj.FindProperty(nameof(PXR_PlatformSetting.deviceSN)); + } + + + Vector2 scrollPos; + + void OnGUI() + { + var frameWidth = 380; + //顶部图片 + { + GUIStyle style = new GUIStyle(); + style.stretchWidth = true; + style.fixedWidth = 400; + GUILayout.Label(R.PicoDeveloper, style); + } + + + //顶部中英文选择 + { + GUIStyle activeStyle = new GUIStyle(); + activeStyle.alignment = TextAnchor.MiddleCenter; + activeStyle.normal.textColor = new Color(0, 122f / 255f, 204f / 255f); + GUIStyle normalStyle = new GUIStyle(); + normalStyle.alignment = TextAnchor.MiddleCenter; + normalStyle.normal.textColor = new Color(0.8f, 0.8f, 0.8f); + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if (GUILayout.Button("ENGLISH", language == Language.English ? activeStyle : normalStyle, GUILayout.Width(80))) + { + language = Language.English; + } + + GUILayout.Label("|", normalStyle, GUILayout.Width(5)); + if (GUILayout.Button("中文", language == Language.Chinese ? activeStyle : normalStyle, GUILayout.Width(80))) + { + language = Language.Chinese; + } + + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + } + { + GUIStyle style = new GUIStyle(); + style.margin = new RectOffset(5, 5, 5, 5); + GUILayout.BeginVertical(style, GUILayout.Width(360)); + } + //AppID设置 + { + GUILayout.Space(15); + GUILayout.Label(strAppIdText[(int) language]); + appId = EditorGUILayout.TextField(appId, GUILayout.Width(frameWidth)); + if (string.IsNullOrWhiteSpace(appId)) + { + EditorGUILayout.HelpBox(strAppIdHelpText[(int) language], UnityEditor.MessageType.Warning); + } + + GUILayout.Space(20); + if (appId == "") + { + GUI.enabled = false; + enableEC = false; + } + else + { + GUI.enabled = true; + } + } + //Highlight设置 + { + EditorGUILayout.BeginHorizontal(); + GUILayout.Label(strHighlightText[(int) language]); + useHighlight = EditorGUILayout.Toggle(useHighlight, GUILayout.Width(frameWidth)); + EditorGUILayout.EndHorizontal(); + } + //Recommend Settings + { + GUILayout.Space(5); + GUILayout.Label(new GUIContent(strBuildSettingText[(int) language], strBuildSettingHelpText[(int) language])); + + GUIStyle style = "frameBox"; + style.fixedWidth = frameWidth; + EditorGUILayout.BeginVertical(style); + + foreach (var field in configFields) + { + var txt = field.GetText()[(int) language]; + switch (field.GetStatus()) + { + case ConfigStatus.Correct: + { + EditorGUILayout.BeginHorizontal(GUILayout.Width(frameWidth)); + EditorGUILayout.LabelField(txt); + EditorGUILayout.LabelField(R.Correct, R.correctStyle); + GUI.enabled = true; + EditorGUILayout.EndHorizontal(); + break; + } + case ConfigStatus.Wrong: + { + EditorGUILayout.BeginHorizontal(GUILayout.Width(frameWidth)); + EditorGUILayout.LabelField(txt); + EditorGUILayout.LabelField(R.Wrong, R.wrongStyle); + EditorGUILayout.EndHorizontal(); + break; + } + case ConfigStatus.Hide: + { + break; + } + case ConfigStatus.Fix: + { + EditorGUILayout.BeginHorizontal(GUILayout.Width(frameWidth)); + EditorGUILayout.LabelField(txt); + float originalValue = EditorGUIUtility.labelWidth; + EditorGUIUtility.labelWidth = 250; + field.value = EditorGUILayout.Toggle(field.value); + EditorGUIUtility.labelWidth = originalValue; + EditorGUILayout.EndHorizontal(); + break; + } + default: + { + Debug.LogWarning($"unhandled ConfigStatus {txt} {field.GetStatus()}"); + break; + } + } + } + + EditorGUILayout.EndVertical(); + } + //按钮区域 + { + var hasSomethingToFix = false; + foreach (var field in configFields) + { + if (field.GetStatus() == ConfigStatus.Fix && field.value) + { + hasSomethingToFix = true; + break; + } + } + + if (hasSomethingToFix) + { + GUILayout.Space(10); + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if (GUILayout.Button(strIgnoreButtonText[(int) language], GUILayout.Width(130))) + { + this.Close(); + } + + GUI.enabled = hasSomethingToFix; + if (GUILayout.Button(strApplyButtonText[(int) language], GUILayout.Width(130))) + { + this.ApplyRecommendConfig(); + } + + GUI.enabled = true; + + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + GUILayout.FlexibleSpace(); + } + } + + GUILayout.EndVertical(); + } + + private void ApplyRecommendConfig() + { + foreach (var field in configFields) + { + if (field.GetStatus() == ConfigStatus.Fix && field.value) + { + field.Fix(); + } + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformConfig.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformConfig.cs.meta new file mode 100644 index 0000000..2e2743c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformConfig.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a65a6e7ecd744ea481a2b1ba6c5c7046 +timeCreated: 1673080389 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformManifestRewrite.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformManifestRewrite.cs new file mode 100644 index 0000000..1e86373 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformManifestRewrite.cs @@ -0,0 +1,53 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System.IO; +using System.Xml; +using UnityEditor.Android; +using UnityEngine; + +namespace Pico.Platform.Editor +{ + public class PlatformManifestRewrite : IPostGenerateGradleAndroidProject + { + public int callbackOrder => 9999; + + public void OnPostGenerateGradleAndroidProject(string path) + { + var appId = PicoGs.appId; + if (string.IsNullOrWhiteSpace(appId)) + { + Debug.Log("appId is ignored"); + return; + } + + XmlDocument doc = new XmlDocument(); + const string androidUri = "http://schemas.android.com/apk/res/android"; + var manifestPath = Path.Combine(path, "src/main/AndroidManifest.xml"); + doc.Load(manifestPath); + var app = doc.SelectSingleNode("//application"); + if (app == null) return; + + var appIdNode = doc.CreateElement("meta-data"); + appIdNode.SetAttribute("name", androidUri, "pvr.app.id"); + appIdNode.SetAttribute("value", androidUri, appId); + app.AppendChild(appIdNode); + + var highlightNode = doc.CreateElement("meta-data"); + highlightNode.SetAttribute("name", androidUri, "use_record_highlight_feature"); + highlightNode.SetAttribute("value", androidUri, PicoGs.useHighlight.ToString()); + app.AppendChild(highlightNode); + + doc.Save(manifestPath); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformManifestRewrite.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformManifestRewrite.cs.meta new file mode 100644 index 0000000..e5237c7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformManifestRewrite.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5e6569b4f00343d996dd6610d37068ca +timeCreated: 1684327101 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformPreprocessor.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformPreprocessor.cs new file mode 100644 index 0000000..17e6a56 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformPreprocessor.cs @@ -0,0 +1,36 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using Unity.XR.PXR; +using UnityEditor.Build; +using UnityEditor.Build.Reporting; +using UnityEngine; + +namespace Pico.Platform.Editor +{ + public class PlatformPreprocessor : IPreprocessBuildWithReport + { + public int callbackOrder + { + get { return 0; } + } + + public void OnPreprocessBuild(BuildReport report) + { + string configAppID = PXR_PlatformSetting.Instance.appID.Trim(); + if (string.IsNullOrWhiteSpace(configAppID)) + { + Debug.LogWarning("appID is not configured"); + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformPreprocessor.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformPreprocessor.cs.meta new file mode 100644 index 0000000..944a735 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Editor/PlatformPreprocessor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c7e99491577614bbbb6c60ad215598f5 +timeCreated: 1674209284 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/PICO.Platform.asmdef b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/PICO.Platform.asmdef new file mode 100644 index 0000000..aa7b8e0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/PICO.Platform.asmdef @@ -0,0 +1,24 @@ +{ + "name": "PICO.Platform", + "references": [ + "Unity.XR.PICO.Editor", + "Unity.XR.PICO", + "Unity.XR.OpenXR.Features.PICOSupport" + ], + "optionalUnityReferences": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "versionDefines": [ + { + "name": "com.unity.xr.management", + "expression": "", + "define": "USING_XR_MANAGEMENT" + }, + { + "name": "com.unity.xr.pico", + "expression": "", + "define": "USING_XR_SDK_PICO" + } + ] +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/PICO.Platform.asmdef.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/PICO.Platform.asmdef.meta new file mode 100644 index 0000000..3755c83 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/PICO.Platform.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b98de7ff63394bdca25fc3bdddff73bf +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins.meta new file mode 100644 index 0000000..778fdc2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ca6f9e5135f74a4f82828799f50674b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Android64.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Android64.meta new file mode 100644 index 0000000..d68916c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Android64.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5a08de46916f4c7d945890c51c573e75 +timeCreated: 1641895563 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Android64/libpxrplatformloader.so b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Android64/libpxrplatformloader.so new file mode 100644 index 0000000..388acd3 Binary files /dev/null and b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Android64/libpxrplatformloader.so differ diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Android64/libpxrplatformloader.so.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Android64/libpxrplatformloader.so.meta new file mode 100644 index 0000000..71e6eab --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Android64/libpxrplatformloader.so.meta @@ -0,0 +1,70 @@ +fileFormatVersion: 2 +guid: 053826e297721dc4eadf7e0d49aaa1f3 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 0 + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: ARM64 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows.meta new file mode 100644 index 0000000..a4c97e8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d5a8b86f7bcafa441992c4d1df3865d1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/RTCFFmpeg.dll b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/RTCFFmpeg.dll new file mode 100644 index 0000000..52541bc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/RTCFFmpeg.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c37a74458767767e0b3ffe7be9489cb2d2b579e6b4216f5d7bbb04f863b93814 +size 7098368 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/RTCFFmpeg.dll.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/RTCFFmpeg.dll.meta new file mode 100644 index 0000000..e1188a3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/RTCFFmpeg.dll.meta @@ -0,0 +1,70 @@ +fileFormatVersion: 2 +guid: 4a36c175065164d49af8cea2a7e6d3dd +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux64: 0 + Exclude OSXUniversal: 0 + Exclude Win: 0 + Exclude Win64: 0 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Windows + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: x86_64 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/VolcEngineRTC.dll b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/VolcEngineRTC.dll new file mode 100644 index 0000000..7f6f5c0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/VolcEngineRTC.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d8e4c8bc59c9ad85ab95c296d923279c2240998331457c463459bb853cc34b0 +size 31563264 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/VolcEngineRTC.dll.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/VolcEngineRTC.dll.meta new file mode 100644 index 0000000..60f20be --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/VolcEngineRTC.dll.meta @@ -0,0 +1,70 @@ +fileFormatVersion: 2 +guid: 2e7e8b3159f494a4e9815f0203c000bc +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux64: 0 + Exclude OSXUniversal: 0 + Exclude Win: 0 + Exclude Win64: 0 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Windows + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: x86_64 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libEGL.dll b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libEGL.dll new file mode 100644 index 0000000..663b0ea --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libEGL.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27929c37efbe7028cd0a8fcb738cd2ac73e52e4c7cb6fe41ba7ee33ea61e0070 +size 24184 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libEGL.dll.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libEGL.dll.meta new file mode 100644 index 0000000..d87bbe7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libEGL.dll.meta @@ -0,0 +1,70 @@ +fileFormatVersion: 2 +guid: c0c4571a595d7a74eb1d65f357f06216 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux64: 0 + Exclude OSXUniversal: 0 + Exclude Win: 0 + Exclude Win64: 0 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Windows + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: x86_64 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libGLESv2.dll b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libGLESv2.dll new file mode 100644 index 0000000..3f1827b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libGLESv2.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e64d93e995a21b9021882cd27d5e8785bc766e43ae74aad631837151922cc8b +size 3578488 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libGLESv2.dll.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libGLESv2.dll.meta new file mode 100644 index 0000000..68fc0cd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libGLESv2.dll.meta @@ -0,0 +1,70 @@ +fileFormatVersion: 2 +guid: 32890a668409ab44c8e26bb10e4d3ef5 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux64: 0 + Exclude OSXUniversal: 0 + Exclude Win: 0 + Exclude Win64: 0 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Windows + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: x86_64 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libpxrplatformloader.dll b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libpxrplatformloader.dll new file mode 100644 index 0000000..958af27 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libpxrplatformloader.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a5dd59e221a90f4cd5b8c5944889534c6106f485e63c3435f59d9367384c6c0 +size 15429120 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libpxrplatformloader.dll.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libpxrplatformloader.dll.meta new file mode 100644 index 0000000..8fa5130 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/libpxrplatformloader.dll.meta @@ -0,0 +1,70 @@ +fileFormatVersion: 2 +guid: d5b1e924fbfc96740bd9328dc73454a7 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux64: 0 + Exclude OSXUniversal: 0 + Exclude Win: 0 + Exclude Win64: 0 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Windows + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: x86_64 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/openh264-4.dll b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/openh264-4.dll new file mode 100644 index 0000000..e1078c7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/openh264-4.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6487098bd093395ee83216c970aecc5249bd5b8fe4af49759d939ab0a9f47b3b +size 920064 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/openh264-4.dll.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/openh264-4.dll.meta new file mode 100644 index 0000000..5e84870 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Plugins/Windows/openh264-4.dll.meta @@ -0,0 +1,70 @@ +fileFormatVersion: 2 +guid: eb8c825afdd496442be59a9e436b95d7 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 0 + Exclude Linux64: 0 + Exclude OSXUniversal: 0 + Exclude Win: 0 + Exclude Win64: 0 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: Windows + - first: + Standalone: Linux64 + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 1 + settings: + CPU: x86 + - first: + Standalone: Win64 + second: + enabled: 1 + settings: + CPU: x86_64 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples.meta new file mode 100644 index 0000000..74961a9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 19ce57614e1645a3a869516378474f5a +timeCreated: 1665494893 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials.meta new file mode 100644 index 0000000..881a853 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 28bbe9e36b38b43d8a0a007f60c3feb4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/Sky.mat b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/Sky.mat new file mode 100644 index 0000000..7268081 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/Sky.mat @@ -0,0 +1,55 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sky + m_Shader: {fileID: 104, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BackTex: + m_Texture: {fileID: 2800000, guid: d485f7a8b4cddcc469daf84f71b5a7f8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DownTex: + m_Texture: {fileID: 2800000, guid: d485f7a8b4cddcc469daf84f71b5a7f8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FrontTex: + m_Texture: {fileID: 2800000, guid: d485f7a8b4cddcc469daf84f71b5a7f8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LeftTex: + m_Texture: {fileID: 2800000, guid: d485f7a8b4cddcc469daf84f71b5a7f8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: dd7b66dc618b0124fa442f6e6658768d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RightTex: + m_Texture: {fileID: 2800000, guid: d485f7a8b4cddcc469daf84f71b5a7f8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _UpTex: + m_Texture: {fileID: 2800000, guid: d485f7a8b4cddcc469daf84f71b5a7f8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _Exposure: 1 + - _Rotation: 0 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/Sky.mat.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/Sky.mat.meta new file mode 100644 index 0000000..8242a6f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/Sky.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f5ef92f0b9b738d429be8f6537730b22 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/skybox.tif b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/skybox.tif new file mode 100644 index 0000000..68773e3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/skybox.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c96adff5db919c52ab7fbac8a0f6cc55c5a0630487d840dc08f32ac57fad8de6 +size 1096922 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/skybox.tif.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/skybox.tif.meta new file mode 100644 index 0000000..5d1c547 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/Materials/skybox.tif.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: d485f7a8b4cddcc469daf84f71b5a7f8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + 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: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.cs new file mode 100644 index 0000000..6f67e8b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections; +using Pico.Platform.Models; +using UnityEngine; +using UnityEngine.Networking; +using UnityEngine.UI; + +namespace Pico.Platform.Samples +{ + public class SimpleDemo : MonoBehaviour + { + public bool useAsyncInit = true; + + public RawImage headImage; + public Text nameText; + public Text logText; + + // Start is called before the first frame update + void Start() + { + Log($"UseAsyncInit={useAsyncInit}"); + if (useAsyncInit) + { + try + { + CoreService.AsyncInitialize().OnComplete(m => + { + if (m.IsError) + { + Log($"Async initialize failed: code={m.GetError().Code} message={m.GetError().Message}"); + return; + } + + if (m.Data != PlatformInitializeResult.Success && m.Data != PlatformInitializeResult.AlreadyInitialized) + { + Log($"Async initialize failed: result={m.Data}"); + return; + } + + Log("AsyncInitialize Successfully"); + EnterDemo(); + }); + } + catch (Exception e) + { + Log($"Async Initialize Failed:{e}"); + return; + } + } + else + { + try + { + CoreService.Initialize(); + } + catch (UnityException e) + { + Log($"Init Platform SDK error:{e}"); + throw; + } + + EnterDemo(); + } + } + + void EnterDemo() + { + UserService.RequestUserPermissions(new[] {Permissions.UserInfo, Permissions.FriendRelation}).OnComplete(m => + { + if (m.IsError) + { + Log($"Permission failed code={m.Error.Code} message={m.Error.Message}"); + return; + } + + Log($"RequestUserPermissions successfully:{String.Join(",", m.Data.AuthorizedPermissions)}"); + getUser(); + }); + } + + void getUser() + { + UserService.GetLoggedInUser().OnComplete(m => + { + if (m.IsError) + { + Debug.Log($"GetLoggedInUser failed:code={m.Error.Code} message={m.Error.Message}"); + return; + } + + StartCoroutine(DownloadImage(m.Data.ImageUrl, headImage)); + nameText.text = m.Data.DisplayName; + Log($"DisplayName={m.Data.DisplayName} UserId={m.Data.ID}"); + }); + } + + IEnumerator DownloadImage(string mediaUrl, RawImage rawImage) + { + UnityWebRequest request = UnityWebRequestTexture.GetTexture(mediaUrl); + yield return request.SendWebRequest(); + if (request.responseCode != 200) + { + Log("Load image failed"); + } + else + { + rawImage.texture = ((DownloadHandlerTexture) request.downloadHandler).texture; + rawImage.GetComponent().material.mainTexture = ((DownloadHandlerTexture) request.downloadHandler).texture; + } + } + + void Log(string s) + { + logText.text = s; + Debug.Log(s); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.cs.meta new file mode 100644 index 0000000..e9233c2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b732fc4d5a124b7a9926a3b408165c0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.unity b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.unity new file mode 100644 index 0000000..98d3464 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.unity @@ -0,0 +1,1902 @@ +%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: 9 + 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: 2100000, guid: f5ef92f0b9b738d429be8f6537730b22, type: 2} + 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_IndirectSpecularColor: {r: 0.13241577, g: 0.13441247, b: 0.26180914, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + 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 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &148013866 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 148013867} + - component: {fileID: 148013871} + - component: {fileID: 148013870} + - component: {fileID: 148013869} + - component: {fileID: 148013868} + m_Layer: 0 + m_Name: FPS + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &148013867 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 148013866} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.4} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_Children: [] + m_Father: {fileID: 472520542} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.05, y: 0.1} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &148013868 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 148013866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c0686a02cb705eb4eb372aac02223c3c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!223 &148013869 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 148013866} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &148013870 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 148013866} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 18 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: fps +--- !u!222 &148013871 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 148013866} + m_CullTransparentMesh: 0 +--- !u!1 &383031850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 383031851} + - component: {fileID: 383031853} + - component: {fileID: 383031852} + m_Layer: 0 + m_Name: RawImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &383031851 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 383031850} + 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_Children: [] + m_Father: {fileID: 1924922718} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -5, y: 176} + m_SizeDelta: {x: 200, y: 200} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &383031852 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 383031850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Texture: {fileID: 0} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &383031853 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 383031850} + m_CullTransparentMesh: 0 +--- !u!1 &397162576 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 397162577} + - component: {fileID: 397162579} + - component: {fileID: 397162578} + m_Layer: 0 + m_Name: LogText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &397162577 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 397162576} + 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_Children: [] + m_Father: {fileID: 1924922718} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 4.4957285, y: -153.92911} + m_SizeDelta: {x: 896.3071, y: 258.66895} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &397162578 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 397162576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 23 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &397162579 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 397162576} + m_CullTransparentMesh: 0 +--- !u!1 &472520539 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 472520542} + - component: {fileID: 472520541} + - component: {fileID: 472520540} + - component: {fileID: 472520543} + 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 &472520540 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472520539} + m_Enabled: 1 +--- !u!20 &472520541 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472520539} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + 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 &472520542 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472520539} + 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_Children: + - {fileID: 148013867} + m_Father: {fileID: 838079974} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &472520543 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472520539} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a2a9c34df4095f47b9ca8f975175f5b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Device: 0 + m_PoseSource: 2 + m_PoseProviderComponent: {fileID: 0} + m_TrackingType: 0 + m_UpdateType: 0 + m_UseRelativeTransform: 0 +--- !u!1 &503551738 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 503551739} + - component: {fileID: 503551743} + - component: {fileID: 503551742} + - component: {fileID: 503551741} + - component: {fileID: 503551740} + m_Layer: 0 + m_Name: RightHand Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &503551739 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 503551738} + 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_Children: [] + m_Father: {fileID: 838079974} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &503551740 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 503551738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_BlockedColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_TreatSelectionAsValidState: 0 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_BlockedReticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 + m_StopLineAtSelection: 0 + m_SnapEndpointIfAvailable: 1 +--- !u!120 &503551741 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 503551738} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_Positions: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 1, a: 1} + key1: {r: 0, g: 0, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &503551742 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 503551738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 627001450} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_AllowHoveredActivate: 0 + m_TargetPriorityMode: 0 + m_PlayAudioClipOnSelectEntered: 0 + m_AudioClipForOnSelectEntered: {fileID: 0} + m_PlayAudioClipOnSelectExited: 0 + m_AudioClipForOnSelectExited: {fileID: 0} + m_PlayAudioClipOnSelectCanceled: 0 + m_AudioClipForOnSelectCanceled: {fileID: 0} + m_PlayAudioClipOnHoverEntered: 0 + m_AudioClipForOnHoverEntered: {fileID: 0} + m_PlayAudioClipOnHoverExited: 0 + m_AudioClipForOnHoverExited: {fileID: 0} + m_PlayAudioClipOnHoverCanceled: 0 + m_AudioClipForOnHoverCanceled: {fileID: 0} + m_AllowHoverAudioWhileSelecting: 1 + m_PlayHapticsOnSelectEntered: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExited: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnSelectCanceled: 0 + m_HapticSelectCancelIntensity: 0 + m_HapticSelectCancelDuration: 0 + m_PlayHapticsOnHoverEntered: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExited: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_PlayHapticsOnHoverCanceled: 0 + m_HapticHoverCancelIntensity: 0 + m_HapticHoverCancelDuration: 0 + m_AllowHoverHapticsWhileSelecting: 1 + m_LineType: 0 + m_BlendVisualLinePoints: 1 + m_MaxRaycastDistance: 30 + m_RayOriginTransform: {fileID: 0} + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalGroundHeight: 0.1 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_RaycastSnapVolumeInteraction: 1 + m_HitClosestOnly: 0 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_AutoDeselect: 0 + m_TimeToAutoDeselect: 3 + m_EnableUIInteraction: 1 + m_AllowAnchorControl: 1 + m_UseForceGrab: 1 + m_RotateSpeed: 180 + m_TranslateSpeed: 1 + m_AnchorRotateReferenceFrame: {fileID: 0} + m_AnchorRotationMode: 0 +--- !u!114 &503551743 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 503551738} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ae26e19cd956134bbdf3c6f65bf393a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputTracking: 1 + m_EnableInputActions: 1 + m_ModelPrefab: {fileID: 0} + m_ModelParent: {fileID: 0} + m_Model: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: + m_ControllerNode: 5 + m_SelectUsage: 3 + m_ActivateUsage: 2 + m_UIPressUsage: 2 + m_AxisToPressThreshold: 0.1 + m_RotateAnchorLeft: 16 + m_RotateAnchorRight: 17 + m_MoveObjectIn: 14 + m_MoveObjectOut: 15 + m_DirectionalAnchorRotation: 1 + m_PoseProvider: {fileID: 0} +--- !u!1 &627001449 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 627001451} + - component: {fileID: 627001450} + m_Layer: 0 + m_Name: XR Interaction Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &627001450 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627001449} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83e4e6cca11330d4088d729ab4fc9d9f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] +--- !u!4 &627001451 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 627001449} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &766525449 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 766525450} + - component: {fileID: 766525452} + m_Layer: 0 + m_Name: XR Rig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &766525450 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 766525449} + 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_Children: + - {fileID: 838079974} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &766525452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 766525449} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7448815bd5148434682b3d931066cd10, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Camera: {fileID: 0} + m_OriginBaseGameObject: {fileID: 766525449} + m_CameraFloorOffsetObject: {fileID: 838079973} + m_RequestedTrackingOriginMode: 0 + m_CameraYOffset: 1.36144 + m_CameraGameObject: {fileID: 472520539} +--- !u!1 &822056247 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 822056249} + - component: {fileID: 822056248} + 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 &822056248 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 822056247} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + 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_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &822056249 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 822056247} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &838079973 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 838079974} + 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 &838079974 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 838079973} + 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_Children: + - {fileID: 472520542} + - {fileID: 1486376872} + - {fileID: 503551739} + m_Father: {fileID: 766525450} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1486376871 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1486376872} + - component: {fileID: 1486376876} + - component: {fileID: 1486376875} + - component: {fileID: 1486376874} + - component: {fileID: 1486376873} + m_Layer: 0 + m_Name: LeftHand Controller + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1486376872 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486376871} + 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_Children: [] + m_Father: {fileID: 838079974} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1486376873 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486376871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e988983f96fe1dd48800bcdfc82f23e9, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LineWidth: 0.02 + m_OverrideInteractorLineLength: 1 + m_LineLength: 10 + m_WidthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ValidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_InvalidColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0, b: 0, a: 1} + key1: {r: 1, g: 0, b: 0, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_BlockedColorGradient: + serializedVersion: 2 + key0: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key1: {r: 1, g: 0.92156863, b: 0.015686275, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + m_TreatSelectionAsValidState: 0 + m_SmoothMovement: 0 + m_FollowTightness: 10 + m_SnapThresholdDistance: 10 + m_Reticle: {fileID: 0} + m_BlockedReticle: {fileID: 0} + m_StopLineAtFirstRaycastHit: 1 + m_StopLineAtSelection: 0 + m_SnapEndpointIfAvailable: 1 +--- !u!120 &1486376874 +LineRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486376871} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10306, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 + m_Positions: [] + m_Parameters: + serializedVersion: 3 + widthMultiplier: 0.02 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 0, g: 0, b: 1, a: 1} + key1: {r: 0, g: 0, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 4 + numCapVertices: 4 + alignment: 0 + textureMode: 0 + shadowBias: 0.5 + generateLightingData: 0 + m_UseWorldSpace: 1 + m_Loop: 0 +--- !u!114 &1486376875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486376871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6803edce0201f574f923fd9d10e5b30a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 627001450} + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 4294967295 + m_AttachTransform: {fileID: 0} + m_KeepSelectedTargetValid: 1 + m_DisableVisualsWhenBlockedInGroup: 1 + m_StartingSelectedInteractable: {fileID: 0} + m_StartingTargetFilter: {fileID: 0} + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectActionTrigger: 1 + m_HideControllerOnSelect: 0 + m_AllowHoveredActivate: 0 + m_TargetPriorityMode: 0 + m_PlayAudioClipOnSelectEntered: 0 + m_AudioClipForOnSelectEntered: {fileID: 0} + m_PlayAudioClipOnSelectExited: 0 + m_AudioClipForOnSelectExited: {fileID: 0} + m_PlayAudioClipOnSelectCanceled: 0 + m_AudioClipForOnSelectCanceled: {fileID: 0} + m_PlayAudioClipOnHoverEntered: 0 + m_AudioClipForOnHoverEntered: {fileID: 0} + m_PlayAudioClipOnHoverExited: 0 + m_AudioClipForOnHoverExited: {fileID: 0} + m_PlayAudioClipOnHoverCanceled: 0 + m_AudioClipForOnHoverCanceled: {fileID: 0} + m_AllowHoverAudioWhileSelecting: 1 + m_PlayHapticsOnSelectEntered: 0 + m_HapticSelectEnterIntensity: 0 + m_HapticSelectEnterDuration: 0 + m_PlayHapticsOnSelectExited: 0 + m_HapticSelectExitIntensity: 0 + m_HapticSelectExitDuration: 0 + m_PlayHapticsOnSelectCanceled: 0 + m_HapticSelectCancelIntensity: 0 + m_HapticSelectCancelDuration: 0 + m_PlayHapticsOnHoverEntered: 0 + m_HapticHoverEnterIntensity: 0 + m_HapticHoverEnterDuration: 0 + m_PlayHapticsOnHoverExited: 0 + m_HapticHoverExitIntensity: 0 + m_HapticHoverExitDuration: 0 + m_PlayHapticsOnHoverCanceled: 0 + m_HapticHoverCancelIntensity: 0 + m_HapticHoverCancelDuration: 0 + m_AllowHoverHapticsWhileSelecting: 1 + m_LineType: 0 + m_BlendVisualLinePoints: 1 + m_MaxRaycastDistance: 30 + m_RayOriginTransform: {fileID: 0} + m_ReferenceFrame: {fileID: 0} + m_Velocity: 16 + m_Acceleration: 9.8 + m_AdditionalGroundHeight: 0.1 + m_AdditionalFlightTime: 0.5 + m_EndPointDistance: 30 + m_EndPointHeight: -10 + m_ControlPointDistance: 10 + m_ControlPointHeight: 5 + m_SampleFrequency: 20 + m_HitDetectionType: 0 + m_SphereCastRadius: 0 + m_RaycastMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RaycastTriggerInteraction: 1 + m_RaycastSnapVolumeInteraction: 1 + m_HitClosestOnly: 0 + m_HoverToSelect: 0 + m_HoverTimeToSelect: 0.5 + m_AutoDeselect: 0 + m_TimeToAutoDeselect: 3 + m_EnableUIInteraction: 1 + m_AllowAnchorControl: 1 + m_UseForceGrab: 1 + m_RotateSpeed: 180 + m_TranslateSpeed: 1 + m_AnchorRotateReferenceFrame: {fileID: 0} + m_AnchorRotationMode: 0 +--- !u!114 &1486376876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1486376871} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ae26e19cd956134bbdf3c6f65bf393a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UpdateTrackingType: 0 + m_EnableInputTracking: 1 + m_EnableInputActions: 1 + m_ModelPrefab: {fileID: 0} + m_ModelParent: {fileID: 0} + m_Model: {fileID: 0} + m_AnimateModel: 0 + m_ModelSelectTransition: + m_ModelDeSelectTransition: + m_ControllerNode: 4 + m_SelectUsage: 3 + m_ActivateUsage: 2 + m_UIPressUsage: 2 + m_AxisToPressThreshold: 0.1 + m_RotateAnchorLeft: 16 + m_RotateAnchorRight: 17 + m_MoveObjectIn: 14 + m_MoveObjectOut: 15 + m_DirectionalAnchorRotation: 1 + m_PoseProvider: {fileID: 0} +--- !u!1 &1849327822 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1849327826} + - component: {fileID: 1849327825} + - component: {fileID: 1849327824} + - component: {fileID: 1849327823} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1849327823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1849327822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ClickSpeed: 0.3 + m_MoveDeadzone: 0.6 + m_RepeatDelay: 0.5 + m_RepeatRate: 0.1 + m_TrackedDeviceDragThresholdMultiplier: 2 + m_ActiveInputMode: 0 + m_MaxTrackedDeviceRaycastDistance: 1000 + m_EnableXRInput: 1 + m_EnableMouseInput: 1 + m_EnableTouchInput: 1 + m_PointAction: {fileID: 0} + m_LeftClickAction: {fileID: 0} + m_MiddleClickAction: {fileID: 0} + m_RightClickAction: {fileID: 0} + m_ScrollWheelAction: {fileID: 0} + m_NavigateAction: {fileID: 0} + m_SubmitAction: {fileID: 0} + m_CancelAction: {fileID: 0} + m_EnableBuiltinActionsAsFallback: 1 + m_EnableGamepadInput: 1 + m_EnableJoystickInput: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel +--- !u!114 &1849327824 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1849327822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ab68ce6587aab0146b8dabefbd806791, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ClickSpeed: 0.3 + m_MoveDeadzone: 0.6 + m_RepeatDelay: 0.5 + m_RepeatRate: 0.1 + m_TrackedDeviceDragThresholdMultiplier: 2 + m_ActiveInputMode: 0 + m_MaxTrackedDeviceRaycastDistance: 1000 + m_EnableXRInput: 1 + m_EnableMouseInput: 1 + m_EnableTouchInput: 1 + m_PointAction: {fileID: 0} + m_LeftClickAction: {fileID: 0} + m_MiddleClickAction: {fileID: 0} + m_RightClickAction: {fileID: 0} + m_ScrollWheelAction: {fileID: 0} + m_NavigateAction: {fileID: 0} + m_SubmitAction: {fileID: 0} + m_CancelAction: {fileID: 0} + m_EnableBuiltinActionsAsFallback: 1 + m_EnableGamepadInput: 1 + m_EnableJoystickInput: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel +--- !u!114 &1849327825 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1849327822} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1849327826 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1849327822} + 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_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1924922713 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1924922718} + - component: {fileID: 1924922717} + - component: {fileID: 1924922716} + - component: {fileID: 1924922715} + - component: {fileID: 1924922714} + - component: {fileID: 1924922719} + m_Layer: 0 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1924922714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924922713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7951c64acb0fa62458bf30a60089fe2d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 0 + m_CheckFor2DOcclusion: 0 + m_CheckFor3DOcclusion: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 2147483647 + m_RaycastTriggerInteraction: 1 +--- !u!114 &1924922715 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924922713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1924922716 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924922713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1924922717 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924922713} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 472520541} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1924922718 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924922713} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 15} + m_LocalScale: {x: 0.03, y: 0.03, z: 1} + m_Children: + - {fileID: 397162577} + - {fileID: 383031851} + - {fileID: 1993752515} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1000, y: 600} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1924922719 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1924922713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b732fc4d5a124b7a9926a3b408165c0, type: 3} + m_Name: + m_EditorClassIdentifier: + useAsyncInit: 1 + headImage: {fileID: 383031852} + nameText: {fileID: 1993752516} + logText: {fileID: 397162578} +--- !u!1 &1993752514 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1993752515} + - component: {fileID: 1993752517} + - component: {fileID: 1993752516} + m_Layer: 0 + m_Name: NameText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1993752515 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1993752514} + 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_Children: [] + m_Father: {fileID: 1924922718} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.00014496, y: 34} + m_SizeDelta: {x: 299.9997, y: 78.33786} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1993752516 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1993752514} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.8584906, g: 0.03644534, b: 0.03644534, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 24 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: New Text +--- !u!222 &1993752517 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1993752514} + m_CullTransparentMesh: 0 diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.unity.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.unity.meta new file mode 100644 index 0000000..12b5ea9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Samples/SimpleDemo.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bb50d682529fe4733a4f047bbf45f8a0 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts.meta new file mode 100644 index 0000000..97a3d1d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2388eea5be72a444795537c4eaedef68 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB.meta new file mode 100644 index 0000000..56f594b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: afc99c2a85af4b79b8d17dadaf00b40e +timeCreated: 1660284708 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB.cs new file mode 100644 index 0000000..df80c5c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB.cs @@ -0,0 +1,9402 @@ +// ---------------------------------------------------------------------------- +// +// This is autogenerated code by CppSharp. +// Do not edit this file or all your changes will be lost after re-generation. +// +// ---------------------------------------------------------------------------- +using System; +using System.Runtime.InteropServices; +using System.Security; +using __CallingConvention = global::System.Runtime.InteropServices.CallingConvention; +using __IntPtr = global::System.IntPtr; + +namespace Pico.Platform +{ + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_PopMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PopMessage(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_FreeMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_FreeMessage(__IntPtr obj); + } + + public static __IntPtr ppf_PopMessage() + { + var __ret = __Internal.ppf_PopMessage(); + return __ret; + } + + public static void ppf_FreeMessage(__IntPtr obj) + { + __Internal.ppf_FreeMessage(obj); + } + } + + /// The type of an achievement. + public enum AchievementType + { + /// Unknown. + Unknown = 0, + /// Simple achievement. + Simple = 1, + /// Count achievement. + Count = 2, + /// Bitfield achievement. + Bitfield = 3 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfAchievementType_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfAchievementType_ToString(global::Pico.Platform.AchievementType value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfAchievementType_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.AchievementType ppfAchievementType_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfAchievementType_ToString(global::Pico.Platform.AchievementType value) + { + var __ret = __Internal.ppfAchievementType_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.AchievementType ppfAchievementType_FromString(string str) + { + var __ret = __Internal.ppfAchievementType_FromString(str); + return __ret; + } + } + + /// The write policy for the achievement. + public enum AchievementWritePolicy + { + /// Unknown. + Unknown = 0, + /// Both the client app and server are allowed to update achievement progress. + Client = 1, + /// Only the server is allowed to update achievement progress. + Server = 2 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfAchievementWritePolicy_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfAchievementWritePolicy_ToString(global::Pico.Platform.AchievementWritePolicy value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfAchievementWritePolicy_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.AchievementWritePolicy ppfAchievementWritePolicy_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfAchievementWritePolicy_ToString(global::Pico.Platform.AchievementWritePolicy value) + { + var __ret = __Internal.ppfAchievementWritePolicy_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.AchievementWritePolicy ppfAchievementWritePolicy_FromString(string str) + { + var __ret = __Internal.ppfAchievementWritePolicy_FromString(str); + return __ret; + } + } + + /// The type of a key-value pair. + public enum KVPairType + { + /// String. + String = 0, + /// Integer. + Int = 1, + /// Both string and integer. + Double = 2, + /// Unknown. + Unknown = 3 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfKeyValuePairType_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfKeyValuePairType_ToString(global::Pico.Platform.KVPairType value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfKeyValuePairType_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.KVPairType ppfKeyValuePairType_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfKeyValuePairType_ToString(global::Pico.Platform.KVPairType value) + { + var __ret = __Internal.ppfKeyValuePairType_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.KVPairType ppfKeyValuePairType_FromString(string str) + { + var __ret = __Internal.ppfKeyValuePairType_FromString(str); + return __ret; + } + } + + /// The importance level of the expression for calculating the matching degree among users, which is configured on the PICO Developer Platform. + public enum MatchmakingCriterionImportance + { + /// Required. + Required = 0, + /// High. + High = 1, + /// Medium. + Medium = 2, + /// Low. + Low = 3, + /// Unknown. + Unknown = 4 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfMatchmakingCriterionImportance_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfMatchmakingCriterionImportance_ToString(global::Pico.Platform.MatchmakingCriterionImportance value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfMatchmakingCriterionImportance_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.MatchmakingCriterionImportance ppfMatchmakingCriterionImportance_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfMatchmakingCriterionImportance_ToString(global::Pico.Platform.MatchmakingCriterionImportance value) + { + var __ret = __Internal.ppfMatchmakingCriterionImportance_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.MatchmakingCriterionImportance ppfMatchmakingCriterionImportance_FromString(string str) + { + var __ret = __Internal.ppfMatchmakingCriterionImportance_FromString(str); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AchievementDefinition_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementDefinition_GetName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetBitfieldLength", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_AchievementDefinition_GetBitfieldLength(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetTarget", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_AchievementDefinition_GetTarget(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.AchievementType ppf_AchievementDefinition_GetType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetWritePolicy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.AchievementWritePolicy ppf_AchievementDefinition_GetWritePolicy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_IsArchived", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_AchievementDefinition_IsArchived(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_IsSecret", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_AchievementDefinition_IsSecret(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetTitle", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementDefinition_GetTitle(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetDescription", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementDefinition_GetDescription(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetUnlockedDescription", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementDefinition_GetUnlockedDescription(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetLockedImageURL", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementDefinition_GetLockedImageURL(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinition_GetUnlockedImageURL", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementDefinition_GetUnlockedImageURL(__IntPtr obj); + } + + public static ulong ppf_AchievementDefinition_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetID(obj); + return __ret; + } + + public static string ppf_AchievementDefinition_GetName(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static uint ppf_AchievementDefinition_GetBitfieldLength(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetBitfieldLength(obj); + return __ret; + } + + public static long ppf_AchievementDefinition_GetTarget(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetTarget(obj); + return __ret; + } + + public static global::Pico.Platform.AchievementType ppf_AchievementDefinition_GetType(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetType(obj); + return __ret; + } + + public static global::Pico.Platform.AchievementWritePolicy ppf_AchievementDefinition_GetWritePolicy(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetWritePolicy(obj); + return __ret; + } + + public static bool ppf_AchievementDefinition_IsArchived(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_IsArchived(obj); + return __ret; + } + + public static bool ppf_AchievementDefinition_IsSecret(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_IsSecret(obj); + return __ret; + } + + public static string ppf_AchievementDefinition_GetTitle(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetTitle(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AchievementDefinition_GetDescription(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetDescription(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AchievementDefinition_GetUnlockedDescription(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetUnlockedDescription(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AchievementDefinition_GetLockedImageURL(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetLockedImageURL(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AchievementDefinition_GetUnlockedImageURL(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinition_GetUnlockedImageURL(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinitionArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementDefinitionArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinitionArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementDefinitionArray_GetNextUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinitionArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_AchievementDefinitionArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinitionArray_GetTotalSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_AchievementDefinitionArray_GetTotalSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementDefinitionArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_AchievementDefinitionArray_HasNextPage(__IntPtr obj); + } + + public static __IntPtr ppf_AchievementDefinitionArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_AchievementDefinitionArray_GetElement(obj, index); + return __ret; + } + + public static string ppf_AchievementDefinitionArray_GetNextUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinitionArray_GetNextUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_AchievementDefinitionArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinitionArray_GetSize(obj); + return __ret; + } + + public static UIntPtr ppf_AchievementDefinitionArray_GetTotalSize(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinitionArray_GetTotalSize(obj); + return __ret; + } + + public static bool ppf_AchievementDefinitionArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementDefinitionArray_HasNextPage(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AchievementProgress_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetBitfield", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementProgress_GetBitfield(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_AchievementProgress_GetCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetIsUnlocked", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_AchievementProgress_GetIsUnlocked(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementProgress_GetName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetUnlockTime", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AchievementProgress_GetUnlockTime(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetExtraData", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementProgress_GetExtraData(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgress_GetExtraDataLength", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_AchievementProgress_GetExtraDataLength(__IntPtr obj); + } + + public static ulong ppf_AchievementProgress_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgress_GetID(obj); + return __ret; + } + + public static string ppf_AchievementProgress_GetBitfield(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgress_GetBitfield(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static long ppf_AchievementProgress_GetCount(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgress_GetCount(obj); + return __ret; + } + + public static bool ppf_AchievementProgress_GetIsUnlocked(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgress_GetIsUnlocked(obj); + return __ret; + } + + public static string ppf_AchievementProgress_GetName(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgress_GetName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static ulong ppf_AchievementProgress_GetUnlockTime(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgress_GetUnlockTime(obj); + return __ret; + } + + public static __IntPtr ppf_AchievementProgress_GetExtraData(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgress_GetExtraData(obj); + return __ret; + } + + public static uint ppf_AchievementProgress_GetExtraDataLength(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgress_GetExtraDataLength(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgressArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementProgressArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgressArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementProgressArray_GetNextUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgressArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_AchievementProgressArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgressArray_GetTotalSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_AchievementProgressArray_GetTotalSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementProgressArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_AchievementProgressArray_HasNextPage(__IntPtr obj); + } + + public static __IntPtr ppf_AchievementProgressArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_AchievementProgressArray_GetElement(obj, index); + return __ret; + } + + public static string ppf_AchievementProgressArray_GetNextUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgressArray_GetNextUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_AchievementProgressArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgressArray_GetSize(obj); + return __ret; + } + + public static UIntPtr ppf_AchievementProgressArray_GetTotalSize(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgressArray_GetTotalSize(obj); + return __ret; + } + + public static bool ppf_AchievementProgressArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementProgressArray_HasNextPage(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementUpdate_GetJustUnlocked", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_AchievementUpdate_GetJustUnlocked(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AchievementUpdate_GetName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AchievementUpdate_GetName(__IntPtr obj); + } + + public static bool ppf_AchievementUpdate_GetJustUnlocked(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementUpdate_GetJustUnlocked(obj); + return __ret; + } + + public static string ppf_AchievementUpdate_GetName(__IntPtr obj) + { + var __ret = __Internal.ppf_AchievementUpdate_GetName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByMessageOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationByMessageOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByMessageOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationByMessageOptions_Destroy(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByMessageOptions_SetMessageData", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationByMessageOptions_SetMessageData(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + } + + public static __IntPtr ppf_ApplicationByMessageOptions_Create() + { + var __ret = __Internal.ppf_ApplicationByMessageOptions_Create(); + return __ret; + } + + public static void ppf_ApplicationByMessageOptions_Destroy(__IntPtr handle) + { + __Internal.ppf_ApplicationByMessageOptions_Destroy(handle); + } + + public static void ppf_ApplicationByMessageOptions_SetMessageData(__IntPtr handle, string value) + { + __Internal.ppf_ApplicationByMessageOptions_SetMessageData(handle, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationByPresenceOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationByPresenceOptions_Destroy(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationByPresenceOptions_SetDeeplinkMessage(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetDestinationApiName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationByPresenceOptions_SetDestinationApiName(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetLobbySessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationByPresenceOptions_SetLobbySessionId(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetMatchSessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationByPresenceOptions_SetMatchSessionId(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetTrackingId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationByPresenceOptions_SetTrackingId(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationByPresenceOptions_SetExtra", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationByPresenceOptions_SetExtra(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + } + + public static __IntPtr ppf_ApplicationByPresenceOptions_Create() + { + var __ret = __Internal.ppf_ApplicationByPresenceOptions_Create(); + return __ret; + } + + public static void ppf_ApplicationByPresenceOptions_Destroy(__IntPtr handle) + { + __Internal.ppf_ApplicationByPresenceOptions_Destroy(handle); + } + + public static void ppf_ApplicationByPresenceOptions_SetDeeplinkMessage(__IntPtr handle, string value) + { + __Internal.ppf_ApplicationByPresenceOptions_SetDeeplinkMessage(handle, value); + } + + public static void ppf_ApplicationByPresenceOptions_SetDestinationApiName(__IntPtr handle, string value) + { + __Internal.ppf_ApplicationByPresenceOptions_SetDestinationApiName(handle, value); + } + + public static void ppf_ApplicationByPresenceOptions_SetLobbySessionId(__IntPtr handle, string value) + { + __Internal.ppf_ApplicationByPresenceOptions_SetLobbySessionId(handle, value); + } + + public static void ppf_ApplicationByPresenceOptions_SetMatchSessionId(__IntPtr handle, string value) + { + __Internal.ppf_ApplicationByPresenceOptions_SetMatchSessionId(handle, value); + } + + public static void ppf_ApplicationByPresenceOptions_SetTrackingId(__IntPtr handle, string value) + { + __Internal.ppf_ApplicationByPresenceOptions_SetTrackingId(handle, value); + } + + public static void ppf_ApplicationByPresenceOptions_SetExtra(__IntPtr handle, string value) + { + __Internal.ppf_ApplicationByPresenceOptions_SetExtra(handle, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Destination_GetApiName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Destination_GetApiName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Destination_GetDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Destination_GetDeeplinkMessage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Destination_GetDisplayName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Destination_GetDisplayName(__IntPtr obj); + } + + public static string ppf_Destination_GetApiName(__IntPtr obj) + { + var __ret = __Internal.ppf_Destination_GetApiName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Destination_GetDeeplinkMessage(__IntPtr obj) + { + var __ret = __Internal.ppf_Destination_GetDeeplinkMessage(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Destination_GetDisplayName(__IntPtr obj) + { + var __ret = __Internal.ppf_Destination_GetDisplayName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetDisplayName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetDisplayName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetImageUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetImageUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetInviteToken", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetInviteToken(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetSmallImageUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetSmallImageUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.UserPresenceStatus ppf_User_GetPresenceStatus(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetGender", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.Gender ppf_User_GetGender(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresence", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetPresence(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetPresenceDeeplinkMessage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceDestinationApiName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetPresenceDestinationApiName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceLobbySessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetPresenceLobbySessionId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceMatchSessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetPresenceMatchSessionId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresencePackage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetPresencePackage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceExtra", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetPresenceExtra(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetPresenceIsJoinable", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_User_GetPresenceIsJoinable(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetStoreRegion", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_User_GetStoreRegion(__IntPtr obj); + } + + public static string ppf_User_GetDisplayName(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetDisplayName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_User_GetImageUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetImageUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_User_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetID(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_User_GetInviteToken(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetInviteToken(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_User_GetSmallImageUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetSmallImageUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.UserPresenceStatus ppf_User_GetPresenceStatus(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetPresenceStatus(obj); + return __ret; + } + + public static global::Pico.Platform.Gender ppf_User_GetGender(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetGender(obj); + return __ret; + } + + public static string ppf_User_GetPresence(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetPresence(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_User_GetPresenceDeeplinkMessage(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetPresenceDeeplinkMessage(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_User_GetPresenceDestinationApiName(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetPresenceDestinationApiName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_User_GetPresenceLobbySessionId(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetPresenceLobbySessionId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_User_GetPresenceMatchSessionId(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetPresenceMatchSessionId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_User_GetPresencePackage(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetPresencePackage(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_User_GetPresenceExtra(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetPresenceExtra(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static bool ppf_User_GetPresenceIsJoinable(__IntPtr obj) + { +#if !UNITY_EDITOR + var __ret = __Internal.ppf_User_GetPresenceIsJoinable(obj); + return __ret; +#endif + return true; + } + + public static string ppf_User_GetStoreRegion(__IntPtr obj) + { + var __ret = __Internal.ppf_User_GetStoreRegion(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetDestination", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationInvite_GetDestination(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetRecipient", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationInvite_GetRecipient(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_ApplicationInvite_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetIsActive", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_ApplicationInvite_GetIsActive(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetLobbySessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationInvite_GetLobbySessionId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInvite_GetMatchSessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationInvite_GetMatchSessionId(__IntPtr obj); + } + + public static __IntPtr ppf_ApplicationInvite_GetDestination(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationInvite_GetDestination(obj); + return __ret; + } + + public static __IntPtr ppf_ApplicationInvite_GetRecipient(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationInvite_GetRecipient(obj); + return __ret; + } + + public static ulong ppf_ApplicationInvite_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationInvite_GetID(obj); + return __ret; + } + + public static bool ppf_ApplicationInvite_GetIsActive(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationInvite_GetIsActive(obj); + return __ret; + } + + public static string ppf_ApplicationInvite_GetLobbySessionId(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationInvite_GetLobbySessionId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_ApplicationInvite_GetMatchSessionId(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationInvite_GetMatchSessionId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInviteArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationInviteArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInviteArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationInviteArray_GetNextPageParam(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInviteArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_ApplicationInviteArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationInviteArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_ApplicationInviteArray_HasNextPage(__IntPtr obj); + } + + public static __IntPtr ppf_ApplicationInviteArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_ApplicationInviteArray_GetElement(obj, index); + return __ret; + } + + public static string ppf_ApplicationInviteArray_GetNextPageParam(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationInviteArray_GetNextPageParam(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_ApplicationInviteArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationInviteArray_GetSize(obj); + return __ret; + } + + public static bool ppf_ApplicationInviteArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationInviteArray_HasNextPage(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationOptions_Destroy(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationOptions_SetDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationOptions_SetDeeplinkMessage(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + } + + public static __IntPtr ppf_ApplicationOptions_Create() + { + var __ret = __Internal.ppf_ApplicationOptions_Create(); + return __ret; + } + + public static void ppf_ApplicationOptions_Destroy(__IntPtr handle) + { + __Internal.ppf_ApplicationOptions_Destroy(handle); + } + + public static void ppf_ApplicationOptions_SetDeeplinkMessage(__IntPtr handle, string value) + { + __Internal.ppf_ApplicationOptions_SetDeeplinkMessage(handle, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationVersion_GetCurrentCode", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_ApplicationVersion_GetCurrentCode(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationVersion_GetCurrentName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationVersion_GetCurrentName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationVersion_GetLatestCode", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_ApplicationVersion_GetLatestCode(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationVersion_GetLatestName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationVersion_GetLatestName(__IntPtr obj); + } + + public static long ppf_ApplicationVersion_GetCurrentCode(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationVersion_GetCurrentCode(obj); + return __ret; + } + + public static string ppf_ApplicationVersion_GetCurrentName(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationVersion_GetCurrentName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static long ppf_ApplicationVersion_GetLatestCode(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationVersion_GetLatestCode(obj); + return __ret; + } + + public static string ppf_ApplicationVersion_GetLatestName(__IntPtr obj) + { + var __ret = __Internal.ppf_ApplicationVersion_GetLatestName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AsrResult_GetText", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AsrResult_GetText(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AsrResult_GetIsFinalResult", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_AsrResult_GetIsFinalResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AsrResult_GetSessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AsrResult_GetSessionId(__IntPtr obj); + } + + public static string ppf_AsrResult_GetText(__IntPtr obj) + { + var __ret = __Internal.ppf_AsrResult_GetText(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static bool ppf_AsrResult_GetIsFinalResult(__IntPtr obj) + { + var __ret = __Internal.ppf_AsrResult_GetIsFinalResult(obj); + return __ret; + } + + public static string ppf_AsrResult_GetSessionId(__IntPtr obj) + { + var __ret = __Internal.ppf_AsrResult_GetSessionId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetAssetId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetDetails_GetAssetId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetAssetType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetAssetType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetDownloadStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetDownloadStatus(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetFilepath", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetFilepath(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetIapStatus(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetMetadata", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetMetadata(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetFilename", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetFilename(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetVersion", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_AssetDetails_GetVersion(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapSku", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetIapSku(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetIapName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapPrice", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetIapPrice(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapCurrency", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetIapCurrency(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapDescription", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetIapDescription(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetails_GetIapIcon", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetails_GetIapIcon(__IntPtr obj); + } + + public static ulong ppf_AssetDetails_GetAssetId(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetAssetId(obj); + return __ret; + } + + public static string ppf_AssetDetails_GetAssetType(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetAssetType(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetDetails_GetDownloadStatus(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetDownloadStatus(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetDetails_GetFilepath(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetFilepath(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetDetails_GetIapStatus(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetIapStatus(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetDetails_GetMetadata(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetMetadata(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetDetails_GetFilename(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetFilename(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static int ppf_AssetDetails_GetVersion(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetVersion(obj); + return __ret; + } + + public static string ppf_AssetDetails_GetIapSku(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetIapSku(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetDetails_GetIapName(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetIapName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetDetails_GetIapPrice(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetIapPrice(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetDetails_GetIapCurrency(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetIapCurrency(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetDetails_GetIapDescription(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetIapDescription(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetDetails_GetIapIcon(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetails_GetIapIcon(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetailsArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetailsArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetailsArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_AssetDetailsArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetailsArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_AssetDetailsArray_HasNextPage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetDetailsArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetDetailsArray_GetNextPageParam(__IntPtr obj); + } + + public static __IntPtr ppf_AssetDetailsArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_AssetDetailsArray_GetElement(obj, index); + return __ret; + } + + public static UIntPtr ppf_AssetDetailsArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetailsArray_GetSize(obj); + return __ret; + } + + public static bool ppf_AssetDetailsArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetailsArray_HasNextPage(obj); + return __ret; + } + + public static string ppf_AssetDetailsArray_GetNextPageParam(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetDetailsArray_GetNextPageParam(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDeleteForSafety_GetAssetId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFileDeleteForSafety_GetAssetId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDeleteForSafety_GetReason", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetFileDeleteForSafety_GetReason(__IntPtr obj); + } + + public static ulong ppf_AssetFileDeleteForSafety_GetAssetId(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDeleteForSafety_GetAssetId(obj); + return __ret; + } + + public static string ppf_AssetFileDeleteForSafety_GetReason(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDeleteForSafety_GetReason(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDeleteResult_GetAssetId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFileDeleteResult_GetAssetId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDeleteResult_GetFilepath", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetFileDeleteResult_GetFilepath(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDeleteResult_GetSuccess", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_AssetFileDeleteResult_GetSuccess(__IntPtr obj); + } + + public static ulong ppf_AssetFileDeleteResult_GetAssetId(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDeleteResult_GetAssetId(obj); + return __ret; + } + + public static string ppf_AssetFileDeleteResult_GetFilepath(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDeleteResult_GetFilepath(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static bool ppf_AssetFileDeleteResult_GetSuccess(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDeleteResult_GetSuccess(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadCancelResult_GetAssetId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFileDownloadCancelResult_GetAssetId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadCancelResult_GetFilepath", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetFileDownloadCancelResult_GetFilepath(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadCancelResult_GetSuccess", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_AssetFileDownloadCancelResult_GetSuccess(__IntPtr obj); + } + + public static ulong ppf_AssetFileDownloadCancelResult_GetAssetId(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDownloadCancelResult_GetAssetId(obj); + return __ret; + } + + public static string ppf_AssetFileDownloadCancelResult_GetFilepath(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDownloadCancelResult_GetFilepath(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static bool ppf_AssetFileDownloadCancelResult_GetSuccess(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDownloadCancelResult_GetSuccess(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadResult_GetAssetId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFileDownloadResult_GetAssetId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadResult_GetFilepath", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetFileDownloadResult_GetFilepath(__IntPtr obj); + } + + public static ulong ppf_AssetFileDownloadResult_GetAssetId(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDownloadResult_GetAssetId(obj); + return __ret; + } + + public static string ppf_AssetFileDownloadResult_GetFilepath(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDownloadResult_GetFilepath(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadUpdate_GetAssetId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFileDownloadUpdate_GetAssetId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadUpdate_GetBytesTotal", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFileDownloadUpdate_GetBytesTotal(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadUpdate_GetBytesTransferred", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_AssetFileDownloadUpdate_GetBytesTransferred(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFileDownloadUpdate_GetCompleteStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.AssetFileDownloadCompleteStatus ppf_AssetFileDownloadUpdate_GetCompleteStatus(__IntPtr obj); + } + + public static ulong ppf_AssetFileDownloadUpdate_GetAssetId(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDownloadUpdate_GetAssetId(obj); + return __ret; + } + + public static ulong ppf_AssetFileDownloadUpdate_GetBytesTotal(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDownloadUpdate_GetBytesTotal(obj); + return __ret; + } + + public static long ppf_AssetFileDownloadUpdate_GetBytesTransferred(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDownloadUpdate_GetBytesTransferred(obj); + return __ret; + } + + public static global::Pico.Platform.AssetFileDownloadCompleteStatus ppf_AssetFileDownloadUpdate_GetCompleteStatus(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetFileDownloadUpdate_GetCompleteStatus(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetStatus_GetAssetId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetStatus_GetAssetId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetStatus_GetFilename", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetStatus_GetFilename(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetStatus_GetFilepath", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetStatus_GetFilepath(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetStatus_GetDownloadStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_AssetStatus_GetDownloadStatus(__IntPtr obj); + } + + public static ulong ppf_AssetStatus_GetAssetId(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetStatus_GetAssetId(obj); + return __ret; + } + + public static string ppf_AssetStatus_GetFilename(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetStatus_GetFilename(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetStatus_GetFilepath(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetStatus_GetFilepath(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_AssetStatus_GetDownloadStatus(__IntPtr obj) + { + var __ret = __Internal.ppf_AssetStatus_GetDownloadStatus(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_CaptureInfo_GetImagePath", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_CaptureInfo_GetImagePath(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_CaptureInfo_GetJobId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_CaptureInfo_GetJobId(__IntPtr obj); + } + + public static string ppf_CaptureInfo_GetImagePath(__IntPtr obj) + { + var __ret = __Internal.ppf_CaptureInfo_GetImagePath(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_CaptureInfo_GetJobId(__IntPtr obj) + { + var __ret = __Internal.ppf_CaptureInfo_GetJobId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + /// The creator of the challenge. + public enum ChallengeCreationType + { + /// Unknown. + Unknown = 0, + /// User. + UserCreated = 1, + /// Developer. + DeveloperCreated = 2 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeCreationType_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfChallengeCreationType_ToString(global::Pico.Platform.ChallengeCreationType value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeCreationType_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.ChallengeCreationType ppfChallengeCreationType_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfChallengeCreationType_ToString(global::Pico.Platform.ChallengeCreationType value) + { + var __ret = __Internal.ppfChallengeCreationType_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.ChallengeCreationType ppfChallengeCreationType_FromString(string str) + { + var __ret = __Internal.ppfChallengeCreationType_FromString(str); + return __ret; + } + } + + /// Indicates who can see and join the challenge. + public enum ChallengeVisibility + { + /// Unknown. + Unknown = 0, + /// Everyone can see the challenge, but only those invited can join it. + InviteOnly = 1, + /// Everyone can see and join the challenge. + Public = 2, + /// Only those invited can see and join the challenge. + Private = 3 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeVisibility_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfChallengeVisibility_ToString(global::Pico.Platform.ChallengeVisibility value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeVisibility_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.ChallengeVisibility ppfChallengeVisibility_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfChallengeVisibility_ToString(global::Pico.Platform.ChallengeVisibility value) + { + var __ret = __Internal.ppfChallengeVisibility_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.ChallengeVisibility ppfChallengeVisibility_FromString(string str) + { + var __ret = __Internal.ppfChallengeVisibility_FromString(str); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetDestination", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Leaderboard_GetDestination(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetApiName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Leaderboard_GetApiName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Leaderboard_GetID(__IntPtr obj); + } + + public static __IntPtr ppf_Leaderboard_GetDestination(__IntPtr obj) + { + var __ret = __Internal.ppf_Leaderboard_GetDestination(obj); + return __ret; + } + + public static string ppf_Leaderboard_GetApiName(__IntPtr obj) + { + var __ret = __Internal.ppf_Leaderboard_GetApiName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static ulong ppf_Leaderboard_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_Leaderboard_GetID(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_UserArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_UserArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_UserArray_HasNextPage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_UserArray_GetNextPageParam(__IntPtr obj); + } + + public static __IntPtr ppf_UserArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_UserArray_GetElement(obj, index); + return __ret; + } + + public static UIntPtr ppf_UserArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_UserArray_GetSize(obj); + return __ret; + } + + public static bool ppf_UserArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_UserArray_HasNextPage(obj); + return __ret; + } + + public static string ppf_UserArray_GetNextPageParam(__IntPtr obj) + { + var __ret = __Internal.ppf_UserArray_GetNextPageParam(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetCreationType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.ChallengeCreationType ppf_Challenge_GetCreationType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetInvitedUsers", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Challenge_GetInvitedUsers(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetLeaderboard", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Challenge_GetLeaderboard(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetParticipants", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Challenge_GetParticipants(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetTitle", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Challenge_GetTitle(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetVisibility", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.ChallengeVisibility ppf_Challenge_GetVisibility(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetEndDate", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenge_GetEndDate(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenge_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenge_GetStartDate", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenge_GetStartDate(__IntPtr obj); + } + + public static global::Pico.Platform.ChallengeCreationType ppf_Challenge_GetCreationType(__IntPtr obj) + { + var __ret = __Internal.ppf_Challenge_GetCreationType(obj); + return __ret; + } + + public static __IntPtr ppf_Challenge_GetInvitedUsers(__IntPtr obj) + { + var __ret = __Internal.ppf_Challenge_GetInvitedUsers(obj); + return __ret; + } + + public static __IntPtr ppf_Challenge_GetLeaderboard(__IntPtr obj) + { + var __ret = __Internal.ppf_Challenge_GetLeaderboard(obj); + return __ret; + } + + public static __IntPtr ppf_Challenge_GetParticipants(__IntPtr obj) + { + var __ret = __Internal.ppf_Challenge_GetParticipants(obj); + return __ret; + } + + public static string ppf_Challenge_GetTitle(__IntPtr obj) + { + var __ret = __Internal.ppf_Challenge_GetTitle(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.ChallengeVisibility ppf_Challenge_GetVisibility(__IntPtr obj) + { + var __ret = __Internal.ppf_Challenge_GetVisibility(obj); + return __ret; + } + + public static ulong ppf_Challenge_GetEndDate(__IntPtr obj) + { + var __ret = __Internal.ppf_Challenge_GetEndDate(obj); + return __ret; + } + + public static ulong ppf_Challenge_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_Challenge_GetID(obj); + return __ret; + } + + public static ulong ppf_Challenge_GetStartDate(__IntPtr obj) + { + var __ret = __Internal.ppf_Challenge_GetStartDate(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ChallengeArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ChallengeArray_GetNextUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_GetPreviousUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ChallengeArray_GetPreviousUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_ChallengeArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_ChallengeArray_GetTotalCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_ChallengeArray_HasNextPage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeArray_HasPreviousPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_ChallengeArray_HasPreviousPage(__IntPtr obj); + } + + public static __IntPtr ppf_ChallengeArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_ChallengeArray_GetElement(obj, index); + return __ret; + } + + public static string ppf_ChallengeArray_GetNextUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeArray_GetNextUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_ChallengeArray_GetPreviousUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeArray_GetPreviousUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_ChallengeArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeArray_GetSize(obj); + return __ret; + } + + public static ulong ppf_ChallengeArray_GetTotalCount(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeArray_GetTotalCount(obj); + return __ret; + } + + public static bool ppf_ChallengeArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeArray_HasNextPage(obj); + return __ret; + } + + public static bool ppf_ChallengeArray_HasPreviousPage(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeArray_HasPreviousPage(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetDisplayScore", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ChallengeEntry_GetDisplayScore(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetExtraData", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ChallengeEntry_GetExtraData(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetExtraDataLength", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_ChallengeEntry_GetExtraDataLength(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_ChallengeEntry_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetRank", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_ChallengeEntry_GetRank(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetScore", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_ChallengeEntry_GetScore(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetTimestamp", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_ChallengeEntry_GetTimestamp(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntry_GetUser", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ChallengeEntry_GetUser(__IntPtr obj); + } + + public static string ppf_ChallengeEntry_GetDisplayScore(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntry_GetDisplayScore(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static __IntPtr ppf_ChallengeEntry_GetExtraData(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntry_GetExtraData(obj); + return __ret; + } + + public static uint ppf_ChallengeEntry_GetExtraDataLength(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntry_GetExtraDataLength(obj); + return __ret; + } + + public static ulong ppf_ChallengeEntry_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntry_GetID(obj); + return __ret; + } + + public static int ppf_ChallengeEntry_GetRank(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntry_GetRank(obj); + return __ret; + } + + public static long ppf_ChallengeEntry_GetScore(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntry_GetScore(obj); + return __ret; + } + + public static ulong ppf_ChallengeEntry_GetTimestamp(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntry_GetTimestamp(obj); + return __ret; + } + + public static __IntPtr ppf_ChallengeEntry_GetUser(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntry_GetUser(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ChallengeEntryArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ChallengeEntryArray_GetNextUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_GetPreviousUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ChallengeEntryArray_GetPreviousUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_ChallengeEntryArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_ChallengeEntryArray_GetTotalCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_ChallengeEntryArray_HasNextPage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeEntryArray_HasPreviousPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_ChallengeEntryArray_HasPreviousPage(__IntPtr obj); + } + + public static __IntPtr ppf_ChallengeEntryArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_ChallengeEntryArray_GetElement(obj, index); + return __ret; + } + + public static string ppf_ChallengeEntryArray_GetNextUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntryArray_GetNextUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_ChallengeEntryArray_GetPreviousUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntryArray_GetPreviousUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_ChallengeEntryArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntryArray_GetSize(obj); + return __ret; + } + + public static ulong ppf_ChallengeEntryArray_GetTotalCount(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntryArray_GetTotalCount(obj); + return __ret; + } + + public static bool ppf_ChallengeEntryArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntryArray_HasNextPage(obj); + return __ret; + } + + public static bool ppf_ChallengeEntryArray_HasPreviousPage(__IntPtr obj) + { + var __ret = __Internal.ppf_ChallengeEntryArray_HasPreviousPage(obj); + return __ret; + } + } + + /// The filter for querying specified challenges. + public enum ChallengeViewerFilter + { + /// Unknown. + Unknown = 0, + /// To return the challenges visible to everyone. + AllVisible = 1, + /// To return the challenges only visible to the participants. + Participating = 2, + /// To return the challenges only visible to those invited. + Invited = 3, + /// To returns the challenges visible to both the participants and those invited. + ParticipatingOrInvited = 4 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeViewerFilter_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfChallengeViewerFilter_ToString(global::Pico.Platform.ChallengeViewerFilter value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfChallengeViewerFilter_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.ChallengeViewerFilter ppfChallengeViewerFilter_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfChallengeViewerFilter_ToString(global::Pico.Platform.ChallengeViewerFilter value) + { + var __ret = __Internal.ppfChallengeViewerFilter_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.ChallengeViewerFilter ppfChallengeViewerFilter_FromString(string str) + { + var __ret = __Internal.ppfChallengeViewerFilter_FromString(str); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ChallengeOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ChallengeOptions_Destroy(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetEndDate", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ChallengeOptions_SetEndDate(__IntPtr handle, ulong value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetIncludeActiveChallenges", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ChallengeOptions_SetIncludeActiveChallenges(__IntPtr handle, bool value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetIncludeFutureChallenges", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ChallengeOptions_SetIncludeFutureChallenges(__IntPtr handle, bool value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetIncludePastChallenges", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ChallengeOptions_SetIncludePastChallenges(__IntPtr handle, bool value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetLeaderboardName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ChallengeOptions_SetLeaderboardName(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetStartDate", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ChallengeOptions_SetStartDate(__IntPtr handle, ulong value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetTitle", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ChallengeOptions_SetTitle(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetViewerFilter", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ChallengeOptions_SetViewerFilter(__IntPtr handle, global::Pico.Platform.ChallengeViewerFilter value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ChallengeOptions_SetVisibility", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ChallengeOptions_SetVisibility(__IntPtr handle, global::Pico.Platform.ChallengeVisibility value); + } + + public static __IntPtr ppf_ChallengeOptions_Create() + { + var __ret = __Internal.ppf_ChallengeOptions_Create(); + return __ret; + } + + public static void ppf_ChallengeOptions_Destroy(__IntPtr handle) + { + __Internal.ppf_ChallengeOptions_Destroy(handle); + } + + public static void ppf_ChallengeOptions_SetEndDate(__IntPtr handle, ulong value) + { + __Internal.ppf_ChallengeOptions_SetEndDate(handle, value); + } + + public static void ppf_ChallengeOptions_SetIncludeActiveChallenges(__IntPtr handle, bool value) + { + __Internal.ppf_ChallengeOptions_SetIncludeActiveChallenges(handle, value); + } + + public static void ppf_ChallengeOptions_SetIncludeFutureChallenges(__IntPtr handle, bool value) + { + __Internal.ppf_ChallengeOptions_SetIncludeFutureChallenges(handle, value); + } + + public static void ppf_ChallengeOptions_SetIncludePastChallenges(__IntPtr handle, bool value) + { + __Internal.ppf_ChallengeOptions_SetIncludePastChallenges(handle, value); + } + + public static void ppf_ChallengeOptions_SetLeaderboardName(__IntPtr handle, string value) + { + __Internal.ppf_ChallengeOptions_SetLeaderboardName(handle, value); + } + + public static void ppf_ChallengeOptions_SetStartDate(__IntPtr handle, ulong value) + { + __Internal.ppf_ChallengeOptions_SetStartDate(handle, value); + } + + public static void ppf_ChallengeOptions_SetTitle(__IntPtr handle, string value) + { + __Internal.ppf_ChallengeOptions_SetTitle(handle, value); + } + + public static void ppf_ChallengeOptions_SetViewerFilter(__IntPtr handle, global::Pico.Platform.ChallengeViewerFilter value) + { + __Internal.ppf_ChallengeOptions_SetViewerFilter(handle, value); + } + + public static void ppf_ChallengeOptions_SetVisibility(__IntPtr handle, global::Pico.Platform.ChallengeVisibility value) + { + __Internal.ppf_ChallengeOptions_SetVisibility(handle, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_DataStore_Contains", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_DataStore_Contains(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_DataStore_GetKey", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_DataStore_GetKey(__IntPtr obj, int index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_DataStore_GetNumKeys", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_DataStore_GetNumKeys(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_DataStore_GetValue", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_DataStore_GetValue(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key); + } + + public static uint ppf_DataStore_Contains(__IntPtr obj, string key) + { + var __ret = __Internal.ppf_DataStore_Contains(obj, key); + return __ret; + } + + public static string ppf_DataStore_GetKey(__IntPtr obj, int index) + { + var __ret = __Internal.ppf_DataStore_GetKey(obj, index); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_DataStore_GetNumKeys(__IntPtr obj) + { + var __ret = __Internal.ppf_DataStore_GetNumKeys(obj); + return __ret; + } + + public static string ppf_DataStore_GetValue(__IntPtr obj, string key) + { + var __ret = __Internal.ppf_DataStore_GetValue(obj, key); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_DestinationArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_DestinationArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_DestinationArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_DestinationArray_GetNextPageParam(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_DestinationArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_DestinationArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_DestinationArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_DestinationArray_HasNextPage(__IntPtr obj); + } + + public static __IntPtr ppf_DestinationArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_DestinationArray_GetElement(obj, index); + return __ret; + } + + public static string ppf_DestinationArray_GetNextPageParam(__IntPtr obj) + { + var __ret = __Internal.ppf_DestinationArray_GetNextPageParam(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_DestinationArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_DestinationArray_GetSize(obj); + return __ret; + } + + public static bool ppf_DestinationArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_DestinationArray_HasNextPage(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_DetectSensitiveResult_GetFilteredText", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_DetectSensitiveResult_GetFilteredText(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_DetectSensitiveResult_GetProposal", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.SensitiveProposal ppf_DetectSensitiveResult_GetProposal(__IntPtr obj); + } + + public static string ppf_DetectSensitiveResult_GetFilteredText(__IntPtr obj) + { + var __ret = __Internal.ppf_DetectSensitiveResult_GetFilteredText(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.SensitiveProposal ppf_DetectSensitiveResult_GetProposal(__IntPtr obj) + { + var __ret = __Internal.ppf_DetectSensitiveResult_GetProposal(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_EntitlementCheckResult_GetHasEntitlement", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_EntitlementCheckResult_GetHasEntitlement(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_EntitlementCheckResult_GetStatusCode", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_EntitlementCheckResult_GetStatusCode(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_EntitlementCheckResult_GetStatusMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_EntitlementCheckResult_GetStatusMessage(__IntPtr obj); + } + + public static bool ppf_EntitlementCheckResult_GetHasEntitlement(__IntPtr obj) + { + var __ret = __Internal.ppf_EntitlementCheckResult_GetHasEntitlement(obj); + return __ret; + } + + public static int ppf_EntitlementCheckResult_GetStatusCode(__IntPtr obj) + { + var __ret = __Internal.ppf_EntitlementCheckResult_GetStatusCode(obj); + return __ret; + } + + public static string ppf_EntitlementCheckResult_GetStatusMessage(__IntPtr obj) + { + var __ret = __Internal.ppf_EntitlementCheckResult_GetStatusMessage(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Error_GetMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Error_GetMessage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Error_GetCode", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_Error_GetCode(__IntPtr obj); + } + + public static string ppf_Error_GetMessage(__IntPtr obj) + { + var __ret = __Internal.ppf_Error_GetMessage(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static int ppf_Error_GetCode(__IntPtr obj) + { + var __ret = __Internal.ppf_Error_GetCode(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LaunchDetails_GetDeeplinkMessage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetDestinationApiName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LaunchDetails_GetDestinationApiName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetLobbySessionID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LaunchDetails_GetLobbySessionID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetMatchSessionID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LaunchDetails_GetMatchSessionID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetExtra", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LaunchDetails_GetExtra(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetRoomID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_LaunchDetails_GetRoomID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetChallengeID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_LaunchDetails_GetChallengeID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetTrackingID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LaunchDetails_GetTrackingID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetLaunchType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.LaunchType ppf_LaunchDetails_GetLaunchType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchDetails_GetClientAction", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LaunchDetails_GetClientAction(__IntPtr obj); + } + + public static string ppf_LaunchDetails_GetDeeplinkMessage(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchDetails_GetDeeplinkMessage(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_LaunchDetails_GetDestinationApiName(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchDetails_GetDestinationApiName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_LaunchDetails_GetLobbySessionID(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchDetails_GetLobbySessionID(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_LaunchDetails_GetMatchSessionID(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchDetails_GetMatchSessionID(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_LaunchDetails_GetExtra(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchDetails_GetExtra(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static ulong ppf_LaunchDetails_GetRoomID(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchDetails_GetRoomID(obj); + return __ret; + } + + public static ulong ppf_LaunchDetails_GetChallengeID(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchDetails_GetChallengeID(obj); + return __ret; + } + + public static string ppf_LaunchDetails_GetTrackingID(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchDetails_GetTrackingID(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.LaunchType ppf_LaunchDetails_GetLaunchType(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchDetails_GetLaunchType(obj); + return __ret; + } + + public static string ppf_LaunchDetails_GetClientAction(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchDetails_GetClientAction(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetROMVersion", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SystemInfo_GetROMVersion(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetLocale", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SystemInfo_GetLocale(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetProductName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SystemInfo_GetProductName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetIsCnDevice", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_SystemInfo_GetIsCnDevice(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetMatrixVersionName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SystemInfo_GetMatrixVersionName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SystemInfo_GetMatrixVersionCode", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_SystemInfo_GetMatrixVersionCode(__IntPtr obj); + } + + public static string ppf_SystemInfo_GetROMVersion(__IntPtr obj) + { + var __ret = __Internal.ppf_SystemInfo_GetROMVersion(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_SystemInfo_GetLocale(__IntPtr obj) + { + var __ret = __Internal.ppf_SystemInfo_GetLocale(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_SystemInfo_GetProductName(__IntPtr obj) + { + var __ret = __Internal.ppf_SystemInfo_GetProductName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static bool ppf_SystemInfo_GetIsCnDevice(__IntPtr obj) + { + var __ret = __Internal.ppf_SystemInfo_GetIsCnDevice(obj); + return __ret; + } + + public static string ppf_SystemInfo_GetMatrixVersionName(__IntPtr obj) + { + var __ret = __Internal.ppf_SystemInfo_GetMatrixVersionName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static long ppf_SystemInfo_GetMatrixVersionCode(__IntPtr obj) + { + var __ret = __Internal.ppf_SystemInfo_GetMatrixVersionCode(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationLifecycle_GetLaunchDetails", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ApplicationLifecycle_GetLaunchDetails(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ApplicationLifecycle_LogDeeplinkResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ApplicationLifecycle_LogDeeplinkResult([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string trackingID, global::Pico.Platform.LaunchResult result); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_GetSystemInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Application_GetSystemInfo(); + } + + public static __IntPtr ppf_ApplicationLifecycle_GetLaunchDetails() + { + var __ret = __Internal.ppf_ApplicationLifecycle_GetLaunchDetails(); + return __ret; + } + + public static void ppf_ApplicationLifecycle_LogDeeplinkResult(string trackingID, global::Pico.Platform.LaunchResult result) + { + __Internal.ppf_ApplicationLifecycle_LogDeeplinkResult(trackingID, result); + } + + public static __IntPtr ppf_Application_GetSystemInfo() + { + var __ret = __Internal.ppf_Application_GetSystemInfo(); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Packet_Free", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Packet_Free(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Packet_GetBytes", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Packet_GetBytes(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Packet_GetSenderID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Packet_GetSenderID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Packet_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_Packet_GetSize(__IntPtr obj); + } + + public static void ppf_Packet_Free(__IntPtr obj) + { + __Internal.ppf_Packet_Free(obj); + } + + public static __IntPtr ppf_Packet_GetBytes(__IntPtr obj) + { + var __ret = __Internal.ppf_Packet_GetBytes(obj); + return __ret; + } + + public static string ppf_Packet_GetSenderID(__IntPtr obj) + { + var __ret = __Internal.ppf_Packet_GetSenderID(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_Packet_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_Packet_GetSize(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Net_ReadPacket", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Net_ReadPacket(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Net_SendPacket", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_Net_SendPacket([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID, UIntPtr length, __IntPtr bytes); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Net_SendPacket2", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_Net_SendPacket2([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID, UIntPtr length, __IntPtr bytes, bool reliable); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Net_SendPacketToCurrentRoom", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_Net_SendPacketToCurrentRoom(UIntPtr length, __IntPtr bytes); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Net_SendPacketToCurrentRoom2", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_Net_SendPacketToCurrentRoom2(UIntPtr length, __IntPtr bytes, bool reliable); + } + + public static __IntPtr ppf_Net_ReadPacket() + { + var __ret = __Internal.ppf_Net_ReadPacket(); + return __ret; + } + + public static bool ppf_Net_SendPacket(string userID, UIntPtr length, __IntPtr bytes) + { + var __ret = __Internal.ppf_Net_SendPacket(userID, length, bytes); + return __ret; + } + + public static bool ppf_Net_SendPacket2(string userID, UIntPtr length, __IntPtr bytes, bool reliable) + { + var __ret = __Internal.ppf_Net_SendPacket2(userID, length, bytes, reliable); + return __ret; + } + + public static bool ppf_Net_SendPacketToCurrentRoom(UIntPtr length, __IntPtr bytes) + { + var __ret = __Internal.ppf_Net_SendPacketToCurrentRoom(length, bytes); + return __ret; + } + + public static bool ppf_Net_SendPacketToCurrentRoom2(UIntPtr length, __IntPtr bytes, bool reliable) + { + var __ret = __Internal.ppf_Net_SendPacketToCurrentRoom2(length, bytes, reliable); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioPropertyOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcAudioPropertyOptions_Destroy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioPropertyOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcAudioPropertyOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioPropertyOptions_SetInterval", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcAudioPropertyOptions_SetInterval(__IntPtr obj, int value); + } + + public static void ppf_RtcAudioPropertyOptions_Destroy(__IntPtr obj) + { + __Internal.ppf_RtcAudioPropertyOptions_Destroy(obj); + } + + public static __IntPtr ppf_RtcAudioPropertyOptions_Create() + { + var __ret = __Internal.ppf_RtcAudioPropertyOptions_Create(); + return __ret; + } + + public static void ppf_RtcAudioPropertyOptions_SetInterval(__IntPtr obj, int value) + { + __Internal.ppf_RtcAudioPropertyOptions_SetInterval(obj, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfoOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcStreamSyncInfoOptions_Destroy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfoOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcStreamSyncInfoOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfoOptions_SetStreamIndex", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcStreamSyncInfoOptions_SetStreamIndex(__IntPtr obj, global::Pico.Platform.RtcStreamIndex value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfoOptions_SetRepeatCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcStreamSyncInfoOptions_SetRepeatCount(__IntPtr obj, int value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfoOptions_SetStreamType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcStreamSyncInfoOptions_SetStreamType(__IntPtr obj, global::Pico.Platform.RtcSyncInfoStreamType value); + } + + public static void ppf_RtcStreamSyncInfoOptions_Destroy(__IntPtr obj) + { + __Internal.ppf_RtcStreamSyncInfoOptions_Destroy(obj); + } + + public static __IntPtr ppf_RtcStreamSyncInfoOptions_Create() + { + var __ret = __Internal.ppf_RtcStreamSyncInfoOptions_Create(); + return __ret; + } + + public static void ppf_RtcStreamSyncInfoOptions_SetStreamIndex(__IntPtr obj, global::Pico.Platform.RtcStreamIndex value) + { + __Internal.ppf_RtcStreamSyncInfoOptions_SetStreamIndex(obj, value); + } + + public static void ppf_RtcStreamSyncInfoOptions_SetRepeatCount(__IntPtr obj, int value) + { + __Internal.ppf_RtcStreamSyncInfoOptions_SetRepeatCount(obj, value); + } + + public static void ppf_RtcStreamSyncInfoOptions_SetStreamType(__IntPtr obj, global::Pico.Platform.RtcSyncInfoStreamType value) + { + __Internal.ppf_RtcStreamSyncInfoOptions_SetStreamType(obj, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcRoomOptions_Destroy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRoomOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetRoomProfileType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcRoomOptions_SetRoomProfileType(__IntPtr obj, global::Pico.Platform.RtcRoomProfileType value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetIsAutoSubscribeAudio", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcRoomOptions_SetIsAutoSubscribeAudio(__IntPtr obj, bool value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcRoomOptions_SetRoomId(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcRoomOptions_SetUserId(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetUserExtra", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcRoomOptions_SetUserExtra(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomOptions_SetToken", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcRoomOptions_SetToken(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + } + + public static void ppf_RtcRoomOptions_Destroy(__IntPtr obj) + { + __Internal.ppf_RtcRoomOptions_Destroy(obj); + } + + public static __IntPtr ppf_RtcRoomOptions_Create() + { + var __ret = __Internal.ppf_RtcRoomOptions_Create(); + return __ret; + } + + public static void ppf_RtcRoomOptions_SetRoomProfileType(__IntPtr obj, global::Pico.Platform.RtcRoomProfileType value) + { + __Internal.ppf_RtcRoomOptions_SetRoomProfileType(obj, value); + } + + public static void ppf_RtcRoomOptions_SetIsAutoSubscribeAudio(__IntPtr obj, bool value) + { + __Internal.ppf_RtcRoomOptions_SetIsAutoSubscribeAudio(obj, value); + } + + public static void ppf_RtcRoomOptions_SetRoomId(__IntPtr obj, string value) + { + __Internal.ppf_RtcRoomOptions_SetRoomId(obj, value); + } + + public static void ppf_RtcRoomOptions_SetUserId(__IntPtr obj, string value) + { + __Internal.ppf_RtcRoomOptions_SetUserId(obj, value); + } + + public static void ppf_RtcRoomOptions_SetUserExtra(__IntPtr obj, string value) + { + __Internal.ppf_RtcRoomOptions_SetUserExtra(obj, value); + } + + public static void ppf_RtcRoomOptions_SetToken(__IntPtr obj, string value) + { + __Internal.ppf_RtcRoomOptions_SetToken(obj, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcAudioFrameOptions_Destroy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcAudioFrameOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetSampleRate", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcAudioFrameOptions_SetSampleRate(__IntPtr obj, global::Pico.Platform.RtcAudioSampleRate value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetChannel", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcAudioFrameOptions_SetChannel(__IntPtr obj, global::Pico.Platform.RtcAudioChannel value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetTimeStampInUs", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcAudioFrameOptions_SetTimeStampInUs(__IntPtr obj, long value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetData", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcAudioFrameOptions_SetData(__IntPtr obj, __IntPtr value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetDataSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcAudioFrameOptions_SetDataSize(__IntPtr obj, long value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrameOptions_SetDeepCopy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcAudioFrameOptions_SetDeepCopy(__IntPtr obj, bool value); + } + + public static void ppf_RtcAudioFrameOptions_Destroy(__IntPtr obj) + { + __Internal.ppf_RtcAudioFrameOptions_Destroy(obj); + } + + public static __IntPtr ppf_RtcAudioFrameOptions_Create() + { + var __ret = __Internal.ppf_RtcAudioFrameOptions_Create(); + return __ret; + } + + public static void ppf_RtcAudioFrameOptions_SetSampleRate(__IntPtr obj, global::Pico.Platform.RtcAudioSampleRate value) + { + __Internal.ppf_RtcAudioFrameOptions_SetSampleRate(obj, value); + } + + public static void ppf_RtcAudioFrameOptions_SetChannel(__IntPtr obj, global::Pico.Platform.RtcAudioChannel value) + { + __Internal.ppf_RtcAudioFrameOptions_SetChannel(obj, value); + } + + public static void ppf_RtcAudioFrameOptions_SetTimeStampInUs(__IntPtr obj, long value) + { + __Internal.ppf_RtcAudioFrameOptions_SetTimeStampInUs(obj, value); + } + + public static void ppf_RtcAudioFrameOptions_SetData(__IntPtr obj, __IntPtr value) + { + __Internal.ppf_RtcAudioFrameOptions_SetData(obj, value); + } + + public static void ppf_RtcAudioFrameOptions_SetDataSize(__IntPtr obj, long value) + { + __Internal.ppf_RtcAudioFrameOptions_SetDataSize(obj, value); + } + + public static void ppf_RtcAudioFrameOptions_SetDeepCopy(__IntPtr obj, bool value) + { + __Internal.ppf_RtcAudioFrameOptions_SetDeepCopy(obj, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_InitRtcEngine", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcEngineInitResult ppf_Rtc_InitRtcEngine(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_UnInitRtcEngine", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_UnInitRtcEngine(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_JoinRoom", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_Rtc_JoinRoom(__IntPtr roomOptions); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_LeaveRoom", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_Rtc_LeaveRoom([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_DestroyRoom", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_DestroyRoom([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_PublishRoom", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_PublishRoom([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_UnPublishRoom", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_UnPublishRoom([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_UpdateToken", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_UpdateToken([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string token); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_EnableAudioPropertiesReport", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_EnableAudioPropertiesReport(__IntPtr config); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_MuteLocalAudio", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_MuteLocalAudio(global::Pico.Platform.RtcMuteState muteState); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomPauseAllSubscribedStream", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_RoomPauseAllSubscribedStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, global::Pico.Platform.RtcPauseResumeMediaType mediaType); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomResumeAllSubscribedStream", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_RoomResumeAllSubscribedStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, global::Pico.Platform.RtcPauseResumeMediaType mediaType); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetAudioPlaybackDevice", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_SetAudioPlaybackDevice(global::Pico.Platform.RtcAudioPlaybackDevice device); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetAudioScenario", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_SetAudioScenario(global::Pico.Platform.RtcAudioScenarioType scenario); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetCaptureVolume", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_SetCaptureVolume(global::Pico.Platform.RtcStreamIndex index, int volume); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetEarMonitorMode", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_SetEarMonitorMode(global::Pico.Platform.RtcEarMonitorMode earMonitorMode); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetEarMonitorVolume", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_SetEarMonitorVolume(int volume); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetPlaybackVolume", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_SetPlaybackVolume(int volume); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_StartAudioCapture", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_StartAudioCapture(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_StopAudioCapture", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_StopAudioCapture(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomPublishStream", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_RoomPublishStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, global::Pico.Platform.RtcMediaStreamType streamType); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomSetRemoteAudioPlaybackVolume", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_RoomSetRemoteAudioPlaybackVolume([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userId, int volume); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomSubscribeStream", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_RoomSubscribeStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userId, global::Pico.Platform.RtcMediaStreamType mediaType); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomUnPublishStream", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_RoomUnPublishStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, global::Pico.Platform.RtcMediaStreamType streamType); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RoomUnsubscribeStream", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_RoomUnsubscribeStream([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userId, global::Pico.Platform.RtcMediaStreamType mediaType); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SendRoomBinaryMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_Rtc_SendRoomBinaryMessage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, __IntPtr message, int length); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SendRoomMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_Rtc_SendRoomMessage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string message); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SendStreamSyncInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_Rtc_SendStreamSyncInfo(__IntPtr data, int length, __IntPtr config); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SendUserBinaryMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_Rtc_SendUserBinaryMessage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userId, __IntPtr message, int length); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SendUserMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_Rtc_SendUserMessage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string roomId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string message); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetAudioSourceType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_Rtc_SetAudioSourceType(global::Pico.Platform.RtcAudioSourceType type); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_SetScreenAudioSourceType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Rtc_SetScreenAudioSourceType(global::Pico.Platform.RtcAudioSourceType sourceType); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_PushExternalAudioFrame", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_Rtc_PushExternalAudioFrame(__IntPtr audioFrame); + } + + public static global::Pico.Platform.RtcEngineInitResult ppf_Rtc_InitRtcEngine() + { + var __ret = __Internal.ppf_Rtc_InitRtcEngine(); + return __ret; + } + + public static void ppf_Rtc_UnInitRtcEngine() + { + __Internal.ppf_Rtc_UnInitRtcEngine(); + } + + public static int ppf_Rtc_JoinRoom(__IntPtr roomOptions) + { + var __ret = __Internal.ppf_Rtc_JoinRoom(roomOptions); + return __ret; + } + + public static int ppf_Rtc_LeaveRoom(string roomId) + { + var __ret = __Internal.ppf_Rtc_LeaveRoom(roomId); + return __ret; + } + + public static void ppf_Rtc_DestroyRoom(string roomId) + { + __Internal.ppf_Rtc_DestroyRoom(roomId); + } + + public static void ppf_Rtc_PublishRoom(string roomId) + { + __Internal.ppf_Rtc_PublishRoom(roomId); + } + + public static void ppf_Rtc_UnPublishRoom(string roomId) + { + __Internal.ppf_Rtc_UnPublishRoom(roomId); + } + + public static void ppf_Rtc_UpdateToken(string roomId, string token) + { + __Internal.ppf_Rtc_UpdateToken(roomId, token); + } + + public static void ppf_Rtc_EnableAudioPropertiesReport(__IntPtr config) + { + __Internal.ppf_Rtc_EnableAudioPropertiesReport(config); + } + + public static void ppf_Rtc_MuteLocalAudio(global::Pico.Platform.RtcMuteState muteState) + { + __Internal.ppf_Rtc_MuteLocalAudio(muteState); + } + + public static void ppf_Rtc_RoomPauseAllSubscribedStream(string roomId, global::Pico.Platform.RtcPauseResumeMediaType mediaType) + { + __Internal.ppf_Rtc_RoomPauseAllSubscribedStream(roomId, mediaType); + } + + public static void ppf_Rtc_RoomResumeAllSubscribedStream(string roomId, global::Pico.Platform.RtcPauseResumeMediaType mediaType) + { + __Internal.ppf_Rtc_RoomResumeAllSubscribedStream(roomId, mediaType); + } + + public static void ppf_Rtc_SetAudioPlaybackDevice(global::Pico.Platform.RtcAudioPlaybackDevice device) + { + __Internal.ppf_Rtc_SetAudioPlaybackDevice(device); + } + + public static void ppf_Rtc_SetAudioScenario(global::Pico.Platform.RtcAudioScenarioType scenario) + { + __Internal.ppf_Rtc_SetAudioScenario(scenario); + } + + public static void ppf_Rtc_SetCaptureVolume(global::Pico.Platform.RtcStreamIndex index, int volume) + { + __Internal.ppf_Rtc_SetCaptureVolume(index, volume); + } + + public static void ppf_Rtc_SetEarMonitorMode(global::Pico.Platform.RtcEarMonitorMode earMonitorMode) + { + __Internal.ppf_Rtc_SetEarMonitorMode(earMonitorMode); + } + + public static void ppf_Rtc_SetEarMonitorVolume(int volume) + { + __Internal.ppf_Rtc_SetEarMonitorVolume(volume); + } + + public static void ppf_Rtc_SetPlaybackVolume(int volume) + { + __Internal.ppf_Rtc_SetPlaybackVolume(volume); + } + + public static void ppf_Rtc_StartAudioCapture() + { + __Internal.ppf_Rtc_StartAudioCapture(); + } + + public static void ppf_Rtc_StopAudioCapture() + { + __Internal.ppf_Rtc_StopAudioCapture(); + } + + public static void ppf_Rtc_RoomPublishStream(string roomId, global::Pico.Platform.RtcMediaStreamType streamType) + { + __Internal.ppf_Rtc_RoomPublishStream(roomId, streamType); + } + + public static void ppf_Rtc_RoomSetRemoteAudioPlaybackVolume(string roomId, string userId, int volume) + { + __Internal.ppf_Rtc_RoomSetRemoteAudioPlaybackVolume(roomId, userId, volume); + } + + public static void ppf_Rtc_RoomSubscribeStream(string roomId, string userId, global::Pico.Platform.RtcMediaStreamType mediaType) + { + __Internal.ppf_Rtc_RoomSubscribeStream(roomId, userId, mediaType); + } + + public static void ppf_Rtc_RoomUnPublishStream(string roomId, global::Pico.Platform.RtcMediaStreamType streamType) + { + __Internal.ppf_Rtc_RoomUnPublishStream(roomId, streamType); + } + + public static void ppf_Rtc_RoomUnsubscribeStream(string roomId, string userId, global::Pico.Platform.RtcMediaStreamType mediaType) + { + __Internal.ppf_Rtc_RoomUnsubscribeStream(roomId, userId, mediaType); + } + + public static long ppf_Rtc_SendRoomBinaryMessage(string roomId, __IntPtr message, int length) + { + var __ret = __Internal.ppf_Rtc_SendRoomBinaryMessage(roomId, message, length); + return __ret; + } + + public static long ppf_Rtc_SendRoomMessage(string roomId, string message) + { + var __ret = __Internal.ppf_Rtc_SendRoomMessage(roomId, message); + return __ret; + } + + public static int ppf_Rtc_SendStreamSyncInfo(__IntPtr data, int length, __IntPtr config) + { + var __ret = __Internal.ppf_Rtc_SendStreamSyncInfo(data, length, config); + return __ret; + } + + public static long ppf_Rtc_SendUserBinaryMessage(string roomId, string userId, __IntPtr message, int length) + { + var __ret = __Internal.ppf_Rtc_SendUserBinaryMessage(roomId, userId, message, length); + return __ret; + } + + public static long ppf_Rtc_SendUserMessage(string roomId, string userId, string message) + { + var __ret = __Internal.ppf_Rtc_SendUserMessage(roomId, userId, message); + return __ret; + } + + public static int ppf_Rtc_SetAudioSourceType(global::Pico.Platform.RtcAudioSourceType type) + { + var __ret = __Internal.ppf_Rtc_SetAudioSourceType(type); + return __ret; + } + + public static void ppf_Rtc_SetScreenAudioSourceType(global::Pico.Platform.RtcAudioSourceType sourceType) + { + __Internal.ppf_Rtc_SetScreenAudioSourceType(sourceType); + } + + public static int ppf_Rtc_PushExternalAudioFrame(__IntPtr audioFrame) + { + var __ret = __Internal.ppf_Rtc_PushExternalAudioFrame(audioFrame); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_StartAsrOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_StartAsrOptions_Destroy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_StartAsrOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_StartAsrOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_StartAsrOptions_SetAutoStop", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_StartAsrOptions_SetAutoStop(__IntPtr obj, bool value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_StartAsrOptions_SetVadMaxDurationInSeconds", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_StartAsrOptions_SetVadMaxDurationInSeconds(__IntPtr obj, int value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_StartAsrOptions_SetShowPunctual", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_StartAsrOptions_SetShowPunctual(__IntPtr obj, bool value); + } + + public static void ppf_StartAsrOptions_Destroy(__IntPtr obj) + { + __Internal.ppf_StartAsrOptions_Destroy(obj); + } + + public static __IntPtr ppf_StartAsrOptions_Create() + { + var __ret = __Internal.ppf_StartAsrOptions_Create(); + return __ret; + } + + public static void ppf_StartAsrOptions_SetAutoStop(__IntPtr obj, bool value) + { + __Internal.ppf_StartAsrOptions_SetAutoStop(obj, value); + } + + public static void ppf_StartAsrOptions_SetVadMaxDurationInSeconds(__IntPtr obj, int value) + { + __Internal.ppf_StartAsrOptions_SetVadMaxDurationInSeconds(obj, value); + } + + public static void ppf_StartAsrOptions_SetShowPunctual(__IntPtr obj, bool value) + { + __Internal.ppf_StartAsrOptions_SetShowPunctual(obj, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Speech_InitAsrEngine", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.AsrEngineInitResult ppf_Speech_InitAsrEngine(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Speech_StartAsr", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_Speech_StartAsr(__IntPtr option); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Speech_StopAsr", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_Speech_StopAsr(); + } + + public static global::Pico.Platform.AsrEngineInitResult ppf_Speech_InitAsrEngine() + { + var __ret = __Internal.ppf_Speech_InitAsrEngine(); + return __ret; + } + + public static int ppf_Speech_StartAsr(__IntPtr option) + { + var __ret = __Internal.ppf_Speech_StartAsr(option); + return __ret; + } + + public static void ppf_Speech_StopAsr() + { + __Internal.ppf_Speech_StopAsr(); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Game_InitializeWithToken", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Game_InitializeWithToken([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string accessToken); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Game_InitializeWithTokenAccountTypeOne", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Game_InitializeWithTokenAccountTypeOne([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string accessToken); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Game_InitializeAuto", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Game_InitializeAuto(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Game_UnInitialize", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_Game_UnInitialize(); + } + + public static ulong ppf_Game_InitializeWithToken(string accessToken) + { + var __ret = __Internal.ppf_Game_InitializeWithToken(accessToken); + return __ret; + } + + public static ulong ppf_Game_InitializeWithTokenAccountTypeOne(string accessToken) + { + var __ret = __Internal.ppf_Game_InitializeWithTokenAccountTypeOne(accessToken); + return __ret; + } + + public static ulong ppf_Game_InitializeAuto() + { + var __ret = __Internal.ppf_Game_InitializeAuto(); + return __ret; + } + + public static bool ppf_Game_UnInitialize() + { + var __ret = __Internal.ppf_Game_UnInitialize(); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_InviteOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_InviteOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_InviteOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_InviteOptions_Destroy(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_InviteOptions_AddSuggestedUser", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_InviteOptions_AddSuggestedUser(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_InviteOptions_ClearSuggestedUsers", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_InviteOptions_ClearSuggestedUsers(__IntPtr handle); + } + + public static __IntPtr ppf_InviteOptions_Create() + { + var __ret = __Internal.ppf_InviteOptions_Create(); + return __ret; + } + + public static void ppf_InviteOptions_Destroy(__IntPtr handle) + { + __Internal.ppf_InviteOptions_Destroy(handle); + } + + public static void ppf_InviteOptions_AddSuggestedUser(__IntPtr handle, string value) + { + __Internal.ppf_InviteOptions_AddSuggestedUser(handle, value); + } + + public static void ppf_InviteOptions_ClearSuggestedUsers(__IntPtr handle) + { + __Internal.ppf_InviteOptions_ClearSuggestedUsers(handle); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_KeyValuePair_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_KeyValuePair_Destroy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_GetKey", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_KeyValuePair_GetKey(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_SetKey", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_KeyValuePair_SetKey(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_GetValueType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.KVPairType ppf_KeyValuePair_GetValueType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_GetIntValue", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_KeyValuePair_GetIntValue(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_SetIntValue", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_KeyValuePair_SetIntValue(__IntPtr obj, int value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_GetDoubleValue", CallingConvention = __CallingConvention.Cdecl)] + internal static extern double ppf_KeyValuePair_GetDoubleValue(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_SetDoubleValue", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_KeyValuePair_SetDoubleValue(__IntPtr obj, double value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_GetStringValue", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_KeyValuePair_GetStringValue(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePair_SetStringValue", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_KeyValuePair_SetStringValue(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + } + + public static __IntPtr ppf_KeyValuePair_Create() + { + var __ret = __Internal.ppf_KeyValuePair_Create(); + return __ret; + } + + public static void ppf_KeyValuePair_Destroy(__IntPtr obj) + { + __Internal.ppf_KeyValuePair_Destroy(obj); + } + + public static string ppf_KeyValuePair_GetKey(__IntPtr obj) + { + var __ret = __Internal.ppf_KeyValuePair_GetKey(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static void ppf_KeyValuePair_SetKey(__IntPtr obj, string key) + { + __Internal.ppf_KeyValuePair_SetKey(obj, key); + } + + public static global::Pico.Platform.KVPairType ppf_KeyValuePair_GetValueType(__IntPtr obj) + { + var __ret = __Internal.ppf_KeyValuePair_GetValueType(obj); + return __ret; + } + + public static int ppf_KeyValuePair_GetIntValue(__IntPtr obj) + { + var __ret = __Internal.ppf_KeyValuePair_GetIntValue(obj); + return __ret; + } + + public static void ppf_KeyValuePair_SetIntValue(__IntPtr obj, int value) + { + __Internal.ppf_KeyValuePair_SetIntValue(obj, value); + } + + public static double ppf_KeyValuePair_GetDoubleValue(__IntPtr obj) + { + var __ret = __Internal.ppf_KeyValuePair_GetDoubleValue(obj); + return __ret; + } + + public static void ppf_KeyValuePair_SetDoubleValue(__IntPtr obj, double value) + { + __Internal.ppf_KeyValuePair_SetDoubleValue(obj, value); + } + + public static string ppf_KeyValuePair_GetStringValue(__IntPtr obj) + { + var __ret = __Internal.ppf_KeyValuePair_GetStringValue(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static void ppf_KeyValuePair_SetStringValue(__IntPtr obj, string value) + { + __Internal.ppf_KeyValuePair_SetStringValue(obj, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePairArray_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_KeyValuePairArray_Create(UIntPtr size); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePairArray_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_KeyValuePairArray_Destroy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_KeyValuePairArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_KeyValuePairArray_GetElement(__IntPtr obj, UIntPtr index); + } + + public static __IntPtr ppf_KeyValuePairArray_Create(UIntPtr size) + { + var __ret = __Internal.ppf_KeyValuePairArray_Create(size); + return __ret; + } + + public static void ppf_KeyValuePairArray_Destroy(__IntPtr obj) + { + __Internal.ppf_KeyValuePairArray_Destroy(obj); + } + + public static __IntPtr ppf_KeyValuePairArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_KeyValuePairArray_GetElement(obj, index); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchFriendRequestFlowResult_GetDidCancel", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_LaunchFriendRequestFlowResult_GetDidCancel(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LaunchFriendRequestFlowResult_GetDidSendRequest", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_LaunchFriendRequestFlowResult_GetDidSendRequest(__IntPtr obj); + } + + public static bool ppf_LaunchFriendRequestFlowResult_GetDidCancel(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchFriendRequestFlowResult_GetDidCancel(obj); + return __ret; + } + + public static bool ppf_LaunchFriendRequestFlowResult_GetDidSendRequest(__IntPtr obj) + { + var __ret = __Internal.ppf_LaunchFriendRequestFlowResult_GetDidSendRequest(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LeaderboardArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LeaderboardArray_GetNextUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_LeaderboardArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_LeaderboardArray_GetTotalCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_LeaderboardArray_HasNextPage(__IntPtr obj); + } + + public static __IntPtr ppf_LeaderboardArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_LeaderboardArray_GetElement(obj, index); + return __ret; + } + + public static string ppf_LeaderboardArray_GetNextUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardArray_GetNextUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_LeaderboardArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardArray_GetSize(obj); + return __ret; + } + + public static ulong ppf_LeaderboardArray_GetTotalCount(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardArray_GetTotalCount(obj); + return __ret; + } + + public static bool ppf_LeaderboardArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardArray_HasNextPage(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_SupplementaryMetric_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_SupplementaryMetric_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SupplementaryMetric_GetMetric", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_SupplementaryMetric_GetMetric(__IntPtr obj); + } + + public static ulong ppf_SupplementaryMetric_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_SupplementaryMetric_GetID(obj); + return __ret; + } + + public static long ppf_SupplementaryMetric_GetMetric(__IntPtr obj) + { + var __ret = __Internal.ppf_SupplementaryMetric_GetMetric(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetSupplementaryMetric", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LeaderboardEntry_GetSupplementaryMetric(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetDisplayScore", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LeaderboardEntry_GetDisplayScore(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetExtraData", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LeaderboardEntry_GetExtraData(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetExtraDataLength", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_LeaderboardEntry_GetExtraDataLength(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_LeaderboardEntry_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetRank", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_LeaderboardEntry_GetRank(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetScore", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_LeaderboardEntry_GetScore(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetTimestamp", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_LeaderboardEntry_GetTimestamp(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntry_GetUser", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LeaderboardEntry_GetUser(__IntPtr obj); + } + + public static __IntPtr ppf_LeaderboardEntry_GetSupplementaryMetric(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntry_GetSupplementaryMetric(obj); + return __ret; + } + + public static string ppf_LeaderboardEntry_GetDisplayScore(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntry_GetDisplayScore(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static __IntPtr ppf_LeaderboardEntry_GetExtraData(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntry_GetExtraData(obj); + return __ret; + } + + public static uint ppf_LeaderboardEntry_GetExtraDataLength(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntry_GetExtraDataLength(obj); + return __ret; + } + + public static ulong ppf_LeaderboardEntry_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntry_GetID(obj); + return __ret; + } + + public static int ppf_LeaderboardEntry_GetRank(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntry_GetRank(obj); + return __ret; + } + + public static long ppf_LeaderboardEntry_GetScore(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntry_GetScore(obj); + return __ret; + } + + public static ulong ppf_LeaderboardEntry_GetTimestamp(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntry_GetTimestamp(obj); + return __ret; + } + + public static __IntPtr ppf_LeaderboardEntry_GetUser(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntry_GetUser(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LeaderboardEntryArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LeaderboardEntryArray_GetNextUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_GetPreviousUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_LeaderboardEntryArray_GetPreviousUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_LeaderboardEntryArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_LeaderboardEntryArray_GetTotalCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_LeaderboardEntryArray_HasNextPage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardEntryArray_HasPreviousPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_LeaderboardEntryArray_HasPreviousPage(__IntPtr obj); + } + + public static __IntPtr ppf_LeaderboardEntryArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_LeaderboardEntryArray_GetElement(obj, index); + return __ret; + } + + public static string ppf_LeaderboardEntryArray_GetNextUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntryArray_GetNextUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_LeaderboardEntryArray_GetPreviousUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntryArray_GetPreviousUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_LeaderboardEntryArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntryArray_GetSize(obj); + return __ret; + } + + public static ulong ppf_LeaderboardEntryArray_GetTotalCount(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntryArray_GetTotalCount(obj); + return __ret; + } + + public static bool ppf_LeaderboardEntryArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntryArray_HasNextPage(obj); + return __ret; + } + + public static bool ppf_LeaderboardEntryArray_HasPreviousPage(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardEntryArray_HasPreviousPage(obj); + return __ret; + } + } + + /// The type of filter to use when retrieving leaderboard entries. + public enum LeaderboardFilterType + { + /// Do not filter. + None = 0, + /// Only display the entries of the user's friends. + Friends = 1, + /// Do not filter. + Unknown = 2, + /// Display the entries of specific users by specifying user IDs. + UserIds = 3 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfLeaderboardFilterType_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfLeaderboardFilterType_ToString(global::Pico.Platform.LeaderboardFilterType value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfLeaderboardFilterType_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.LeaderboardFilterType ppfLeaderboardFilterType_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfLeaderboardFilterType_ToString(global::Pico.Platform.LeaderboardFilterType value) + { + var __ret = __Internal.ppfLeaderboardFilterType_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.LeaderboardFilterType ppfLeaderboardFilterType_FromString(string str) + { + var __ret = __Internal.ppfLeaderboardFilterType_FromString(str); + return __ret; + } + } + + /// From where to start returning leaderboard entries. + public enum LeaderboardStartAt + { + /// To return entries from top 1. + Top = 0, + /// To place the current logged-in user's entry in the middle of the list on the first page. For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, the ranks displayed on the first page will be top 3, 4, 5, 6, and 7. Top 1 and 2 will not be displayed, and top 8, 9, and 10 will be displayed on the second page. + CenteredOnViewer = 1, + /// To place the current logged-in user's entry on the top of the list on the first page. For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, the ranks displayed on the first page will be top 5, 6, 7, 8, and 9. Top 1, 2, 3, and 4 will not be displayed, and top 10 will be displayed on the second page. + CenteredOnViewerOrTop = 2, + /// To returns an empty list. + Unknown = 3 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfLeaderboardStartAt_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfLeaderboardStartAt_ToString(global::Pico.Platform.LeaderboardStartAt value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfLeaderboardStartAt_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.LeaderboardStartAt ppfLeaderboardStartAt_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfLeaderboardStartAt_ToString(global::Pico.Platform.LeaderboardStartAt value) + { + var __ret = __Internal.ppfLeaderboardStartAt_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.LeaderboardStartAt ppfLeaderboardStartAt_FromString(string str) + { + var __ret = __Internal.ppfLeaderboardStartAt_FromString(str); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardUpdateStatus_GetDidUpdate", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_LeaderboardUpdateStatus_GetDidUpdate(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardUpdateStatus_GetUpdatedChallengeId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_LeaderboardUpdateStatus_GetUpdatedChallengeId(__IntPtr obj, uint index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_LeaderboardUpdateStatus_GetUpdatedChallengeIdsSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_LeaderboardUpdateStatus_GetUpdatedChallengeIdsSize(__IntPtr obj); + } + + public static bool ppf_LeaderboardUpdateStatus_GetDidUpdate(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardUpdateStatus_GetDidUpdate(obj); + return __ret; + } + + public static ulong ppf_LeaderboardUpdateStatus_GetUpdatedChallengeId(__IntPtr obj, uint index) + { + var __ret = __Internal.ppf_LeaderboardUpdateStatus_GetUpdatedChallengeId(obj, index); + return __ret; + } + + public static uint ppf_LeaderboardUpdateStatus_GetUpdatedChallengeIdsSize(__IntPtr obj) + { + var __ret = __Internal.ppf_LeaderboardUpdateStatus_GetUpdatedChallengeIdsSize(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidate_GetCanMatch", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_MatchmakingAdminSnapshotCandidate_GetCanMatch(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidate_GetMyTotalScore", CallingConvention = __CallingConvention.Cdecl)] + internal static extern double ppf_MatchmakingAdminSnapshotCandidate_GetMyTotalScore(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidate_GetTheirCurrentThreshold", CallingConvention = __CallingConvention.Cdecl)] + internal static extern double ppf_MatchmakingAdminSnapshotCandidate_GetTheirCurrentThreshold(__IntPtr obj); + } + + public static bool ppf_MatchmakingAdminSnapshotCandidate_GetCanMatch(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidate_GetCanMatch(obj); + return __ret; + } + + public static double ppf_MatchmakingAdminSnapshotCandidate_GetMyTotalScore(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidate_GetMyTotalScore(obj); + return __ret; + } + + public static double ppf_MatchmakingAdminSnapshotCandidate_GetTheirCurrentThreshold(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidate_GetTheirCurrentThreshold(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidateArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidateArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshotCandidateArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetTotalCount(__IntPtr obj); + } + + public static __IntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidateArray_GetElement(obj, index); + return __ret; + } + + public static UIntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidateArray_GetSize(obj); + return __ret; + } + + public static UIntPtr ppf_MatchmakingAdminSnapshotCandidateArray_GetTotalCount(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingAdminSnapshotCandidateArray_GetTotalCount(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshot_GetCandidates", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingAdminSnapshot_GetCandidates(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingAdminSnapshot_GetMyCurrentThreshold", CallingConvention = __CallingConvention.Cdecl)] + internal static extern double ppf_MatchmakingAdminSnapshot_GetMyCurrentThreshold(__IntPtr obj); + } + + public static __IntPtr ppf_MatchmakingAdminSnapshot_GetCandidates(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingAdminSnapshot_GetCandidates(obj); + return __ret; + } + + public static double ppf_MatchmakingAdminSnapshot_GetMyCurrentThreshold(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingAdminSnapshot_GetMyCurrentThreshold(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetAdminSnapshot", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingEnqueueResult_GetAdminSnapshot(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetAverageWait", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_MatchmakingEnqueueResult_GetAverageWait(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetMatchesInLastHourCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_MatchmakingEnqueueResult_GetMatchesInLastHourCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetMaxExpectedWait", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_MatchmakingEnqueueResult_GetMaxExpectedWait(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetRecentMatchPercentage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_MatchmakingEnqueueResult_GetRecentMatchPercentage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResult_GetPool", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingEnqueueResult_GetPool(__IntPtr obj); + } + + public static __IntPtr ppf_MatchmakingEnqueueResult_GetAdminSnapshot(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetAdminSnapshot(obj); + return __ret; + } + + public static uint ppf_MatchmakingEnqueueResult_GetAverageWait(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetAverageWait(obj); + return __ret; + } + + public static uint ppf_MatchmakingEnqueueResult_GetMatchesInLastHourCount(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetMatchesInLastHourCount(obj); + return __ret; + } + + public static uint ppf_MatchmakingEnqueueResult_GetMaxExpectedWait(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetMaxExpectedWait(obj); + return __ret; + } + + public static uint ppf_MatchmakingEnqueueResult_GetRecentMatchPercentage(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetRecentMatchPercentage(obj); + return __ret; + } + + public static string ppf_MatchmakingEnqueueResult_GetPool(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingEnqueueResult_GetPool(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + /// The room's joinability. + public enum RoomJoinability + { + /// Unknown + Unknown = 0, + /// The user is already in the room. + AreIn = 1, + /// The user is kicked out of the room. + AreKicked = 2, + /// Others can join the room. + CanJoin = 3, + /// The room is full. + IsFull = 4, + /// (Not available, do not use it) + NoViewer = 5, + /// The room is not allowed to be joined. + PolicyPrevents = 6 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfRoomJoinability_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfRoomJoinability_ToString(global::Pico.Platform.RoomJoinability value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfRoomJoinability_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RoomJoinability ppfRoomJoinability_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfRoomJoinability_ToString(global::Pico.Platform.RoomJoinability value) + { + var __ret = __Internal.ppfRoomJoinability_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.RoomJoinability ppfRoomJoinability_FromString(string str) + { + var __ret = __Internal.ppfRoomJoinability_FromString(str); + return __ret; + } + } + + /// The room's join policy, which determines who are allowed to join the room. + public enum RoomJoinPolicy + { + /// No join policy. + None = 0, + /// Anyone is allowed to join the room. + Everyone = 1, + /// Only the friends of the users who are already in the room are allowed to join. + FriendsOfMembers = 2, + /// Only the friends of the room owner are allowed to join the room. + FriendsOfOwner = 3, + /// Only those who have been invited are allowed to join the room. + InvitedUsers = 4, + /// No join policy. + Unknown = 5 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfRoomJoinPolicy_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfRoomJoinPolicy_ToString(global::Pico.Platform.RoomJoinPolicy value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfRoomJoinPolicy_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RoomJoinPolicy ppfRoomJoinPolicy_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfRoomJoinPolicy_ToString(global::Pico.Platform.RoomJoinPolicy value) + { + var __ret = __Internal.ppfRoomJoinPolicy_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.RoomJoinPolicy ppfRoomJoinPolicy_FromString(string str) + { + var __ret = __Internal.ppfRoomJoinPolicy_FromString(str); + return __ret; + } + } + + /// The type of the room. + public enum RoomType + { + /// Unknown. + Unknown = 0, + /// Matchmaking room. + Matchmaking = 1, + /// Moderated room. + Moderated = 2, + /// Private room. + Private = 3, + /// Named room. + Named = 4 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfRoomType_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfRoomType_ToString(global::Pico.Platform.RoomType value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfRoomType_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RoomType ppfRoomType_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfRoomType_ToString(global::Pico.Platform.RoomType value) + { + var __ret = __Internal.ppfRoomType_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.RoomType ppfRoomType_FromString(string str) + { + var __ret = __Internal.ppfRoomType_FromString(str); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetDataStore", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Room_GetDataStore(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetOwner", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Room_GetOwner(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Room_GetName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetUsers", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Room_GetUsers(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetDescription", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Room_GetDescription(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetIsMembershipLocked", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_Room_GetIsMembershipLocked(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetJoinPolicy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RoomJoinPolicy ppf_Room_GetJoinPolicy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetJoinability", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RoomJoinability ppf_Room_GetJoinability(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetMaxUsers", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_Room_GetMaxUsers(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RoomType ppf_Room_GetType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetPlayerNumber", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_Room_GetPlayerNumber(__IntPtr obj); + } + + public static __IntPtr ppf_Room_GetDataStore(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetDataStore(obj); + return __ret; + } + + public static __IntPtr ppf_Room_GetOwner(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetOwner(obj); + return __ret; + } + + public static string ppf_Room_GetName(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static __IntPtr ppf_Room_GetUsers(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetUsers(obj); + return __ret; + } + + public static string ppf_Room_GetDescription(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetDescription(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static ulong ppf_Room_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetID(obj); + return __ret; + } + + public static bool ppf_Room_GetIsMembershipLocked(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetIsMembershipLocked(obj); + return __ret; + } + + public static global::Pico.Platform.RoomJoinPolicy ppf_Room_GetJoinPolicy(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetJoinPolicy(obj); + return __ret; + } + + public static global::Pico.Platform.RoomJoinability ppf_Room_GetJoinability(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetJoinability(obj); + return __ret; + } + + public static uint ppf_Room_GetMaxUsers(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetMaxUsers(obj); + return __ret; + } + + public static global::Pico.Platform.RoomType ppf_Room_GetType(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetType(obj); + return __ret; + } + + public static uint ppf_Room_GetPlayerNumber(__IntPtr obj) + { + var __ret = __Internal.ppf_Room_GetPlayerNumber(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoom_GetPingTime", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_MatchmakingRoom_GetPingTime(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoom_GetRoom", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingRoom_GetRoom(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoom_HasPingTime", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_MatchmakingRoom_HasPingTime(__IntPtr obj); + } + + public static uint ppf_MatchmakingRoom_GetPingTime(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingRoom_GetPingTime(obj); + return __ret; + } + + public static __IntPtr ppf_MatchmakingRoom_GetRoom(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingRoom_GetRoom(obj); + return __ret; + } + + public static bool ppf_MatchmakingRoom_HasPingTime(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingRoom_HasPingTime(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoomArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingRoomArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoomArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_MatchmakingRoomArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingRoomArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_MatchmakingRoomArray_GetTotalCount(__IntPtr obj); + } + + public static __IntPtr ppf_MatchmakingRoomArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_MatchmakingRoomArray_GetElement(obj, index); + return __ret; + } + + public static UIntPtr ppf_MatchmakingRoomArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingRoomArray_GetSize(obj); + return __ret; + } + + public static int ppf_MatchmakingRoomArray_GetTotalCount(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingRoomArray_GetTotalCount(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingBrowseResult_GetEnqueueResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingBrowseResult_GetEnqueueResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingBrowseResult_GetRooms", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingBrowseResult_GetRooms(__IntPtr obj); + } + + public static __IntPtr ppf_MatchmakingBrowseResult_GetEnqueueResult(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingBrowseResult_GetEnqueueResult(obj); + return __ret; + } + + public static __IntPtr ppf_MatchmakingBrowseResult_GetRooms(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingBrowseResult_GetRooms(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResultAndRoom_GetMatchmakingEnqueueResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingEnqueueResultAndRoom_GetMatchmakingEnqueueResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingEnqueueResultAndRoom_GetRoom", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingEnqueueResultAndRoom_GetRoom(__IntPtr obj); + } + + public static __IntPtr ppf_MatchmakingEnqueueResultAndRoom_GetMatchmakingEnqueueResult(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingEnqueueResultAndRoom_GetMatchmakingEnqueueResult(obj); + return __ret; + } + + public static __IntPtr ppf_MatchmakingEnqueueResultAndRoom_GetRoom(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingEnqueueResultAndRoom_GetRoom(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_MatchmakingOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_Destroy(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetCreateRoomDataStoreString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_SetCreateRoomDataStoreString(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_ClearCreateRoomDataStore", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_ClearCreateRoomDataStore(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetCreateRoomJoinPolicy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_SetCreateRoomJoinPolicy(__IntPtr handle, global::Pico.Platform.RoomJoinPolicy value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetCreateRoomMaxUsers", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_SetCreateRoomMaxUsers(__IntPtr handle, uint value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_ClearEnqueueAdditionalUsers", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_ClearEnqueueAdditionalUsers(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetEnqueueDataSettingsInt", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_SetEnqueueDataSettingsInt(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key, int value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetEnqueueDataSettingsDouble", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_SetEnqueueDataSettingsDouble(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key, double value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetEnqueueDataSettingsString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_SetEnqueueDataSettingsString(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_ClearEnqueueDataSettings", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_ClearEnqueueDataSettings(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetEnqueueIsDebug", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_SetEnqueueIsDebug(__IntPtr handle, bool value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingOptions_SetEnqueueQueryKey", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_MatchmakingOptions_SetEnqueueQueryKey(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + } + + public static __IntPtr ppf_MatchmakingOptions_Create() + { + var __ret = __Internal.ppf_MatchmakingOptions_Create(); + return __ret; + } + + public static void ppf_MatchmakingOptions_Destroy(__IntPtr handle) + { + __Internal.ppf_MatchmakingOptions_Destroy(handle); + } + + public static void ppf_MatchmakingOptions_SetCreateRoomDataStoreString(__IntPtr handle, string key, string value) + { + __Internal.ppf_MatchmakingOptions_SetCreateRoomDataStoreString(handle, key, value); + } + + public static void ppf_MatchmakingOptions_ClearCreateRoomDataStore(__IntPtr handle) + { + __Internal.ppf_MatchmakingOptions_ClearCreateRoomDataStore(handle); + } + + public static void ppf_MatchmakingOptions_SetCreateRoomJoinPolicy(__IntPtr handle, global::Pico.Platform.RoomJoinPolicy value) + { + __Internal.ppf_MatchmakingOptions_SetCreateRoomJoinPolicy(handle, value); + } + + public static void ppf_MatchmakingOptions_SetCreateRoomMaxUsers(__IntPtr handle, uint value) + { + __Internal.ppf_MatchmakingOptions_SetCreateRoomMaxUsers(handle, value); + } + + public static void ppf_MatchmakingOptions_ClearEnqueueAdditionalUsers(__IntPtr handle) + { + __Internal.ppf_MatchmakingOptions_ClearEnqueueAdditionalUsers(handle); + } + + public static void ppf_MatchmakingOptions_SetEnqueueDataSettingsInt(__IntPtr handle, string key, int value) + { + __Internal.ppf_MatchmakingOptions_SetEnqueueDataSettingsInt(handle, key, value); + } + + public static void ppf_MatchmakingOptions_SetEnqueueDataSettingsDouble(__IntPtr handle, string key, double value) + { + __Internal.ppf_MatchmakingOptions_SetEnqueueDataSettingsDouble(handle, key, value); + } + + public static void ppf_MatchmakingOptions_SetEnqueueDataSettingsString(__IntPtr handle, string key, string value) + { + __Internal.ppf_MatchmakingOptions_SetEnqueueDataSettingsString(handle, key, value); + } + + public static void ppf_MatchmakingOptions_ClearEnqueueDataSettings(__IntPtr handle) + { + __Internal.ppf_MatchmakingOptions_ClearEnqueueDataSettings(handle); + } + + public static void ppf_MatchmakingOptions_SetEnqueueIsDebug(__IntPtr handle, bool value) + { + __Internal.ppf_MatchmakingOptions_SetEnqueueIsDebug(handle, value); + } + + public static void ppf_MatchmakingOptions_SetEnqueueQueryKey(__IntPtr handle, string value) + { + __Internal.ppf_MatchmakingOptions_SetEnqueueQueryKey(handle, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetDrawCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_MatchmakingStats_GetDrawCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetLossCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_MatchmakingStats_GetLossCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetSkillLevel", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_MatchmakingStats_GetSkillLevel(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetSkillMean", CallingConvention = __CallingConvention.Cdecl)] + internal static extern double ppf_MatchmakingStats_GetSkillMean(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetSkillStandardDeviation", CallingConvention = __CallingConvention.Cdecl)] + internal static extern double ppf_MatchmakingStats_GetSkillStandardDeviation(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_MatchmakingStats_GetWinCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern uint ppf_MatchmakingStats_GetWinCount(__IntPtr obj); + } + + public static uint ppf_MatchmakingStats_GetDrawCount(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingStats_GetDrawCount(obj); + return __ret; + } + + public static uint ppf_MatchmakingStats_GetLossCount(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingStats_GetLossCount(obj); + return __ret; + } + + public static uint ppf_MatchmakingStats_GetSkillLevel(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingStats_GetSkillLevel(obj); + return __ret; + } + + public static double ppf_MatchmakingStats_GetSkillMean(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingStats_GetSkillMean(obj); + return __ret; + } + + public static double ppf_MatchmakingStats_GetSkillStandardDeviation(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingStats_GetSkillStandardDeviation(obj); + return __ret; + } + + public static uint ppf_MatchmakingStats_GetWinCount(__IntPtr obj) + { + var __ret = __Internal.ppf_MatchmakingStats_GetWinCount(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoom_GetUser", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_UserAndRoom_GetUser(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoom_GetRoom", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_UserAndRoom_GetRoom(__IntPtr obj); + } + + public static __IntPtr ppf_UserAndRoom_GetUser(__IntPtr obj) + { + var __ret = __Internal.ppf_UserAndRoom_GetUser(obj); + return __ret; + } + + public static __IntPtr ppf_UserAndRoom_GetRoom(__IntPtr obj) + { + var __ret = __Internal.ppf_UserAndRoom_GetRoom(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoomArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_UserAndRoomArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoomArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_UserAndRoomArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoomArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_UserAndRoomArray_HasNextPage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserAndRoomArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_UserAndRoomArray_GetNextPageParam(__IntPtr obj); + } + + public static __IntPtr ppf_UserAndRoomArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_UserAndRoomArray_GetElement(obj, index); + return __ret; + } + + public static UIntPtr ppf_UserAndRoomArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_UserAndRoomArray_GetSize(obj); + return __ret; + } + + public static bool ppf_UserAndRoomArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_UserAndRoomArray_HasNextPage(obj); + return __ret; + } + + public static string ppf_UserAndRoomArray_GetNextPageParam(__IntPtr obj) + { + var __ret = __Internal.ppf_UserAndRoomArray_GetNextPageParam(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcJoinRoomResult_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcJoinRoomResult_GetRoomId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcJoinRoomResult_GetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcJoinRoomResult_GetUserId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcJoinRoomResult_GetErrorCode", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcJoinRoomResult_GetErrorCode(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcJoinRoomResult_GetElapsed", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcJoinRoomResult_GetElapsed(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcJoinRoomResult_GetJoinType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcJoinRoomType ppf_RtcJoinRoomResult_GetJoinType(__IntPtr obj); + } + + public static string ppf_RtcJoinRoomResult_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcJoinRoomResult_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_RtcJoinRoomResult_GetUserId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcJoinRoomResult_GetUserId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static int ppf_RtcJoinRoomResult_GetErrorCode(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcJoinRoomResult_GetErrorCode(obj); + return __ret; + } + + public static int ppf_RtcJoinRoomResult_GetElapsed(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcJoinRoomResult_GetElapsed(obj); + return __ret; + } + + public static global::Pico.Platform.RtcJoinRoomType ppf_RtcJoinRoomResult_GetJoinType(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcJoinRoomResult_GetJoinType(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLeaveRoomResult_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcLeaveRoomResult_GetRoomId(__IntPtr obj); + } + + public static string ppf_RtcLeaveRoomResult_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcLeaveRoomResult_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomStats_GetTotalDuration", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcRoomStats_GetTotalDuration(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomStats_GetUserCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcRoomStats_GetUserCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomStats_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRoomStats_GetRoomId(__IntPtr obj); + } + + public static int ppf_RtcRoomStats_GetTotalDuration(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRoomStats_GetTotalDuration(obj); + return __ret; + } + + public static int ppf_RtcRoomStats_GetUserCount(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRoomStats_GetUserCount(obj); + return __ret; + } + + public static string ppf_RtcRoomStats_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRoomStats_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserJoinInfo_GetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserJoinInfo_GetUserId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserJoinInfo_GetUserExtra", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserJoinInfo_GetUserExtra(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserJoinInfo_GetElapsed", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcUserJoinInfo_GetElapsed(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserJoinInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserJoinInfo_GetRoomId(__IntPtr obj); + } + + public static string ppf_RtcUserJoinInfo_GetUserId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserJoinInfo_GetUserId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_RtcUserJoinInfo_GetUserExtra(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserJoinInfo_GetUserExtra(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static int ppf_RtcUserJoinInfo_GetElapsed(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserJoinInfo_GetElapsed(obj); + return __ret; + } + + public static string ppf_RtcUserJoinInfo_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserJoinInfo_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserLeaveInfo_GetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserLeaveInfo_GetUserId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserLeaveInfo_GetOfflineReason", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcUserLeaveReasonType ppf_RtcUserLeaveInfo_GetOfflineReason(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserLeaveInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserLeaveInfo_GetRoomId(__IntPtr obj); + } + + public static string ppf_RtcUserLeaveInfo_GetUserId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserLeaveInfo_GetUserId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.RtcUserLeaveReasonType ppf_RtcUserLeaveInfo_GetOfflineReason(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserLeaveInfo_GetOfflineReason(obj); + return __ret; + } + + public static string ppf_RtcUserLeaveInfo_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserLeaveInfo_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomWarn_GetCode", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcRoomWarn_GetCode(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomWarn_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRoomWarn_GetRoomId(__IntPtr obj); + } + + public static int ppf_RtcRoomWarn_GetCode(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRoomWarn_GetCode(obj); + return __ret; + } + + public static string ppf_RtcRoomWarn_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRoomWarn_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomError_GetCode", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcRoomError_GetCode(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomError_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRoomError_GetRoomId(__IntPtr obj); + } + + public static int ppf_RtcRoomError_GetCode(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRoomError_GetCode(obj); + return __ret; + } + + public static string ppf_RtcRoomError_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRoomError_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMuteInfo_GetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcMuteInfo_GetUserId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMuteInfo_GetMuteState", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcMuteState ppf_RtcMuteInfo_GetMuteState(__IntPtr obj); + } + + public static string ppf_RtcMuteInfo_GetUserId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcMuteInfo_GetUserId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.RtcMuteState ppf_RtcMuteInfo_GetMuteState(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcMuteInfo_GetMuteState(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMediaDeviceChangeInfo_GetDeviceId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcMediaDeviceChangeInfo_GetDeviceId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMediaDeviceChangeInfo_GetDeviceType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcMediaDeviceType ppf_RtcMediaDeviceChangeInfo_GetDeviceType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMediaDeviceChangeInfo_GetDeviceState", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcMediaDeviceState ppf_RtcMediaDeviceChangeInfo_GetDeviceState(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMediaDeviceChangeInfo_GetDeviceError", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcMediaDeviceError ppf_RtcMediaDeviceChangeInfo_GetDeviceError(__IntPtr obj); + } + + public static string ppf_RtcMediaDeviceChangeInfo_GetDeviceId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcMediaDeviceChangeInfo_GetDeviceId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.RtcMediaDeviceType ppf_RtcMediaDeviceChangeInfo_GetDeviceType(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcMediaDeviceChangeInfo_GetDeviceType(obj); + return __ret; + } + + public static global::Pico.Platform.RtcMediaDeviceState ppf_RtcMediaDeviceChangeInfo_GetDeviceState(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcMediaDeviceChangeInfo_GetDeviceState(obj); + return __ret; + } + + public static global::Pico.Platform.RtcMediaDeviceError ppf_RtcMediaDeviceChangeInfo_GetDeviceError(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcMediaDeviceChangeInfo_GetDeviceError(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioPropertyInfo_GetVolume", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcAudioPropertyInfo_GetVolume(__IntPtr obj); + } + + public static int ppf_RtcAudioPropertyInfo_GetVolume(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcAudioPropertyInfo_GetVolume(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalAudioPropertiesInfo_GetStreamIndex", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcStreamIndex ppf_RtcLocalAudioPropertiesInfo_GetStreamIndex(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalAudioPropertiesInfo_GetAudioPropertyInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcLocalAudioPropertiesInfo_GetAudioPropertyInfo(__IntPtr obj); + } + + public static global::Pico.Platform.RtcStreamIndex ppf_RtcLocalAudioPropertiesInfo_GetStreamIndex(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcLocalAudioPropertiesInfo_GetStreamIndex(obj); + return __ret; + } + + public static __IntPtr ppf_RtcLocalAudioPropertiesInfo_GetAudioPropertyInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcLocalAudioPropertiesInfo_GetAudioPropertyInfo(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfos", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfos(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfosSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfosSize(__IntPtr obj); + } + + public static __IntPtr ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfos(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfos(obj, index); + return __ret; + } + + public static UIntPtr ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfosSize(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfosSize(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteStreamKey_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRemoteStreamKey_GetRoomId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteStreamKey_GetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRemoteStreamKey_GetUserId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteStreamKey_GetStreamIndex", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcStreamIndex ppf_RtcRemoteStreamKey_GetStreamIndex(__IntPtr obj); + } + + public static string ppf_RtcRemoteStreamKey_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRemoteStreamKey_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_RtcRemoteStreamKey_GetUserId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRemoteStreamKey_GetUserId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.RtcStreamIndex ppf_RtcRemoteStreamKey_GetStreamIndex(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRemoteStreamKey_GetStreamIndex(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteAudioPropertiesInfo_GetStreamKey", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRemoteAudioPropertiesInfo_GetStreamKey(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteAudioPropertiesInfo_GetAudioPropertiesInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRemoteAudioPropertiesInfo_GetAudioPropertiesInfo(__IntPtr obj); + } + + public static __IntPtr ppf_RtcRemoteAudioPropertiesInfo_GetStreamKey(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRemoteAudioPropertiesInfo_GetStreamKey(obj); + return __ret; + } + + public static __IntPtr ppf_RtcRemoteAudioPropertiesInfo_GetAudioPropertiesInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRemoteAudioPropertiesInfo_GetAudioPropertiesInfo(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfos", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfos(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfosSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfosSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRemoteAudioPropertiesReport_GetTotalRemoteVolume", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcRemoteAudioPropertiesReport_GetTotalRemoteVolume(__IntPtr obj); + } + + public static __IntPtr ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfos(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfos(obj, index); + return __ret; + } + + public static UIntPtr ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfosSize(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfosSize(obj); + return __ret; + } + + public static int ppf_RtcRemoteAudioPropertiesReport_GetTotalRemoteVolume(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRemoteAudioPropertiesReport_GetTotalRemoteVolume(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomMessageReceived_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRoomMessageReceived_GetRoomId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomMessageReceived_GetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRoomMessageReceived_GetUserId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcRoomMessageReceived_GetMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcRoomMessageReceived_GetMessage(__IntPtr obj); + } + + public static string ppf_RtcRoomMessageReceived_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRoomMessageReceived_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_RtcRoomMessageReceived_GetUserId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRoomMessageReceived_GetUserId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_RtcRoomMessageReceived_GetMessage(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcRoomMessageReceived_GetMessage(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcBinaryMessageReceived_GetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcBinaryMessageReceived_GetUserId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcBinaryMessageReceived_GetData", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcBinaryMessageReceived_GetData(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcBinaryMessageReceived_GetLength", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcBinaryMessageReceived_GetLength(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcBinaryMessageReceived_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcBinaryMessageReceived_GetRoomId(__IntPtr obj); + } + + public static string ppf_RtcBinaryMessageReceived_GetUserId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcBinaryMessageReceived_GetUserId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static __IntPtr ppf_RtcBinaryMessageReceived_GetData(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcBinaryMessageReceived_GetData(obj); + return __ret; + } + + public static int ppf_RtcBinaryMessageReceived_GetLength(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcBinaryMessageReceived_GetLength(obj); + return __ret; + } + + public static string ppf_RtcBinaryMessageReceived_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcBinaryMessageReceived_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfo_GetStreamKey", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcStreamSyncInfo_GetStreamKey(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfo_GetStreamType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcSyncInfoStreamType ppf_RtcStreamSyncInfo_GetStreamType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfo_GetData", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcStreamSyncInfo_GetData(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcStreamSyncInfo_GetLength", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcStreamSyncInfo_GetLength(__IntPtr obj); + } + + public static __IntPtr ppf_RtcStreamSyncInfo_GetStreamKey(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcStreamSyncInfo_GetStreamKey(obj); + return __ret; + } + + public static global::Pico.Platform.RtcSyncInfoStreamType ppf_RtcStreamSyncInfo_GetStreamType(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcStreamSyncInfo_GetStreamType(obj); + return __ret; + } + + public static __IntPtr ppf_RtcStreamSyncInfo_GetData(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcStreamSyncInfo_GetData(obj); + return __ret; + } + + public static int ppf_RtcStreamSyncInfo_GetLength(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcStreamSyncInfo_GetLength(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcFirstLocalVideoFrameCapturedInfo_GetStreamIndex", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcStreamIndex ppf_RtcFirstLocalVideoFrameCapturedInfo_GetStreamIndex(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcFirstLocalVideoFrameCapturedInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcFirstLocalVideoFrameCapturedInfo_GetRoomId(__IntPtr obj); + } + + public static global::Pico.Platform.RtcStreamIndex ppf_RtcFirstLocalVideoFrameCapturedInfo_GetStreamIndex(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcFirstLocalVideoFrameCapturedInfo_GetStreamIndex(obj); + return __ret; + } + + public static string ppf_RtcFirstLocalVideoFrameCapturedInfo_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcFirstLocalVideoFrameCapturedInfo_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalVideoSizeChangeInfo_GetStreamIndex", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcStreamIndex ppf_RtcLocalVideoSizeChangeInfo_GetStreamIndex(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcLocalVideoSizeChangeInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcLocalVideoSizeChangeInfo_GetRoomId(__IntPtr obj); + } + + public static global::Pico.Platform.RtcStreamIndex ppf_RtcLocalVideoSizeChangeInfo_GetStreamIndex(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcLocalVideoSizeChangeInfo_GetStreamIndex(obj); + return __ret; + } + + public static string ppf_RtcLocalVideoSizeChangeInfo_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcLocalVideoSizeChangeInfo_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserPublishInfo_GetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserPublishInfo_GetUserId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserPublishInfo_GetMediaStreamType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcMediaStreamType ppf_RtcUserPublishInfo_GetMediaStreamType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserPublishInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserPublishInfo_GetRoomId(__IntPtr obj); + } + + public static string ppf_RtcUserPublishInfo_GetUserId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserPublishInfo_GetUserId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.RtcMediaStreamType ppf_RtcUserPublishInfo_GetMediaStreamType(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserPublishInfo_GetMediaStreamType(obj); + return __ret; + } + + public static string ppf_RtcUserPublishInfo_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserPublishInfo_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserUnPublishInfo_GetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserUnPublishInfo_GetUserId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserUnPublishInfo_GetMediaStreamType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcMediaStreamType ppf_RtcUserUnPublishInfo_GetMediaStreamType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserUnPublishInfo_GetReason", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcStreamRemoveReason ppf_RtcUserUnPublishInfo_GetReason(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserUnPublishInfo_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserUnPublishInfo_GetRoomId(__IntPtr obj); + } + + public static string ppf_RtcUserUnPublishInfo_GetUserId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserUnPublishInfo_GetUserId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.RtcMediaStreamType ppf_RtcUserUnPublishInfo_GetMediaStreamType(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserUnPublishInfo_GetMediaStreamType(obj); + return __ret; + } + + public static global::Pico.Platform.RtcStreamRemoveReason ppf_RtcUserUnPublishInfo_GetReason(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserUnPublishInfo_GetReason(obj); + return __ret; + } + + public static string ppf_RtcUserUnPublishInfo_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserUnPublishInfo_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RoomArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_RoomArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RoomArray_GetTotalCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_RoomArray_HasNextPage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_GetPageSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RoomArray_GetPageSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomArray_GetPageIndex", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RoomArray_GetPageIndex(__IntPtr obj); + } + + public static __IntPtr ppf_RoomArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_RoomArray_GetElement(obj, index); + return __ret; + } + + public static UIntPtr ppf_RoomArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomArray_GetSize(obj); + return __ret; + } + + public static int ppf_RoomArray_GetTotalCount(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomArray_GetTotalCount(obj); + return __ret; + } + + public static bool ppf_RoomArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomArray_HasNextPage(obj); + return __ret; + } + + public static int ppf_RoomArray_GetPageSize(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomArray_GetPageSize(obj); + return __ret; + } + + public static int ppf_RoomArray_GetPageIndex(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomArray_GetPageIndex(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserMessageReceived_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserMessageReceived_GetRoomId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserMessageReceived_GetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserMessageReceived_GetUserId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcUserMessageReceived_GetMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcUserMessageReceived_GetMessage(__IntPtr obj); + } + + public static string ppf_RtcUserMessageReceived_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserMessageReceived_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_RtcUserMessageReceived_GetUserId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserMessageReceived_GetUserId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_RtcUserMessageReceived_GetMessage(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcUserMessageReceived_GetMessage(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMessageSendResult_GetMessageId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_RtcMessageSendResult_GetMessageId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMessageSendResult_GetError", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RtcMessageSendResult_GetError(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcMessageSendResult_GetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcMessageSendResult_GetRoomId(__IntPtr obj); + } + + public static long ppf_RtcMessageSendResult_GetMessageId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcMessageSendResult_GetMessageId(obj); + return __ret; + } + + public static int ppf_RtcMessageSendResult_GetError(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcMessageSendResult_GetError(obj); + return __ret; + } + + public static string ppf_RtcMessageSendResult_GetRoomId(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcMessageSendResult_GetRoomId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_CloudStorage_StartNewBackup", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_CloudStorage_StartNewBackup(); + } + + public static ulong ppf_CloudStorage_StartNewBackup() + { + var __ret = __Internal.ppf_CloudStorage_StartNewBackup(); + return __ret; + } + } + + /// The initialization result of the game service. + public enum GameInitializeResult + { + /// Successfully initialized. + Success = 0, + /// Not initialized. + Uninitialized = 1, + /// Network error. + NetworkError = 2, + /// Invalid credentials. + InvalidCredentials = 3, + /// Game service is not available. + ServiceNotAvaliable = 4, + /// Unknown. + Unknown = 5, + /// Invalid server address. + InvalidServerAddr = 6, + /// Duplicate initialization. + DupInitialize = 7 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfPlatformGameInitializeResult_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfPlatformGameInitializeResult_ToString(global::Pico.Platform.GameInitializeResult value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfPlatformGameInitializeResult_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.GameInitializeResult ppfPlatformGameInitializeResult_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfPlatformGameInitializeResult_ToString(global::Pico.Platform.GameInitializeResult value) + { + var __ret = __Internal.ppfPlatformGameInitializeResult_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.GameInitializeResult ppfPlatformGameInitializeResult_FromString(string str) + { + var __ret = __Internal.ppfPlatformGameInitializeResult_FromString(str); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_PlatformGameInitialize_GetResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.GameInitializeResult ppf_PlatformGameInitialize_GetResult(__IntPtr obj); + } + + public static global::Pico.Platform.GameInitializeResult ppf_PlatformGameInitialize_GetResult(__IntPtr obj) + { + var __ret = __Internal.ppf_PlatformGameInitialize_GetResult(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_SendInvitesResult_GetInvites", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SendInvitesResult_GetInvites(__IntPtr obj); + } + + public static __IntPtr ppf_SendInvitesResult_GetInvites(__IntPtr obj) + { + var __ret = __Internal.ppf_SendInvitesResult_GetInvites(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceJoinIntent_GetDeeplinkMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PresenceJoinIntent_GetDeeplinkMessage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceJoinIntent_GetDestinationApiName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PresenceJoinIntent_GetDestinationApiName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceJoinIntent_GetLobbySessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PresenceJoinIntent_GetLobbySessionId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceJoinIntent_GetMatchSessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PresenceJoinIntent_GetMatchSessionId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceJoinIntent_GetExtra", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PresenceJoinIntent_GetExtra(__IntPtr obj); + } + + public static string ppf_PresenceJoinIntent_GetDeeplinkMessage(__IntPtr obj) + { + var __ret = __Internal.ppf_PresenceJoinIntent_GetDeeplinkMessage(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_PresenceJoinIntent_GetDestinationApiName(__IntPtr obj) + { + var __ret = __Internal.ppf_PresenceJoinIntent_GetDestinationApiName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_PresenceJoinIntent_GetLobbySessionId(__IntPtr obj) + { + var __ret = __Internal.ppf_PresenceJoinIntent_GetLobbySessionId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_PresenceJoinIntent_GetMatchSessionId(__IntPtr obj) + { + var __ret = __Internal.ppf_PresenceJoinIntent_GetMatchSessionId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_PresenceJoinIntent_GetExtra(__IntPtr obj) + { + var __ret = __Internal.ppf_PresenceJoinIntent_GetExtra(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotification_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_RoomInviteNotification_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotification_GetRoomID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_RoomInviteNotification_GetRoomID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotification_GetSenderID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RoomInviteNotification_GetSenderID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotification_GetSentTime", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_RoomInviteNotification_GetSentTime(__IntPtr obj); + } + + public static ulong ppf_RoomInviteNotification_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomInviteNotification_GetID(obj); + return __ret; + } + + public static ulong ppf_RoomInviteNotification_GetRoomID(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomInviteNotification_GetRoomID(obj); + return __ret; + } + + public static string ppf_RoomInviteNotification_GetSenderID(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomInviteNotification_GetSenderID(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static ulong ppf_RoomInviteNotification_GetSentTime(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomInviteNotification_GetSentTime(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotificationArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RoomInviteNotificationArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotificationArray_GetNextUrl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RoomInviteNotificationArray_GetNextUrl(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotificationArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_RoomInviteNotificationArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotificationArray_GetTotalCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RoomInviteNotificationArray_GetTotalCount(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomInviteNotificationArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_RoomInviteNotificationArray_HasNextPage(__IntPtr obj); + } + + public static __IntPtr ppf_RoomInviteNotificationArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_RoomInviteNotificationArray_GetElement(obj, index); + return __ret; + } + + public static string ppf_RoomInviteNotificationArray_GetNextUrl(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomInviteNotificationArray_GetNextUrl(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_RoomInviteNotificationArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomInviteNotificationArray_GetSize(obj); + return __ret; + } + + public static int ppf_RoomInviteNotificationArray_GetTotalCount(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomInviteNotificationArray_GetTotalCount(obj); + return __ret; + } + + public static bool ppf_RoomInviteNotificationArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_RoomInviteNotificationArray_HasNextPage(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetGender", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.Gender ppf_SportUserInfo_GetGender(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetBirthday", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_SportUserInfo_GetBirthday(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetStature", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_SportUserInfo_GetStature(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetWeight", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_SportUserInfo_GetWeight(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetSportLevel", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_SportUserInfo_GetSportLevel(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetDailyDurationInMinutes", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_SportUserInfo_GetDailyDurationInMinutes(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetDaysPerWeek", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_SportUserInfo_GetDaysPerWeek(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportUserInfo_GetSportTarget", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.SportTarget ppf_SportUserInfo_GetSportTarget(__IntPtr obj); + } + + public static global::Pico.Platform.Gender ppf_SportUserInfo_GetGender(__IntPtr obj) + { + var __ret = __Internal.ppf_SportUserInfo_GetGender(obj); + return __ret; + } + + public static long ppf_SportUserInfo_GetBirthday(__IntPtr obj) + { + var __ret = __Internal.ppf_SportUserInfo_GetBirthday(obj); + return __ret; + } + + public static int ppf_SportUserInfo_GetStature(__IntPtr obj) + { + var __ret = __Internal.ppf_SportUserInfo_GetStature(obj); + return __ret; + } + + public static int ppf_SportUserInfo_GetWeight(__IntPtr obj) + { + var __ret = __Internal.ppf_SportUserInfo_GetWeight(obj); + return __ret; + } + + public static int ppf_SportUserInfo_GetSportLevel(__IntPtr obj) + { + var __ret = __Internal.ppf_SportUserInfo_GetSportLevel(obj); + return __ret; + } + + public static int ppf_SportUserInfo_GetDailyDurationInMinutes(__IntPtr obj) + { + var __ret = __Internal.ppf_SportUserInfo_GetDailyDurationInMinutes(obj); + return __ret; + } + + public static int ppf_SportUserInfo_GetDaysPerWeek(__IntPtr obj) + { + var __ret = __Internal.ppf_SportUserInfo_GetDaysPerWeek(obj); + return __ret; + } + + public static global::Pico.Platform.SportTarget ppf_SportUserInfo_GetSportTarget(__IntPtr obj) + { + var __ret = __Internal.ppf_SportUserInfo_GetSportTarget(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_SportDailySummary_GetId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetDate", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_SportDailySummary_GetDate(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetDurationInSeconds", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_SportDailySummary_GetDurationInSeconds(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetPlanDurationInMinutes", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_SportDailySummary_GetPlanDurationInMinutes(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetCalorie", CallingConvention = __CallingConvention.Cdecl)] + internal static extern double ppf_SportDailySummary_GetCalorie(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummary_GetPlanCalorie", CallingConvention = __CallingConvention.Cdecl)] + internal static extern double ppf_SportDailySummary_GetPlanCalorie(__IntPtr obj); + } + + public static long ppf_SportDailySummary_GetId(__IntPtr obj) + { + var __ret = __Internal.ppf_SportDailySummary_GetId(obj); + return __ret; + } + + public static long ppf_SportDailySummary_GetDate(__IntPtr obj) + { + var __ret = __Internal.ppf_SportDailySummary_GetDate(obj); + return __ret; + } + + public static int ppf_SportDailySummary_GetDurationInSeconds(__IntPtr obj) + { + var __ret = __Internal.ppf_SportDailySummary_GetDurationInSeconds(obj); + return __ret; + } + + public static int ppf_SportDailySummary_GetPlanDurationInMinutes(__IntPtr obj) + { + var __ret = __Internal.ppf_SportDailySummary_GetPlanDurationInMinutes(obj); + return __ret; + } + + public static double ppf_SportDailySummary_GetCalorie(__IntPtr obj) + { + var __ret = __Internal.ppf_SportDailySummary_GetCalorie(obj); + return __ret; + } + + public static double ppf_SportDailySummary_GetPlanCalorie(__IntPtr obj) + { + var __ret = __Internal.ppf_SportDailySummary_GetPlanCalorie(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummaryArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SportDailySummaryArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportDailySummaryArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_SportDailySummaryArray_GetSize(__IntPtr obj); + } + + public static __IntPtr ppf_SportDailySummaryArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_SportDailySummaryArray_GetElement(obj, index); + return __ret; + } + + public static UIntPtr ppf_SportDailySummaryArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_SportDailySummaryArray_GetSize(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportSummary_GetDurationInSeconds", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_SportSummary_GetDurationInSeconds(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportSummary_GetCalorie", CallingConvention = __CallingConvention.Cdecl)] + internal static extern double ppf_SportSummary_GetCalorie(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportSummary_GetStartTime", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_SportSummary_GetStartTime(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SportSummary_GetEndTime", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_SportSummary_GetEndTime(__IntPtr obj); + } + + public static long ppf_SportSummary_GetDurationInSeconds(__IntPtr obj) + { + var __ret = __Internal.ppf_SportSummary_GetDurationInSeconds(obj); + return __ret; + } + + public static double ppf_SportSummary_GetCalorie(__IntPtr obj) + { + var __ret = __Internal.ppf_SportSummary_GetCalorie(obj); + return __ret; + } + + public static long ppf_SportSummary_GetStartTime(__IntPtr obj) + { + var __ret = __Internal.ppf_SportSummary_GetStartTime(obj); + return __ret; + } + + public static long ppf_SportSummary_GetEndTime(__IntPtr obj) + { + var __ret = __Internal.ppf_SportSummary_GetEndTime(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetExpirationTime", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_Purchase_GetExpirationTime(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetGrantTime", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_Purchase_GetGrantTime(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Purchase_GetID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetSKU", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Purchase_GetSKU(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetIcon", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Purchase_GetIcon(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetAddonsType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.AddonsType ppf_Purchase_GetAddonsType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetOuterId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Purchase_GetOuterId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetCurrentPeriodType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.PeriodType ppf_Purchase_GetCurrentPeriodType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetNextPeriodType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.PeriodType ppf_Purchase_GetNextPeriodType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetNextPayTime", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_Purchase_GetNextPayTime(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetDiscountType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.DiscountType ppf_Purchase_GetDiscountType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Purchase_GetOrderComment", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Purchase_GetOrderComment(__IntPtr obj); + } + + public static long ppf_Purchase_GetExpirationTime(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetExpirationTime(obj); + return __ret; + } + + public static long ppf_Purchase_GetGrantTime(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetGrantTime(obj); + return __ret; + } + + public static string ppf_Purchase_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetID(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Purchase_GetSKU(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetSKU(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Purchase_GetIcon(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetIcon(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.AddonsType ppf_Purchase_GetAddonsType(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetAddonsType(obj); + return __ret; + } + + public static string ppf_Purchase_GetOuterId(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetOuterId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.PeriodType ppf_Purchase_GetCurrentPeriodType(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetCurrentPeriodType(obj); + return __ret; + } + + public static global::Pico.Platform.PeriodType ppf_Purchase_GetNextPeriodType(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetNextPeriodType(obj); + return __ret; + } + + public static long ppf_Purchase_GetNextPayTime(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetNextPayTime(obj); + return __ret; + } + + public static global::Pico.Platform.DiscountType ppf_Purchase_GetDiscountType(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetDiscountType(obj); + return __ret; + } + + public static string ppf_Purchase_GetOrderComment(__IntPtr obj) + { + var __ret = __Internal.ppf_Purchase_GetOrderComment(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_PurchaseArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PurchaseArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PurchaseArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_PurchaseArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PurchaseArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_PurchaseArray_HasNextPage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PurchaseArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PurchaseArray_GetNextPageParam(__IntPtr obj); + } + + public static __IntPtr ppf_PurchaseArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_PurchaseArray_GetElement(obj, index); + return __ret; + } + + public static UIntPtr ppf_PurchaseArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_PurchaseArray_GetSize(obj); + return __ret; + } + + public static bool ppf_PurchaseArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_PurchaseArray_HasNextPage(obj); + return __ret; + } + + public static string ppf_PurchaseArray_GetNextPageParam(__IntPtr obj) + { + var __ret = __Internal.ppf_PurchaseArray_GetNextPageParam(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetDescription", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Product_GetDescription(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetDetailDescription", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Product_GetDetailDescription(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetPrice", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Product_GetPrice(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetCurrency", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Product_GetCurrency(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Product_GetName(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetSKU", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Product_GetSKU(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetIcon", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Product_GetIcon(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetAddonsType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.AddonsType ppf_Product_GetAddonsType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetPeriodType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.PeriodType ppf_Product_GetPeriodType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetTrialPeriodUnit", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.PeriodType ppf_Product_GetTrialPeriodUnit(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetTrialPeriodValue", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_Product_GetTrialPeriodValue(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetOuterId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Product_GetOuterId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetOriginalPrice", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Product_GetOriginalPrice(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetGroupId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Product_GetGroupId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_GetLevel", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_Product_GetLevel(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Product_IsContinuous", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_Product_IsContinuous(__IntPtr obj); + } + + public static string ppf_Product_GetDescription(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetDescription(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Product_GetDetailDescription(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetDetailDescription(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Product_GetPrice(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetPrice(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Product_GetCurrency(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetCurrency(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Product_GetName(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetName(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Product_GetSKU(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetSKU(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Product_GetIcon(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetIcon(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.AddonsType ppf_Product_GetAddonsType(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetAddonsType(obj); + return __ret; + } + + public static global::Pico.Platform.PeriodType ppf_Product_GetPeriodType(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetPeriodType(obj); + return __ret; + } + + public static global::Pico.Platform.PeriodType ppf_Product_GetTrialPeriodUnit(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetTrialPeriodUnit(obj); + return __ret; + } + + public static int ppf_Product_GetTrialPeriodValue(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetTrialPeriodValue(obj); + return __ret; + } + + public static string ppf_Product_GetOuterId(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetOuterId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Product_GetOriginalPrice(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetOriginalPrice(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_Product_GetGroupId(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetGroupId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static int ppf_Product_GetLevel(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_GetLevel(obj); + return __ret; + } + + public static bool ppf_Product_IsContinuous(__IntPtr obj) + { + var __ret = __Internal.ppf_Product_IsContinuous(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ProductArray_GetElement", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ProductArray_GetElement(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ProductArray_GetSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_ProductArray_GetSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ProductArray_HasNextPage", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_ProductArray_HasNextPage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ProductArray_GetNextPageParam", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ProductArray_GetNextPageParam(__IntPtr obj); + } + + public static __IntPtr ppf_ProductArray_GetElement(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_ProductArray_GetElement(obj, index); + return __ret; + } + + public static UIntPtr ppf_ProductArray_GetSize(__IntPtr obj) + { + var __ret = __Internal.ppf_ProductArray_GetSize(obj); + return __ret; + } + + public static bool ppf_ProductArray_HasNextPage(__IntPtr obj) + { + var __ret = __Internal.ppf_ProductArray_HasNextPage(obj); + return __ret; + } + + public static string ppf_ProductArray_GetNextPageParam(__IntPtr obj) + { + var __ret = __Internal.ppf_ProductArray_GetNextPageParam(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_PermissionResult_GetAuthorizedPermissions", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PermissionResult_GetAuthorizedPermissions(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PermissionResult_GetAuthorizedPermissionsSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_PermissionResult_GetAuthorizedPermissionsSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PermissionResult_GetAccessToken", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PermissionResult_GetAccessToken(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PermissionResult_GetUserID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PermissionResult_GetUserID(__IntPtr obj); + } + + public static string ppf_PermissionResult_GetAuthorizedPermissions(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_PermissionResult_GetAuthorizedPermissions(obj, index); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static UIntPtr ppf_PermissionResult_GetAuthorizedPermissionsSize(__IntPtr obj) + { + var __ret = __Internal.ppf_PermissionResult_GetAuthorizedPermissionsSize(obj); + return __ret; + } + + public static string ppf_PermissionResult_GetAccessToken(__IntPtr obj) + { + var __ret = __Internal.ppf_PermissionResult_GetAccessToken(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_PermissionResult_GetUserID(__IntPtr obj) + { + var __ret = __Internal.ppf_PermissionResult_GetUserID(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetSKU", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SubscriptionStatus_GetSKU(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetOuterId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SubscriptionStatus_GetOuterId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetStartTime", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_SubscriptionStatus_GetStartTime(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetEndTime", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_SubscriptionStatus_GetEndTime(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetPeriodType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.PeriodType ppf_SubscriptionStatus_GetPeriodType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetEntitlementStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.EntitlementStatus ppf_SubscriptionStatus_GetEntitlementStatus(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetCancelReason", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.CancelReason ppf_SubscriptionStatus_GetCancelReason(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetIsFreeTrial", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_SubscriptionStatus_GetIsFreeTrial(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SubscriptionStatus_GetNextPeriod", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_SubscriptionStatus_GetNextPeriod(__IntPtr obj); + } + + public static string ppf_SubscriptionStatus_GetSKU(__IntPtr obj) + { + var __ret = __Internal.ppf_SubscriptionStatus_GetSKU(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_SubscriptionStatus_GetOuterId(__IntPtr obj) + { + var __ret = __Internal.ppf_SubscriptionStatus_GetOuterId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static long ppf_SubscriptionStatus_GetStartTime(__IntPtr obj) + { + var __ret = __Internal.ppf_SubscriptionStatus_GetStartTime(obj); + return __ret; + } + + public static long ppf_SubscriptionStatus_GetEndTime(__IntPtr obj) + { + var __ret = __Internal.ppf_SubscriptionStatus_GetEndTime(obj); + return __ret; + } + + public static global::Pico.Platform.PeriodType ppf_SubscriptionStatus_GetPeriodType(__IntPtr obj) + { + var __ret = __Internal.ppf_SubscriptionStatus_GetPeriodType(obj); + return __ret; + } + + public static global::Pico.Platform.EntitlementStatus ppf_SubscriptionStatus_GetEntitlementStatus(__IntPtr obj) + { + var __ret = __Internal.ppf_SubscriptionStatus_GetEntitlementStatus(obj); + return __ret; + } + + public static global::Pico.Platform.CancelReason ppf_SubscriptionStatus_GetCancelReason(__IntPtr obj) + { + var __ret = __Internal.ppf_SubscriptionStatus_GetCancelReason(obj); + return __ret; + } + + public static bool ppf_SubscriptionStatus_GetIsFreeTrial(__IntPtr obj) + { + var __ret = __Internal.ppf_SubscriptionStatus_GetIsFreeTrial(obj); + return __ret; + } + + public static int ppf_SubscriptionStatus_GetNextPeriod(__IntPtr obj) + { + var __ret = __Internal.ppf_SubscriptionStatus_GetNextPeriod(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserRelationResult_GetRelationsKey", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_UserRelationResult_GetRelationsKey(__IntPtr obj, int index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserRelationResult_GetRelationsValue", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.UserRelationType ppf_UserRelationResult_GetRelationsValue(__IntPtr obj, int index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_UserRelationResult_GetRelationsSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_UserRelationResult_GetRelationsSize(__IntPtr obj); + } + + public static string ppf_UserRelationResult_GetRelationsKey(__IntPtr obj, int index) + { + var __ret = __Internal.ppf_UserRelationResult_GetRelationsKey(obj, index); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.UserRelationType ppf_UserRelationResult_GetRelationsValue(__IntPtr obj, int index) + { + var __ret = __Internal.ppf_UserRelationResult_GetRelationsValue(obj, index); + return __ret; + } + + public static int ppf_UserRelationResult_GetRelationsSize(__IntPtr obj) + { + var __ret = __Internal.ppf_UserRelationResult_GetRelationsSize(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_SpeechError_GetMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SpeechError_GetMessage(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SpeechError_GetSessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SpeechError_GetSessionId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SpeechError_GetCode", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_SpeechError_GetCode(__IntPtr obj); + } + + public static string ppf_SpeechError_GetMessage(__IntPtr obj) + { + var __ret = __Internal.ppf_SpeechError_GetMessage(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_SpeechError_GetSessionId(__IntPtr obj) + { + var __ret = __Internal.ppf_SpeechError_GetSessionId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static int ppf_SpeechError_GetCode(__IntPtr obj) + { + var __ret = __Internal.ppf_SpeechError_GetCode(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_OrgScopedID_GetID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_OrgScopedID_GetID(__IntPtr obj); + } + + public static string ppf_OrgScopedID_GetID(__IntPtr obj) + { + var __ret = __Internal.ppf_OrgScopedID_GetID(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RecordInfo_GetVideoPath", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RecordInfo_GetVideoPath(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RecordInfo_GetJobId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RecordInfo_GetJobId(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RecordInfo_GetDurationInMilliSeconds", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RecordInfo_GetDurationInMilliSeconds(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RecordInfo_GetWidth", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RecordInfo_GetWidth(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RecordInfo_GetHeight", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_RecordInfo_GetHeight(__IntPtr obj); + } + + public static string ppf_RecordInfo_GetVideoPath(__IntPtr obj) + { + var __ret = __Internal.ppf_RecordInfo_GetVideoPath(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static string ppf_RecordInfo_GetJobId(__IntPtr obj) + { + var __ret = __Internal.ppf_RecordInfo_GetJobId(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static int ppf_RecordInfo_GetDurationInMilliSeconds(__IntPtr obj) + { + var __ret = __Internal.ppf_RecordInfo_GetDurationInMilliSeconds(obj); + return __ret; + } + + public static int ppf_RecordInfo_GetWidth(__IntPtr obj) + { + var __ret = __Internal.ppf_RecordInfo_GetWidth(obj); + return __ret; + } + + public static int ppf_RecordInfo_GetHeight(__IntPtr obj) + { + var __ret = __Internal.ppf_RecordInfo_GetHeight(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_SessionMedia_GetImages", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SessionMedia_GetImages(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SessionMedia_GetImagesSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_SessionMedia_GetImagesSize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SessionMedia_GetVideos", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_SessionMedia_GetVideos(__IntPtr obj, UIntPtr index); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_SessionMedia_GetVideosSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern UIntPtr ppf_SessionMedia_GetVideosSize(__IntPtr obj); + } + + public static __IntPtr ppf_SessionMedia_GetImages(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_SessionMedia_GetImages(obj, index); + return __ret; + } + + public static UIntPtr ppf_SessionMedia_GetImagesSize(__IntPtr obj) + { + var __ret = __Internal.ppf_SessionMedia_GetImagesSize(obj); + return __ret; + } + + public static __IntPtr ppf_SessionMedia_GetVideos(__IntPtr obj, UIntPtr index) + { + var __ret = __Internal.ppf_SessionMedia_GetVideos(obj, index); + return __ret; + } + + public static UIntPtr ppf_SessionMedia_GetVideosSize(__IntPtr obj) + { + var __ret = __Internal.ppf_SessionMedia_GetVideosSize(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetUser", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetUser(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetString(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetInt32", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_Message_GetInt32(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.MessageType ppf_Message_GetType(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetError", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetError(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_IsError", CallingConvention = __CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + internal static extern bool ppf_Message_IsError(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRequestID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Message_GetRequestID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetUserArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetUserArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetLaunchFriendRequestFlowResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetLaunchFriendRequestFlowResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetUserAndRoomArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetUserAndRoomArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetPermissionResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetPermissionResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetApplicationVersion", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetApplicationVersion(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetUserRelationResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetUserRelationResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSubscriptionStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetSubscriptionStatus(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetEntitlementCheckResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetEntitlementCheckResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcJoinRoomResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcJoinRoomResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcLeaveRoomResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcLeaveRoomResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcRoomStats", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcRoomStats(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcUserJoinInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcUserJoinInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcUserLeaveInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcUserLeaveInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcRoomWarn", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcRoomWarn(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcRoomError", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcRoomError(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcMuteInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcMuteInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcAudioPlaybackDevice", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcAudioPlaybackDevice ppf_Message_GetRtcAudioPlaybackDevice(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcMediaDeviceChangeInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcMediaDeviceChangeInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcLocalAudioPropertiesReport", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcLocalAudioPropertiesReport(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcRemoteAudioPropertiesReport", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcRemoteAudioPropertiesReport(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcRoomMessageReceived", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcRoomMessageReceived(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcUserMessageReceived", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcUserMessageReceived(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcBinaryMessageReceived", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcBinaryMessageReceived(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcStreamSyncInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcStreamSyncInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcFirstLocalVideoFrameCapturedInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcFirstLocalVideoFrameCapturedInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcLocalVideoSizeChangeInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcLocalVideoSizeChangeInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcMessageSendResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcMessageSendResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcUserPublishInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcUserPublishInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRtcUserUnPublishInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRtcUserUnPublishInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingAdminSnapshot", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetMatchmakingAdminSnapshot(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingBrowseResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetMatchmakingBrowseResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingBrowseCustomPageResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetMatchmakingBrowseCustomPageResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingEnqueueResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetMatchmakingEnqueueResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingEnqueueResultAndRoom", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetMatchmakingEnqueueResultAndRoom(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetMatchmakingStats", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetMatchmakingStats(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRoom", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRoom(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRoomArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRoomArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetPlatformGameInitialize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetPlatformGameInitialize(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetGameConnectionEvent", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.GameConnectionEvent ppf_Message_GetGameConnectionEvent(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetGameRequestFailedReason", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.GameRequestFailedReason ppf_Message_GetGameRequestFailedReason(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetApplicationInviteArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetApplicationInviteArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSendInvitesResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetSendInvitesResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetDestinationArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetDestinationArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetPresenceJoinIntent", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetPresenceJoinIntent(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRoomInviteNotificationArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRoomInviteNotificationArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetLeaderboardArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetLeaderboardArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetLeaderboardUpdateStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetLeaderboardUpdateStatus(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetLeaderboardEntryArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetLeaderboardEntryArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAchievementDefinitionArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAchievementDefinitionArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAchievementProgressArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAchievementProgressArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAchievementUpdate", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAchievementUpdate(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetChallenge", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetChallenge(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetChallengeArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetChallengeArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetChallengeEntryArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetChallengeEntryArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetPurchaseArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetPurchaseArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetProductArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetProductArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetPurchase", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetPurchase(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSportUserInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetSportUserInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSportDailySummaryArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetSportDailySummaryArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSportSummary", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetSportSummary(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetDetails", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAssetDetails(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetDetailsArray", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAssetDetailsArray(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetFileDeleteResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAssetFileDeleteResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetFileDownloadCancelResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAssetFileDownloadCancelResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetFileDownloadResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAssetFileDownloadResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetFileDownloadUpdate", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAssetFileDownloadUpdate(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAssetStatus(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAssetFileDeleteForSafety", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAssetFileDeleteForSafety(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetAsrResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetAsrResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSpeechError", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetSpeechError(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetDetectSensitiveResult", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetDetectSensitiveResult(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetOrgScopedID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetOrgScopedID(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetCaptureInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetCaptureInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetRecordInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetRecordInfo(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Message_GetSessionMedia", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_Message_GetSessionMedia(__IntPtr obj); + } + + public static __IntPtr ppf_Message_GetUser(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetUser(obj); + return __ret; + } + + public static string ppf_Message_GetString(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetString(obj); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static int ppf_Message_GetInt32(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetInt32(obj); + return __ret; + } + + public static global::Pico.Platform.MessageType ppf_Message_GetType(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetType(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetError(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetError(obj); + return __ret; + } + + public static bool ppf_Message_IsError(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_IsError(obj); + return __ret; + } + + public static ulong ppf_Message_GetRequestID(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRequestID(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetUserArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetUserArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetLaunchFriendRequestFlowResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetLaunchFriendRequestFlowResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetUserAndRoomArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetUserAndRoomArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetPermissionResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetPermissionResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetApplicationVersion(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetApplicationVersion(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetUserRelationResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetUserRelationResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetSubscriptionStatus(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetSubscriptionStatus(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetEntitlementCheckResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetEntitlementCheckResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcJoinRoomResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcJoinRoomResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcLeaveRoomResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcLeaveRoomResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcRoomStats(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcRoomStats(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcUserJoinInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcUserJoinInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcUserLeaveInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcUserLeaveInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcRoomWarn(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcRoomWarn(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcRoomError(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcRoomError(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcMuteInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcMuteInfo(obj); + return __ret; + } + + public static global::Pico.Platform.RtcAudioPlaybackDevice ppf_Message_GetRtcAudioPlaybackDevice(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcAudioPlaybackDevice(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcMediaDeviceChangeInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcMediaDeviceChangeInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcLocalAudioPropertiesReport(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcLocalAudioPropertiesReport(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcRemoteAudioPropertiesReport(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcRemoteAudioPropertiesReport(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcRoomMessageReceived(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcRoomMessageReceived(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcUserMessageReceived(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcUserMessageReceived(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcBinaryMessageReceived(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcBinaryMessageReceived(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcStreamSyncInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcStreamSyncInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcFirstLocalVideoFrameCapturedInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcFirstLocalVideoFrameCapturedInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcLocalVideoSizeChangeInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcLocalVideoSizeChangeInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcMessageSendResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcMessageSendResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcUserPublishInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcUserPublishInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRtcUserUnPublishInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRtcUserUnPublishInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetMatchmakingAdminSnapshot(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetMatchmakingAdminSnapshot(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetMatchmakingBrowseResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetMatchmakingBrowseResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetMatchmakingBrowseCustomPageResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetMatchmakingBrowseCustomPageResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetMatchmakingEnqueueResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetMatchmakingEnqueueResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetMatchmakingEnqueueResultAndRoom(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetMatchmakingEnqueueResultAndRoom(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetMatchmakingStats(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetMatchmakingStats(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRoom(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRoom(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRoomArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRoomArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetPlatformGameInitialize(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetPlatformGameInitialize(obj); + return __ret; + } + + public static global::Pico.Platform.GameConnectionEvent ppf_Message_GetGameConnectionEvent(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetGameConnectionEvent(obj); + return __ret; + } + + public static global::Pico.Platform.GameRequestFailedReason ppf_Message_GetGameRequestFailedReason(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetGameRequestFailedReason(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetApplicationInviteArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetApplicationInviteArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetSendInvitesResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetSendInvitesResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetDestinationArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetDestinationArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetPresenceJoinIntent(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetPresenceJoinIntent(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRoomInviteNotificationArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRoomInviteNotificationArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetLeaderboardArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetLeaderboardArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetLeaderboardUpdateStatus(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetLeaderboardUpdateStatus(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetLeaderboardEntryArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetLeaderboardEntryArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAchievementDefinitionArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAchievementDefinitionArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAchievementProgressArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAchievementProgressArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAchievementUpdate(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAchievementUpdate(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetChallenge(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetChallenge(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetChallengeArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetChallengeArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetChallengeEntryArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetChallengeEntryArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetPurchaseArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetPurchaseArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetProductArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetProductArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetPurchase(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetPurchase(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetSportUserInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetSportUserInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetSportDailySummaryArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetSportDailySummaryArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetSportSummary(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetSportSummary(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAssetDetails(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAssetDetails(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAssetDetailsArray(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAssetDetailsArray(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAssetFileDeleteResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAssetFileDeleteResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAssetFileDownloadCancelResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAssetFileDownloadCancelResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAssetFileDownloadResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAssetFileDownloadResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAssetFileDownloadUpdate(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAssetFileDownloadUpdate(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAssetStatus(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAssetStatus(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAssetFileDeleteForSafety(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAssetFileDeleteForSafety(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetAsrResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetAsrResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetSpeechError(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetSpeechError(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetDetectSensitiveResult(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetDetectSensitiveResult(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetOrgScopedID(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetOrgScopedID(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetCaptureInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetCaptureInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetRecordInfo(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetRecordInfo(obj); + return __ret; + } + + public static __IntPtr ppf_Message_GetSessionMedia(__IntPtr obj) + { + var __ret = __Internal.ppf_Message_GetSessionMedia(obj); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_PcInitWrapper", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.PlatformInitializeResult ppf_PcInitWrapper([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string appId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string configPath, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string logPath); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PcInitAsynchronousWrapper", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_PcInitAsynchronousWrapper([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string appId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string configJson, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string logPath); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PcUnInitialize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_PcUnInitialize(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RegisterFunctions", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RegisterFunctions(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_GetLoaderVersion", CallingConvention = __CallingConvention.Cdecl)] + internal static extern int ppf_GetLoaderVersion(); + } + + public static global::Pico.Platform.PlatformInitializeResult ppf_PcInitWrapper(string appId, string configPath, string logPath) + { + var __ret = __Internal.ppf_PcInitWrapper(appId, configPath, logPath); + return __ret; + } + + public static ulong ppf_PcInitAsynchronousWrapper(string appId, string configJson, string logPath) + { + var __ret = __Internal.ppf_PcInitAsynchronousWrapper(appId, configJson, logPath); + return __ret; + } + + public static int ppf_PcUnInitialize() + { + var __ret = __Internal.ppf_PcUnInitialize(); + return __ret; + } + + public static void ppf_RegisterFunctions() + { + __Internal.ppf_RegisterFunctions(); + } + + public static int ppf_GetLoaderVersion() + { + var __ret = __Internal.ppf_GetLoaderVersion(); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_PresenceOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_PresenceOptions_Destroy(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_SetDestinationApiName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_PresenceOptions_SetDestinationApiName(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_SetIsJoinable", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_PresenceOptions_SetIsJoinable(__IntPtr handle, bool value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_SetLobbySessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_PresenceOptions_SetLobbySessionId(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_SetMatchSessionId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_PresenceOptions_SetMatchSessionId(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_PresenceOptions_SetExtra", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_PresenceOptions_SetExtra(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + } + + public static __IntPtr ppf_PresenceOptions_Create() + { + var __ret = __Internal.ppf_PresenceOptions_Create(); + return __ret; + } + + public static void ppf_PresenceOptions_Destroy(__IntPtr handle) + { + __Internal.ppf_PresenceOptions_Destroy(handle); + } + + public static void ppf_PresenceOptions_SetDestinationApiName(__IntPtr handle, string value) + { + __Internal.ppf_PresenceOptions_SetDestinationApiName(handle, value); + } + + public static void ppf_PresenceOptions_SetIsJoinable(__IntPtr handle, bool value) + { + __Internal.ppf_PresenceOptions_SetIsJoinable(handle, value); + } + + public static void ppf_PresenceOptions_SetLobbySessionId(__IntPtr handle, string value) + { + __Internal.ppf_PresenceOptions_SetLobbySessionId(handle, value); + } + + public static void ppf_PresenceOptions_SetMatchSessionId(__IntPtr handle, string value) + { + __Internal.ppf_PresenceOptions_SetMatchSessionId(handle, value); + } + + public static void ppf_PresenceOptions_SetExtra(__IntPtr handle, string value) + { + __Internal.ppf_PresenceOptions_SetExtra(handle, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_AddCount", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Achievements_AddCount([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string name, long count, __IntPtr extra_data, uint extra_data_length); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_AddFields", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Achievements_AddFields([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string fields, __IntPtr extra_data, uint extra_data_length); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_GetAllDefinitions", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Achievements_GetAllDefinitions(int pageIdx, int pageSize); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_GetAllProgress", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Achievements_GetAllProgress(int pageIdx, int pageSize); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_GetDefinitionsByName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Achievements_GetDefinitionsByName(__IntPtr[]names, int count); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_GetProgressByName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Achievements_GetProgressByName(__IntPtr[]names, int count); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Achievements_Unlock", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Achievements_Unlock([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string name, __IntPtr extra_data, uint extra_data_length); + } + + public static ulong ppf_Achievements_AddCount(string name, long count, __IntPtr extra_data, uint extra_data_length) + { + var __ret = __Internal.ppf_Achievements_AddCount(name, count, extra_data, extra_data_length); + return __ret; + } + + public static ulong ppf_Achievements_AddFields(string name, string fields, __IntPtr extra_data, uint extra_data_length) + { + var __ret = __Internal.ppf_Achievements_AddFields(name, fields, extra_data, extra_data_length); + return __ret; + } + + public static ulong ppf_Achievements_GetAllDefinitions(int pageIdx, int pageSize) + { + var __ret = __Internal.ppf_Achievements_GetAllDefinitions(pageIdx, pageSize); + return __ret; + } + + public static ulong ppf_Achievements_GetAllProgress(int pageIdx, int pageSize) + { + var __ret = __Internal.ppf_Achievements_GetAllProgress(pageIdx, pageSize); + return __ret; + } + + public static ulong ppf_Achievements_GetDefinitionsByName(__IntPtr[]names, int count) + { + var __ret = __Internal.ppf_Achievements_GetDefinitionsByName(names, count); + return __ret; + } + + public static ulong ppf_Achievements_GetProgressByName(__IntPtr[]names, int count) + { + var __ret = __Internal.ppf_Achievements_GetProgressByName(names, count); + return __ret; + } + + public static ulong ppf_Achievements_Unlock(string name, __IntPtr extra_data, uint extra_data_length) + { + var __ret = __Internal.ppf_Achievements_Unlock(name, extra_data, extra_data_length); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_LaunchOtherApp", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Application_LaunchOtherApp([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string packageName, __IntPtr deeplink_options); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_LaunchOtherAppByAppID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Application_LaunchOtherAppByAppID([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string appID, __IntPtr deeplink_options); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_LaunchOtherAppByPresence", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Application_LaunchOtherAppByPresence([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string appID, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string packageName, __IntPtr options); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_LaunchOtherAppByMessage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Application_LaunchOtherAppByMessage(__IntPtr options); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_GetVersion", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Application_GetVersion(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Application_LaunchStore", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Application_LaunchStore(); + } + + public static ulong ppf_Application_LaunchOtherApp(string packageName, __IntPtr deeplink_options) + { + var __ret = __Internal.ppf_Application_LaunchOtherApp(packageName, deeplink_options); + return __ret; + } + + public static ulong ppf_Application_LaunchOtherAppByAppID(string appID, __IntPtr deeplink_options) + { + var __ret = __Internal.ppf_Application_LaunchOtherAppByAppID(appID, deeplink_options); + return __ret; + } + + public static ulong ppf_Application_LaunchOtherAppByPresence(string appID, string packageName, __IntPtr options) + { + var __ret = __Internal.ppf_Application_LaunchOtherAppByPresence(appID, packageName, options); + return __ret; + } + + public static ulong ppf_Application_LaunchOtherAppByMessage(__IntPtr options) + { + var __ret = __Internal.ppf_Application_LaunchOtherAppByMessage(options); + return __ret; + } + + public static ulong ppf_Application_GetVersion() + { + var __ret = __Internal.ppf_Application_GetVersion(); + return __ret; + } + + public static ulong ppf_Application_LaunchStore() + { + var __ret = __Internal.ppf_Application_LaunchStore(); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DeleteById", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFile_DeleteById(ulong assetFileID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DeleteByName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFile_DeleteByName([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string assetFileName); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DownloadById", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFile_DownloadById(ulong assetFileID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DownloadByName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFile_DownloadByName([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string assetFileName); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DownloadCancelById", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFile_DownloadCancelById(ulong assetFileID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_DownloadCancelByName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFile_DownloadCancelByName([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string assetFileName); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_GetList", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFile_GetList(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_GetNextAssetDetailsArrayPage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFile_GetNextAssetDetailsArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string @params); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_StatusById", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFile_StatusById(ulong assetFileID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_AssetFile_StatusByName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_AssetFile_StatusByName([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string assetFileName); + } + + public static ulong ppf_AssetFile_DeleteById(ulong assetFileID) + { + var __ret = __Internal.ppf_AssetFile_DeleteById(assetFileID); + return __ret; + } + + public static ulong ppf_AssetFile_DeleteByName(string assetFileName) + { + var __ret = __Internal.ppf_AssetFile_DeleteByName(assetFileName); + return __ret; + } + + public static ulong ppf_AssetFile_DownloadById(ulong assetFileID) + { + var __ret = __Internal.ppf_AssetFile_DownloadById(assetFileID); + return __ret; + } + + public static ulong ppf_AssetFile_DownloadByName(string assetFileName) + { + var __ret = __Internal.ppf_AssetFile_DownloadByName(assetFileName); + return __ret; + } + + public static ulong ppf_AssetFile_DownloadCancelById(ulong assetFileID) + { + var __ret = __Internal.ppf_AssetFile_DownloadCancelById(assetFileID); + return __ret; + } + + public static ulong ppf_AssetFile_DownloadCancelByName(string assetFileName) + { + var __ret = __Internal.ppf_AssetFile_DownloadCancelByName(assetFileName); + return __ret; + } + + public static ulong ppf_AssetFile_GetList() + { + var __ret = __Internal.ppf_AssetFile_GetList(); + return __ret; + } + + public static ulong ppf_AssetFile_GetNextAssetDetailsArrayPage(string @params) + { + var __ret = __Internal.ppf_AssetFile_GetNextAssetDetailsArrayPage(@params); + return __ret; + } + + public static ulong ppf_AssetFile_StatusById(ulong assetFileID) + { + var __ret = __Internal.ppf_AssetFile_StatusById(assetFileID); + return __ret; + } + + public static ulong ppf_AssetFile_StatusByName(string assetFileName) + { + var __ret = __Internal.ppf_AssetFile_StatusByName(assetFileName); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_Invites", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenges_Invites(ulong challengeID, __IntPtr[]userIDs, uint userIDLength); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_Get", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenges_Get(ulong challengeID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_GetEntries", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenges_GetEntries(ulong challengeID, global::Pico.Platform.LeaderboardFilterType filter, global::Pico.Platform.LeaderboardStartAt startAt, int pageIdx, int pageSize); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_GetEntriesAfterRank", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenges_GetEntriesAfterRank(ulong challengeID, ulong afterRank, int pageIdx, int pageSize); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_GetEntriesByIds", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenges_GetEntriesByIds(ulong challengeID, global::Pico.Platform.LeaderboardStartAt startAt, __IntPtr[]userIDs, uint userIDLength, int pageIdx, int pageSize); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_GetList", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenges_GetList(__IntPtr challengeOptions, int pageIdx, int pageSize); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_Join", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenges_Join(ulong challengeID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_Leave", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenges_Leave(ulong challengeID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Challenges_LaunchInvitableUserFlow", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Challenges_LaunchInvitableUserFlow(ulong challengeID); + } + + public static ulong ppf_Challenges_Invites(ulong challengeID, __IntPtr[]userIDs, uint userIDLength) + { + var __ret = __Internal.ppf_Challenges_Invites(challengeID, userIDs, userIDLength); + return __ret; + } + + public static ulong ppf_Challenges_Get(ulong challengeID) + { + var __ret = __Internal.ppf_Challenges_Get(challengeID); + return __ret; + } + + public static ulong ppf_Challenges_GetEntries(ulong challengeID, global::Pico.Platform.LeaderboardFilterType filter, global::Pico.Platform.LeaderboardStartAt startAt, int pageIdx, int pageSize) + { + var __ret = __Internal.ppf_Challenges_GetEntries(challengeID, filter, startAt, pageIdx, pageSize); + return __ret; + } + + public static ulong ppf_Challenges_GetEntriesAfterRank(ulong challengeID, ulong afterRank, int pageIdx, int pageSize) + { + var __ret = __Internal.ppf_Challenges_GetEntriesAfterRank(challengeID, afterRank, pageIdx, pageSize); + return __ret; + } + + public static ulong ppf_Challenges_GetEntriesByIds(ulong challengeID, global::Pico.Platform.LeaderboardStartAt startAt, __IntPtr[]userIDs, uint userIDLength, int pageIdx, int pageSize) + { + var __ret = __Internal.ppf_Challenges_GetEntriesByIds(challengeID, startAt, userIDs, userIDLength, pageIdx, pageSize); + return __ret; + } + + public static ulong ppf_Challenges_GetList(__IntPtr challengeOptions, int pageIdx, int pageSize) + { + var __ret = __Internal.ppf_Challenges_GetList(challengeOptions, pageIdx, pageSize); + return __ret; + } + + public static ulong ppf_Challenges_Join(ulong challengeID) + { + var __ret = __Internal.ppf_Challenges_Join(challengeID); + return __ret; + } + + public static ulong ppf_Challenges_Leave(ulong challengeID) + { + var __ret = __Internal.ppf_Challenges_Leave(challengeID); + return __ret; + } + + public static ulong ppf_Challenges_LaunchInvitableUserFlow(ulong challengeID) + { + var __ret = __Internal.ppf_Challenges_LaunchInvitableUserFlow(challengeID); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Compliance_DetectSensitive", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Compliance_DetectSensitive(global::Pico.Platform.DetectSensitiveScene scene, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string content); + } + + public static ulong ppf_Compliance_DetectSensitive(global::Pico.Platform.DetectSensitiveScene scene, string content) + { + var __ret = __Internal.ppf_Compliance_DetectSensitive(scene, content); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_CaptureScreen", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Highlight_CaptureScreen(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_ListMedia", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Highlight_ListMedia([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sessionId); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_SaveMedia", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Highlight_SaveMedia([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string jobId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sessionId); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_ShareMedia", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Highlight_ShareMedia([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string jobId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sessionId); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_StartRecord", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Highlight_StartRecord(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_StartSession", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Highlight_StartSession(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Highlight_StopRecord", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Highlight_StopRecord(); + } + + public static ulong ppf_Highlight_CaptureScreen() + { + var __ret = __Internal.ppf_Highlight_CaptureScreen(); + return __ret; + } + + public static ulong ppf_Highlight_ListMedia(string sessionId) + { + var __ret = __Internal.ppf_Highlight_ListMedia(sessionId); + return __ret; + } + + public static ulong ppf_Highlight_SaveMedia(string jobId, string sessionId) + { + var __ret = __Internal.ppf_Highlight_SaveMedia(jobId, sessionId); + return __ret; + } + + public static ulong ppf_Highlight_ShareMedia(string jobId, string sessionId) + { + var __ret = __Internal.ppf_Highlight_ShareMedia(jobId, sessionId); + return __ret; + } + + public static ulong ppf_Highlight_StartRecord() + { + var __ret = __Internal.ppf_Highlight_StartRecord(); + return __ret; + } + + public static ulong ppf_Highlight_StartSession() + { + var __ret = __Internal.ppf_Highlight_StartSession(); + return __ret; + } + + public static ulong ppf_Highlight_StopRecord() + { + var __ret = __Internal.ppf_Highlight_StopRecord(); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_ConsumePurchase", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_IAP_ConsumePurchase([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sku); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_GetNextProductArrayPage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_IAP_GetNextProductArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string nextPageParam); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_GetNextPurchaseArrayPage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_IAP_GetNextPurchaseArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string nextPageParam); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_GetProductsBySKU", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_IAP_GetProductsBySKU(__IntPtr[]skus, int size); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_GetViewerPurchases", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_IAP_GetViewerPurchases(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_LaunchCheckoutFlow", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_IAP_LaunchCheckoutFlow([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sku, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string price, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string currency); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_LaunchCheckoutFlowV2", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_IAP_LaunchCheckoutFlowV2([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sku, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string price, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string currency, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string outerId); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_LaunchCheckoutFlowV3", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_IAP_LaunchCheckoutFlowV3([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sku, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string price, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string currency, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string outerId, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string orderComment); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_IAP_GetSubscriptionStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_IAP_GetSubscriptionStatus([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string sku); + } + + public static ulong ppf_IAP_ConsumePurchase(string sku) + { + var __ret = __Internal.ppf_IAP_ConsumePurchase(sku); + return __ret; + } + + public static ulong ppf_IAP_GetNextProductArrayPage(string nextPageParam) + { + var __ret = __Internal.ppf_IAP_GetNextProductArrayPage(nextPageParam); + return __ret; + } + + public static ulong ppf_IAP_GetNextPurchaseArrayPage(string nextPageParam) + { + var __ret = __Internal.ppf_IAP_GetNextPurchaseArrayPage(nextPageParam); + return __ret; + } + + public static ulong ppf_IAP_GetProductsBySKU(__IntPtr[]skus, int size) + { + var __ret = __Internal.ppf_IAP_GetProductsBySKU(skus, size); + return __ret; + } + + public static ulong ppf_IAP_GetViewerPurchases() + { + var __ret = __Internal.ppf_IAP_GetViewerPurchases(); + return __ret; + } + + public static ulong ppf_IAP_LaunchCheckoutFlow(string sku, string price, string currency) + { + var __ret = __Internal.ppf_IAP_LaunchCheckoutFlow(sku, price, currency); + return __ret; + } + + public static ulong ppf_IAP_LaunchCheckoutFlowV2(string sku, string price, string currency, string outerId) + { + var __ret = __Internal.ppf_IAP_LaunchCheckoutFlowV2(sku, price, currency, outerId); + return __ret; + } + + public static ulong ppf_IAP_LaunchCheckoutFlowV3(string sku, string price, string currency, string outerId, string orderComment) + { + var __ret = __Internal.ppf_IAP_LaunchCheckoutFlowV3(sku, price, currency, outerId, orderComment); + return __ret; + } + + public static ulong ppf_IAP_GetSubscriptionStatus(string sku) + { + var __ret = __Internal.ppf_IAP_GetSubscriptionStatus(sku); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_Get", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Leaderboard_Get([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetEntries", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Leaderboard_GetEntries([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName, int pageSize, int pageIdx, global::Pico.Platform.LeaderboardFilterType filter, global::Pico.Platform.LeaderboardStartAt startAt); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetEntriesAfterRank", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Leaderboard_GetEntriesAfterRank([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName, int pageSize, int pageIdx, ulong afterRank); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetEntriesByIds", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Leaderboard_GetEntriesByIds([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName, int pageSize, int pageIdx, global::Pico.Platform.LeaderboardStartAt startAt, __IntPtr[]userIDs, uint userIDLength); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetNextEntries", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Leaderboard_GetNextEntries(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetNextLeaderboardArrayPage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Leaderboard_GetNextLeaderboardArrayPage(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_GetPreviousEntries", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Leaderboard_GetPreviousEntries(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_WriteEntry", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Leaderboard_WriteEntry([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName, long score, __IntPtr extraData, uint extraDataLength, bool forceUpdate); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Leaderboard_WriteEntryWithSupplementaryMetric", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Leaderboard_WriteEntryWithSupplementaryMetric([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string leaderboardName, long score, long supplementaryMetric, __IntPtr extraData, uint extraDataLength, bool forceUpdate); + } + + public static ulong ppf_Leaderboard_Get(string leaderboardName) + { + var __ret = __Internal.ppf_Leaderboard_Get(leaderboardName); + return __ret; + } + + public static ulong ppf_Leaderboard_GetEntries(string leaderboardName, int pageSize, int pageIdx, global::Pico.Platform.LeaderboardFilterType filter, global::Pico.Platform.LeaderboardStartAt startAt) + { + var __ret = __Internal.ppf_Leaderboard_GetEntries(leaderboardName, pageSize, pageIdx, filter, startAt); + return __ret; + } + + public static ulong ppf_Leaderboard_GetEntriesAfterRank(string leaderboardName, int pageSize, int pageIdx, ulong afterRank) + { + var __ret = __Internal.ppf_Leaderboard_GetEntriesAfterRank(leaderboardName, pageSize, pageIdx, afterRank); + return __ret; + } + + public static ulong ppf_Leaderboard_GetEntriesByIds(string leaderboardName, int pageSize, int pageIdx, global::Pico.Platform.LeaderboardStartAt startAt, __IntPtr[]userIDs, uint userIDLength) + { + var __ret = __Internal.ppf_Leaderboard_GetEntriesByIds(leaderboardName, pageSize, pageIdx, startAt, userIDs, userIDLength); + return __ret; + } + + public static ulong ppf_Leaderboard_GetNextEntries(__IntPtr handle) + { + var __ret = __Internal.ppf_Leaderboard_GetNextEntries(handle); + return __ret; + } + + public static ulong ppf_Leaderboard_GetNextLeaderboardArrayPage(__IntPtr handle) + { + var __ret = __Internal.ppf_Leaderboard_GetNextLeaderboardArrayPage(handle); + return __ret; + } + + public static ulong ppf_Leaderboard_GetPreviousEntries(__IntPtr handle) + { + var __ret = __Internal.ppf_Leaderboard_GetPreviousEntries(handle); + return __ret; + } + + public static ulong ppf_Leaderboard_WriteEntry(string leaderboardName, long score, __IntPtr extraData, uint extraDataLength, bool forceUpdate) + { + var __ret = __Internal.ppf_Leaderboard_WriteEntry(leaderboardName, score, extraData, extraDataLength, forceUpdate); + return __ret; + } + + public static ulong ppf_Leaderboard_WriteEntryWithSupplementaryMetric(string leaderboardName, long score, long supplementaryMetric, __IntPtr extraData, uint extraDataLength, bool forceUpdate) + { + var __ret = __Internal.ppf_Leaderboard_WriteEntryWithSupplementaryMetric(leaderboardName, score, supplementaryMetric, extraData, extraDataLength, forceUpdate); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_Browse2", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Matchmaking_Browse2([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string pool, __IntPtr matchmakingOptions); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_Browse2CustomPage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Matchmaking_Browse2CustomPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string pool, __IntPtr matchmakingOptions, int pageIndex, int pageSize); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_Cancel2", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Matchmaking_Cancel2(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_CreateAndEnqueueRoom2", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Matchmaking_CreateAndEnqueueRoom2([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string pool, __IntPtr matchmakingOptions); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_Enqueue2", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Matchmaking_Enqueue2([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string pool, __IntPtr matchmakingOptions); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_GetAdminSnapshot", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Matchmaking_GetAdminSnapshot(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_GetStats", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Matchmaking_GetStats([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string pool, uint maxLevel, global::Pico.Platform.MatchmakingStatApproach approach); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_ReportResultInsecure", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Matchmaking_ReportResultInsecure(ulong roomID, __IntPtr data, uint numItems); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_StartMatch", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Matchmaking_StartMatch(ulong roomID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Matchmaking_CrashTest", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Matchmaking_CrashTest(); + } + + public static ulong ppf_Matchmaking_Browse2(string pool, __IntPtr matchmakingOptions) + { + var __ret = __Internal.ppf_Matchmaking_Browse2(pool, matchmakingOptions); + return __ret; + } + + public static ulong ppf_Matchmaking_Browse2CustomPage(string pool, __IntPtr matchmakingOptions, int pageIndex, int pageSize) + { + var __ret = __Internal.ppf_Matchmaking_Browse2CustomPage(pool, matchmakingOptions, pageIndex, pageSize); + return __ret; + } + + public static ulong ppf_Matchmaking_Cancel2() + { + var __ret = __Internal.ppf_Matchmaking_Cancel2(); + return __ret; + } + + public static ulong ppf_Matchmaking_CreateAndEnqueueRoom2(string pool, __IntPtr matchmakingOptions) + { + var __ret = __Internal.ppf_Matchmaking_CreateAndEnqueueRoom2(pool, matchmakingOptions); + return __ret; + } + + public static ulong ppf_Matchmaking_Enqueue2(string pool, __IntPtr matchmakingOptions) + { + var __ret = __Internal.ppf_Matchmaking_Enqueue2(pool, matchmakingOptions); + return __ret; + } + + public static ulong ppf_Matchmaking_GetAdminSnapshot() + { + var __ret = __Internal.ppf_Matchmaking_GetAdminSnapshot(); + return __ret; + } + + public static ulong ppf_Matchmaking_GetStats(string pool, uint maxLevel, global::Pico.Platform.MatchmakingStatApproach approach) + { + var __ret = __Internal.ppf_Matchmaking_GetStats(pool, maxLevel, approach); + return __ret; + } + + public static ulong ppf_Matchmaking_ReportResultInsecure(ulong roomID, __IntPtr data, uint numItems) + { + var __ret = __Internal.ppf_Matchmaking_ReportResultInsecure(roomID, data, numItems); + return __ret; + } + + public static ulong ppf_Matchmaking_StartMatch(ulong roomID) + { + var __ret = __Internal.ppf_Matchmaking_StartMatch(roomID); + return __ret; + } + + public static ulong ppf_Matchmaking_CrashTest() + { + var __ret = __Internal.ppf_Matchmaking_CrashTest(); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Notification_GetNextRoomInviteNotificationArrayPage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Notification_GetNextRoomInviteNotificationArrayPage(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Notification_GetRoomInvites", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Notification_GetRoomInvites(int pageIdx, int pageSize); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Notification_MarkAsRead", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Notification_MarkAsRead(ulong notificationID); + } + + public static ulong ppf_Notification_GetNextRoomInviteNotificationArrayPage(__IntPtr handle) + { + var __ret = __Internal.ppf_Notification_GetNextRoomInviteNotificationArrayPage(handle); + return __ret; + } + + public static ulong ppf_Notification_GetRoomInvites(int pageIdx, int pageSize) + { + var __ret = __Internal.ppf_Notification_GetRoomInvites(pageIdx, pageSize); + return __ret; + } + + public static ulong ppf_Notification_MarkAsRead(ulong notificationID) + { + var __ret = __Internal.ppf_Notification_MarkAsRead(notificationID); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ShareMediaOptions_Destroy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_ShareMediaOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_SetShareMediaType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ShareMediaOptions_SetShareMediaType(__IntPtr obj, global::Pico.Platform.ShareMediaType value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_SetVideoPath", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ShareMediaOptions_SetVideoPath(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_SetVideoThumbPath", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ShareMediaOptions_SetVideoThumbPath(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_AddImagePath", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ShareMediaOptions_AddImagePath(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_ClearImagePaths", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ShareMediaOptions_ClearImagePaths(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_ShareMediaOptions_SetShareAppType", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_ShareMediaOptions_SetShareAppType(__IntPtr obj, global::Pico.Platform.ShareAppType value); + } + + public static void ppf_ShareMediaOptions_Destroy(__IntPtr obj) + { + __Internal.ppf_ShareMediaOptions_Destroy(obj); + } + + public static __IntPtr ppf_ShareMediaOptions_Create() + { + var __ret = __Internal.ppf_ShareMediaOptions_Create(); + return __ret; + } + + public static void ppf_ShareMediaOptions_SetShareMediaType(__IntPtr obj, global::Pico.Platform.ShareMediaType value) + { + __Internal.ppf_ShareMediaOptions_SetShareMediaType(obj, value); + } + + public static void ppf_ShareMediaOptions_SetVideoPath(__IntPtr obj, string value) + { + __Internal.ppf_ShareMediaOptions_SetVideoPath(obj, value); + } + + public static void ppf_ShareMediaOptions_SetVideoThumbPath(__IntPtr obj, string value) + { + __Internal.ppf_ShareMediaOptions_SetVideoThumbPath(obj, value); + } + + public static void ppf_ShareMediaOptions_AddImagePath(__IntPtr obj, string value) + { + __Internal.ppf_ShareMediaOptions_AddImagePath(obj, value); + } + + public static void ppf_ShareMediaOptions_ClearImagePaths(__IntPtr obj) + { + __Internal.ppf_ShareMediaOptions_ClearImagePaths(obj); + } + + public static void ppf_ShareMediaOptions_SetShareAppType(__IntPtr obj, global::Pico.Platform.ShareAppType value) + { + __Internal.ppf_ShareMediaOptions_SetShareAppType(obj, value); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_Clear", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_Clear(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_GetInvitableUsers", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_GetInvitableUsers(__IntPtr options); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_GetNextApplicationInviteArrayPage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_GetNextApplicationInviteArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string @params); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_GetSentInvites", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_GetSentInvites(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SendInvites", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_SendInvites(__IntPtr[]userIDs, uint userIDLength); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SendCustomInvites", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_SendCustomInvites([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string msg, __IntPtr[]userIDs, uint userIDLength); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_Set", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_Set(__IntPtr presenceOptions); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SetDestination", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_SetDestination([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string api_name); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SetIsJoinable", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_SetIsJoinable(bool is_joinable); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SetLobbySession", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_SetLobbySession([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string id); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SetMatchSession", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_SetMatchSession([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string id); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_SetExtra", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_SetExtra([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string extra); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_GetDestinations", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_GetDestinations(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_GetNextDestinationArrayPage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_GetNextDestinationArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string @params); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_ShareMedia", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_ShareMedia(__IntPtr shareMediaOptions); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Presence_LaunchInvitePanel", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Presence_LaunchInvitePanel(); + } + + public static ulong ppf_Presence_Clear() + { + var __ret = __Internal.ppf_Presence_Clear(); + return __ret; + } + + public static ulong ppf_Presence_GetInvitableUsers(__IntPtr options) + { + var __ret = __Internal.ppf_Presence_GetInvitableUsers(options); + return __ret; + } + + public static ulong ppf_Presence_GetNextApplicationInviteArrayPage(string @params) + { + var __ret = __Internal.ppf_Presence_GetNextApplicationInviteArrayPage(@params); + return __ret; + } + + public static ulong ppf_Presence_GetSentInvites() + { + var __ret = __Internal.ppf_Presence_GetSentInvites(); + return __ret; + } + + public static ulong ppf_Presence_SendInvites(__IntPtr[]userIDs, uint userIDLength) + { + var __ret = __Internal.ppf_Presence_SendInvites(userIDs, userIDLength); + return __ret; + } + + public static ulong ppf_Presence_SendCustomInvites(string msg, __IntPtr[]userIDs, uint userIDLength) + { + var __ret = __Internal.ppf_Presence_SendCustomInvites(msg, userIDs, userIDLength); + return __ret; + } + + public static ulong ppf_Presence_Set(__IntPtr presenceOptions) + { + var __ret = __Internal.ppf_Presence_Set(presenceOptions); + return __ret; + } + + public static ulong ppf_Presence_SetDestination(string api_name) + { + var __ret = __Internal.ppf_Presence_SetDestination(api_name); + return __ret; + } + + public static ulong ppf_Presence_SetIsJoinable(bool is_joinable) + { + var __ret = __Internal.ppf_Presence_SetIsJoinable(is_joinable); + return __ret; + } + + public static ulong ppf_Presence_SetLobbySession(string id) + { + var __ret = __Internal.ppf_Presence_SetLobbySession(id); + return __ret; + } + + public static ulong ppf_Presence_SetMatchSession(string id) + { + var __ret = __Internal.ppf_Presence_SetMatchSession(id); + return __ret; + } + + public static ulong ppf_Presence_SetExtra(string extra) + { + var __ret = __Internal.ppf_Presence_SetExtra(extra); + return __ret; + } + + public static ulong ppf_Presence_GetDestinations() + { + var __ret = __Internal.ppf_Presence_GetDestinations(); + return __ret; + } + + public static ulong ppf_Presence_GetNextDestinationArrayPage(string @params) + { + var __ret = __Internal.ppf_Presence_GetNextDestinationArrayPage(@params); + return __ret; + } + + public static ulong ppf_Presence_ShareMedia(__IntPtr shareMediaOptions) + { + var __ret = __Internal.ppf_Presence_ShareMedia(shareMediaOptions); + return __ret; + } + + public static ulong ppf_Presence_LaunchInvitePanel() + { + var __ret = __Internal.ppf_Presence_LaunchInvitePanel(); + return __ret; + } + } + + /// Locks/unlocks the membership for a room to allow/disallow new members from being able to join the room. The caller should be the room owner. + public enum RoomMembershipLockStatus + { + /// Unknown. + Unknown = 0, + /// Lock the membership for the room. + Lock = 1, + /// Unlock the membership for the room. + Unlock = 2 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppfRoomMembershipLockStatus_ToString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppfRoomMembershipLockStatus_ToString(global::Pico.Platform.RoomMembershipLockStatus value); + + [DllImport("pxrplatformloader", EntryPoint = "ppfRoomMembershipLockStatus_FromString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RoomMembershipLockStatus ppfRoomMembershipLockStatus_FromString([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string str); + } + + public static string ppfRoomMembershipLockStatus_ToString(global::Pico.Platform.RoomMembershipLockStatus value) + { + var __ret = __Internal.ppfRoomMembershipLockStatus_ToString(value); + return Pico.Platform.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret); + } + + public static global::Pico.Platform.RoomMembershipLockStatus ppfRoomMembershipLockStatus_FromString(string str) + { + var __ret = __Internal.ppfRoomMembershipLockStatus_FromString(str); + return __ret; + } + } + + /// (Not used) + public enum UserOrdering + { + /// / + None = 0, + /// / + PresenceAlphabetical = 1 + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RoomOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_Destroy(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetDataStoreString", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_SetDataStoreString(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string key, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_ClearDataStore", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_ClearDataStore(__IntPtr handle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetExcludeRecentlyMet", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_SetExcludeRecentlyMet(__IntPtr handle, bool value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetMaxUserResults", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_SetMaxUserResults(__IntPtr handle, uint value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetOrdering", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_SetOrdering(__IntPtr handle, global::Pico.Platform.UserOrdering value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetRecentlyMetTimeWindow", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_SetRecentlyMetTimeWindow(__IntPtr handle, long value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_SetRoomId(__IntPtr handle, ulong value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetTurnOffUpdates", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_SetTurnOffUpdates(__IntPtr handle, bool value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetName", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_SetName(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string name); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RoomOptions_SetPassword", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RoomOptions_SetPassword(__IntPtr handle, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string password); + } + + public static __IntPtr ppf_RoomOptions_Create() + { + var __ret = __Internal.ppf_RoomOptions_Create(); + return __ret; + } + + public static void ppf_RoomOptions_Destroy(__IntPtr handle) + { + __Internal.ppf_RoomOptions_Destroy(handle); + } + + public static void ppf_RoomOptions_SetDataStoreString(__IntPtr handle, string key, string value) + { + __Internal.ppf_RoomOptions_SetDataStoreString(handle, key, value); + } + + public static void ppf_RoomOptions_ClearDataStore(__IntPtr handle) + { + __Internal.ppf_RoomOptions_ClearDataStore(handle); + } + + public static void ppf_RoomOptions_SetExcludeRecentlyMet(__IntPtr handle, bool value) + { + __Internal.ppf_RoomOptions_SetExcludeRecentlyMet(handle, value); + } + + public static void ppf_RoomOptions_SetMaxUserResults(__IntPtr handle, uint value) + { + __Internal.ppf_RoomOptions_SetMaxUserResults(handle, value); + } + + public static void ppf_RoomOptions_SetOrdering(__IntPtr handle, global::Pico.Platform.UserOrdering value) + { + __Internal.ppf_RoomOptions_SetOrdering(handle, value); + } + + public static void ppf_RoomOptions_SetRecentlyMetTimeWindow(__IntPtr handle, long value) + { + __Internal.ppf_RoomOptions_SetRecentlyMetTimeWindow(handle, value); + } + + public static void ppf_RoomOptions_SetRoomId(__IntPtr handle, ulong value) + { + __Internal.ppf_RoomOptions_SetRoomId(handle, value); + } + + public static void ppf_RoomOptions_SetTurnOffUpdates(__IntPtr handle, bool value) + { + __Internal.ppf_RoomOptions_SetTurnOffUpdates(handle, value); + } + + public static void ppf_RoomOptions_SetName(__IntPtr handle, string name) + { + __Internal.ppf_RoomOptions_SetName(handle, name); + } + + public static void ppf_RoomOptions_SetPassword(__IntPtr handle, string password) + { + __Internal.ppf_RoomOptions_SetPassword(handle, password); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_CreateAndJoinPrivate2", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_CreateAndJoinPrivate2(global::Pico.Platform.RoomJoinPolicy joinPolicy, uint maxUsers, __IntPtr roomOptions); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_Get", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_Get(ulong roomID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetCurrent", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_GetCurrent(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetCurrentForUser", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_GetCurrentForUser([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetInvitableUsers2", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_GetInvitableUsers2(__IntPtr roomOptions); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetModeratedRooms", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_GetModeratedRooms(int page_idx, int page_size); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_JoinNamed", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_JoinNamed(global::Pico.Platform.RoomJoinPolicy joinPolicy, bool createIfNotExist, uint maxUsers, __IntPtr roomOptions); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_GetNamedRooms", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_GetNamedRooms(int page_idx, int page_size); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_InviteUser", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_InviteUser(ulong roomID, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string inviteToken); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_Join2", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_Join2(ulong roomID, __IntPtr roomOptions); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_KickUser", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_KickUser(ulong roomID, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID, int kickDurationSeconds); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_LaunchInvitableUserFlow", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_LaunchInvitableUserFlow(ulong roomID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_Leave", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_Leave(ulong roomID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_SetDescription", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_SetDescription(ulong roomID, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string description); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_UpdateDataStore", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_UpdateDataStore(ulong roomID, __IntPtr data, uint numItems); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_UpdateMembershipLockStatus", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_UpdateMembershipLockStatus(ulong roomID, global::Pico.Platform.RoomMembershipLockStatus membershipLockStatus); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_UpdateOwner", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_UpdateOwner(ulong roomID, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Room_UpdatePrivateRoomJoinPolicy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Room_UpdatePrivateRoomJoinPolicy(ulong roomID, global::Pico.Platform.RoomJoinPolicy newJoinPolicy); + } + + public static ulong ppf_Room_CreateAndJoinPrivate2(global::Pico.Platform.RoomJoinPolicy joinPolicy, uint maxUsers, __IntPtr roomOptions) + { + var __ret = __Internal.ppf_Room_CreateAndJoinPrivate2(joinPolicy, maxUsers, roomOptions); + return __ret; + } + + public static ulong ppf_Room_Get(ulong roomID) + { + var __ret = __Internal.ppf_Room_Get(roomID); + return __ret; + } + + public static ulong ppf_Room_GetCurrent() + { + var __ret = __Internal.ppf_Room_GetCurrent(); + return __ret; + } + + public static ulong ppf_Room_GetCurrentForUser(string userID) + { + var __ret = __Internal.ppf_Room_GetCurrentForUser(userID); + return __ret; + } + + public static ulong ppf_Room_GetInvitableUsers2(__IntPtr roomOptions) + { + var __ret = __Internal.ppf_Room_GetInvitableUsers2(roomOptions); + return __ret; + } + + public static ulong ppf_Room_GetModeratedRooms(int page_idx, int page_size) + { + var __ret = __Internal.ppf_Room_GetModeratedRooms(page_idx, page_size); + return __ret; + } + + public static ulong ppf_Room_JoinNamed(global::Pico.Platform.RoomJoinPolicy joinPolicy, bool createIfNotExist, uint maxUsers, __IntPtr roomOptions) + { + var __ret = __Internal.ppf_Room_JoinNamed(joinPolicy, createIfNotExist, maxUsers, roomOptions); + return __ret; + } + + public static ulong ppf_Room_GetNamedRooms(int page_idx, int page_size) + { + var __ret = __Internal.ppf_Room_GetNamedRooms(page_idx, page_size); + return __ret; + } + + public static ulong ppf_Room_InviteUser(ulong roomID, string inviteToken) + { + var __ret = __Internal.ppf_Room_InviteUser(roomID, inviteToken); + return __ret; + } + + public static ulong ppf_Room_Join2(ulong roomID, __IntPtr roomOptions) + { + var __ret = __Internal.ppf_Room_Join2(roomID, roomOptions); + return __ret; + } + + public static ulong ppf_Room_KickUser(ulong roomID, string userID, int kickDurationSeconds) + { + var __ret = __Internal.ppf_Room_KickUser(roomID, userID, kickDurationSeconds); + return __ret; + } + + public static ulong ppf_Room_LaunchInvitableUserFlow(ulong roomID) + { + var __ret = __Internal.ppf_Room_LaunchInvitableUserFlow(roomID); + return __ret; + } + + public static ulong ppf_Room_Leave(ulong roomID) + { + var __ret = __Internal.ppf_Room_Leave(roomID); + return __ret; + } + + public static ulong ppf_Room_SetDescription(ulong roomID, string description) + { + var __ret = __Internal.ppf_Room_SetDescription(roomID, description); + return __ret; + } + + public static ulong ppf_Room_UpdateDataStore(ulong roomID, __IntPtr data, uint numItems) + { + var __ret = __Internal.ppf_Room_UpdateDataStore(roomID, data, numItems); + return __ret; + } + + public static ulong ppf_Room_UpdateMembershipLockStatus(ulong roomID, global::Pico.Platform.RoomMembershipLockStatus membershipLockStatus) + { + var __ret = __Internal.ppf_Room_UpdateMembershipLockStatus(roomID, membershipLockStatus); + return __ret; + } + + public static ulong ppf_Room_UpdateOwner(ulong roomID, string userID) + { + var __ret = __Internal.ppf_Room_UpdateOwner(roomID, userID); + return __ret; + } + + public static ulong ppf_Room_UpdatePrivateRoomJoinPolicy(ulong roomID, global::Pico.Platform.RoomJoinPolicy newJoinPolicy) + { + var __ret = __Internal.ppf_Room_UpdatePrivateRoomJoinPolicy(roomID, newJoinPolicy); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_Destroy", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcGetTokenOptions_Destroy(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_Create", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcGetTokenOptions_Create(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_SetUserId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcGetTokenOptions_SetUserId(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_SetRoomId", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcGetTokenOptions_SetRoomId(__IntPtr obj, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_SetTtl", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcGetTokenOptions_SetTtl(__IntPtr obj, int value); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_ClearPrivileges", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcGetTokenOptions_ClearPrivileges(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcGetTokenOptions_SetPrivileges", CallingConvention = __CallingConvention.Cdecl)] + internal static extern void ppf_RtcGetTokenOptions_SetPrivileges(__IntPtr obj, global::Pico.Platform.RtcPrivilege k, int v); + } + + public static void ppf_RtcGetTokenOptions_Destroy(__IntPtr obj) + { + __Internal.ppf_RtcGetTokenOptions_Destroy(obj); + } + + public static __IntPtr ppf_RtcGetTokenOptions_Create() + { + var __ret = __Internal.ppf_RtcGetTokenOptions_Create(); + return __ret; + } + + public static void ppf_RtcGetTokenOptions_SetUserId(__IntPtr obj, string value) + { + __Internal.ppf_RtcGetTokenOptions_SetUserId(obj, value); + } + + public static void ppf_RtcGetTokenOptions_SetRoomId(__IntPtr obj, string value) + { + __Internal.ppf_RtcGetTokenOptions_SetRoomId(obj, value); + } + + public static void ppf_RtcGetTokenOptions_SetTtl(__IntPtr obj, int value) + { + __Internal.ppf_RtcGetTokenOptions_SetTtl(obj, value); + } + + public static void ppf_RtcGetTokenOptions_ClearPrivileges(__IntPtr obj) + { + __Internal.ppf_RtcGetTokenOptions_ClearPrivileges(obj); + } + + public static void ppf_RtcGetTokenOptions_SetPrivileges(__IntPtr obj, global::Pico.Platform.RtcPrivilege k, int v) + { + __Internal.ppf_RtcGetTokenOptions_SetPrivileges(obj, k, v); + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_GetToken", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Rtc_GetToken(__IntPtr options); + } + + public static ulong ppf_Rtc_GetToken(__IntPtr options) + { + var __ret = __Internal.ppf_Rtc_GetToken(options); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_Sport_GetDailySummary", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Sport_GetDailySummary(long beginTime, long endTime); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Sport_GetSummary", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Sport_GetSummary(long beginTime, long endTime); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Sport_GetUserInfo", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_Sport_GetUserInfo(); + } + + public static ulong ppf_Sport_GetDailySummary(long beginTime, long endTime) + { + var __ret = __Internal.ppf_Sport_GetDailySummary(beginTime, endTime); + return __ret; + } + + public static ulong ppf_Sport_GetSummary(long beginTime, long endTime) + { + var __ret = __Internal.ppf_Sport_GetSummary(beginTime, endTime); + return __ret; + } + + public static ulong ppf_Sport_GetUserInfo() + { + var __ret = __Internal.ppf_Sport_GetUserInfo(); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_Get", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_Get([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetAccessToken", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_GetAccessToken(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetIdToken", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_GetIdToken(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetLoggedInUser", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_GetLoggedInUser(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetLoggedInUserFriends", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_GetLoggedInUserFriends(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetNextUserArrayPage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_GetNextUserArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string param); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_LaunchFriendRequestFlow", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_LaunchFriendRequestFlow([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetLoggedInUserFriendsAndRooms", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_GetLoggedInUserFriendsAndRooms(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetNextUserAndRoomArrayPage", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_GetNextUserAndRoomArrayPage([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string param); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetAuthorizedPermissions", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_GetAuthorizedPermissions(); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_RequestUserPermissions", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_RequestUserPermissions(__IntPtr[]permissions, int size); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetRelations", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_GetRelations(__IntPtr[]userIds, int size); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_EntitlementCheck", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_EntitlementCheck(bool killApp); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_User_GetOrgScopedID", CallingConvention = __CallingConvention.Cdecl)] + internal static extern ulong ppf_User_GetOrgScopedID([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Pico.Platform.UTF8Marshaller))] string userID); + } + + public static ulong ppf_User_Get(string userID) + { + var __ret = __Internal.ppf_User_Get(userID); + return __ret; + } + + public static ulong ppf_User_GetAccessToken() + { + var __ret = __Internal.ppf_User_GetAccessToken(); + return __ret; + } + + public static ulong ppf_User_GetIdToken() + { + var __ret = __Internal.ppf_User_GetIdToken(); + return __ret; + } + + public static ulong ppf_User_GetLoggedInUser() + { + var __ret = __Internal.ppf_User_GetLoggedInUser(); + return __ret; + } + + public static ulong ppf_User_GetLoggedInUserFriends() + { + var __ret = __Internal.ppf_User_GetLoggedInUserFriends(); + return __ret; + } + + public static ulong ppf_User_GetNextUserArrayPage(string param) + { + var __ret = __Internal.ppf_User_GetNextUserArrayPage(param); + return __ret; + } + + public static ulong ppf_User_LaunchFriendRequestFlow(string userID) + { + var __ret = __Internal.ppf_User_LaunchFriendRequestFlow(userID); + return __ret; + } + + public static ulong ppf_User_GetLoggedInUserFriendsAndRooms() + { + var __ret = __Internal.ppf_User_GetLoggedInUserFriendsAndRooms(); + return __ret; + } + + public static ulong ppf_User_GetNextUserAndRoomArrayPage(string param) + { + var __ret = __Internal.ppf_User_GetNextUserAndRoomArrayPage(param); + return __ret; + } + + public static ulong ppf_User_GetAuthorizedPermissions() + { + var __ret = __Internal.ppf_User_GetAuthorizedPermissions(); + return __ret; + } + + public static ulong ppf_User_RequestUserPermissions(__IntPtr[]permissions, int size) + { + var __ret = __Internal.ppf_User_RequestUserPermissions(permissions, size); + return __ret; + } + + public static ulong ppf_User_GetRelations(__IntPtr[]userIds, int size) + { + var __ret = __Internal.ppf_User_GetRelations(userIds, size); + return __ret; + } + + public static ulong ppf_User_EntitlementCheck(bool killApp) + { + var __ret = __Internal.ppf_User_EntitlementCheck(killApp); + return __ret; + } + + public static ulong ppf_User_GetOrgScopedID(string userID) + { + var __ret = __Internal.ppf_User_GetOrgScopedID(userID); + return __ret; + } + } + + public partial class CLIB + { + public partial struct __Internal + { + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrame_GetSampleRate", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcAudioSampleRate ppf_RtcAudioFrame_GetSampleRate(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrame_GetChannel", CallingConvention = __CallingConvention.Cdecl)] + internal static extern global::Pico.Platform.RtcAudioChannel ppf_RtcAudioFrame_GetChannel(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrame_GetTimeStampInUs", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_RtcAudioFrame_GetTimeStampInUs(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrame_GetData", CallingConvention = __CallingConvention.Cdecl)] + internal static extern __IntPtr ppf_RtcAudioFrame_GetData(__IntPtr obj); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_RtcAudioFrame_GetDataSize", CallingConvention = __CallingConvention.Cdecl)] + internal static extern long ppf_RtcAudioFrame_GetDataSize(__IntPtr obj); + } + + public static global::Pico.Platform.RtcAudioSampleRate ppf_RtcAudioFrame_GetSampleRate(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcAudioFrame_GetSampleRate(obj); + return __ret; + } + + public static global::Pico.Platform.RtcAudioChannel ppf_RtcAudioFrame_GetChannel(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcAudioFrame_GetChannel(obj); + return __ret; + } + + public static long ppf_RtcAudioFrame_GetTimeStampInUs(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcAudioFrame_GetTimeStampInUs(obj); + return __ret; + } + + public static __IntPtr ppf_RtcAudioFrame_GetData(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcAudioFrame_GetData(obj); + return __ret; + } + + public static long ppf_RtcAudioFrame_GetDataSize(__IntPtr obj) + { + var __ret = __Internal.ppf_RtcAudioFrame_GetDataSize(obj); + return __ret; + } + } + + /// The type of an add-on. + public enum AddonsType + { + /// Invalid. + Invalid = -1, + /// A durable. The add-on is always available once a user buys it. + Durable = 0, + /// A consumable. The add-on can be consumed by a user and the user can purchase it again after the current add-on is consumed. + Consumable = 1, + /// Subscription add-on. Users need to regularly pay subscription fees. + Subscription = 2 + } + + /// The user's presence status. + public enum UserPresenceStatus + { + /// Unknown status. + Unknown = 0, + /// The user is online. + OnLine = 1, + /// The user is offline. + OffLine = 2 + } + + /// User's gender. + public enum Gender + { + /// Unknown. + Unknown = 0, + /// Male. + Male = 1, + /// Female. + Female = 2 + } + + public enum AsrEngineInitResult + { + Unknown = -999, + Arch32BitNotSupported = -3, + InvalidConfig = -2, + AlreadyInitialized = -1, + Success = 0 + } + + /// The download progress of the DLC file. + public enum AssetFileDownloadCompleteStatus + { + /// The DLC file is being downloaded. + Downloading = 0, + /// The DLC file has been downloaded. + Succeed = 1, + /// Failed to download the DLC file. + Failed = 2 + } + + /// The reason why the subscription is canceled. \ref Pico.Platform.IAPService.GetSubscriptionStatus will return a subscription status structure. The `CancelReason` field describes why the subscription is canceled. + public enum CancelReason + { + /// None. + None = 0, + /// The user canceled automatic renewal. + UserCancelsExpiration = 1, + /// Deduction for automatic renewal failed. + DeductionFailedExpired = 2, + /// The user have not purchased the app. + NoMainApplicationInterest = 3 + } + + /// The strategy proposed to handle the text containing sensitive words and the user that creates the text. It's the result of \ref Pico.Platform.ComplianceService.DetectSensitive. + public enum SensitiveProposal + { + /// Let the text be sent normally as the text does not contain sensitive words. + Pass = 0, + /// Only the user that creates the text can see it. + OnlySelfVisible = 1, + /// Forbid the user from publishing any text for several days. + UserMute = 2, + /// Prevent the user from submitting the text. + RejectSubmit = 3 + } + + /// Indicates the location within the app where text containing sensitive words can be found. Used for \ref Pico.Platform.ComplianceService.DetectSensitive. + public enum DetectSensitiveScene + { + /// Username. + UserName = 1, + /// Room name. + RoomName = 2, + /// In-room-chat message. + RoomChat = 3 + } + + /// The type of the discount + public enum DiscountType + { + /// Invalid. + Invalid = -1, + /// No discount. + Null = 0, + /// Free trial. + FreeTrial = 1, + /// Discount. + Discount = 2 + } + + /// The entitlement status of a subscription add-on. Used by \ref Pico.Platform.IAPService.GetSubscriptionStatus. + public enum EntitlementStatus + { + /// None. + None = 0, + /// The user is entitled to use the subscription add-on. + Valid = 1, + /// The user is not entitled to use the subscription add-on. + Invalid = 2, + /// The subscription is in the grace period. + GracePeriod = 3, + /// The subscription is paused. + Pause = 4, + /// The subscription has expired. + Expired = 5, + /// The user has canceled the subscription. But the current subscription period is still valid. + Cancel = 6 + } + + /// Indicates how an app is launched. You can use it to determine how to parse \ref Pico.Platform.Models.LaunchDetails. See also: \ref Pico.Platform.ApplicationService.GetLaunchDetails. + public enum LaunchType + { + /// Unknown. + Unknown = 0, + /// The user clicks on the app's icon to launch it. + Normal = 1, + /// The user clicks on the room invitation message card to launch the app. + RoomInvite = 2, + /// The user clicks on the presence invitation message card to launch the app. + Deeplink = 4, + /// The user clicks on the challenge invitation message card to launch the app. + ChallengeInvite = 5 + } + + /// The app's 'launch result. + public enum LaunchResult + { + /// Unknown. + Unknown = 0, + /// The app is successfully launched. + Success = 1, + /// Fail to launch the app because the room is full. + FailedRoomFull = 2, + /// Fail to launch the app because the game already starts. + FailedGameAlreadyStarted = 3, + /// Fail to launch the app because the room is not found. + FailedRoomNotFound = 4, + /// Fail to launch the app because the user declines the request. + FailedUserDeclined = 5, + /// Fail to launch the app because of other reasons. + FailedOtherReason = 6 + } + + /// The state of the user's local audio. + public enum RtcMuteState + { + /// Muted. + Off = 0, + /// On. + On = 1 + } + + /// The type of media to pause or resume. + public enum RtcPauseResumeMediaType + { + /// Audio. + Audio = 0, + /// Video. + Video = 1, + /// Audio and video. + AudioAndVideo = 2 + } + + /// The type of media stream. + public enum RtcMediaStreamType + { + /// Audio stream. + Audio = 1, + /// Video stream. + Video = 2, + /// Audio and video stream. + Both = 3 + } + + /// RTC engine initialization result. + public enum RtcEngineInitResult + { + /// Unknown + Unknown = -999, + /// Already initialized. + AlreadyInitialized = -1, + /// Initialization failed due to invalid configuration. + InvalidConfig = -2, + /// Initialization failed because the platform SDK has not been initialized. + SdkNotInitialized = -3, + /// Successfully initialized. + Success = 0 + } + + /// The status of in-ear monitoring mode. + public enum RtcEarMonitorMode + { + /// Off. + Off = 0, + /// On. + On = 1 + } + + /// Stream type. + public enum RtcStreamIndex + { + /// Main stream, which means the video and audio screen captured by the camera and microphone respectively. + Main = 0, + /// Screen stream, which means the video stream from the screen and the audio stream from the sound card. + Screen = 1 + } + + /// The type of stream sync info. The stream sync info will be uploaded to the server with the audio data. + public enum RtcSyncInfoStreamType + { + /// Audio stream info. + Audio = 0 + } + + /// The type of screen stream to capture. + public enum RtcScreenMediaType + { + /// Only capture video streams. + VideoOnly = 0, + /// Only capture audio streams. + AudioOnly = 1, + /// Capture both video and audio streams. + VideoAndAudio = 2 + } + + /// Types of audio scenario. See [here](https://developer-global.pico-interactive.com/document/unity/rtc/#Audio%20management) for more information. + public enum RtcAudioScenarioType + { + /// Music scenario. + Music = 0, + /// High-quality calling scenario. + HighQualityCommunication = 1, + /// Pure call-volume scenario. + Communication = 2, + /// Pure media-volume scenario. + Media = 3, + /// Game streaming scenario. + GameStreaming = 4 + } + + /// The audio playback device. + public enum RtcAudioPlaybackDevice + { + /// Headset. + Headset = 1, + /// Earpiece. + EarPiece = 2, + /// Phone's speaker. + SpeakerPhone = 3, + /// Bluetooth headset. + HeadsetBlueTooth = 4, + /// USB headset. + HeadsetUsb = 5 + } + + /// The type of the room. + public enum RtcRoomProfileType + { + /// Communication room. + Communication = 0, + /// Live broadcasting room. + LiveBroadcasting = 1, + /// Gaming room. + Game = 2, + /// Cloud gaming room. + CloudGame = 3, + /// Low-latency room. + LowLatency = 4 + } + + /// Types of audio source. + public enum RtcAudioSourceType + { + /// Custom audio source (not available yet). + External = 0, + /// The SDK's internal audio source.' + Internal = 1 + } + + /// Audio sample rate. + public enum RtcAudioSampleRate + { + /// Auto. + Auto = -1, + /// 8000 Hz. + F8000 = 8000, + /// 16000 Hz. + F16000 = 16000, + /// 32000 Hz. + F32000 = 32000, + /// 44100 Hz. + F44100 = 44100, + /// 48000 Hz. + F48000 = 48000 + } + + /// The type of the audio channel. + public enum RtcAudioChannel + { + /// Auto (default). + Auto = -1, + /// Mono channel. + Mono = 1, + /// Stereo channel. + Stereo = 2 + } + + /// The color space of video frame. + public enum RtcColorSpace + { + /// Unknown. + Unknown = 0, + /// BT.601 digital encoding standard with a color space of [16-235]. + YCbCrBT601LimitedRange = 1, + /// BT.601 digital encoding standard with a color space of [0-255]. + YCbCrBT601FullRange = 2, + /// BT.7091 digital encoding standard with a color space of [16-235]. + YCbCrBT709LimitedRange = 3, + /// BT.7091 digital encoding standard with a color space of [0-255]. + YCbCrBT709FullRange = 4 + } + + /// (beta feature, don't use it) + public enum MatchmakingStatApproach + { + /// / + Unknown = 0, + /// / + Trailing = 1, + /// / + Swingy = 2 + } + + public enum MessageType + { + Unknown = -1, + PlatformInitializeAndroidAsynchronous = 1, + User_GetLoggedInUser = 10000, + User_GetAccessToken = 10001, + User_Get = 10002, + User_LaunchFriendRequestFlow = 10003, + User_GetLoggedInUserFriends = 10004, + User_GetNextUserArrayPage = 10005, + User_GetLoggedInUserFriendsAndRooms = 10006, + User_GetAuthorizedPermissions = 10007, + User_RequestUserPermissions = 10008, + User_GetRelations = 10009, + User_GetIdToken = 10010, + User_EntitlementCheck = 10011, + User_GetOrgScopedID = 10012, + Notification_Rtc_OnRoomStats = 10200, + Notification_Rtc_OnJoinRoom = 10201, + Notification_Rtc_OnLeaveRoom = 10202, + Notification_Rtc_OnUserLeaveRoom = 10203, + Notification_Rtc_OnUserJoinRoom = 10204, + Notification_Rtc_OnConnectionStateChange = 10205, + Notification_Rtc_OnWarn = 10206, + Notification_Rtc_OnRoomWarn = 10207, + Notification_Rtc_OnRoomError = 10208, + Notification_Rtc_OnError = 10209, + Notification_Rtc_OnUserStartAudioCapture = 10210, + Notification_Rtc_OnAudioPlaybackDeviceChanged = 10211, + Notification_Rtc_OnRemoteAudioPropertiesReport = 10212, + Notification_Rtc_OnLocalAudioPropertiesReport = 10213, + Notification_Rtc_OnUserStopAudioCapture = 10214, + Notification_Rtc_OnUserMuteAudio = 10215, + Notification_Rtc_OnMediaDeviceStateChanged = 10216, + Notification_Rtc_OnRoomMessageReceived = 10217, + Notification_Rtc_OnUserMessageReceived = 10218, + Notification_Rtc_OnTokenWillExpire = 10219, + Notification_Rtc_OnStreamSyncInfoReceived = 10220, + Notification_Rtc_OnVideoDeviceStateChanged = 10221, + Notification_Rtc_OnFirstLocalVideoFrameCaptured = 10222, + Notification_Rtc_OnRoomBinaryMessageReceived = 10223, + Notification_Rtc_OnLocalVideoSizeChanged = 10224, + Notification_Rtc_OnScreenVideoFrameSendStateChanged = 10225, + Notification_Rtc_OnUserBinaryMessageReceived = 10226, + Notification_Rtc_OnLocalVideoStateChanged = 10227, + Notification_Rtc_OnUserMessageSendResult = 10228, + Notification_Rtc_OnUserUnPublishScreen = 10229, + Notification_Rtc_OnRoomMessageSendResult = 10230, + Notification_Rtc_OnUserPublishStream = 10231, + Notification_Rtc_OnUserUnPublishStream = 10232, + Notification_Rtc_OnUserPublishScreen = 10233, + Rtc_GetToken = 10300, + Matchmaking_Browse2 = 10400, + Matchmaking_Browse2CustomPage = 10401, + Matchmaking_Cancel2 = 10402, + Matchmaking_CreateAndEnqueueRoom2 = 10404, + Matchmaking_Enqueue2 = 10408, + Matchmaking_EnqueueRoom2 = 10410, + Matchmaking_GetAdminSnapshot = 10411, + Matchmaking_GetStats = 10412, + Matchmaking_ReportResultInsecure = 10414, + Matchmaking_StartMatch = 10415, + Room_CreateAndJoinPrivate = 10500, + Room_CreateAndJoinPrivate2 = 10501, + Room_Get = 10502, + Room_GetCurrent = 10503, + Room_GetCurrentForUser = 10504, + Room_GetInvitableUsers = 10505, + Room_GetInvitableUsers2 = 10506, + Room_GetModeratedRooms = 10507, + Room_GetNextRoomArrayPage = 10508, + Room_InviteUser = 10509, + Room_Join = 10510, + Room_Join2 = 10511, + Room_KickUser = 10512, + Room_LaunchInvitableUserFlow = 10513, + Room_Leave = 10514, + Room_SetDescription = 10515, + Room_UpdateDataStore = 10516, + Room_UpdateMembershipLockStatus = 10517, + Room_UpdateOwner = 10518, + Room_UpdatePrivateRoomJoinPolicy = 10519, + Room_JoinNamed = 10520, + Room_GetNamedRooms = 10521, + Notification_Matchmaking_MatchFound = 10600, + Notification_Room_InviteAccepted = 10601, + Notification_Room_RoomUpdate = 10603, + Notification_Game_ConnectionEvent = 10604, + Notification_Game_RequestFailed = 10605, + Notification_Game_StateReset = 10606, + Notification_GetNextRoomInviteNotificationArrayPage = 10607, + Notification_GetRoomInvites = 10608, + Notification_MarkAsRead = 10609, + Notification_Challenge_LaunchByInvite = 10610, + PlatformGameInitializeAsynchronous = 10700, + Leaderboard_Get = 10800, + Leaderboard_GetNextLeaderboardArrayPage = 10801, + Leaderboard_GetEntries = 10802, + Leaderboard_GetEntriesAfterRank = 10803, + Leaderboard_GetEntriesByIds = 10804, + Leaderboard_GetNextEntries = 10805, + Leaderboard_GetPreviousEntries = 10806, + Leaderboard_WriteEntry = 10807, + Leaderboard_WriteEntryWithSupplementaryMetric = 10808, + Achievements_AddCount = 10820, + Achievements_AddFields = 10821, + Achievements_GetAllDefinitions = 10822, + Achievements_GetAllProgress = 10823, + Achievements_GetDefinitionsByName = 10824, + Achievements_GetNextAchievementDefinitionArrayPage = 10825, + Achievements_GetNextAchievementProgressArrayPage = 10826, + Achievements_GetProgressByName = 10827, + Achievements_Unlock = 10828, + Challenges_Invite = 10850, + Challenges_Get = 10851, + Challenges_GetList = 10852, + Challenges_GetEntries = 10853, + Challenges_GetEntriesAfterRank = 10854, + Challenges_GetEntriesByIds = 10855, + Challenges_Join = 10856, + Challenges_Leave = 10857, + Challenges_LaunchInvitableUserFlow = 10858, + Application_LaunchOtherApp = 11001, + Presence_GetSentInvites = 11002, + Presence_GetInvitableUsers = 11003, + Presence_SendInvites = 11004, + Presence_GetDestinations = 11005, + Presence_Clear = 11006, + Presence_Set = 11007, + Notification_ApplicationLifecycle_LaunchIntentChanged = 11008, + Notification_Presence_JoinIntentReceived = 11009, + Application_LaunchOtherAppByPresence = 11011, + Application_LaunchOtherAppByMessage = 11013, + Presence_ShareMedia = 11014, + Presence_LaunchInvitePanel = 11015, + Presence_SendCustomInvites = 11016, + Application_LaunchStore = 11017, + Application_GetVersion = 11018, + IAP_GetProductsBySKU = 12001, + IAP_GetViewerPurchases = 12002, + IAP_LaunchCheckoutFlow = 12003, + IAP_ConsumePurchase = 12004, + IAP_GetSubscriptionStatus = 12005, + Sport_GetUserInfo = 12500, + Sport_GetDailySummary = 12501, + Sport_GetSummary = 12502, + AssetFile_DeleteById = 13001, + AssetFile_DeleteByName = 13002, + AssetFile_DownloadById = 13003, + AssetFile_DownloadByName = 13004, + AssetFile_DownloadCancelById = 13005, + AssetFile_DownloadCancelByName = 13006, + AssetFile_GetList = 13007, + AssetFile_StatusById = 13008, + AssetFile_StatusByName = 13009, + AssetFile_GetNextAssetDetailsArrayPage = 13010, + Notification_AssetFile_DownloadUpdate = 13101, + Notification_AssetFile_DeleteForSafety = 13102, + Notification_Speech_OnAsrResult = 14001, + Notification_Speech_OnSpeechError = 14002, + Compliance_DetectSensitive = 15015, + Highlight_StartSession = 15110, + Highlight_CaptureScreen = 15111, + Highlight_StartRecord = 15112, + Highlight_StopRecord = 15113, + Highlight_ListMedia = 15114, + Highlight_SaveMedia = 15115, + Highlight_ShareMedia = 15116, + Notification_Highlight_OnRecordStop = 15150, + CloudStorage_StartNewBackup = 16001, + } + + /// Whether it is the first time that the user has joined the room or if the user is reconnected to the room. + public enum RtcJoinRoomType + { + /// It is the first time that the user has joined the room. + First = 0, + /// The user is reconnected to the room. + Reconnected = 1 + } + + /// The reason why the user leaves the room. + public enum RtcUserLeaveReasonType + { + /// The user quits the room. + Quit = 0, + /// The user drops out of the room. + Dropped = 1 + } + + /// The type of the media device. + public enum RtcMediaDeviceType + { + /// Unknown audio device. + AudioUnknown = -1, + /// Audio renderer. + AudioRenderDevice = 0, + /// Audio capture device. + AudioCaptureDevice = 1 + } + + /// The state of the media device. + public enum RtcMediaDeviceState + { + /// The device starts working. + Started = 1, + /// The device stops working. + Stopped = 2, + /// Runtime error. + RuntimeError = 3, + /// The device is added. + Added = 4, + /// The device is removed. + Removed = 5 + } + + /// Types of media device errors. + public enum RtcMediaDeviceError + { + /// No error. + Ok = 0, + /// No permission to record audio or video. + NoPermission = 1, + /// The device is being used. + DeviceBusy = 2, + /// Device failure. + DeviceFailure = 3, + /// The device is not found. + DeviceNotFound = 4, + /// The device is disconnected. + DeviceDisconnected = 5, + /// The device does not send data to the RTC engine. + DeviceNoCallback = 6, + /// The sampling format is not supported. + UnSupporttedFormat = 7 + } + + /// The reason why the remote stream is removed. + public enum RtcStreamRemoveReason + { + /// The remote user stops publishing streams. + Unpublish = 0, + /// The remote user fails to publish streams. + PublishFailed = 1, + /// Fail to maintain the active state of the stream. + KeepLiveFailed = 2, + /// The remote user is disconnected. + ClientDisconnected = 3, + /// The remote user republishes streams. + Republish = 4, + /// Other reasons. + Other = 5 + } + + /// The events that may take place in networking. + public enum GameConnectionEvent + { + /// Connected. + Connected = 0, + /// Closed. + Closed = 1, + /// Reconnecting. + Lost = 2, + /// Reconnected. + Resumed = 3, + /// Kicked for re-login. + KickedByRelogin = 4, + /// Kicked by the server. + KickedByGameServer = 5, + /// Game logic error. + GameLogicError = 6, + /// Unknown. + Unknown = 7 + } + + /// The reasons for failed requests to the game service. + public enum GameRequestFailedReason + { + /// None. + None = 0, + /// Platform services are not initialized. + NotInitialized = 1, + /// Platform services has been uninitialized. + Uninitialized = 2, + /// The game service is currently unavailable. + CurrentlyUnavailable = 3, + /// Unknown reason. + CurrentlyUnknown = 4 + } + + /// The purpose of sports. + public enum SportTarget + { + /// To lose weight. + LoseFat = 0, + /// To keep fit. + KeepFit = 1 + } + + /// The period type of the subscription. + public enum PeriodType + { + /// Invalid value. + Invalid = -1, + /// None. A default value for non-subscription add-on. + None = 0, + /// Hourly subscription. + Hour = 1, + /// Daily subscription. + Day = 2, + /// Weekly subscription. + Week = 3, + /// Monthly subscription. + Month = 4, + /// Quarterly subscription. + Quarter = 5, + /// Annual subscription. + Year = 6 + } + + /// The relationship between two users. You can call \ref UserService.GetUserRelations to query user relation. + public enum UserRelationType + { + /// Unknown relationship. + Unknown = 0, + /// The queried user is the current user's friend. + IsFriend = 1, + /// The queried user is not the current user's friend and the current user can send a friend request to the queried user. + NotFriend = 2, + /// The queried user is blocked by the current user. + Blocked = 3, + /// The current user is blocked by the queried user, so the current user cannot send a friend request to the queried user. + BlockedBy = 4, + /// The current user has sent a friend request to the queried user. + ApplyingFriend = 5 + } + + /// The initialization result of platform services. + public enum PlatformInitializeResult + { + /// Unknown. + Unknown = -999, + /// Initialization needs to fetch the app's configuration. If the network request fails, this error will occur. + NetError = -6, + /// SDK depends on some system functions. This error means failed to find implementation. + MissingImpl = -5, + /// Load implementation so failed. + LoadImplFailed = -4, + /// Initialization fails because of unclear reason. + InternalError = -3, + /// The `appid` param is invalid. Please check the it. + InvalidParams = -2, + /// The platform SDK has already been initialized. + AlreadyInitialized = -1, + /// The platform SDK is successfully initialized. + Success = 0 + } + + /// The type of media to share. + public enum ShareMediaType + { + /// Videos attached with thumbnails. + Video = 0, + /// Screenshots. + Image = 1 + } + + /// The app which the videos or screenshots are shared to. + public enum ShareAppType + { + /// The [Douyin](https://www.douyin.com/) app. + Douyin = 0 + } + + /// The user needs to pass a token when joining the room. When requesting a token, a map (key-value pair) should be passed. The key is the permission name and the value is the permission's validity time. + public enum RtcPrivilege + { + /// The permission to publish audio and video streams. + PublishStream = 0, + /// The permission to publish audio streams. + PublishAudioStream = 1, + /// The permission to publish video streams. + PublishVideoStream = 2, + /// The permission to subscribe to the streams from others. + SubscribeStream = 3 + } + + /// Indicates whether the local device is connected to the RTC server. + public enum RtcConnectionState + { + /// Disconnected for 12 seconds, and the SDK will try to reconnect. + Disconnected = 1, + /// Connecting. + Connecting = 2, + /// Connected. + Connected = 3, + /// Reconnecting. + Reconnecting = 4, + /// Reconnected. + Reconnected = 5, + /// Remains in the `Disconnected` status for more than 10 seconds and reconnection attempts during this period are unsuccessful, the SDK will continue trying to reconnect. + Lost = 6 + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB.cs.meta new file mode 100644 index 0000000..b998b0b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d10b07d0efa7915488f7ac6e32eb5eb6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB2.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB2.cs new file mode 100644 index 0000000..3086f5f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB2.cs @@ -0,0 +1,118 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; + +namespace Pico.Platform +{ + public partial class CLIB + { + public static ulong ppf_Achievements_GetProgressByName(string[] names) + { + var namesHandle = new PtrArray(names); + var result = ppf_Achievements_GetProgressByName(namesHandle.a, names.Length); + namesHandle.Free(); + return result; + } + + public static ulong ppf_Achievements_GetDefinitionsByName(string[] names) + { + var namesHandle = new PtrArray(names); + var result = ppf_Achievements_GetDefinitionsByName(namesHandle.a, names.Length); + namesHandle.Free(); + return result; + } + + public static ulong ppf_IAP_GetProductsBySKU(string[] names) + { + var namesHandle = new PtrArray(names); + var result = ppf_IAP_GetProductsBySKU(namesHandle.a, names.Length); + namesHandle.Free(); + return result; + } + + public static ulong ppf_Leaderboard_GetEntriesByIds(string leaderboardName, int pageSize, int pageIdx, LeaderboardStartAt startAt, string[] userIDs) + { + var userIds = new PtrArray(userIDs); + var result = ppf_Leaderboard_GetEntriesByIds(leaderboardName, pageSize, pageIdx, startAt, userIds.a, (uint) userIDs.Length); + userIds.Free(); + return result; + } + + public static ulong ppf_Challenges_GetEntriesByIds(ulong challengeID, LeaderboardStartAt startAt, string[] userIDs, int pageIdx, int pageSize) + { + var userIds = new PtrArray(userIDs); + var result = ppf_Challenges_GetEntriesByIds(challengeID, startAt, userIds.a, (uint) userIDs.Length, pageIdx, pageSize); + userIds.Free(); + return result; + } + + public static ulong ppf_Challenges_Invites(ulong challengeID, string[] userIDs) + { + var userIds = new PtrArray(userIDs); + var result = ppf_Challenges_Invites(challengeID, userIds.a, (uint) userIDs.Length); + userIds.Free(); + return result; + } + + public static ulong ppf_User_RequestUserPermissions(string[] permissions) + { + var ptrs = new PtrArray(permissions); + var result = ppf_User_RequestUserPermissions(ptrs.a, permissions.Length); + ptrs.Free(); + return result; + } + + public static ulong ppf_User_GetRelations(string[] userIds) + { + var ptrs = new PtrArray(userIds); + var result = ppf_User_GetRelations(ptrs.a, userIds.Length); + ptrs.Free(); + return result; + } + + public static ulong ppf_Presence_SendInvites(string[] userIDs) + { + var ptrs = new PtrArray(userIDs); + var result = ppf_Presence_SendInvites(ptrs.a, (uint) userIDs.Length); + ptrs.Free(); + return result; + } + + public static Dictionary DataStoreFromNative(IntPtr ppfDataStore) + { + var map = new Dictionary(); + var size = (int) ppf_DataStore_GetNumKeys(ppfDataStore); + for (var i = 0; i < size; i++) + { + string key = ppf_DataStore_GetKey(ppfDataStore, i); + map[key] = ppf_DataStore_GetValue(ppfDataStore, key); + } + + return map; + } + + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate int RtcProcessAudioFrameFunction(IntPtr audioFrameHandle); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_Rtc_RegisterLocalAudioProcessor", CallingConvention = CallingConvention.Cdecl)] + public static extern void ppf_Rtc_RegisterLocalAudioProcessor(RtcProcessAudioFrameFunction rtcProcessAudioFrameFunction, RtcAudioChannel channel, RtcAudioSampleRate sampleRate); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_InitializeAndroid", CallingConvention = CallingConvention.Cdecl)] + public static extern PlatformInitializeResult ppf_InitializeAndroid(string appId, IntPtr activityObj, IntPtr env); + + [DllImport("pxrplatformloader", EntryPoint = "ppf_InitializeAndroidAsynchronous", CallingConvention = CallingConvention.Cdecl)] + public static extern ulong ppf_InitializeAndroidAsynchronous(string appId, IntPtr activityObj, IntPtr env); + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB2.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB2.cs.meta new file mode 100644 index 0000000..80ad484 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/CLIB2.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d8426d258c3f4a19950866175d24fdcf +timeCreated: 1660302689 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/MarshalUtil.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/MarshalUtil.cs new file mode 100644 index 0000000..1791b39 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/MarshalUtil.cs @@ -0,0 +1,171 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; + +namespace Pico.Platform +{ + public class UTF8Marshaller : ICustomMarshaler + { + public void CleanUpManagedData(object ManagedObj) + { + } + + public void CleanUpNativeData(IntPtr pNativeData) + => Marshal.FreeHGlobal(pNativeData); + + public int GetNativeDataSize() => -1; + + public IntPtr MarshalManagedToNative(object managedObj) + { + if (managedObj == null) + return IntPtr.Zero; + if (!(managedObj is string)) + throw new MarshalDirectiveException("UTF8Marshaler must be used on a string."); + + return MarshalUtil.StringToPtr((string) managedObj); + } + + public object MarshalNativeToManaged(IntPtr str) + { + if (str == IntPtr.Zero) + return null; + return MarshalUtil.PtrToString(str); + } + + public static ICustomMarshaler GetInstance(string pstrCookie) + { + if (marshaler == null) + marshaler = new UTF8Marshaller(); + return marshaler; + } + + private static UTF8Marshaller marshaler; + } + + public class PtrManager + { + public IntPtr ptr; + private bool freed = false; + + public PtrManager(byte[] a) + { + this.ptr = MarshalUtil.ByteArrayToNative(a); + } + + public void Free() + { + if (freed) return; + freed = true; + Marshal.FreeHGlobal(ptr); + } + + ~PtrManager() + { + this.Free(); + } + } + + class PtrArray + { + public IntPtr[] a; + private bool freed = false; + + public PtrArray(string[] a) + { + if (a == null) + { + a = Array.Empty(); + } + + this.a = a.Select(x => MarshalUtil.StringToPtr(x)).ToArray(); + } + + public void Free() + { + if (freed) return; + freed = true; + foreach (var i in a) + { + Marshal.FreeHGlobal(i); + } + } + + ~PtrArray() + { + this.Free(); + } + } + + public static class MarshalUtil + { + public static IntPtr StringToPtr(string s) + { + if (s == null) return IntPtr.Zero; + // not null terminated + byte[] strbuf = Encoding.UTF8.GetBytes(s); + IntPtr buffer = Marshal.AllocHGlobal(strbuf.Length + 1); + Marshal.Copy(strbuf, 0, buffer, strbuf.Length); + + // write the terminating null + Marshal.WriteByte(buffer + strbuf.Length, 0); + return buffer; + } + + public static string PtrToString(IntPtr p) + { + return GetString(Encoding.UTF8, p); + } + + public static string GetString(Encoding encoding, IntPtr str) + { + if (str == IntPtr.Zero) + return null; + + int byteCount = 0; + + if (Equals(encoding, Encoding.UTF32)) + { + while (Marshal.ReadInt32(str, byteCount) != 0) byteCount += sizeof(int); + } + else if (Equals(encoding, Encoding.Unicode) || Equals(encoding, Encoding.BigEndianUnicode)) + { + while (Marshal.ReadInt16(str, byteCount) != 0) byteCount += sizeof(short); + } + else + { + while (Marshal.ReadByte(str, byteCount) != 0) byteCount += sizeof(byte); + } + + var bytes = new byte[byteCount]; + Marshal.Copy(str, bytes, 0, byteCount); + return encoding.GetString(bytes); + } + + public static byte[] ByteArrayFromNative(IntPtr ptr, uint length) + { + var ans = new byte[length]; + Marshal.Copy(ptr, ans, 0, (int) length); + return ans; + } + + public static IntPtr ByteArrayToNative(byte[] a) + { + var ptr = Marshal.AllocHGlobal(a.Length); + Marshal.Copy(a, 0, ptr, a.Length); + return ptr; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/MarshalUtil.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/MarshalUtil.cs.meta new file mode 100644 index 0000000..6e84af6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/CLIB/MarshalUtil.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a97b494aeb644a0f9e1f1dc041b13a4e +timeCreated: 1660145702 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework.meta new file mode 100644 index 0000000..70b8b76 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9532b7f0304176428dc114e63d9533a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Looper.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Looper.cs new file mode 100644 index 0000000..e3c57c6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Looper.cs @@ -0,0 +1,170 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Concurrent; +using UnityEngine; + +namespace Pico.Platform +{ + public class Looper + { + private static readonly ConcurrentDictionary TaskMap = new ConcurrentDictionary(); + private static readonly ConcurrentDictionary NotifyMap = new ConcurrentDictionary(); + public static readonly ConcurrentDictionary MessageParserMap = new ConcurrentDictionary(); + + public static void ProcessMessages(uint limit = 0) + { + if (limit == 0) + { + while (true) + { + var msg = PopMessage(); + if (msg == null) + { + break; + } + + dispatchMessage(msg); + } + } + else + { + for (var i = 0; i < limit; ++i) + { + var msg = PopMessage(); + if (msg == null) + { + break; + } + + dispatchMessage(msg); + } + } + } + + public static Message PopMessage() + { + if (!CoreService.Initialized) + { + return null; + } + + var handle = CLIB.ppf_PopMessage(); + if (handle == IntPtr.Zero) + { + return null; + } + + MessageType messageType = CLIB.ppf_Message_GetType(handle); + Message msg = MessageQueue.ParseMessage(handle); + if (msg == null) + { + if (MessageParserMap.TryGetValue(messageType, out MessageParser parser)) + { + msg = parser(handle); + } + } + + if (msg == null) + { + Debug.LogError($"Cannot parse message type {messageType}"); + } + + CLIB.ppf_FreeMessage(handle); + return msg; + } + + private static void dispatchMessage(Message msg) + { + if (msg.RequestID != 0) + { + // handle task + if (TaskMap.TryGetValue(msg.RequestID, out var handler)) + { + try + { + handler.DynamicInvoke(msg); + } + catch (Exception e) + { + Debug.LogError($"dispatchMessage failed {e}"); + } + finally + { + TaskMap.TryRemove(msg.RequestID, out handler); + } + } + else + { + Debug.LogError($"No handler for task: requestId={msg.RequestID}, msg.Type = {msg.Type}. You should call `OnComplete()` when use request API."); + } + } + else + { + // handle notification + if (NotifyMap.TryGetValue(msg.Type, out var handler)) + { + handler.DynamicInvoke(msg); + } + else + { + //Debug.LogError($"No handler for notification: msg.Type = {msg.Type}"); + } + } + } + + public static void RegisterTaskHandler(ulong taskId, Delegate handler) + { + if (taskId == 0) + { + Debug.LogError("The task is invalid."); + return; + } + + TaskMap[taskId] = handler; + } + + public static void RegisterNotifyHandler(MessageType type, Delegate handler) + { + if (handler == null) + { + Debug.LogError("Cannot register null notification handler."); + return; + } + + NotifyMap[type] = handler; + } + + public static void RegisterMessageParser(MessageType messageType, MessageParser messageParser) + { + if (messageParser == null) + { + Debug.LogError($"invalid message parser for {messageType}"); + return; + } + + if (MessageParserMap.ContainsKey(messageType)) + { + Debug.LogWarning($"Duplicate register of {messageType}"); + } + + MessageParserMap.TryAdd(messageType, messageParser); + } + + public static void Clear() + { + TaskMap.Clear(); + NotifyMap.Clear(); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Looper.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Looper.cs.meta new file mode 100644 index 0000000..65e7d7b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Looper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 26c0fea4ad144b74f9173e5b4ad26287 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Message.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Message.cs new file mode 100644 index 0000000..106d018 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Message.cs @@ -0,0 +1,117 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Generic; +using Pico.Platform.Models; + +namespace Pico.Platform.Models +{ + public class Error + { + public readonly int Code; + public readonly string Message; + + public Error(int code, string msg) + { + this.Code = code; + this.Message = msg; + } + + public Error(IntPtr handle) + { + this.Code = CLIB.ppf_Error_GetCode(handle); + this.Message = CLIB.ppf_Error_GetMessage(handle); + } + + public override string ToString() + { + return $"Error(Code={this.Code},Message={this.Message})"; + } + } + + public class MessageArray : List + { + /**@brief The next page parameter. It's empty when it doesn't has next page.*/ + public string NextPageParam; + + /**@brief The previous page parameter. It's empty when it doesn't has previous page.*/ + public string PreviousPageParam; + + public bool HasNextPage => !String.IsNullOrEmpty(NextPageParam); + + public bool HasPreviousPage => !String.IsNullOrEmpty(PreviousPageParam); + } +} + +namespace Pico.Platform +{ + public class Message + { + public delegate void Handler(Message message); + + public readonly MessageType Type; + public readonly ulong RequestID; + public readonly Error Error; + + public Message(IntPtr msgPointer) + { + Type = CLIB.ppf_Message_GetType(msgPointer); + RequestID = CLIB.ppf_Message_GetRequestID(msgPointer); + if (CLIB.ppf_Message_IsError(msgPointer)) + { + Error = new Error(CLIB.ppf_Message_GetError(msgPointer)); + } + } + + public bool IsError => Error != null && Error.Code != 0; + + [Obsolete("Use Error instead")] + public Error GetError() + { + return Error; + } + } + + public class Message : Message + { + public new delegate void Handler(Message message); + + public readonly T Data; + + public delegate T GetDataFromMessage(IntPtr msgPointer); + + public Message(IntPtr msgPointer, GetDataFromMessage getData) : base(msgPointer) + { + if (!IsError) + { + Data = getData(msgPointer); + } + } + } + + + public delegate Message MessageParser(IntPtr ptr); + + public static class CommonParsers + { + public static Message StringParser(IntPtr msgPointer) + { + return new Message(msgPointer, ptr => { return CLIB.ppf_Message_GetString(ptr); }); + } + + public static Message VoidParser(IntPtr msgPointer) + { + return new Message(msgPointer); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Message.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Message.cs.meta new file mode 100644 index 0000000..94de465 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Message.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 47be01e871da24aba8e67d2bd8b6646c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/MessageQueue.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/MessageQueue.cs new file mode 100644 index 0000000..8245cde --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/MessageQueue.cs @@ -0,0 +1,923 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using Pico.Platform.Models; + +namespace Pico.Platform +{ + public class MessageQueue + { + public static Message ParseMessage(IntPtr msgPointer) + { + Message msg = null; + MessageType messageType = CLIB.ppf_Message_GetType(msgPointer); + switch (messageType) + { + case MessageType.PlatformInitializeAndroidAsynchronous: + { + msg = new Message(msgPointer, ptr => { return (PlatformInitializeResult) CLIB.ppf_Message_GetInt32(ptr); }); + break; + } + + case MessageType.CloudStorage_StartNewBackup: + { + msg = new Message(msgPointer); + break; + } + + #region speech + + case MessageType.Notification_Speech_OnAsrResult: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAsrResult(ptr); + return new AsrResult(obj); + }); + break; + } + case MessageType.Notification_Speech_OnSpeechError: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetSpeechError(ptr); + return new SpeechError(obj); + }); + break; + } + + #endregion + + #region Highlight + + case MessageType.Highlight_StartSession: + { + msg = new Message(msgPointer, ptr => { return CLIB.ppf_Message_GetString(ptr); }); + break; + } + case MessageType.Highlight_CaptureScreen: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetCaptureInfo(ptr); + if (obj == IntPtr.Zero) return null; + return new CaptureInfo(obj); + }); + break; + } + case MessageType.Highlight_ListMedia: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetSessionMedia(ptr); + if (obj == IntPtr.Zero) return null; + return new SessionMedia(obj); + }); + break; + } + case MessageType.Highlight_SaveMedia: + case MessageType.Highlight_ShareMedia: + case MessageType.Highlight_StartRecord: + + { + msg = new Message(msgPointer); + break; + } + case MessageType.Highlight_StopRecord: + case MessageType.Notification_Highlight_OnRecordStop: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRecordInfo(ptr); + if (obj == IntPtr.Zero) return null; + return new RecordInfo(obj); + }); + break; + } + + #endregion + + #region compliance + + case MessageType.Compliance_DetectSensitive: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetDetectSensitiveResult(ptr); + if (obj == IntPtr.Zero) return null; + return new DetectSensitiveResult(obj); + }); + break; + } + + #endregion + + #region Sport + + case MessageType.Sport_GetSummary: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetSportSummary(ptr); + if (obj == IntPtr.Zero) return null; + return new SportSummary(obj); + }); + break; + } + case MessageType.Sport_GetDailySummary: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetSportDailySummaryArray(ptr); + if (obj == IntPtr.Zero) return null; + return new SportDailySummaryList(obj); + }); + break; + } + case MessageType.Sport_GetUserInfo: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetSportUserInfo(ptr); + if (obj == IntPtr.Zero) return null; + return new SportUserInfo(obj); + }); + break; + } + + #endregion + + #region User + + case MessageType.User_EntitlementCheck: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetEntitlementCheckResult(ptr); + if (obj == IntPtr.Zero) return null; + return new EntitlementCheckResult(obj); + }); + break; + } + case MessageType.User_GetAuthorizedPermissions: + case MessageType.User_RequestUserPermissions: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetPermissionResult(ptr); + if (obj == IntPtr.Zero) return null; + return new PermissionResult(obj); + }); + break; + } + + + case MessageType.User_GetLoggedInUserFriendsAndRooms: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetUserAndRoomArray(ptr); + if (obj == IntPtr.Zero) return null; + var data = new UserRoomList(obj); + return data; + }); + break; + } + case MessageType.Presence_GetSentInvites: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetApplicationInviteArray(ptr); + if (obj == IntPtr.Zero) return null; + var data = new ApplicationInviteList(obj); + return data; + }); + break; + } + case MessageType.Presence_SendInvites: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetSendInvitesResult(ptr); + if (obj == IntPtr.Zero) return null; + var data = new SendInvitesResult(obj); + return data; + }); + break; + } + case MessageType.Presence_GetDestinations: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetDestinationArray(ptr); + if (obj == IntPtr.Zero) return null; + var data = new DestinationList(obj); + return data; + }); + break; + } + case MessageType.User_GetAccessToken: + case MessageType.User_GetIdToken: + case MessageType.Rtc_GetToken: + case MessageType.Notification_Rtc_OnTokenWillExpire: + case MessageType.Notification_Rtc_OnUserStartAudioCapture: + case MessageType.Notification_Rtc_OnUserStopAudioCapture: + case MessageType.Application_LaunchOtherApp: + case MessageType.Application_LaunchStore: + case MessageType.Notification_Room_InviteAccepted: + case MessageType.Notification_Challenge_LaunchByInvite: + case MessageType.Notification_ApplicationLifecycle_LaunchIntentChanged: + { + msg = new Message(msgPointer, ptr => { return CLIB.ppf_Message_GetString(ptr); }); + break; + } + case MessageType.Notification_Presence_JoinIntentReceived: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetPresenceJoinIntent(ptr); + if (obj == IntPtr.Zero) return null; + return new PresenceJoinIntent(obj); + }); + break; + } + case MessageType.Application_GetVersion: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetApplicationVersion(ptr); + if (obj == IntPtr.Zero) return null; + return new ApplicationVersion(obj); + }); + break; + } + + case MessageType.User_GetLoggedInUser: + case MessageType.User_Get: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetUser(ptr); + if (obj == IntPtr.Zero) return null; + return new User(obj); + }); + break; + } + case MessageType.User_GetOrgScopedID: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetOrgScopedID(ptr); + if (obj == IntPtr.Zero) return null; + return new OrgScopedID(obj); + }); + break; + } + case MessageType.User_LaunchFriendRequestFlow: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetLaunchFriendRequestFlowResult(ptr); + if (obj == IntPtr.Zero) return null; + return new LaunchFriendResult(obj); + }); + break; + } + case MessageType.User_GetLoggedInUserFriends: + case MessageType.Room_GetInvitableUsers2: + case MessageType.Presence_GetInvitableUsers: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetUserArray(ptr); + if (obj == IntPtr.Zero) return null; + return new UserList(obj); + }); + break; + } + + case MessageType.User_GetRelations: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetUserRelationResult(ptr); + if (obj == IntPtr.Zero) return null; + return new UserRelationResult(obj); + }); + break; + } + + #endregion + + #region RTC + + case MessageType.Notification_Rtc_OnRoomMessageReceived: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcRoomMessageReceived(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcRoomMessageReceived(obj); + }); + break; + } + case MessageType.Notification_Rtc_OnUserMessageReceived: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcUserMessageReceived(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcUserMessageReceived(obj); + }); + break; + } + case MessageType.Notification_Rtc_OnRoomMessageSendResult: + case MessageType.Notification_Rtc_OnUserMessageSendResult: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcMessageSendResult(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcMessageSendResult(obj); + }); + break; + } + case MessageType.Notification_Rtc_OnRoomBinaryMessageReceived: + case MessageType.Notification_Rtc_OnUserBinaryMessageReceived: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcBinaryMessageReceived(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcBinaryMessageReceived(obj); + }); + break; + } + case MessageType.Notification_Rtc_OnUserPublishScreen: + case MessageType.Notification_Rtc_OnUserPublishStream: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcUserPublishInfo(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcUserPublishInfo(ptr); + }); + break; + } + case MessageType.Notification_Rtc_OnUserUnPublishScreen: + case MessageType.Notification_Rtc_OnUserUnPublishStream: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcUserUnPublishInfo(ptr); + if (obj == IntPtr.Zero) + { + return null; + } + + return new RtcUserUnPublishInfo(obj); + }); + break; + } + + case MessageType.Notification_Rtc_OnStreamSyncInfoReceived: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcStreamSyncInfo(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcStreamSyncInfo(obj); + }); + break; + } + case MessageType.Notification_Rtc_OnVideoDeviceStateChanged: + { + break; + } + case MessageType.Notification_Rtc_OnRoomError: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcRoomError(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcRoomError(obj); + }); + break; + } + case MessageType.Notification_Rtc_OnRoomWarn: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcRoomWarn(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcRoomWarn(obj); + }); + break; + } + case MessageType.Notification_Rtc_OnConnectionStateChange: + { + msg = new Message(msgPointer, ptr => { return (RtcConnectionState) CLIB.ppf_Message_GetInt32(ptr); }); + break; + } + case MessageType.Notification_Rtc_OnError: + case MessageType.Notification_Rtc_OnWarn: + { + msg = new Message(msgPointer, ptr => { return CLIB.ppf_Message_GetInt32(ptr); }); + break; + } + case MessageType.Notification_Rtc_OnRoomStats: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcRoomStats(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcRoomStats(obj); + }); + break; + } + case MessageType.Notification_Rtc_OnJoinRoom: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcJoinRoomResult(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcJoinRoomResult(obj); + }); + break; + } + case MessageType.Notification_Rtc_OnLeaveRoom: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcLeaveRoomResult(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcLeaveRoomResult(obj); + }); + break; + } + + case MessageType.Notification_Rtc_OnUserLeaveRoom: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcUserLeaveInfo(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcUserLeaveInfo(obj); + }); + break; + } + + case MessageType.Notification_Rtc_OnUserJoinRoom: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcUserJoinInfo(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcUserJoinInfo(obj); + }); + break; + } + + case MessageType.Notification_Rtc_OnAudioPlaybackDeviceChanged: + { + msg = new Message(msgPointer, ptr => { return (RtcAudioPlaybackDevice) CLIB.ppf_Message_GetInt32(ptr); }); + break; + } + + case MessageType.Notification_Rtc_OnMediaDeviceStateChanged: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcMediaDeviceChangeInfo(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcMediaDeviceChangeInfo(obj); + }); + break; + } + + case MessageType.Notification_Rtc_OnLocalAudioPropertiesReport: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcLocalAudioPropertiesReport(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcLocalAudioPropertiesReport(obj); + }); + break; + } + + case MessageType.Notification_Rtc_OnRemoteAudioPropertiesReport: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcRemoteAudioPropertiesReport(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcRemoteAudioPropertiesReport(obj); + }); + break; + } + + case MessageType.Notification_Rtc_OnUserMuteAudio: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRtcMuteInfo(ptr); + if (obj == IntPtr.Zero) return null; + return new RtcMuteInfo(obj); + }); + break; + } + + #endregion + + #region IAP + + case MessageType.IAP_GetViewerPurchases: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetPurchaseArray(ptr); + if (obj == IntPtr.Zero) return null; + return new PurchaseList(obj); + }); + break; + } + case MessageType.IAP_GetSubscriptionStatus: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetSubscriptionStatus(ptr); + if (obj == IntPtr.Zero) return null; + return new SubscriptionStatus(obj); + }); + break; + } + case MessageType.IAP_LaunchCheckoutFlow: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetPurchase(ptr); + if (obj == IntPtr.Zero) return null; + return new Purchase(obj); + }); + break; + } + case MessageType.IAP_GetProductsBySKU: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetProductArray(ptr); + if (obj == IntPtr.Zero) return null; + return new ProductList(obj); + }); + break; + } + + #endregion + + #region DLC + + case MessageType.AssetFile_DeleteById: + case MessageType.AssetFile_DeleteByName: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAssetFileDeleteResult(ptr); + if (obj == IntPtr.Zero) return null; + return new AssetFileDeleteResult(obj); + }); + break; + } + case MessageType.AssetFile_DownloadById: + case MessageType.AssetFile_DownloadByName: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAssetFileDownloadResult(ptr); + if (obj == IntPtr.Zero) return null; + return new AssetFileDownloadResult(obj); + }); + break; + } + case MessageType.AssetFile_DownloadCancelById: + case MessageType.AssetFile_DownloadCancelByName: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAssetFileDownloadCancelResult(ptr); + if (obj == IntPtr.Zero) return null; + return new AssetFileDownloadCancelResult(obj); + }); + break; + } + case MessageType.AssetFile_GetList: + case MessageType.AssetFile_GetNextAssetDetailsArrayPage: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAssetDetailsArray(ptr); + if (obj == IntPtr.Zero) return null; + return new AssetDetailsList(obj); + }); + break; + } + case MessageType.AssetFile_StatusById: + case MessageType.AssetFile_StatusByName: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAssetStatus(ptr); + if (obj == IntPtr.Zero) return null; + return new AssetStatus(obj); + }); + break; + } + case MessageType.Notification_AssetFile_DownloadUpdate: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAssetFileDownloadUpdate(ptr); + if (obj == IntPtr.Zero) return null; + return new AssetFileDownloadUpdate(obj); + }); + break; + } + case MessageType.Notification_AssetFile_DeleteForSafety: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAssetFileDeleteForSafety(ptr); + if (obj == IntPtr.Zero) return null; + return new AssetFileDeleteForSafety(obj); + }); + break; + } + + #endregion + + #region stark game + + case MessageType.Matchmaking_Cancel2: + case MessageType.Matchmaking_ReportResultInsecure: + case MessageType.Matchmaking_StartMatch: + case MessageType.Room_LaunchInvitableUserFlow: + case MessageType.Challenges_LaunchInvitableUserFlow: + case MessageType.Room_UpdateOwner: + case MessageType.Notification_MarkAsRead: + case MessageType.Notification_Game_StateReset: + case MessageType.Presence_Clear: + case MessageType.Presence_Set: + case MessageType.IAP_ConsumePurchase: + case MessageType.Presence_LaunchInvitePanel: + case MessageType.Presence_ShareMedia: + { + msg = new Message(msgPointer); + break; + } + case MessageType.Matchmaking_GetAdminSnapshot: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetMatchmakingAdminSnapshot(ptr); + return new MatchmakingAdminSnapshot(obj); + }); + break; + } + case MessageType.Matchmaking_Browse2: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetMatchmakingBrowseResult(ptr); + return new MatchmakingBrowseResult(obj); + }); + break; + } + case MessageType.Matchmaking_Browse2CustomPage: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetMatchmakingBrowseCustomPageResult(ptr); + return new MatchmakingBrowseResult(obj); + }); + break; + } + case MessageType.Matchmaking_Enqueue2: + case MessageType.Matchmaking_EnqueueRoom2: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetMatchmakingEnqueueResult(ptr); + return new MatchmakingEnqueueResult(obj); + }); + break; + } + case MessageType.Matchmaking_CreateAndEnqueueRoom2: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetMatchmakingEnqueueResultAndRoom(ptr); + return new MatchmakingEnqueueResultAndRoom(obj); + }); + break; + } + + case MessageType.Matchmaking_GetStats: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetMatchmakingStats(ptr); + return new MatchmakingStats(obj); + }); + break; + } + case MessageType.Room_GetCurrent: + case MessageType.Room_GetCurrentForUser: + case MessageType.Notification_Room_RoomUpdate: + case MessageType.Room_CreateAndJoinPrivate: + case MessageType.Room_CreateAndJoinPrivate2: + case MessageType.Room_InviteUser: + case MessageType.Room_Join: + case MessageType.Room_Join2: + case MessageType.Room_JoinNamed: + case MessageType.Room_KickUser: + case MessageType.Room_Leave: + case MessageType.Room_SetDescription: + case MessageType.Room_UpdateDataStore: + case MessageType.Room_UpdateMembershipLockStatus: + case MessageType.Room_UpdatePrivateRoomJoinPolicy: + case MessageType.Notification_Matchmaking_MatchFound: + case MessageType.Room_Get: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRoom(ptr); + return new Room(obj); + }); + break; + } + case MessageType.Room_GetModeratedRooms: + case MessageType.Room_GetNamedRooms: + case MessageType.Room_GetNextRoomArrayPage: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRoomArray(ptr); + return new RoomList(obj); + }); + break; + } + case MessageType.PlatformGameInitializeAsynchronous: + { + msg = new Message(msgPointer, ptr => + { + var objHandle = CLIB.ppf_Message_GetPlatformGameInitialize(ptr); + var obj = CLIB.ppf_PlatformGameInitialize_GetResult(objHandle); + return obj; + }); + break; + } + case MessageType.Notification_Game_ConnectionEvent: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetGameConnectionEvent(ptr); + return obj; + }); + break; + } + case MessageType.Notification_Game_RequestFailed: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetGameRequestFailedReason(ptr); + return obj; + }); + break; + } + case MessageType.Leaderboard_Get: + case MessageType.Leaderboard_GetNextLeaderboardArrayPage: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetLeaderboardArray(ptr); + return new LeaderboardList(obj); + }); + break; + } + + case MessageType.Leaderboard_GetEntries: + case MessageType.Leaderboard_GetEntriesAfterRank: + case MessageType.Leaderboard_GetEntriesByIds: + case MessageType.Leaderboard_GetNextEntries: + case MessageType.Leaderboard_GetPreviousEntries: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetLeaderboardEntryArray(ptr); + return new LeaderboardEntryList(obj); + }); + break; + } + case MessageType.Leaderboard_WriteEntry: + case MessageType.Leaderboard_WriteEntryWithSupplementaryMetric: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetLeaderboardUpdateStatus(ptr); + return CLIB.ppf_LeaderboardUpdateStatus_GetDidUpdate(obj); + }); + break; + } + + case MessageType.Achievements_GetAllDefinitions: + case MessageType.Achievements_GetDefinitionsByName: + case MessageType.Achievements_GetNextAchievementDefinitionArrayPage: + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAchievementDefinitionArray(ptr); + return new AchievementDefinitionList(obj); + }); + break; + + case MessageType.Achievements_GetAllProgress: + case MessageType.Achievements_GetNextAchievementProgressArrayPage: + case MessageType.Achievements_GetProgressByName: + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAchievementProgressArray(ptr); + return new AchievementProgressList(obj); + }); + break; + + case MessageType.Achievements_AddCount: + case MessageType.Achievements_AddFields: + case MessageType.Achievements_Unlock: + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetAchievementUpdate(ptr); + return new AchievementUpdate(obj); + }); + break; + case MessageType.Notification_GetNextRoomInviteNotificationArrayPage: + case MessageType.Notification_GetRoomInvites: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetRoomInviteNotificationArray(ptr); + return new RoomInviteNotificationList(obj); + }); + break; + } + case MessageType.Challenges_Invite: + case MessageType.Challenges_Get: + case MessageType.Challenges_Join: + case MessageType.Challenges_Leave: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetChallenge(ptr); + return new Challenge(obj); + }); + break; + } + case MessageType.Challenges_GetList: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetChallengeArray(ptr); + return new ChallengeList(obj); + }); + break; + } + case MessageType.Challenges_GetEntries: + case MessageType.Challenges_GetEntriesAfterRank: + case MessageType.Challenges_GetEntriesByIds: + { + msg = new Message(msgPointer, ptr => + { + var obj = CLIB.ppf_Message_GetChallengeEntryArray(ptr); + return new ChallengeEntryList(obj); + }); + break; + } + + #endregion stark game + + default: + break; + } + + return msg; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/MessageQueue.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/MessageQueue.cs.meta new file mode 100644 index 0000000..a54e176 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/MessageQueue.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fe58099ac2904f4991b8ba3b7810910c +timeCreated: 1666324189 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/PXR_PlatformSetting.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/PXR_PlatformSetting.cs new file mode 100644 index 0000000..80da1ff --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/PXR_PlatformSetting.cs @@ -0,0 +1,77 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System.Collections.Generic; +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace Unity.XR.PXR +{ +#if UNITY_EDITOR + [InitializeOnLoad] +#endif + public sealed class PXR_PlatformSetting : ScriptableObject + { + public enum simulationType + { + Null, + Invalid, + Valid + } + + [SerializeField] public bool entitlementCheckSimulation; + [SerializeField] public bool startTimeEntitlementCheck; + [SerializeField] public string appID; + [SerializeField] public bool useHighlight = true; + + public List deviceSN = new List(); + + private static PXR_PlatformSetting instance; + + public static PXR_PlatformSetting Instance + { + get + { + if (instance == null) + { + instance = Resources.Load("PXR_PlatformSetting"); +#if UNITY_EDITOR + string path = Application.dataPath + "/Resources"; + if (!Directory.Exists(path)) + { + AssetDatabase.CreateFolder("Assets", "Resources"); + if (instance == null) + { + instance = CreateInstance(); + AssetDatabase.CreateAsset(instance, "Assets/Resources/PXR_PlatformSetting.asset"); + } + } + else + { + if (instance == null) + { + instance = CreateInstance(); + AssetDatabase.CreateAsset(instance, "Assets/Resources/PXR_PlatformSetting.asset"); + } + } + +#endif + } + + return instance; + } + + set { instance = value; } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/PXR_PlatformSetting.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/PXR_PlatformSetting.cs.meta new file mode 100644 index 0000000..1bac2ac --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/PXR_PlatformSetting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 508edb944d24e574595a91425051a8e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Runner.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Runner.cs new file mode 100644 index 0000000..d656a3d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Runner.cs @@ -0,0 +1,53 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using UnityEngine; + +namespace Pico.Platform.Framework +{ + public class Runner : MonoBehaviour + { + public static void RegisterGameObject() + { + var name = "Pico.Platform.Runner"; + GameObject g = GameObject.Find(name); + if (g == null) + { + g = new GameObject(name); + } + + if (g.GetComponent() == null) + { + g.AddComponent(); + } + } + + void Awake() + { + DontDestroyOnLoad(gameObject); + } + + void Update() + { + Looper.ProcessMessages(); + } + + void OnApplicationQuit() + { + Looper.Clear(); + if (Application.isEditor || Application.platform == RuntimePlatform.WindowsPlayer || Application.platform == RuntimePlatform.WindowsEditor) + { + CLIB.ppf_PcUnInitialize(); + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Runner.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Runner.cs.meta new file mode 100644 index 0000000..91ea8f2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Runner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 995e5a6d1a26dd847ab40cf7d49cbe44 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Task.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Task.cs new file mode 100644 index 0000000..faac29c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Task.cs @@ -0,0 +1,97 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System.Threading.Tasks; +using UnityEngine; + +namespace Pico.Platform +{ + public class Task + { + public readonly ulong TaskId; + public bool HasSetCallback = false; + + public Task(ulong taskId) + { + this.TaskId = taskId; + } + + public Task OnComplete(Message.Handler handler) + { + if (handler == null) + { + throw new UnityException("call Task.Oncomplete with null handler."); + } + + if (HasSetCallback) + { + throw new UnityException("OnComplete() or Async() can call only once time."); + } + + HasSetCallback = true; + Looper.RegisterTaskHandler(TaskId, handler); + return this; + } + + public System.Threading.Tasks.Task Async() + { + if (HasSetCallback) + { + throw new UnityException("OnComplete() or Async() can call only once time."); + } + + HasSetCallback = true; + TaskCompletionSource x = new TaskCompletionSource(); + Message.Handler fun = msg => { x.SetResult(msg); }; + Looper.RegisterTaskHandler(this.TaskId, fun); + return x.Task; + } + } + + public class Task : Task + { + public Task(ulong taskId) : base(taskId) + { + } + + public Task OnComplete(Message.Handler handler) + { + if (handler == null) + { + throw new UnityException("call Task.Oncomplete with null handler."); + } + + if (HasSetCallback) + { + throw new UnityException("OnComplete() or Async() can call only once time."); + } + + HasSetCallback = true; + Looper.RegisterTaskHandler(TaskId, handler); + return this; + } + + public new System.Threading.Tasks.Task> Async() + { + if (HasSetCallback) + { + throw new UnityException("OnComplete() or Async() can call only once time."); + } + + HasSetCallback = true; + TaskCompletionSource> x = new TaskCompletionSource>(); + Message.Handler fun = msg => { x.SetResult(msg); }; + Looper.RegisterTaskHandler(this.TaskId, fun); + return x.Task; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Task.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Task.cs.meta new file mode 100644 index 0000000..4346caf --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/Task.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ef1d06cfc9dd85546b917ec0d259ff35 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/TimeUtil.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/TimeUtil.cs new file mode 100644 index 0000000..2d5d5d7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/TimeUtil.cs @@ -0,0 +1,51 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform +{ + public class TimeUtil + { + public static DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); + + public static int GetUtcSeconds() + { + return DateTimeToSeconds(DateTime.Now); + } + + public static long GetUtcMilliSeconds() + { + return DateTimeToMilliSeconds(DateTime.Now); + } + + public static int DateTimeToSeconds(DateTime t) + { + return (int) (t.ToUniversalTime() - UnixEpoch).TotalSeconds; + } + + public static long DateTimeToMilliSeconds(DateTime t) + { + return (long) (t.ToUniversalTime() - UnixEpoch).TotalMilliseconds; + } + + public static DateTime MilliSecondsToDateTime(long milliSeconds) + { + return UnixEpoch.AddMilliseconds(milliSeconds).ToLocalTime(); + } + + public static DateTime SecondsToDateTime(long seconds) + { + return UnixEpoch.AddSeconds(seconds).ToLocalTime(); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/TimeUtil.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/TimeUtil.cs.meta new file mode 100644 index 0000000..ef1abfb --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Framework/TimeUtil.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9526d9f6bdb74495807e3f0f81ca6b86 +timeCreated: 1659948411 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models.meta new file mode 100644 index 0000000..50ce4b5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b0d84e8a0a284315a65f4d42754492a4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Achievement.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Achievement.cs new file mode 100644 index 0000000..dc04bbd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Achievement.cs @@ -0,0 +1,182 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Runtime.InteropServices; + +namespace Pico.Platform.Models +{ + + /// Achievement update info. + public class AchievementUpdate + { + /// Whether the achievement is unlocked in this time. + public readonly bool JustUnlocked; + + /// Achievement name. + public readonly string Name; + + public AchievementUpdate(IntPtr o) + { + JustUnlocked = CLIB.ppf_AchievementUpdate_GetJustUnlocked(o); + Name = CLIB.ppf_AchievementUpdate_GetName(o); + } + } + + /// Achievement info. + public class AchievementDefinition + { + /// Achievement type. + public readonly AchievementType Type; + + /// Achievement name. + public readonly string Name; + + /// The target to reach for unlocking a bitfield achievement. + public readonly uint BitfieldLength; + + /// The target to reach for unlocking a count achievement. + public readonly long Target; + + /// Achievement description. + public readonly string Description; + + /// Achievement title. + public readonly string Title; + + /// Whether the achievement is archieved. + public readonly bool IsArchived; + + /// Whether the achievement is a secret achievement. If so, it can be visible after being unlocked only. + public readonly bool IsSecret; + + /// Achievement ID. + public readonly ulong ID; + + /// The description shown to users when unlocking the achievement. + public readonly string UnlockedDescription; + + /// The write policy of the achievement. + public readonly AchievementWritePolicy WritePolicy; + + /// The URL of the image displayed when the achievement is still locked. + public readonly string LockedImageURL; + + /// The URL of the image displayed when the achievement is unlocked. + public readonly string UnlockedImageURL; + + public AchievementDefinition(IntPtr o) + { + Type = CLIB.ppf_AchievementDefinition_GetType(o); + Name = CLIB.ppf_AchievementDefinition_GetName(o); + BitfieldLength = CLIB.ppf_AchievementDefinition_GetBitfieldLength(o); + Target = CLIB.ppf_AchievementDefinition_GetTarget(o); + Description = CLIB.ppf_AchievementDefinition_GetDescription(o); + Title = CLIB.ppf_AchievementDefinition_GetTitle(o); + IsArchived = CLIB.ppf_AchievementDefinition_IsArchived(o); + IsSecret = CLIB.ppf_AchievementDefinition_IsSecret(o); + ID = CLIB.ppf_AchievementDefinition_GetID(o); + UnlockedDescription = CLIB.ppf_AchievementDefinition_GetUnlockedDescription(o); + WritePolicy = CLIB.ppf_AchievementDefinition_GetWritePolicy(o); + LockedImageURL = CLIB.ppf_AchievementDefinition_GetLockedImageURL(o); + UnlockedImageURL = CLIB.ppf_AchievementDefinition_GetUnlockedImageURL(o); + } + } + + /// Achievement definition list. + /// Each element is \ref AchievementDefinition. + /// + public class AchievementDefinitionList : MessageArray + { + /// The total number of `AchievementDefinition`. + public readonly ulong TotalSize; + + public AchievementDefinitionList(IntPtr a) + { + TotalSize = (ulong) CLIB.ppf_AchievementDefinitionArray_GetTotalSize(a); + var count = (int) CLIB.ppf_AchievementDefinitionArray_GetSize(a); + this.Capacity = count; + for (uint i = 0; i < count; i++) + { + this.Add(new AchievementDefinition(CLIB.ppf_AchievementDefinitionArray_GetElement(a, (UIntPtr) i))); + } + + NextPageParam = CLIB.ppf_AchievementDefinitionArray_HasNextPage(a) ? "true" : string.Empty; + } + } + + /// Achievement progress info. + public class AchievementProgress + { + /// Achievement ID. + public readonly ulong ID; + + /// The progress of a bitfield achievement. `1` represents a completed bit. + public readonly string Bitfield; + + /// The progress of a count achievement. + public readonly long Count; + + /// Whether the achievement is unlocked + public readonly bool IsUnlocked; + + /// Achievement name. + public readonly string Name; + + /// The time when the achievement is unlocked. + public readonly DateTime UnlockTime; + + /// Additional info, no more than 2KB. + public readonly byte[] ExtraData; + + + public AchievementProgress(IntPtr o) + { + ID = CLIB.ppf_AchievementProgress_GetID(o); + Bitfield = CLIB.ppf_AchievementProgress_GetBitfield(o); + Count = CLIB.ppf_AchievementProgress_GetCount(o); + IsUnlocked = CLIB.ppf_AchievementProgress_GetIsUnlocked(o); + Name = CLIB.ppf_AchievementProgress_GetName(o); + + uint size = CLIB.ppf_AchievementProgress_GetExtraDataLength(o); + ExtraData = new byte[size]; + Marshal.Copy(CLIB.ppf_AchievementProgress_GetExtraData(o), ExtraData, 0, (int) size); + var unlockTime = CLIB.ppf_AchievementProgress_GetUnlockTime(o); + if (unlockTime != 0) + { + UnlockTime = TimeUtil.SecondsToDateTime((long) unlockTime); + } + } + } + + /// The list of achievements with their progress info. + /// Each element is \ref AchievementProgress. + /// + public class AchievementProgressList : MessageArray + { + /// The total number of achievements with progress info. + public readonly ulong TotalSize; + + public AchievementProgressList(IntPtr a) + { + TotalSize = (ulong) CLIB.ppf_AchievementProgressArray_GetTotalSize(a); + var count = (int) CLIB.ppf_AchievementProgressArray_GetSize(a); + this.Capacity = count; + for (uint i = 0; i < count; i++) + { + this.Add(new AchievementProgress(CLIB.ppf_AchievementProgressArray_GetElement(a, (UIntPtr) i))); + } + + NextPageParam = CLIB.ppf_AchievementProgressArray_HasNextPage(a) ? "true" : string.Empty; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Achievement.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Achievement.cs.meta new file mode 100644 index 0000000..66734d0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Achievement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d92845d996c24a5e858d06fe078a5997 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Application.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Application.cs new file mode 100644 index 0000000..a09d224 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Application.cs @@ -0,0 +1,133 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + /// App launch details. + public class LaunchDetails + { + /// How the app was launched: + /// * `Normal`: launched by clicking the app's icon + /// * `RoomInvite`: launched by clicking the room invitation message card + /// * `Deeplink`: launched by clicking the presence invitation message card or calling \ref ApplicationService.LaunchApp + /// * `ChallengeInvite`: launched by clicking the challenge invitation message card + /// + public readonly LaunchType LaunchType; + + /// Deeplink message. You can pass a deeplink when you call \ref ApplicationService.LaunchApp, + /// and the other app will receive the deeplink.This field will have a value only when `LaunchType` is `LaunchApp`. + public readonly string DeeplinkMessage; + + /// Destination API name configured on the PICO Developer Platform.For a presence invitation, the inviters' + /// presence data will contain this field which will be passed when the invitee clicks on the message card. + public readonly string DestinationApiName; + + /// The lobby session ID that identifies a group or team. + /// For a presence invitation, the inviters' presence data will contain this field which will be passed + /// when the invitee clicks on the message card. + public readonly string LobbySessionID; + + /// The match session ID that identifies a competition. + /// For a presence invitation, the inviters' presence data will contain this field which will be passed when the invitee clicks on the message card. + public readonly string MatchSessionID; + + /** The customized extra presence info. + * For a presence invitation, the inviters' presence data will contain this field which will be passed when the invitee clicks on the message card. + * You can use this field to add self-defined presence data. The data size cannot exceed 2MB. + */ + public readonly string Extra; + + /// Room ID.For a room invitation, after calling \ref RoomService.InviteUser, this field will be passed when the invitee clicks on the message card. + public readonly UInt64 RoomID; + + /// For a challenge invitation, after calling \ref ChallengesService.Invite, this field will be passed when the invitee clicks on the message card. + public readonly UInt64 ChallengeID; + + /// Tracking ID. + public readonly string TrackingID; + + public LaunchDetails(IntPtr o) + { + DeeplinkMessage = CLIB.ppf_LaunchDetails_GetDeeplinkMessage(o); + DestinationApiName = CLIB.ppf_LaunchDetails_GetDestinationApiName(o); + LobbySessionID = CLIB.ppf_LaunchDetails_GetLobbySessionID(o); + MatchSessionID = CLIB.ppf_LaunchDetails_GetMatchSessionID(o); + Extra = CLIB.ppf_LaunchDetails_GetExtra(o); + RoomID = CLIB.ppf_LaunchDetails_GetRoomID(o); + ChallengeID = CLIB.ppf_LaunchDetails_GetChallengeID(o); + TrackingID = CLIB.ppf_LaunchDetails_GetTrackingID(o); + LaunchType = CLIB.ppf_LaunchDetails_GetLaunchType(o); + } + } + + /// + /// The system information of the device. + /// + public class SystemInfo + { + /** The current ROM version (i.e., system version) of the device, such as "5.5.0" and "5.6.0".*/ + public readonly string ROMVersion; + + /** The locale of the device. Locale is combined with language and country code. Such as "zh-CN" and "en-US".*/ + public readonly string Locale; + + /** The product name of the device, such as "PICO 4".*/ + public readonly string ProductName; + + /** Whether the device's ROM is CN version. PICO provides different ROM versions in different countries/regions.*/ + public readonly bool IsCnDevice; + + /** The Matrix's version name. Matrix is a system app which provides system functions for platform services.*/ + public readonly string MatrixVersionName; + + /** The Matrix's version code. */ + public readonly long MatrixVersionCode; + + public SystemInfo(IntPtr o) + { + ROMVersion = CLIB.ppf_SystemInfo_GetROMVersion(o); + Locale = CLIB.ppf_SystemInfo_GetLocale(o); + ProductName = CLIB.ppf_SystemInfo_GetProductName(o); + IsCnDevice = CLIB.ppf_SystemInfo_GetIsCnDevice(o); + MatrixVersionName = CLIB.ppf_SystemInfo_GetMatrixVersionName(o); + MatrixVersionCode = CLIB.ppf_SystemInfo_GetMatrixVersionCode(o); + } + } + + /// + /// App's version info. + /// + public class ApplicationVersion + { + /// The current version code of the installed app. + public readonly long CurrentCode; + + /// The current version name of the installed app. + public readonly string CurrentName; + + /// The latest version code of the app in the PICO Store. + public readonly long LatestCode; + + /// The latest version name of the app in the PICO Store. + public readonly string LatestName; + + public ApplicationVersion(IntPtr o) + { + CurrentCode = CLIB.ppf_ApplicationVersion_GetCurrentCode(o); + CurrentName = CLIB.ppf_ApplicationVersion_GetCurrentName(o); + LatestCode = CLIB.ppf_ApplicationVersion_GetLatestCode(o); + LatestName = CLIB.ppf_ApplicationVersion_GetLatestName(o); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Application.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Application.cs.meta new file mode 100644 index 0000000..d36f34e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Application.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 821a71a2140642259ab07bb49f9ae2c0 +timeCreated: 1665579240 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/AssetFile.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/AssetFile.cs new file mode 100644 index 0000000..8fe75e7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/AssetFile.cs @@ -0,0 +1,258 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + public static class DownloadStatus + { + public const string Downloaded = "downloaded"; + public const string Available = "available"; + public const string InProgress = "in-progress"; + } + + /// + /// Constants indicates whether the user purchased the in-app product. + /// + public static class IapStatus + { + /// Purchased + public const string Entitled = "entitled"; + + /// Not purchased. + public const string NotEntitled = "not-entitled"; + } + + /// Indicates where the DLC file is displayed. + public static class AssetType + { + /// The DLC file is displayed in the PICO Store and the app. + public const string Store = "store"; + + /// The DLC file is displayed in the app only. + public const string Default = "default"; + } + + public class AssetDetails + { + /// The unique identifier of DLC file. + public ulong AssetId; + + /** Some DLC files can be displayed in the PICO Store. Now it has two values: `default` or `store`. + * You can refer to \ref AssetType for details. + */ + public string AssetType; + + /// One of `downloaded`, `available`, and `in-progress`. You can refer to \ref DownloadStatus for details. + public string DownloadStatus; + + /// The path to the downloaded DLC file. For a non-downloaded DLC file, this field will be empty. + public string Filepath; + + /// The meta info of the DLC file. + public string Metadata; + + /// The name of the DLC file. + public string Filename; + + /// The version of the DLC file. + public int Version; + + /// One of `entitled`, `not-entitled`. You can refer to \ref IapStatus for details. + public string IapStatus; + + /// The SKU of the in-app product that the DLC file associated with. + public string IapSku; + + /// The name of the in-app product that the DLC fiel associated with. + public string IapName; + + /// The price of this DLC file. + public string IapPrice; + + /// The currency required for purchasing the DLC file. + public string IapCurrency; + + /// The description of the in-app product that the DLC file associated with. + public string IapDescription; + + /// The icon of the in-app product that the DLC file associated with. + public string IapIcon; + + public AssetDetails(IntPtr o) + { + AssetId = CLIB.ppf_AssetDetails_GetAssetId(o); + AssetType = CLIB.ppf_AssetDetails_GetAssetType(o); + DownloadStatus = CLIB.ppf_AssetDetails_GetDownloadStatus(o); + IapStatus = CLIB.ppf_AssetDetails_GetIapStatus(o); + Filepath = CLIB.ppf_AssetDetails_GetFilepath(o); + Metadata = CLIB.ppf_AssetDetails_GetMetadata(o); + Filename = CLIB.ppf_AssetDetails_GetFilename(o); + Version = CLIB.ppf_AssetDetails_GetVersion(o); + IapSku = CLIB.ppf_AssetDetails_GetIapSku(o); + IapName = CLIB.ppf_AssetDetails_GetIapName(o); + IapPrice = CLIB.ppf_AssetDetails_GetIapPrice(o); + IapCurrency = CLIB.ppf_AssetDetails_GetIapCurrency(o); + IapDescription = CLIB.ppf_AssetDetails_GetIapDescription(o); + IapIcon = CLIB.ppf_AssetDetails_GetIapIcon(o); + } + } + + /// + /// Each element is \ref AssetDetails + /// + public class AssetDetailsList : MessageArray + { + public AssetDetailsList(IntPtr a) + { + var count = (int) CLIB.ppf_AssetDetailsArray_GetSize(a); + this.Capacity = count; + for (int i = 0; i < count; i++) + { + this.Add(new AssetDetails(CLIB.ppf_AssetDetailsArray_GetElement(a, (UIntPtr) i))); + } + + NextPageParam = CLIB.ppf_AssetDetailsArray_GetNextPageParam(a); + } + } + + /// + /// If the downloaded DLC file is different from the original one, + /// the DLC file will be automatically removed, and the app will receive a notification. + /// + public class AssetFileDeleteForSafety + { + /// The ID of the DLC file. + public readonly ulong AssetId; + + /// The description for why this asset file is deleted. + public readonly string Reason; + + public AssetFileDeleteForSafety(IntPtr o) + { + AssetId = CLIB.ppf_AssetFileDeleteForSafety_GetAssetId(o); + Reason = CLIB.ppf_AssetFileDeleteForSafety_GetReason(o); + } + } + + /// + /// The callback for \ref AssetFileService.DeleteById and \ref AssetFileService.DeleteByName. + /// + public class AssetFileDeleteResult + { + /// The path to the DLC file. + public readonly string Filepath; + + /// Whether the DLC file is deleted successfully. + public readonly bool Success; + + /// The ID of the DLC file. + public readonly ulong AssetId; + + public AssetFileDeleteResult(IntPtr o) + { + Filepath = CLIB.ppf_AssetFileDeleteResult_GetFilepath(o); + Success = CLIB.ppf_AssetFileDeleteResult_GetSuccess(o); + AssetId = CLIB.ppf_AssetFileDeleteResult_GetAssetId(o); + } + } + + /// Indicates whether the download of the DLC file is successfully canceled. + public class AssetFileDownloadCancelResult + { + /// The path to the DLC file. + public readonly string Filepath; + + /// Whether the download is successfully canceled. + public readonly bool Success; + + /// The ID of the DLC file. + public readonly ulong AssetId; + + public AssetFileDownloadCancelResult(IntPtr o) + { + Filepath = CLIB.ppf_AssetFileDownloadCancelResult_GetFilepath(o); + Success = CLIB.ppf_AssetFileDownloadCancelResult_GetSuccess(o); + AssetId = CLIB.ppf_AssetFileDownloadCancelResult_GetAssetId(o); + } + } + + /// The result returned after calling \ref AssetFileService.DownloadById or \ref AssetFileService.DownloadByName. + public class AssetFileDownloadResult + { + /// The ID of the DLC file. + public readonly ulong AssetId; + + /// The path to the DLC file. + public readonly string Filepath; + + public AssetFileDownloadResult(IntPtr o) + { + AssetId = CLIB.ppf_AssetFileDownloadResult_GetAssetId(o); + Filepath = CLIB.ppf_AssetFileDownloadResult_GetFilepath(o); + } + } + + /// + /// You will receive this message periodically once you call \ref AssetFileService.DownloadById + /// or \ref AssetFileService.DownloadByName. + /// + public class AssetFileDownloadUpdate + { + /// The ID of the DLC file. + public readonly ulong AssetId; + + /// The total bytes of the DLC file. + public readonly ulong BytesTotal; + + /// The transferred bytes of the DLC file. + public readonly long BytesTransferred; + + /// The download status of the DLC file. + public readonly AssetFileDownloadCompleteStatus CompleteStatus; + + public AssetFileDownloadUpdate(IntPtr o) + { + AssetId = CLIB.ppf_AssetFileDownloadUpdate_GetAssetId(o); + BytesTotal = CLIB.ppf_AssetFileDownloadUpdate_GetBytesTotal(o); + BytesTransferred = CLIB.ppf_AssetFileDownloadUpdate_GetBytesTransferred(o); + CompleteStatus = CLIB.ppf_AssetFileDownloadUpdate_GetCompleteStatus(o); + } + } + + /// + /// The callback for \ref AssetFileService.StatusById or \ref AssetFileService.StatusByName. + /// + public class AssetStatus + { + /// The ID of the DLC file. + public readonly ulong AssetId; + + /// The name of the DLC file. + public readonly string Filename; + + /// The path to the DLC file. + public readonly string Filepath; + + /// The download status of the DLC file. You can refer to \ref DownloadStatus for details. + public readonly string DownloadStatus; + + public AssetStatus(IntPtr o) + { + AssetId = CLIB.ppf_AssetStatus_GetAssetId(o); + Filename = CLIB.ppf_AssetStatus_GetFilename(o); + Filepath = CLIB.ppf_AssetStatus_GetFilepath(o); + DownloadStatus = CLIB.ppf_AssetStatus_GetDownloadStatus(o); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/AssetFile.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/AssetFile.cs.meta new file mode 100644 index 0000000..58320c2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/AssetFile.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fa00ebe2dc4b4ccab93a18d008dece77 +timeCreated: 1661769967 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Challenge.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Challenge.cs new file mode 100644 index 0000000..57efadf --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Challenge.cs @@ -0,0 +1,268 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using UnityEngine; + +namespace Pico.Platform.Models +{ + /// Challenge setting options. + public class ChallengeOptions + { + /// For creating challenge options + public ChallengeOptions() + { + Handle = CLIB.ppf_ChallengeOptions_Create(); + } + + /// Set the end date. Currently, not used. + public void SetEndDate(DateTime value) + { + CLIB.ppf_ChallengeOptions_SetEndDate(Handle, Convert.ToUInt64(TimeUtil.DateTimeToSeconds(value))); + } + + /// Set whether to get active challenges. + public void SetIncludeActiveChallenges(bool value) + { + CLIB.ppf_ChallengeOptions_SetIncludeActiveChallenges(Handle, value); + } + + /// Set whether to get future challenges whose start dates are latter than the current time. + public void SetIncludeFutureChallenges(bool value) + { + CLIB.ppf_ChallengeOptions_SetIncludeFutureChallenges(Handle, value); + } + + /// Set whether to get past challenges whose end dates are earlier than the current time. + public void SetIncludePastChallenges(bool value) + { + CLIB.ppf_ChallengeOptions_SetIncludePastChallenges(Handle, value); + } + + /// (Optional) Set the name of the leaderboard that the challenges associated with. + public void SetLeaderboardName(string value) + { + CLIB.ppf_ChallengeOptions_SetLeaderboardName(Handle, value); + } + + /// Set the start date. Currently, not used. + public void SetStartDate(DateTime value) + { + CLIB.ppf_ChallengeOptions_SetStartDate(Handle, Convert.ToUInt64(TimeUtil.DateTimeToSeconds(value))); + } + + /// Set the challenge title. Currently, not used. + public void SetTitle(string value) + { + CLIB.ppf_ChallengeOptions_SetTitle(Handle, value); + } + + /// Set the filter for quering specified challenges. + public void SetViewerFilter(ChallengeViewerFilter value) + { + CLIB.ppf_ChallengeOptions_SetViewerFilter(Handle, value); + } + + /// Set to get the challenges of a specific visibility type. + public void SetVisibility(ChallengeVisibility value) + { + CLIB.ppf_ChallengeOptions_SetVisibility(Handle, value); + } + + public static explicit operator IntPtr(ChallengeOptions options) + { + return options != null ? options.Handle : IntPtr.Zero; + } + + ~ChallengeOptions() + { + CLIB.ppf_ChallengeOptions_Destroy(Handle); + } + + IntPtr Handle; + + public IntPtr GetHandle() + { + return Handle; + } + } + + /// Challenge info. + public class Challenge + { + /// The creator of the challenge. + public readonly ChallengeCreationType CreationType; + + /// Challenge ID + public readonly UInt64 ID; + + /// Challenge's start date. + public readonly DateTime StartDate; + + /// Challenge's end date. + public readonly DateTime EndDate; + + /// Participants of the challenge, which might be null. Should check if it is null before use. + public readonly UserList ParticipantsOptional; + + /// Users invited to the challenge, which might be null. Should check if it is null before use. + public readonly UserList InvitedUsersOptional; + + /// The info about the leaderboard that the challenge associated with. + public readonly Leaderboard Leaderboard; + + /// Challenge's title. + public readonly string Title; + + /// Challenge's visibility. + public readonly ChallengeVisibility Visibility; + + + public Challenge(IntPtr o) + { + CreationType = CLIB.ppf_Challenge_GetCreationType(o); + + try + { + EndDate = TimeUtil.SecondsToDateTime((long) CLIB.ppf_Challenge_GetEndDate(o)); + } + catch (Exception e) + { + Debug.LogWarning($"Challenge Set EndDate: ppf_Challenge_GetEndDate(o) = {CLIB.ppf_Challenge_GetEndDate(o)}, Exception: {e}"); + } + + ID = CLIB.ppf_Challenge_GetID(o); + { + var pointer = CLIB.ppf_Challenge_GetInvitedUsers(o); + if (pointer == IntPtr.Zero) + { + InvitedUsersOptional = null; + } + else + { + InvitedUsersOptional = new UserList(pointer); + } + } + Leaderboard = new Leaderboard(CLIB.ppf_Challenge_GetLeaderboard(o)); + { + var pointer = CLIB.ppf_Challenge_GetParticipants(o); + if (pointer == IntPtr.Zero) + { + ParticipantsOptional = null; + } + else + { + ParticipantsOptional = new UserList(pointer); + } + } + try + { + StartDate = TimeUtil.SecondsToDateTime((long) CLIB.ppf_Challenge_GetStartDate(o)); + } + catch (Exception e) + { + Debug.LogWarning($"Challenge Set StartDate: ppf_Challenge_GetStartDate(o) = {CLIB.ppf_Challenge_GetStartDate(o)}, Exception: {e}"); + } + + Title = CLIB.ppf_Challenge_GetTitle(o); + Visibility = CLIB.ppf_Challenge_GetVisibility(o); + } + } + + /// Challenge list. Each Element is \ref Challenge. + public class ChallengeList : MessageArray + { + public ChallengeList(IntPtr a) + { + TotalCount = CLIB.ppf_ChallengeArray_GetTotalCount(a); + NextPageParam = CLIB.ppf_ChallengeArray_HasNextPage(a) ? "true" : string.Empty; + PreviousPageParam = CLIB.ppf_ChallengeArray_HasPreviousPage(a) ? "true" : String.Empty; + int count = (int) CLIB.ppf_ChallengeArray_GetSize(a); + this.Capacity = count; + for (uint i = 0; i < count; i++) + { + this.Add(new Challenge(CLIB.ppf_ChallengeArray_GetElement(a, (UIntPtr) i))); + } + } + + /// The total number of challenges in the list. + public readonly ulong TotalCount; + } + + /// Challenge entry info. + public class ChallengeEntry + { + /// The entry's display score. + public readonly string DisplayScore; + + /// The entry's additional info, no more than 2KB. + public readonly byte[] ExtraData; + + /// The ID of the challenge that the entry belongs to. + public readonly UInt64 ID; + + /// The rank of the entry. + public readonly int Rank; + + /// The score of the entry. + public readonly long Score; + + /// The time when the entry was written. + public readonly DateTime Timestamp; + + /// The user the entry belongs to. + public readonly User User; + + + public ChallengeEntry(IntPtr o) + { + DisplayScore = CLIB.ppf_ChallengeEntry_GetDisplayScore(o); + var extraDataPtr = CLIB.ppf_ChallengeEntry_GetExtraData(o); + var extraDataSize = CLIB.ppf_ChallengeEntry_GetExtraDataLength(o); + ExtraData = MarshalUtil.ByteArrayFromNative(extraDataPtr, extraDataSize); + ID = CLIB.ppf_ChallengeEntry_GetID(o); + Rank = CLIB.ppf_ChallengeEntry_GetRank(o); + Score = CLIB.ppf_ChallengeEntry_GetScore(o); + + try + { + Timestamp = TimeUtil.SecondsToDateTime((long) CLIB.ppf_ChallengeEntry_GetTimestamp(o)); + } + catch (Exception e) + { + Debug.LogWarning($"ChallengeEntry Set Timestamp: ppf_ChallengeEntry_GetTimestamp(o) = {CLIB.ppf_ChallengeEntry_GetTimestamp(o)}, Exception: {e}"); + } + + User = new User(CLIB.ppf_ChallengeEntry_GetUser(o)); + } + } + + /// Challenge entry list. Each element is \ref ChallengeEntry. + public class ChallengeEntryList : MessageArray + { + public ChallengeEntryList(IntPtr a) + { + TotalCount = CLIB.ppf_ChallengeEntryArray_GetTotalCount(a); + NextPageParam = CLIB.ppf_ChallengeEntryArray_HasNextPage(a) ? "true" : string.Empty; + PreviousPageParam = CLIB.ppf_ChallengeEntryArray_HasPreviousPage(a) ? "true" : string.Empty; + int count = (int) CLIB.ppf_ChallengeEntryArray_GetSize(a); + this.Capacity = count; + for (uint i = 0; i < count; i++) + { + this.Add(new ChallengeEntry(CLIB.ppf_ChallengeEntryArray_GetElement(a, (UIntPtr) i))); + } + } + + /// The total number of entries in the list. + public readonly ulong TotalCount; + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Challenge.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Challenge.cs.meta new file mode 100644 index 0000000..23e23bb --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Challenge.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e107cf0bdc434409aaf2cf952cc37436 +timeCreated: 1664352647 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Common.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Common.cs new file mode 100644 index 0000000..0b8309d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Common.cs @@ -0,0 +1,115 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + public class KVPairArray + { + public uint Size { get; private set; } + IntPtr Handle; + + public IntPtr GetHandle() + { + return Handle; + } + + public KVPairArray(uint size) + { + Size = size; + Handle = CLIB.ppf_KeyValuePairArray_Create((UIntPtr) size); + } + + ~KVPairArray() + { + CLIB.ppf_KeyValuePairArray_Destroy(Handle); + Handle = IntPtr.Zero; + } + + public KVPair GetElement(uint index) + { + return new KVPair(CLIB.ppf_KeyValuePairArray_GetElement(Handle, (UIntPtr) index)); + } + } + + public class KVPair + { + IntPtr Handle; + bool destroyable = true; + + public KVPair() + { + Handle = CLIB.ppf_KeyValuePair_Create(); + } + + public KVPair(IntPtr o) + { + Handle = o; + destroyable = false; + } + + public void SetIntValue(int value) + { + CLIB.ppf_KeyValuePair_SetIntValue(Handle, value); + } + + public void SetStringValue(string value) + { + CLIB.ppf_KeyValuePair_SetStringValue(Handle, value); + } + + public void SetDoubleValue(double value) + { + CLIB.ppf_KeyValuePair_SetDoubleValue(Handle, value); + } + + public int GetIntValue() + { + return CLIB.ppf_KeyValuePair_GetIntValue(Handle); + } + + public string GetStringValue() + { + return CLIB.ppf_KeyValuePair_GetStringValue(Handle); + } + + public double GetDoubleValue() + { + return CLIB.ppf_KeyValuePair_GetDoubleValue(Handle); + } + + public void SetKey(string key) + { + CLIB.ppf_KeyValuePair_SetKey(Handle, key); + } + + public string GetKey() + { + return CLIB.ppf_KeyValuePair_GetKey(Handle); + } + + public KVPairType GetValueType() + { + return (KVPairType) CLIB.ppf_KeyValuePair_GetValueType(Handle); + } + + ~KVPair() + { + if (destroyable) + { + CLIB.ppf_KeyValuePair_Destroy(Handle); + Handle = IntPtr.Zero; + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Common.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Common.cs.meta new file mode 100644 index 0000000..ddd79e5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Common.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: af96c3f14f761724db9f93a693fbad2e +timeCreated: 1523486800 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Compliance.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Compliance.cs new file mode 100644 index 0000000..b431344 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Compliance.cs @@ -0,0 +1,31 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + public class DetectSensitiveResult + { + /// The filtered text is a string which replace sensitive words with `*`. + public readonly string FilteredText; + + /// The proposed strategy to handle user operation. + public readonly SensitiveProposal Proposal; + + public DetectSensitiveResult(IntPtr o) + { + FilteredText = CLIB.ppf_DetectSensitiveResult_GetFilteredText(o); + Proposal = CLIB.ppf_DetectSensitiveResult_GetProposal(o); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Compliance.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Compliance.cs.meta new file mode 100644 index 0000000..5fa1256 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Compliance.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3b2e5ad6aabe48df833647b8ce43f0b3 +timeCreated: 1679567051 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Highlight.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Highlight.cs new file mode 100644 index 0000000..b677521 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Highlight.cs @@ -0,0 +1,110 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + /// + /// Information about screen capturing. + /// + public class CaptureInfo + { + /// + /// The path where the image is located. + /// + public readonly string ImagePath; + /// + /// The ID of the screen-capturing task. + /// + public readonly string JobId; + + public CaptureInfo(IntPtr o) + { + ImagePath = CLIB.ppf_CaptureInfo_GetImagePath(o); + JobId = CLIB.ppf_CaptureInfo_GetJobId(o); + } + } + + + /// + /// Information about screen recording. + /// + public class RecordInfo + { + /// + /// The path where the video is located. + /// + public readonly string VideoPath; + /// + /// The duration of the video. Unit: milliseconds. + /// + public readonly int DurationInMilliSeconds; + /// + /// The width of the video. + /// + public readonly int Width; + /// + /// The height of the video. + /// + public readonly int Height; + /// + /// The ID of the screen-recording task. + /// + public readonly string JobId; + + public RecordInfo(IntPtr o) + { + VideoPath = CLIB.ppf_RecordInfo_GetVideoPath(o); + DurationInMilliSeconds = CLIB.ppf_RecordInfo_GetDurationInMilliSeconds(o); + Width = CLIB.ppf_RecordInfo_GetWidth(o); + Height = CLIB.ppf_RecordInfo_GetHeight(o); + JobId = CLIB.ppf_RecordInfo_GetJobId(o); + } + } + + + /// + /// Information about the images captured and videos recorded in a session. + /// + public class SessionMedia + { + /// + /// Image information, including image paths and job IDs. + /// + public readonly CaptureInfo[] Images; + /// + /// Video information, including video paths, video durations, video sizes, and job IDs. + /// + public readonly RecordInfo[] Videos; + + public SessionMedia(IntPtr o) + { + { + int sz = (int) CLIB.ppf_SessionMedia_GetImagesSize(o); + Images = new CaptureInfo[sz]; + for (int i = 0; i < sz; i++) + { + Images[i] = new CaptureInfo(CLIB.ppf_SessionMedia_GetImages(o, (UIntPtr) i)); + } + } + { + int sz = (int) CLIB.ppf_SessionMedia_GetVideosSize(o); + Videos = new RecordInfo[sz]; + for (int i = 0; i < sz; i++) + { + Videos[i] = new RecordInfo(CLIB.ppf_SessionMedia_GetVideos(o, (UIntPtr) i)); + } + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Highlight.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Highlight.cs.meta new file mode 100644 index 0000000..665cab8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Highlight.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6effacd11a404d7983207e0418286b47 +timeCreated: 1686138789 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/IAP.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/IAP.cs new file mode 100644 index 0000000..6314558 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/IAP.cs @@ -0,0 +1,225 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + /// + /// The add-on that can be purchased in the app. + /// + /// You can create in-app products on the PICO Developer Platform. + /// + public class Product + { + /// The description of the add-on. + public readonly string Description; + + /// The detailed description of the add-on. + public readonly string DetailDescription; + + /// The price of the add-on, which is a number string. + public readonly string Price; + + /// The currency required for purchasing the add-on. + public readonly string Currency; + + /// The name of the add-on. + public readonly string Name; + + /// The unique identifier of the add-on. + public readonly string SKU; + + /// The icon of the add-on, which is an image URL. + public readonly string Icon; + + /// The type of the add-on + public readonly AddonsType AddonsType; + + /// The period type for the subscription add-on. Only valid when it's a subscription add-on. + public readonly PeriodType PeriodType; + + /// The trial period unit for the subscription add-on. Only valid when it's a subscription add-on. + public readonly PeriodType TrialPeriodUnit; + + /// The trial period value for the subscription add-on. Only valid when it's a subscription add-on. + public readonly int TrialPeriodValue; + + /// The original price of the add-on, which means the price without discount. + public readonly string OriginalPrice; + + /// The order ID of the subscription. Only valid when it's a subscription add-on. + public readonly string OuterId; + + /// Whether the subscription is auto renewed. Only valid when it's a subscription add-on. + public readonly bool IsContinuous; + + public Product(IntPtr o) + { + Description = CLIB.ppf_Product_GetDescription(o); + DetailDescription = CLIB.ppf_Product_GetDetailDescription(o); + Price = CLIB.ppf_Product_GetPrice(o); + Currency = CLIB.ppf_Product_GetCurrency(o); + Name = CLIB.ppf_Product_GetName(o); + SKU = CLIB.ppf_Product_GetSKU(o); + Icon = CLIB.ppf_Product_GetIcon(o); + AddonsType = CLIB.ppf_Product_GetAddonsType(o); + PeriodType = CLIB.ppf_Product_GetPeriodType(o); + TrialPeriodUnit = CLIB.ppf_Product_GetTrialPeriodUnit(o); + TrialPeriodValue = CLIB.ppf_Product_GetTrialPeriodValue(o); + OuterId = CLIB.ppf_Product_GetOuterId(o); + OriginalPrice = CLIB.ppf_Product_GetOriginalPrice(o); + IsContinuous = CLIB.ppf_Product_IsContinuous(o); + } + } + + /// + /// Each element is \ref Product. + /// + public class ProductList : MessageArray + { + public ProductList(IntPtr a) + { + var count = (int) CLIB.ppf_ProductArray_GetSize(a); + this.Capacity = count; + for (int i = 0; i < count; i++) + { + this.Add(new Product(CLIB.ppf_ProductArray_GetElement(a, (UIntPtr) i))); + } + + NextPageParam = CLIB.ppf_ProductArray_GetNextPageParam(a); + } + } + + + /// + /// The add-on that the current user has purchased. + /// + public class Purchase + { + /// The expiration time. Only valid when it's a subscription add-on. + public readonly DateTime ExpirationTime; + + /// The grant time. Only valid when it's a subscription add-on. + public readonly DateTime GrantTime; + + /// The ID of the purchase order. + public readonly string ID; + + /// The unique identifier of the add-on in the purchase order. + public readonly string SKU; + + /// The icon of the add-on. + public readonly string Icon; + + /// The type of the purchased add-on. + public readonly AddonsType AddonsType; + + /// The order ID of the subscription. Only valid when it's a subscription add-on. + public readonly string OuterId; + + /// The current period type of subscription. Only valid when it's a subscription add-on. + public readonly PeriodType CurrentPeriodType; + + /// The next period type of subscription. Only valid when it's a subscription add-on. + public readonly PeriodType NextPeriodType; + + /// The next pay time of subscription. Only valid when it's a subscription add-on. + public readonly DateTime NextPayTime; + + /// The discount info of the purchase. + public readonly DiscountType DiscountType; + + /// The comment for the order. Developers can add order comment to a purchase. See also: \ref IAPService.LaunchCheckoutFlow3 + public readonly string OrderComment; + + public Purchase(IntPtr o) + { + ExpirationTime = TimeUtil.MilliSecondsToDateTime(CLIB.ppf_Purchase_GetExpirationTime(o)); + GrantTime = TimeUtil.MilliSecondsToDateTime(CLIB.ppf_Purchase_GetGrantTime(o)); + ID = CLIB.ppf_Purchase_GetID(o); + SKU = CLIB.ppf_Purchase_GetSKU(o); + Icon = CLIB.ppf_Purchase_GetIcon(o); + AddonsType = CLIB.ppf_Purchase_GetAddonsType(o); + OuterId = CLIB.ppf_Purchase_GetOuterId(o); + CurrentPeriodType = CLIB.ppf_Purchase_GetCurrentPeriodType(o); + NextPeriodType = CLIB.ppf_Purchase_GetNextPeriodType(o); + NextPayTime = TimeUtil.MilliSecondsToDateTime(CLIB.ppf_Purchase_GetNextPayTime(o)); + DiscountType = CLIB.ppf_Purchase_GetDiscountType(o); + OrderComment = CLIB.ppf_Purchase_GetOrderComment(o); + } + } + + /// + /// Each element is \ref Purchase. + /// + public class PurchaseList : MessageArray + { + public PurchaseList(IntPtr a) + { + var count = (int) CLIB.ppf_PurchaseArray_GetSize(a); + this.Capacity = count; + for (int i = 0; i < count; i++) + { + this.Add(new Purchase(CLIB.ppf_PurchaseArray_GetElement(a, (UIntPtr) i))); + } + + NextPageParam = CLIB.ppf_PurchaseArray_GetNextPageParam(a); + } + } + + /// + /// \ref IAPService.GetSubscriptionStatus returns the subscription status of a subscription add-on. + /// + public class SubscriptionStatus + { + /// The SKU of the add-on. SKU is the add-on's unique identifier. + public readonly string SKU; + + /// The order ID of the subscription. Only valid when it's a subscription add-on. + public readonly string OuterId; + + /// The start time of the subscription. + public readonly DateTime StartTime; + + /// The end time of the subscription. + public readonly DateTime EndTime; + + /// The period type of the subscription. + public readonly PeriodType PeriodType; + + /// The entitlement status of the add-on, which indicates whether the user is entitled to use the add-on. + public readonly EntitlementStatus EntitlementStatus; + + /// If `EntitlementStatus` is `Cancel`, `CancelReason` indicates why the subscription has been canceled. + public readonly CancelReason CancelReason; + + /// Whether the subscription is in free trial. + public readonly bool IsFreeTrial; + + /// The next period of the subscription. + public readonly int NextPeriod; + + public SubscriptionStatus(IntPtr o) + { + SKU = CLIB.ppf_SubscriptionStatus_GetSKU(o); + OuterId = CLIB.ppf_SubscriptionStatus_GetOuterId(o); + StartTime = TimeUtil.MilliSecondsToDateTime(CLIB.ppf_SubscriptionStatus_GetStartTime(o)); + EndTime = TimeUtil.MilliSecondsToDateTime(CLIB.ppf_SubscriptionStatus_GetEndTime(o)); + PeriodType = CLIB.ppf_SubscriptionStatus_GetPeriodType(o); + EntitlementStatus = CLIB.ppf_SubscriptionStatus_GetEntitlementStatus(o); + CancelReason = CLIB.ppf_SubscriptionStatus_GetCancelReason(o); + IsFreeTrial = CLIB.ppf_SubscriptionStatus_GetIsFreeTrial(o); + NextPeriod = CLIB.ppf_SubscriptionStatus_GetNextPeriod(o); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/IAP.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/IAP.cs.meta new file mode 100644 index 0000000..7526be6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/IAP.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2178942333fc436ab70032c2073b63bb +timeCreated: 1655278125 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Leaderboard.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Leaderboard.cs new file mode 100644 index 0000000..8e4b3a8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Leaderboard.cs @@ -0,0 +1,146 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + + /// Leaderboard info. + public class Leaderboard + { + /// The unique identifier of the leaderboard, which is configured on the PICO Developer Platform. + public readonly string ApiName; + + /// Leaderboard ID. + public readonly ulong ID; + + /** Associate a destination to the leaderboard so that users can be directed to a specific location in the app. + * If the leaderboard for that challenge is associated with a destination, the app will be launched, and the user will be directed to the destination. + * If the leaderboard for that challenge is not associated with any destination, the app will be launched, and the user will be directed to the Home page. + */ + public readonly Destination DestinationOptional; + + public Leaderboard(IntPtr o) + { + ApiName = CLIB.ppf_Leaderboard_GetApiName(o); + ID = CLIB.ppf_Leaderboard_GetID(o); + var pointer = CLIB.ppf_Leaderboard_GetDestination(o); + if (pointer == IntPtr.Zero) + DestinationOptional = null; + else + DestinationOptional = new Destination(pointer); + } + } + + /// Leaderboard list. Each element is \ref Leaderboard. + public class LeaderboardList : MessageArray + { + /// The total number of leaderboards in the list. + public readonly ulong TotalCount; + public LeaderboardList(IntPtr a) + + { + TotalCount = CLIB.ppf_LeaderboardArray_GetTotalCount(a); + NextPageParam = CLIB.ppf_LeaderboardArray_HasNextPage(a) ? "true" : string.Empty; + var count = (int) CLIB.ppf_LeaderboardArray_GetSize(a); + this.Capacity = count; + for (var i = 0; i < count; i++) + { + Add(new Leaderboard(CLIB.ppf_LeaderboardArray_GetElement(a, (UIntPtr) i))); + } + } + } + + /// Supplementary metric. + public class SupplementaryMetric + { + /// The ID of the supplementary metric. + public readonly UInt64 ID; + /// The value of the supplementary metric. + public readonly long Metric; + + + public SupplementaryMetric(IntPtr o) + { + ID = CLIB.ppf_SupplementaryMetric_GetID(o); + Metric = CLIB.ppf_SupplementaryMetric_GetMetric(o); + } + } + + /// Leaderboard entry info. + public class LeaderboardEntry + { + /// The entry's display score. + public readonly string DisplayScore; + /// Additional info, no more than 2KB. + public readonly byte[] ExtraData; + /// Entry ID. + public readonly UInt64 ID; + /// The entry's ranking on the leaderboard. For example, returns `1` for top1. + public readonly int Rank; + /// The score used to rank the entry. + public readonly long Score; + /// The supplementary metric used for tiebreakers. This field can be null. Need to check whether it is null before use. + public readonly SupplementaryMetric SupplementaryMetricOptional; + /// The time when the entry was written to the leaderboard. + public readonly DateTime Timestamp; + /// The user the entry belongs to. + public readonly User User; + + + public LeaderboardEntry(IntPtr o) + { + DisplayScore = CLIB.ppf_LeaderboardEntry_GetDisplayScore(o); + var extraDataPtr = CLIB.ppf_LeaderboardEntry_GetExtraData(o); + var extraDataSize = CLIB.ppf_LeaderboardEntry_GetExtraDataLength(o); + ExtraData = MarshalUtil.ByteArrayFromNative(extraDataPtr, extraDataSize); + ID = CLIB.ppf_LeaderboardEntry_GetID(o); + Rank = CLIB.ppf_LeaderboardEntry_GetRank(o); + Score = CLIB.ppf_LeaderboardEntry_GetScore(o); + Timestamp = TimeUtil.SecondsToDateTime((long) CLIB.ppf_LeaderboardEntry_GetTimestamp(o)); + User = new User(CLIB.ppf_LeaderboardEntry_GetUser(o)); + { + var pointer = CLIB.ppf_LeaderboardEntry_GetSupplementaryMetric(o); + if (pointer == IntPtr.Zero) + { + SupplementaryMetricOptional = null; + } + else + { + SupplementaryMetricOptional = new SupplementaryMetric(pointer); + } + } + } + } + + /// Leaderboard entry list. Each element is \ref LeaderboardEntry. + public class LeaderboardEntryList : MessageArray + { + /// The total number of entries on the leaderboard. + public readonly ulong TotalCount; + + public LeaderboardEntryList(IntPtr a) + { + NextPageParam = CLIB.ppf_LeaderboardEntryArray_HasNextPage(a) ? "true" : string.Empty; + PreviousPageParam = CLIB.ppf_LeaderboardEntryArray_HasPreviousPage(a) ? "true" : string.Empty; + var count = (int) CLIB.ppf_LeaderboardEntryArray_GetSize(a); + this.Capacity = count; + for (uint i = 0; i < count; i++) + { + this.Add(new LeaderboardEntry(CLIB.ppf_LeaderboardEntryArray_GetElement(a, (UIntPtr) i))); + } + + TotalCount = CLIB.ppf_LeaderboardEntryArray_GetTotalCount(a); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Leaderboard.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Leaderboard.cs.meta new file mode 100644 index 0000000..18d52c8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Leaderboard.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 457e9a7eddbc4d46ab8add0d8ebc03d6 +timeCreated: 1655221465 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Matchmaking.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Matchmaking.cs new file mode 100644 index 0000000..d38396e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Matchmaking.cs @@ -0,0 +1,202 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + + /// Matchmaking admin snapshot. You will receive this after calling \ref MatchmakingService.GetAdminSnapshot. + public class MatchmakingAdminSnapshot + { + /// List of matchmaking candidates + public readonly MatchmakingAdminSnapshotCandidateList CandidateList; + /// The current matching threshold. + public readonly double MyCurrentThreshold; + + public MatchmakingAdminSnapshot(IntPtr o) + { + CandidateList = new MatchmakingAdminSnapshotCandidateList(CLIB.ppf_MatchmakingAdminSnapshot_GetCandidates(o)); + MyCurrentThreshold = CLIB.ppf_MatchmakingAdminSnapshot_GetMyCurrentThreshold(o); + } + } + + /// Matchmaking candidate. + public class MatchmakingAdminSnapshotCandidate + { + /// Whether me and the other user can be matched. + public readonly bool CanMatch; + /// My matching threshold. + public readonly double MyTotalScore; + /// The other user's matching threshold. + public readonly double TheirCurrentThreshold; + + public MatchmakingAdminSnapshotCandidate(IntPtr o) + { + CanMatch = CLIB.ppf_MatchmakingAdminSnapshotCandidate_GetCanMatch(o); + MyTotalScore = CLIB.ppf_MatchmakingAdminSnapshotCandidate_GetMyTotalScore(o); + TheirCurrentThreshold = CLIB.ppf_MatchmakingAdminSnapshotCandidate_GetTheirCurrentThreshold(o); + } + } + /// + /// Each element is \ref MatchmakingAdminSnapshotCandidate. + /// + public class MatchmakingAdminSnapshotCandidateList : MessageArray + { + /// The total number of MatchmakingAdminSnapshotCandidate in the list. + public readonly ulong TotalCount; + public MatchmakingAdminSnapshotCandidateList(IntPtr a) + { + var count = (int) CLIB.ppf_MatchmakingAdminSnapshotCandidateArray_GetSize(a); + this.Capacity = count; + TotalCount = (ulong)CLIB.ppf_MatchmakingAdminSnapshotCandidateArray_GetTotalCount(a); + for (int i = 0; i < count; i++) + { + this.Add(new MatchmakingAdminSnapshotCandidate(CLIB.ppf_MatchmakingAdminSnapshotCandidateArray_GetElement(a, (UIntPtr) i))); + } + } + } + + /// Matchmaking browse result. You will receive the result after calling \ref MatchmakingService.Browse2. + public class MatchmakingBrowseResult + { + /// Matchmaking enqueue result. + public readonly MatchmakingEnqueueResult EnqueueResult; + /// The list of matchmaking rooms. + public readonly MatchmakingRoomList MatchmakingRooms; + + public MatchmakingBrowseResult(IntPtr o) + { + EnqueueResult = new MatchmakingEnqueueResult(CLIB.ppf_MatchmakingBrowseResult_GetEnqueueResult(o)); + MatchmakingRooms = new MatchmakingRoomList(CLIB.ppf_MatchmakingBrowseResult_GetRooms(o)); + } + } + + /// Matchmaking enqueue result. + public class MatchmakingEnqueueResult + { + /// Matchmaking snapshot options. Used for debugging only. + public readonly MatchmakingAdminSnapshot AdminSnapshotOptional; + /// The average waiting time. + public readonly uint AverageWait; + /// The number of matches made in the last hour. + public readonly uint MatchesInLastHourCount; + /// The expected longest waiting time. + public readonly uint MaxExpectedWait; + /// Matchmaking pool name. + public readonly string Pool; + /// Match rate. + public readonly uint RecentMatchPercentage; + + + public MatchmakingEnqueueResult(IntPtr o) + { + { + var pointer = CLIB.ppf_MatchmakingEnqueueResult_GetAdminSnapshot(o); + if (pointer == IntPtr.Zero) + { + AdminSnapshotOptional = null; + } + else + { + AdminSnapshotOptional = new MatchmakingAdminSnapshot(pointer); + } + } + + AverageWait = CLIB.ppf_MatchmakingEnqueueResult_GetAverageWait(o); + MatchesInLastHourCount = CLIB.ppf_MatchmakingEnqueueResult_GetMatchesInLastHourCount(o); + MaxExpectedWait = CLIB.ppf_MatchmakingEnqueueResult_GetMaxExpectedWait(o); + Pool = CLIB.ppf_MatchmakingEnqueueResult_GetPool(o); + RecentMatchPercentage = CLIB.ppf_MatchmakingEnqueueResult_GetRecentMatchPercentage(o); + } + } + + /// Matchmaking enqueue result and room info. You will receive this after calling \ref MatchmakingService.CreateAndEnqueueRoom2. + public class MatchmakingEnqueueResultAndRoom + { + /// Matchmaking enqueue result. + public readonly MatchmakingEnqueueResult MatchmakingEnqueueResult; + /// Matchmaking room info. + public readonly Room Room; + + public MatchmakingEnqueueResultAndRoom(IntPtr o) + { + MatchmakingEnqueueResult = new MatchmakingEnqueueResult(CLIB.ppf_MatchmakingEnqueueResultAndRoom_GetMatchmakingEnqueueResult(o)); + Room = new Room(CLIB.ppf_MatchmakingEnqueueResultAndRoom_GetRoom(o)); + } + } + + /// Matchmaking room. + public class MatchmakingRoom + { + /// Room info. + public readonly Models.Room Room; + /// Currently, always `0`. + public readonly uint PingTime; + /// Currently, always `false`. + public readonly bool HasPingTime; + + + public MatchmakingRoom(IntPtr o) + { + this.PingTime = CLIB.ppf_MatchmakingRoom_GetPingTime(o); + this.Room = new Models.Room(CLIB.ppf_MatchmakingRoom_GetRoom(o)); + this.HasPingTime = CLIB.ppf_MatchmakingRoom_HasPingTime(o); + } + } + /** + * Each element is \ref MatchmakingRoom + */ + public class MatchmakingRoomList : MessageArray + { + /// The total number. + public readonly int TotalCount; + public MatchmakingRoomList(IntPtr a) + { + TotalCount = CLIB.ppf_MatchmakingRoomArray_GetTotalCount(a); + int count = (int) CLIB.ppf_MatchmakingRoomArray_GetSize(a); + this.Capacity = count; + for (uint i = 0; i < count; i++) + { + this.Add(new MatchmakingRoom(CLIB.ppf_MatchmakingRoomArray_GetElement(a, (UIntPtr) i))); + } + } + } + + /// Matchmaking statistics. Will receive this after calling \ref MatchmakingService.GetStats. + public class MatchmakingStats + { + /// The current user's number of draws. + public readonly uint DrawCount; + /// The current user's number of losses. + public readonly uint LossCount; + /// The current user's skill level for the current matchmaking pool. + public readonly uint SkillLevel; + /// The average of all skill levels for the current matchmaking pool. + public readonly double SkillMean; + /// The standard deviation of all skill levels for the current matchmaking pool + public readonly double SkillStandardDeviation; + /// The current user's number of wins. + public readonly uint WinCount; + + + public MatchmakingStats(IntPtr o) + { + DrawCount = CLIB.ppf_MatchmakingStats_GetDrawCount(o); + LossCount = CLIB.ppf_MatchmakingStats_GetLossCount(o); + SkillLevel = CLIB.ppf_MatchmakingStats_GetSkillLevel(o); + SkillMean = CLIB.ppf_MatchmakingStats_GetSkillMean(o); + SkillStandardDeviation = CLIB.ppf_MatchmakingStats_GetSkillStandardDeviation(o); + WinCount = CLIB.ppf_MatchmakingStats_GetWinCount(o); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Matchmaking.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Matchmaking.cs.meta new file mode 100644 index 0000000..208691c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Matchmaking.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ad76d09e01dbdf749a00f0dfd0ed3c1a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Notification.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Notification.cs new file mode 100644 index 0000000..15bf45e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Notification.cs @@ -0,0 +1,69 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using UnityEngine; + +namespace Pico.Platform.Models +{ + /// + /// Invitation notificiation. + /// + public class RoomInviteNotification + { + /// Invitation ID. + public readonly UInt64 ID; + /// Room ID. + public readonly UInt64 RoomID; + /// Inviter's user ID. + public readonly string SenderID; + /// The time when the invitation is sent. + public readonly DateTime SentTime; + + + public RoomInviteNotification(IntPtr o) + { + ID = CLIB.ppf_RoomInviteNotification_GetID(o); + RoomID = CLIB.ppf_RoomInviteNotification_GetRoomID(o); + SenderID = CLIB.ppf_RoomInviteNotification_GetSenderID(o); + SentTime = new DateTime(); + try + { + SentTime = TimeUtil.SecondsToDateTime((long) CLIB.ppf_RoomInviteNotification_GetSentTime(o)); + } + catch (UnityException ex) + { + Debug.LogWarning($"RoomInviteNotification get SentTime fail {ex}"); + throw; + } + } + } + /// + /// Each element is \ref RoomInviteNotification + /// + public class RoomInviteNotificationList : MessageArray + { + /// The total number. + public readonly int TotalCount; + public RoomInviteNotificationList(IntPtr a) + { + TotalCount = CLIB.ppf_RoomInviteNotificationArray_GetTotalCount(a); + NextPageParam = CLIB.ppf_RoomInviteNotificationArray_HasNextPage(a) ? "true" : string.Empty; + int count = (int) CLIB.ppf_RoomInviteNotificationArray_GetSize(a); + this.Capacity = count; + for (uint i = 0; i < count; i++) + { + this.Add(new RoomInviteNotification(CLIB.ppf_RoomInviteNotificationArray_GetElement(a, (UIntPtr)i))); + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Notification.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Notification.cs.meta new file mode 100644 index 0000000..ee3e639 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Notification.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0945c228a6a840e0b4046d70ed08ea25 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Packet.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Packet.cs new file mode 100644 index 0000000..32738f5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Packet.cs @@ -0,0 +1,91 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +namespace Pico.Platform.Models +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The information about the message packet. + /// + public sealed class Packet : IDisposable + { + /// The size of the message packet. + private readonly ulong size; + /// The handler of the message packet. + private readonly IntPtr handler; + + public Packet(IntPtr handler) + { + this.handler = handler; + this.size = (ulong) CLIB.ppf_Packet_GetSize(handler); + } + + /// Get message content. + public ulong GetBytes(byte[] dest) + { + if ((ulong) dest.LongLength >= size) + { + Marshal.Copy(CLIB.ppf_Packet_GetBytes(handler), dest, 0, (int) size); + return size; + } + else + { + throw new ArgumentException($"Dest array can't hold {size} bytes"); + } + } + + /// Get message content. + public string GetBytes() + { + if (size > 0) + { + byte[] bytes = new byte[size]; + Marshal.Copy(CLIB.ppf_Packet_GetBytes(handler), bytes, 0, (int) size); + return System.Text.Encoding.UTF8.GetString(bytes); + } + else + { + return string.Empty; + } + } + + /// Get the ID of the message sender. + public string SenderId + { + get { return CLIB.ppf_Packet_GetSenderID(handler); } + } + /// Get message size. + public ulong Size + { + get { return size; } + } + + + #region IDisposable + + ~Packet() + { + Dispose(); + } + + + public void Dispose() + { + CLIB.ppf_Packet_Free(handler); + GC.SuppressFinalize(this); + } + + #endregion + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Packet.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Packet.cs.meta new file mode 100644 index 0000000..73c5b99 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Packet.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 351ba01c3b9b64a2f99b84ec5e4202b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Presence.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Presence.cs new file mode 100644 index 0000000..197870a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Presence.cs @@ -0,0 +1,156 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + + /// + /// Destination is a location in the app. + /// You can configure destinations for your app on the PICO Developer Platform. + /// + public class Destination + { + /// The destination's API name. + public readonly string ApiName; + + /// The destination's deeplink message. + public readonly string DeeplinkMessage; + + /// The destination's display name. + public readonly string DisplayName; + + public Destination(IntPtr o) + { + ApiName = CLIB.ppf_Destination_GetApiName(o); + DeeplinkMessage = CLIB.ppf_Destination_GetDeeplinkMessage(o); + DisplayName = CLIB.ppf_Destination_GetDisplayName(o); + } + } + + /// + /// Each element is \ref Destination + /// + public class DestinationList : MessageArray + { + public DestinationList(IntPtr a) + { + var count = (int) CLIB.ppf_DestinationArray_GetSize(a); + this.Capacity = count; + for (int i = 0; i < count; i++) + { + this.Add(new Destination(CLIB.ppf_DestinationArray_GetElement(a, (UIntPtr) i))); + } + + NextPageParam = CLIB.ppf_DestinationArray_GetNextPageParam(a); + } + } + + + /// + /// App's invitation info. + /// + public class ApplicationInvite + { + /// The destination where the user is directed to after accepting the invitation. + public readonly Destination Destination; + + /// Invited users. + public readonly User Recipient; + + /// Invitation ID. + public readonly UInt64 ID; + + /// If the user clicks the invitation message, this field will be `true`. + public readonly bool IsActive; + + /// The lobby session ID that identifies a group or team. + public readonly string LobbySessionId; + + /// The match session ID that identifies a competition. + public readonly string MatchSessionId; + + public ApplicationInvite(IntPtr o) + { + Destination = new Destination(CLIB.ppf_ApplicationInvite_GetDestination(o)); + Recipient = new User(CLIB.ppf_ApplicationInvite_GetRecipient(o)); + ID = CLIB.ppf_ApplicationInvite_GetID(o); + IsActive = CLIB.ppf_ApplicationInvite_GetIsActive(o); + LobbySessionId = CLIB.ppf_ApplicationInvite_GetLobbySessionId(o); + MatchSessionId = CLIB.ppf_ApplicationInvite_GetMatchSessionId(o); + } + } + + /// + /// Each element is \ref ApplicationInvite. + /// + public class ApplicationInviteList : MessageArray + { + public ApplicationInviteList(IntPtr a) + { + var count = (int) CLIB.ppf_ApplicationInviteArray_GetSize(a); + this.Capacity = count; + for (int i = 0; i < count; i++) + { + this.Add(new ApplicationInvite(CLIB.ppf_ApplicationInviteArray_GetElement(a, (UIntPtr) i))); + } + + NextPageParam = CLIB.ppf_ApplicationInviteArray_GetNextPageParam(a); + } + } + + + /// + /// The result returned after calling \ref PresenceService.SendInvites. + /// + public class SendInvitesResult + { + public readonly ApplicationInviteList Invites; + + public SendInvitesResult(IntPtr o) + { + Invites = new ApplicationInviteList(CLIB.ppf_SendInvitesResult_GetInvites(o)); + } + } + + + /// + /// When user click the invitation message, the app will be launched and you will receive a message with presence info. + /// + public class PresenceJoinIntent + { + /// The deeplink message of the destination. + public readonly string DeeplinkMessage; + + /// The destination api name of the destination. + public readonly string DestinationApiName; + + /// The lobby session id which is configured by the sender. + public readonly string LobbySessionId; + + /// The match session id which is configured by the sender. + public readonly string MatchSessionId; + + /// The extra info of the presence. + public readonly string Extra; + + public PresenceJoinIntent(IntPtr o) + { + DeeplinkMessage = CLIB.ppf_PresenceJoinIntent_GetDeeplinkMessage(o); + DestinationApiName = CLIB.ppf_PresenceJoinIntent_GetDestinationApiName(o); + LobbySessionId = CLIB.ppf_PresenceJoinIntent_GetLobbySessionId(o); + MatchSessionId = CLIB.ppf_PresenceJoinIntent_GetMatchSessionId(o); + Extra = CLIB.ppf_PresenceJoinIntent_GetExtra(o); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Presence.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Presence.cs.meta new file mode 100644 index 0000000..0be21f5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Presence.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cefd599deefe0d44294c1b825693cdff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/RTC.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/RTC.cs new file mode 100644 index 0000000..db3eac5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/RTC.cs @@ -0,0 +1,557 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Runtime.InteropServices; + +namespace Pico.Platform.Models +{ + /// + /// The binary message received in a RTC room. + /// + public class RtcBinaryMessageReceived + { + /// The message sender's user ID. + public readonly string UserId; + + /// The binary data of the message. + public readonly byte[] Data; + + /// The ID of the room that the message is sent to. + public readonly string RoomId; + + public RtcBinaryMessageReceived(IntPtr o) + { + UserId = CLIB.ppf_RtcBinaryMessageReceived_GetUserId(o); + var ptr = CLIB.ppf_RtcBinaryMessageReceived_GetData(o); + var sz = CLIB.ppf_RtcBinaryMessageReceived_GetLength(o); + Data = MarshalUtil.ByteArrayFromNative(ptr, (uint) sz); + RoomId = CLIB.ppf_RtcBinaryMessageReceived_GetRoomId(o); + } + } + + + /// + /// The audio frame is several frames of RTC recorded audio. + /// + public class RtcAudioFrame + { + /// The type of the audio channel for this audio frame. + public readonly RtcAudioChannel Channel; + + /// The data pointer of the audio frame. + public readonly IntPtr Data; + + /// The size of the data. + public readonly long DataSize; + + /// The sample rate of the data. + public readonly RtcAudioSampleRate SampleRate; + + /// The timestamp.Its value is always 0. So don't use it. + public readonly long TimeStampInUs; + + public RtcAudioFrame(IntPtr o) + { + Channel = CLIB.ppf_RtcAudioFrame_GetChannel(o); + DataSize = CLIB.ppf_RtcAudioFrame_GetDataSize(o); + SampleRate = CLIB.ppf_RtcAudioFrame_GetSampleRate(o); + TimeStampInUs = CLIB.ppf_RtcAudioFrame_GetTimeStampInUs(o); + Data = CLIB.ppf_RtcAudioFrame_GetData(o); + } + + public byte[] GetData() + { + return MarshalUtil.ByteArrayFromNative(this.Data, (uint) this.DataSize); + } + + public void SetData(byte[] data) + { + Marshal.Copy(data, 0, this.Data, (int) this.DataSize); + } + } + + + /// + /// The message sending result that indicates whether the message is successfully sent. + /// + public class RtcMessageSendResult + { + /// The message ID. + public readonly long MessageId; + + /// The error code returned in the result. `200` means success. + public readonly int Error; + + /// The ID of the room that the message is sent to. + public readonly string RoomId; + + public RtcMessageSendResult(IntPtr o) + { + MessageId = CLIB.ppf_RtcMessageSendResult_GetMessageId(o); + Error = CLIB.ppf_RtcMessageSendResult_GetError(o); + RoomId = CLIB.ppf_RtcMessageSendResult_GetRoomId(o); + } + } + + + /// + /// When the remote user canceled publshing stream to the room, you will receive a notification. + /// + public class RtcUserUnPublishInfo + { + /// The ID of the remote user. + public readonly string UserId; + + /// The stream type. + public readonly RtcMediaStreamType MediaStreamType; + + /// The reason why the remote user canceled publishing stream. + public readonly RtcStreamRemoveReason Reason; + + /// The ID of the room that the remote user is in. + public readonly string RoomId; + + public RtcUserUnPublishInfo(IntPtr o) + { + UserId = CLIB.ppf_RtcUserUnPublishInfo_GetUserId(o); + MediaStreamType = CLIB.ppf_RtcUserUnPublishInfo_GetMediaStreamType(o); + Reason = CLIB.ppf_RtcUserUnPublishInfo_GetReason(o); + RoomId = CLIB.ppf_RtcUserUnPublishInfo_GetRoomId(o); + } + } + + + /// + /// The publish stream info. + /// If the remote user publishes stream, you will receive a notification. + /// + public class RtcUserPublishInfo + { + /// The ID of the remote user. + public readonly string UserId; + + /// The stream type. + public readonly RtcMediaStreamType MediaStreamType; + + /// The ID of the room that the remote user is in. + public readonly string RoomId; + + public RtcUserPublishInfo(IntPtr o) + { + UserId = CLIB.ppf_RtcUserPublishInfo_GetUserId(o); + MediaStreamType = CLIB.ppf_RtcUserPublishInfo_GetMediaStreamType(o); + RoomId = CLIB.ppf_RtcUserPublishInfo_GetRoomId(o); + } + } + + + /// + /// The message received by a certain room. + /// The remote users can send messages to the room and you will receive this message. + /// + public class RtcRoomMessageReceived + { + /// The ID of the message sender. + public readonly string UserId; + + /// The message. + public readonly string Message; + + /// The ID of the room that the message was sent to. + public readonly string RoomId; + + public RtcRoomMessageReceived(IntPtr o) + { + UserId = CLIB.ppf_RtcRoomMessageReceived_GetUserId(o); + Message = CLIB.ppf_RtcRoomMessageReceived_GetMessage(o); + RoomId = CLIB.ppf_RtcRoomMessageReceived_GetRoomId(o); + } + } + + + /// + /// The message sent to you by a certain user. You will receive a notification. + /// + public class RtcUserMessageReceived + { + /// The ID of the message sender. + public readonly string UserId; + + /// The message. + public readonly string Message; + + /// The ID of the room that the message sender and recipient are in. + public readonly string RoomId; + + public RtcUserMessageReceived(IntPtr o) + { + UserId = CLIB.ppf_RtcUserMessageReceived_GetUserId(o); + Message = CLIB.ppf_RtcUserMessageReceived_GetMessage(o); + RoomId = CLIB.ppf_RtcUserMessageReceived_GetRoomId(o); + } + } + + + /// + /// The stream sync info sent to your room. You will receive a notification, + /// + public class RtcStreamSyncInfo + { + /// The key of the stream. + public readonly RtcRemoteStreamKey StreamKey; + + /// The type of the stream. + public readonly RtcSyncInfoStreamType StreamType; + + /// The stream sync info + public readonly byte[] Data; + + public RtcStreamSyncInfo(IntPtr o) + { + StreamKey = new RtcRemoteStreamKey(CLIB.ppf_RtcStreamSyncInfo_GetStreamKey(o)); + StreamType = CLIB.ppf_RtcStreamSyncInfo_GetStreamType(o); + var ptr = CLIB.ppf_RtcStreamSyncInfo_GetData(o); + var sz = CLIB.ppf_RtcStreamSyncInfo_GetLength(o); + Data = MarshalUtil.ByteArrayFromNative(ptr, (uint) sz); + } + } + + + /// + /// If you enable audio properties report, you will periodically receive audio property info. + /// + public class RtcAudioPropertyInfo + { + /// The volume detected. It's a value between `0` and `255`. + public readonly int Volume; + + public RtcAudioPropertyInfo(IntPtr o) + { + Volume = CLIB.ppf_RtcAudioPropertyInfo_GetVolume(o); + } + } + + + /// + /// You will receive this message after you call \ref RtcService.JoinRoom. + /// + public class RtcJoinRoomResult + { + /// The ID of the room that the user joined. + public readonly string RoomId; + + /// The ID of the user. + public readonly string UserId; + + /// The error code. `0` indicates success. + public readonly int ErrorCode; + + /// The time from calling \ref RtcService.JoinRoom to receiving the result. + public readonly int Elapsed; + + /// Whether it is the first time that the user has joined the room or if the user is reconnected to the room. + public readonly RtcJoinRoomType JoinType; + + public RtcJoinRoomResult(IntPtr o) + { + RoomId = CLIB.ppf_RtcJoinRoomResult_GetRoomId(o); + UserId = CLIB.ppf_RtcJoinRoomResult_GetUserId(o); + ErrorCode = CLIB.ppf_RtcJoinRoomResult_GetErrorCode(o); + Elapsed = CLIB.ppf_RtcJoinRoomResult_GetElapsed(o); + JoinType = CLIB.ppf_RtcJoinRoomResult_GetJoinType(o); + } + } + + + /// + /// You will receive this message after you call \ref RtcService.LeaveRoom. + /// + public class RtcLeaveRoomResult + { + /// The ID of the room that the user left. + public readonly string RoomId; + + public RtcLeaveRoomResult(IntPtr o) + { + RoomId = CLIB.ppf_RtcLeaveRoomResult_GetRoomId(o); + } + } + + + /// + /// The local audio properties info. + /// You will periodically receive this message after you + /// call \ref RtcService.EnableAudioPropertiesReport. + /// + public class RtcLocalAudioPropertiesInfo + { + /// The stream index info. + public readonly RtcStreamIndex StreamIndex; + + /// The audio property details. + public readonly RtcAudioPropertyInfo AudioPropertyInfo; + + public RtcLocalAudioPropertiesInfo(IntPtr o) + { + StreamIndex = CLIB.ppf_RtcLocalAudioPropertiesInfo_GetStreamIndex(o); + AudioPropertyInfo = new RtcAudioPropertyInfo(CLIB.ppf_RtcLocalAudioPropertiesInfo_GetAudioPropertyInfo(o)); + } + } + + + /// + /// The local audio properties report. + /// You will periodically receive this message after you + /// call \ref RtcService.EnableAudioPropertiesReport. + /// + public class RtcLocalAudioPropertiesReport + { + public readonly RtcLocalAudioPropertiesInfo[] AudioPropertiesInfos; + + public RtcLocalAudioPropertiesReport(IntPtr o) + { + ulong total = (ulong) CLIB.ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfosSize(o); + AudioPropertiesInfos = new RtcLocalAudioPropertiesInfo[total]; + for (uint i = 0; i < total; i++) + { + AudioPropertiesInfos[i] = new RtcLocalAudioPropertiesInfo(CLIB.ppf_RtcLocalAudioPropertiesReport_GetAudioPropertiesInfos(o, (UIntPtr) i)); + } + } + } + + + /// + /// The media device change info. + /// RTC engine will send this message if media device change is detected. + /// + public class RtcMediaDeviceChangeInfo + { + /// + /// Device ID. + /// + public readonly string DeviceId; + /// + /// Device type. + /// + public readonly RtcMediaDeviceType DeviceType; + /// + /// Device state. + /// + public readonly RtcMediaDeviceState DeviceState; + /// + /// Device error. + /// + public readonly RtcMediaDeviceError DeviceError; + + public RtcMediaDeviceChangeInfo(IntPtr o) + { + DeviceId = CLIB.ppf_RtcMediaDeviceChangeInfo_GetDeviceId(o); + DeviceType = CLIB.ppf_RtcMediaDeviceChangeInfo_GetDeviceType(o); + DeviceState = CLIB.ppf_RtcMediaDeviceChangeInfo_GetDeviceState(o); + DeviceError = CLIB.ppf_RtcMediaDeviceChangeInfo_GetDeviceError(o); + } + } + + + /// + /// You will receive this notification if the remote user call \ref RtcService.MuteLocalAudio. + /// + public class RtcMuteInfo + { + /// The ID of the remote user who muted audio. + public readonly string UserId; + + /// The state of audio muting: muted or canceled. + public readonly RtcMuteState MuteState; + + public RtcMuteInfo(IntPtr o) + { + UserId = CLIB.ppf_RtcMuteInfo_GetUserId(o); + MuteState = CLIB.ppf_RtcMuteInfo_GetMuteState(o); + } + } + + + /// + /// The remote audio properties info. + /// You can check who is speaking by this method. + /// + public class RtcRemoteAudioPropertiesInfo + { + public readonly RtcRemoteStreamKey StreamKey; + public readonly RtcAudioPropertyInfo AudioPropertiesInfo; + + public RtcRemoteAudioPropertiesInfo(IntPtr o) + { + StreamKey = new RtcRemoteStreamKey(CLIB.ppf_RtcRemoteAudioPropertiesInfo_GetStreamKey(o)); + AudioPropertiesInfo = new RtcAudioPropertyInfo(CLIB.ppf_RtcRemoteAudioPropertiesInfo_GetAudioPropertiesInfo(o)); + } + } + + + /// + /// You will receive remote user's audio info if you call \ref RtcService.EnableAudioPropertiesReport. + /// + public class RtcRemoteAudioPropertiesReport + { + public readonly RtcRemoteAudioPropertiesInfo[] AudioPropertiesInfos; + + /// The total volume of remote users in the room. + public readonly int TotalRemoteVolume; + + public RtcRemoteAudioPropertiesReport(IntPtr o) + { + AudioPropertiesInfos = new RtcRemoteAudioPropertiesInfo[(int) CLIB.ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfosSize(o)]; + for (uint i = 0; i < AudioPropertiesInfos.Length; i++) + { + AudioPropertiesInfos[i] = new RtcRemoteAudioPropertiesInfo(CLIB.ppf_RtcRemoteAudioPropertiesReport_GetAudioPropertiesInfos(o, (UIntPtr) i)); + } + + TotalRemoteVolume = CLIB.ppf_RtcRemoteAudioPropertiesReport_GetTotalRemoteVolume(o); + } + } + + + /// + /// RtcRemoteStreamKey indicates the stream index of a remote user. + /// + public class RtcRemoteStreamKey + { + /// The ID of the room that the remote user is in. + public readonly string RoomId; + + /// The ID of the remote user. + public readonly string UserId; + + /// Indicates whether the stream is main stream or screen stream. + public readonly RtcStreamIndex RtcStreamIndex; + + public RtcRemoteStreamKey(IntPtr o) + { + RoomId = CLIB.ppf_RtcRemoteStreamKey_GetRoomId(o); + UserId = CLIB.ppf_RtcRemoteStreamKey_GetUserId(o); + RtcStreamIndex = CLIB.ppf_RtcRemoteStreamKey_GetStreamIndex(o); + } + } + + + /// + /// You will receive an error code when an error occurred in the room. + /// + public class RtcRoomError + { + /// The error code. + public readonly int Code; + + /// The ID of the room where the error occurred. + public readonly string RoomId; + + public RtcRoomError(IntPtr o) + { + Code = CLIB.ppf_RtcRoomError_GetCode(o); + RoomId = CLIB.ppf_RtcRoomError_GetRoomId(o); + } + } + + + /// + /// You will periodically receive this message after you successfully join a room. + /// + public class RtcRoomStats + { + /// The time elapsed since you joined the room . + public readonly int TotalDuration; + + /// The number of users in the room. + public readonly int UserCount; + + /// The ID of the room you joined. + public readonly string RoomId; + + public RtcRoomStats(IntPtr o) + { + TotalDuration = CLIB.ppf_RtcRoomStats_GetTotalDuration(o); + UserCount = CLIB.ppf_RtcRoomStats_GetUserCount(o); + RoomId = CLIB.ppf_RtcRoomStats_GetRoomId(o); + } + } + + + /// + /// The warning info of the room. + /// + public class RtcRoomWarn + { + /// The error code. + public readonly int Code; + + /// The ID of the room that the warning info comes from. + public readonly string RoomId; + + public RtcRoomWarn(IntPtr o) + { + Code = CLIB.ppf_RtcRoomWarn_GetCode(o); + RoomId = CLIB.ppf_RtcRoomWarn_GetRoomId(o); + } + } + + + /// + /// You will receive this message after a remote user joins the room. + /// + public class RtcUserJoinInfo + { + /// The ID of the user. + public readonly string UserId; + + /// If the remote user set the `UserExtra` field when calling \ref RtcService.JoinRoom with extra info. + public readonly string UserExtra; + + /// The time used for the remote user to join the room. + public readonly int Elapsed; + + /// The ID of the room that the remote user joined. + public readonly string RoomId; + + public RtcUserJoinInfo(IntPtr o) + { + UserId = CLIB.ppf_RtcUserJoinInfo_GetUserId(o); + UserExtra = CLIB.ppf_RtcUserJoinInfo_GetUserExtra(o); + Elapsed = CLIB.ppf_RtcUserJoinInfo_GetElapsed(o); + RoomId = CLIB.ppf_RtcUserJoinInfo_GetRoomId(o); + } + } + + + /// + /// You will receive this message when the remote user leaves the room. + /// + public class RtcUserLeaveInfo + { + /// The ID of the user. + public readonly string UserId; + + /// The reason why the user left the room, which can be network error or proactive quit. + public readonly RtcUserLeaveReasonType OfflineReason; + + /// The ID of the room that the user left. + public readonly string RoomId; + + public RtcUserLeaveInfo(IntPtr o) + { + UserId = CLIB.ppf_RtcUserLeaveInfo_GetUserId(o); + OfflineReason = CLIB.ppf_RtcUserLeaveInfo_GetOfflineReason(o); + RoomId = CLIB.ppf_RtcUserLeaveInfo_GetRoomId(o); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/RTC.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/RTC.cs.meta new file mode 100644 index 0000000..d77ca63 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/RTC.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: df80498d870b6584980cc5a5d3bb404f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Room.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Room.cs new file mode 100644 index 0000000..87933b4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Room.cs @@ -0,0 +1,111 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Generic; + +namespace Pico.Platform.Models +{ + + /// + /// Room info. + /// + public class Room + { + /// The datastore that stores a room's metadata. The maximum datastore key length is 32 bytes and the maximum datastore value length is 64 bytes. + public readonly Dictionary DataStore; + /// Room description. The maximum length is 128 bytes. + public readonly string Description; + /// Room ID. + public readonly UInt64 RoomId; + /// Whether the room is locked. + public readonly bool IsMembershipLocked; + /// Room's join policy. + public readonly RoomJoinPolicy RoomJoinPolicy; + /// Room's joinability. + public readonly RoomJoinability RoomJoinability; + /// The maximum number of users allowed to join a room, which is `100`. + public readonly uint MaxUsers; + /// Room owner. This field can be null. Need to check whether it is null before use. + public readonly User OwnerOptional; + /// Room type. + public readonly RoomType RoomType; + /// Room members. This field can be null. Need to check whether it is null before use. + public readonly UserList UsersOptional; + /// Room name. + public readonly string Name; + /// The Num of the users in room. + public readonly uint PlayerNumber; + + public Room(IntPtr o) + { + PlayerNumber = CLIB.ppf_Room_GetPlayerNumber(o); + DataStore = CLIB.DataStoreFromNative(CLIB.ppf_Room_GetDataStore(o)); + Description = CLIB.ppf_Room_GetDescription(o); + RoomId = CLIB.ppf_Room_GetID(o); + IsMembershipLocked = CLIB.ppf_Room_GetIsMembershipLocked(o); + RoomJoinPolicy = (RoomJoinPolicy) CLIB.ppf_Room_GetJoinPolicy(o); + RoomJoinability = (RoomJoinability) CLIB.ppf_Room_GetJoinability(o); + MaxUsers = CLIB.ppf_Room_GetMaxUsers(o); + Name = CLIB.ppf_Room_GetName(o); + RoomType = (RoomType) CLIB.ppf_Room_GetType(o); + { + var ptr = CLIB.ppf_Room_GetOwner(o); + if (ptr == IntPtr.Zero) + { + OwnerOptional = null; + } + else + { + OwnerOptional = new User(ptr); + } + } + + { + var ptr = CLIB.ppf_Room_GetUsers(o); + if (ptr == IntPtr.Zero) + { + UsersOptional = null; + } + else + { + UsersOptional = new UserList(ptr); + } + } + } + } + + /// Room list info. Each element is \ref Room. + public class RoomList : MessageArray + { + /// The total number of rooms. + public readonly int TotalCount; + /// The current page idex from which the list begins. + public int CurIndex; + /// The number of rooms given on each page. + public int PageSize; + + public RoomList(IntPtr a) + { + TotalCount = CLIB.ppf_RoomArray_GetTotalCount(a); + CurIndex = CLIB.ppf_RoomArray_GetPageIndex(a); + PageSize = CLIB.ppf_RoomArray_GetPageSize(a); + NextPageParam = CLIB.ppf_RoomArray_HasNextPage(a) ? "true" : string.Empty; + int count = (int) CLIB.ppf_RoomArray_GetSize(a); + this.Capacity = count; + for (uint i = 0; i < count; i++) + { + this.Add(new Room(CLIB.ppf_RoomArray_GetElement(a, (UIntPtr)i))); + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Room.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Room.cs.meta new file mode 100644 index 0000000..9a77a1b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Room.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3b9396dfcf9db14a896b58160a9954f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Speech.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Speech.cs new file mode 100644 index 0000000..78bf2f1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Speech.cs @@ -0,0 +1,65 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + /// + /// The automatic speech recognition result. + /// + public class AsrResult + { + /// + /// The text recognized. + /// + public readonly string Text; + /// + /// Whether this is the final result: + /// * `true`: yes + /// * `false`: no + /// + public readonly bool IsFinalResult; + + public AsrResult(IntPtr o) + { + Text = CLIB.ppf_AsrResult_GetText(o); + IsFinalResult = CLIB.ppf_AsrResult_GetIsFinalResult(o); + } + } + + /// + /// Information about the automatic speech recognition error. + /// + public class SpeechError + { + /// + /// Error message. + /// + public readonly string Message; + /// + /// The ID of the session where the error occurred. + /// + public readonly string SessionId; + /// + /// Error code. + /// + public readonly int Code; + + public SpeechError(IntPtr o) + { + Message = CLIB.ppf_SpeechError_GetMessage(o); + Code = CLIB.ppf_SpeechError_GetCode(o); + SessionId = CLIB.ppf_SpeechError_GetSessionId(o); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Speech.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Speech.cs.meta new file mode 100644 index 0000000..538763d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Speech.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 869552f8209743b5af9b39415c131ee7 +timeCreated: 1679484910 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Sport.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Sport.cs new file mode 100644 index 0000000..f6aeae8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Sport.cs @@ -0,0 +1,134 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; + +namespace Pico.Platform.Models +{ + + /// + /// The summary of daily sport info. + /// Users' daily sports info is recorded in the local database. This structure indicates the sports info generated someday. + /// + public class SportDailySummary + { + /// The ID of the summary. + public readonly long Id; + + /// The date when the summary was generated. + public readonly DateTime Date; + + /// The sport duration (in seconds). + public readonly int DurationInSeconds; + + /// The planned sport duration (in seconds). + public readonly int PlanDurationInMinutes; + + /// The actual calorie burnt (in kilo calorie). + public readonly double Calorie; + + /// The planned calorie to burn. + public readonly double PlanCalorie; + + public SportDailySummary(IntPtr o) + { + Id = CLIB.ppf_SportDailySummary_GetId(o); + Date = TimeUtil.MilliSecondsToDateTime(CLIB.ppf_SportDailySummary_GetDate(o)); + DurationInSeconds = CLIB.ppf_SportDailySummary_GetDurationInSeconds(o); + PlanDurationInMinutes = CLIB.ppf_SportDailySummary_GetPlanDurationInMinutes(o); + Calorie = CLIB.ppf_SportDailySummary_GetCalorie(o); + PlanCalorie = CLIB.ppf_SportDailySummary_GetPlanCalorie(o); + } + } + + /// + /// Each element is \ref SportDailySummary + /// + public class SportDailySummaryList : MessageArray + { + public SportDailySummaryList(IntPtr a) + { + var count = (int) CLIB.ppf_SportDailySummaryArray_GetSize(a); + this.Capacity = count; + for (int i = 0; i < count; i++) + { + this.Add(new SportDailySummary(CLIB.ppf_SportDailySummaryArray_GetElement(a, (UIntPtr) i))); + } + } + } + + /// + /// User's sport summary of today. + /// + public class SportSummary + { + /// The sport duration (in seconds). + public readonly int DurationInSeconds; + + /// The calorie burnt (in kilo calorie). + public readonly double Calorie; + + /// The time when the user started playing sport. + public readonly DateTime StartTime; + + /// The time when the user stopped playing sport. + public readonly DateTime EndTime; + + public SportSummary(IntPtr o) + { + DurationInSeconds = (int) CLIB.ppf_SportSummary_GetDurationInSeconds(o); + Calorie = CLIB.ppf_SportSummary_GetCalorie(o); + StartTime = TimeUtil.MilliSecondsToDateTime(CLIB.ppf_SportSummary_GetStartTime(o)); + EndTime = TimeUtil.MilliSecondsToDateTime(CLIB.ppf_SportSummary_GetEndTime(o)); + } + } + + /// + /// The user's sport info. + /// User can set sport goal in the Sport Center app. + /// + public class SportUserInfo + { + public readonly Gender Gender; + public readonly DateTime Birthday; + + /// The height of the user (in cm). + public readonly int Stature; + + /// The weight of the user (in kg). + public readonly int Weight; + + /// The sport level that indicates the intensity of the sport. + public readonly int SportLevel; + + /// The planned daily sport duration (in minutes). + public readonly int DailyDurationInMinutes; + + /// The planned weekly sport days. + public readonly int DaysPerWeek; + + /// The sport purpose, such as `keep fit` and `lose weight`. + public readonly SportTarget SportTarget; + + public SportUserInfo(IntPtr o) + { + Gender = CLIB.ppf_SportUserInfo_GetGender(o); + Birthday = TimeUtil.MilliSecondsToDateTime(CLIB.ppf_SportUserInfo_GetBirthday(o)); + Stature = CLIB.ppf_SportUserInfo_GetStature(o); + Weight = CLIB.ppf_SportUserInfo_GetWeight(o); + SportLevel = CLIB.ppf_SportUserInfo_GetSportLevel(o); + DailyDurationInMinutes = CLIB.ppf_SportUserInfo_GetDailyDurationInMinutes(o); + DaysPerWeek = CLIB.ppf_SportUserInfo_GetDaysPerWeek(o); + SportTarget = CLIB.ppf_SportUserInfo_GetSportTarget(o); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Sport.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Sport.cs.meta new file mode 100644 index 0000000..b6fc0c4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/Sport.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fb62290b60b54d6297318c9a437b7269 +timeCreated: 1657617406 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/User.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/User.cs new file mode 100644 index 0000000..a0fbdf0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/User.cs @@ -0,0 +1,286 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Generic; + +namespace Pico.Platform.Models +{ + /// + /// The User info structure. + /// Basic fields, such as `DisplayName` and `ImageUrl`, are always valid. + /// Some fields, such as presence-related fields, are valid only when you call presence-related APIs. + /// See also: \ref UserService.GetLoggedInUser + /// + public class User + { + /// User's display name. + public readonly string DisplayName; + + ///The URL of user's profile photo. The image size is 300x300. + public readonly string ImageUrl; + + /// The URL of the user's small profile photo. The image size is 128x128. + public readonly string SmallImageUrl; + + /// User's openID. The same user has different openIDs in different apps. + public readonly string ID; + + /// User's presence status which indicates whether the user is online. + public readonly UserPresenceStatus PresenceStatus; + + /// User's gender. + public readonly Gender Gender; + + /// User's presence information. + public readonly string Presence; + + /// The deeplink message. + public readonly string PresenceDeeplinkMessage; + + /// The destination's API name. + public readonly string PresenceDestinationApiName; + + /// The lobby session ID which identifies a group or team. + public readonly string PresenceLobbySessionId; + + /// The match session ID which identifies a competition. + public readonly string PresenceMatchSessionId; + + /// User's extra presence information. + public readonly string PresenceExtra; + + /// Whether the user can be joined by others. + public readonly bool PresenceIsJoinable; + + /// The user's invite token. + public readonly string InviteToken; + + /// The user's registration country/region. Returns a country/region code. + public readonly string StoreRegion; + + public User(IntPtr obj) + { + DisplayName = CLIB.ppf_User_GetDisplayName(obj); + ImageUrl = CLIB.ppf_User_GetImageUrl(obj); + ID = CLIB.ppf_User_GetID(obj); + InviteToken = CLIB.ppf_User_GetInviteToken(obj); + PresenceStatus = CLIB.ppf_User_GetPresenceStatus(obj); + Gender = CLIB.ppf_User_GetGender(obj); + Presence = CLIB.ppf_User_GetPresence(obj); + PresenceDeeplinkMessage = CLIB.ppf_User_GetPresenceDeeplinkMessage(obj); + PresenceDestinationApiName = CLIB.ppf_User_GetPresenceDestinationApiName(obj); + PresenceLobbySessionId = CLIB.ppf_User_GetPresenceLobbySessionId(obj); + PresenceMatchSessionId = CLIB.ppf_User_GetPresenceMatchSessionId(obj); + PresenceExtra = CLIB.ppf_User_GetPresenceExtra(obj); + PresenceIsJoinable = CLIB.ppf_User_GetPresenceIsJoinable(obj); + SmallImageUrl = CLIB.ppf_User_GetSmallImageUrl(obj); + InviteToken = CLIB.ppf_User_GetInviteToken(obj); + StoreRegion = CLIB.ppf_User_GetStoreRegion(obj); + } + } + + /// + /// Each element is \ref User. + /// + public class UserList : MessageArray + { + public UserList(IntPtr a) + { + var count = (int) CLIB.ppf_UserArray_GetSize(a); + this.Capacity = count; + for (int i = 0; i < count; i++) + { + this.Add(new User(CLIB.ppf_UserArray_GetElement(a, (UIntPtr) i))); + } + + NextPageParam = CLIB.ppf_UserArray_GetNextPageParam(a); + } + } + + /// + /// The user's organization ID. + /// + public class OrgScopedID + { + /// + /// The organization ID. + /// + public readonly string ID; + + public OrgScopedID(IntPtr o) + { + ID = CLIB.ppf_OrgScopedID_GetID(o); + } + } + + /// + /// Indicates whether the friend request is canceled or successfully sent. + /// + public class LaunchFriendResult + { + /// Whether the request is canceled by the user. + public readonly bool DidCancel; + + /// Whether the request is successfully sent. + public readonly bool DidSendRequest; + + public LaunchFriendResult(IntPtr obj) + { + DidCancel = CLIB.ppf_LaunchFriendRequestFlowResult_GetDidCancel(obj); + DidSendRequest = CLIB.ppf_LaunchFriendRequestFlowResult_GetDidSendRequest(obj); + } + } + + + /// + /// The info returned after calling \ref UserService.GetFriendsAndRooms. + /// + public class UserRoom + { + public readonly User User; + public readonly Room Room; + + public UserRoom(IntPtr o) + { + User = new User(CLIB.ppf_UserAndRoom_GetUser(o)); + var ptr = CLIB.ppf_UserAndRoom_GetRoom(o); + if (ptr != IntPtr.Zero) + { + Room = new Room(ptr); + } + } + } + + /// + /// Each element is \ref UserRoom. + /// + public class UserRoomList : MessageArray + { + public UserRoomList(IntPtr a) + { + var count = (int) CLIB.ppf_UserAndRoomArray_GetSize(a); + this.Capacity = count; + for (int i = 0; i < count; i++) + { + this.Add(new UserRoom(CLIB.ppf_UserAndRoomArray_GetElement(a, (UIntPtr) i))); + } + + NextPageParam = CLIB.ppf_UserAndRoomArray_GetNextPageParam(a); + } + } + + + /// + /// User permissions list. + /// + public static class Permissions + { + /// + /// The permission to get the user's registration information, including the user's nickname, gender, profile photo, and more. + /// + public const string UserInfo = "user_info"; + /// + /// The permission to get users' friend relations. + /// + public const string FriendRelation = "friend_relation"; + /// + /// The permission to get the user's information, including the user's gender, birthday, stature, weight, and more, on the PICO Fitness app. + /// + public const string SportsUserInfo = "sports_userinfo"; + /// + /// The permission to get users' exercise data from the PICO Fitness app. + /// + public const string SportsSummaryData = "sports_summarydata"; + /// + /// The permission to capture or record the screen, which is required when using the highlight service. + /// + public const string RecordHighlight = "record_highlight"; + } + + + /// + /// The result returned after calling \ref UserService.RequestUserPermissions or \ref UserService.GetAuthorizedPermissions. + /// + public class PermissionResult + { + /// The authorized permissions. + public readonly string[] AuthorizedPermissions; + + /// The access token. It has a value only after you call \ref UserService.RequestUserPermissions. + public readonly string AccessToken; + + /// The current user's ID. + public readonly string UserID; + + public PermissionResult(IntPtr o) + { + { + int sz = (int) CLIB.ppf_PermissionResult_GetAuthorizedPermissionsSize(o); + AuthorizedPermissions = new string[sz]; + for (int i = 0; i < sz; i++) + { + AuthorizedPermissions[i] = CLIB.ppf_PermissionResult_GetAuthorizedPermissions(o, (UIntPtr) i); + } + } + + AccessToken = CLIB.ppf_PermissionResult_GetAccessToken(o); + UserID = CLIB.ppf_PermissionResult_GetUserID(o); + } + } + + + /// + /// The result returned after calling \ref UserService.GetUserRelations. + /// + /// This class derives from Dictionary. The key is userId and value is + /// \ref UserRelationType. + /// + public class UserRelationResult : Dictionary + { + public UserRelationResult(IntPtr o) + { + { + int sz = (int) CLIB.ppf_UserRelationResult_GetRelationsSize(o); + for (int i = 0; i < sz; i++) + { + string userId = CLIB.ppf_UserRelationResult_GetRelationsKey(o, i); + UserRelationType relation = CLIB.ppf_UserRelationResult_GetRelationsValue(o, i); + Add(userId, relation); + } + } + } + } + + + /// + /// The result returned after calling \ref UserService.EntitlementCheck + /// + public class EntitlementCheckResult + { + /// Whether the user is entitled to use the current app. + public readonly bool HasEntitlement; + + /// The status code for entitlement check. + public readonly int StatusCode; + + /// The status message for entitlement check. You can show this message to user if the user does not pass the entitlement check. + public readonly string StatusMessage; + + public EntitlementCheckResult(IntPtr o) + { + HasEntitlement = CLIB.ppf_EntitlementCheckResult_GetHasEntitlement(o); + StatusCode = CLIB.ppf_EntitlementCheckResult_GetStatusCode(o); + StatusMessage = CLIB.ppf_EntitlementCheckResult_GetStatusMessage(o); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/User.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/User.cs.meta new file mode 100644 index 0000000..3477c1c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Models/User.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4aae686bf05693c4db87bb0d2875cb40 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service.meta new file mode 100644 index 0000000..80d5a6d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f129e135c079ff744a1c426c0798e843 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Achievements.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Achievements.cs new file mode 100644 index 0000000..f36af01 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Achievements.cs @@ -0,0 +1,339 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Runtime.InteropServices; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + * + * The Achievements service can help build a "positive feedback mechanism" + * in your games. You can create prizes such as trophies and badges and + * distribute them to players when they hit a goal, like completing the + * beginner tutorial or reaching level x. Advanced achievements such as + * completing a hidden level/task should be closely integrated with game + * content design and, meanwhile, collaborate with prizes like diamonds + * or props to make your games more challenging and further enhance players' + * engagement. + */ + public static class AchievementsService + { + /// Adds a count to a specified count achievement. The count will be added to the current count. For example, + /// if the current count is 1 and the count you would like to add is 7, the final count will be 8 if the request succeeds. + /// @note Available to count achievements only. + /// + /// The API name of the achievement. + /// The count you want to add. The largest count supported by this function is the maximum + /// value of a signed 64-bit integer. If the count is larger than that, it is + /// clamped to that maximum value before being passed to the servers. + /// + /// Custom extension fields that can be used to record key information when unlocking achievements. + /// The request ID of this async function. + /// | Error Code| Error Message | + /// |---|---| + /// |10729|invalid api name| + /// |10733|invalid count| + /// |10725|extra data too long| + /// |10720|achievement is not exist| + /// |10723|load achievement data failed| + /// |10726|achievement is unreleased| + /// |10727|achievement is archived| + /// |10722|no write permission| + /// |10736|invalid parameter| + /// |10735|invalid extra data| + /// |10734|operation is not allowed on the type| + /// |10728|achievement is unlocked| + /// |10724|save achievement data failed| + /// + /// A message of type `MessageType.Achievements_AddCount` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `AchievementUpdate`. + /// Extract the payload from the message handle with `Message.Data`. + /// + /// `AchievementUpdate` contains the following: + /// * `JustUnlocked`: Whether the achievement has been successfully unlocked. + /// * `Name`: The API name of the achievement. + /// + public static Task AddCount(string name, long count, byte[] extraData) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + GCHandle hobj = GCHandle.Alloc(extraData, GCHandleType.Pinned); + IntPtr pobj = hobj.AddrOfPinnedObject(); + var result = new Task(CLIB.ppf_Achievements_AddCount(name, count, pobj, (uint) (extraData != null ? extraData.Length : 0))); + if (hobj.IsAllocated) + hobj.Free(); + return result; + } + + /// Unlocks the bit(s) of a specified bitfield achievement. The status of the bit(s) is then unchangeable. + /// @note Available to bitfield achievements only. + /// + /// The API name of the achievement to unlock bit(s) for. + /// A string containing either the `0` or `1` characters, for example, `100011`. Every `1` will unlock a bit in the corresponding position of a bitfield. + /// Custom extension fields that can be used to record key information when unlocking achievements. + /// The request ID of this async function. + /// | Error Code| Error Message | + /// |---|---| + /// |10729|invalid api name| + /// |10731|invalid field| + /// |10725|extra data too long| + /// |10720|achievement is not exist| + /// |10723|load achievement data failed| + /// |10726|achievement is unreleased| + /// |10727|achievement is archived| + /// |10722|no write permission| + /// |10736|invalid parameter| + /// |10735|invalid extra data| + /// |10734|operation is not allowed on the type| + /// |10728|achievement is unlocked| + /// |10724|save achievement data failed| + /// + /// A message of type `MessageType.Achievements_AddFields` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `AchievementUpdate`. + /// Extract the payload from the message handle with `Message.Data`. + /// + /// `AchievementUpdate` contains the following: + /// * `JustUnlocked`: Whether the achievement has been successfully unlocked. + /// * `Name`: The API name of the achievement. + /// + public static Task AddFields(string name, string fields, byte[] extraData) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + GCHandle hobj = GCHandle.Alloc(extraData, GCHandleType.Pinned); + IntPtr pobj = hobj.AddrOfPinnedObject(); + var result = new Task(CLIB.ppf_Achievements_AddFields(name, fields, pobj, (uint) (extraData != null ? extraData.Length : 0))); + if (hobj.IsAllocated) + hobj.Free(); + return result; + } + + /// Gets the information about all achievements, including API names, descriptions, types, + /// the targets which must be reached to unlock those achievements, and more. + /// Defines which page of achievements to return. The first page index is `0`. + /// The size of the page. + /// The request ID of this async function. + /// | Error Code| Error Message | + /// |---|---| + /// |10721|invalid api name| + /// |10736|invalid parameter| + /// |10720|achievement is not exist| + /// |10723|load achievement data failed| + /// + /// A message of type `MessageType.Achievements_GetAllDefinitions` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `AchievementDefinitionList`. + /// Extract the payload from the message handle with `Message.Data`. + /// + /// `AchievementDefinitionList` contains the following: + /// * `Type`: The type of the achievement. + /// * `Name`: The API name of the achievement. + /// * `BitfieldLength`: The total bits in the bitfield. For bitfield achievements only. + /// * `Target`: The number of events to complete for unlocking the achievement. For count or bitfield achievements only. + /// * `Description`: The description of the achievement. + /// * `Title`: The display name of the achievement that users see. + /// * `IsArchived`: Whether the achievement is archived. Archiving will not delete the achievement or users' progress on it. + /// * `IsSecret`: Whether the achievement is hidden until it is unlocked by users. + /// * `ID`: The data ID. + /// * `UnlockedDescription`: The message displayed to users when they unlock the achievement. + /// * `WritePolicy`: Who are able to write achievement progress. + /// * `LockedImageURL`: The local path to the image displayed to users before they unlock the achievement. + /// * `UnlockedImageURL`: The local path to the image displayed to users after they unlock the achievement. + /// + public static Task GetAllDefinitions(int pageIdx, int pageSize) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Achievements_GetAllDefinitions(pageIdx, pageSize)); + } + + /// Gets the user's progress on all achievements, including API names, + /// whether or not the achievements are unlocked, the time at which they were unlocked, + /// achievement types and, depending on the type, the progress made towards unlocking them, and more. + /// Defines which page of achievements to return. The first page index is `0`. + /// The size of the page. + /// The request ID of this async function. + /// | Error Code| Error Message | + /// |---|---| + /// |10721|invalid api name| + /// |10723|load achievement data failed| + /// + /// A message of type `MessageType.Achievements_GetAllProgress` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `AchievementProgressList`. + /// Extract the payload from the message handle with `Message.Data`. + /// + /// `AchievementProgressList` contains the following: + /// * `ID`: The data ID. + /// * `Bitfield`: A bitfield displaying the bits unlocked for a bitfield achievement, for example, `1110001`. + /// * `Count`: The number of events completed for unlocking a count achievement. + /// * `IsUnlocked`: Whether the achievement is unlocked. + /// * `Name`: The API name of the achievement. + /// * `UnlockTime`: The time at which the achievement was unlocked. + /// * `ExtraData`: The key information recorded when unlocking the achievement. + /// + public static Task GetAllProgress(int pageIdx, int pageSize) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Achievements_GetAllProgress(pageIdx, pageSize)); + } + + /// Gets the information about specified achievements, including API names, descriptions, types, + /// the targets which must be reached to unlock those achievements, and more. + /// The API names of the achievements. + /// The request ID of this async function. + /// | Error Code| Error Message | + /// |---|---| + /// |10729|invalid api name| + /// |10730|too many api names| + /// |10721|invalid request| + /// |10736|invalid parameter| + /// |10720|achievement is not exist| + /// |10723|load achievement data failed| + /// + /// A message of type `MessageType.Achievements_GetDefinitionsByName` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `AchievementDefinitionList`. + /// Extract the payload from the message handle with `Message.Data`. + /// + /// `AchievementDefinitionList` contains the following: + /// * `Type`: The type of the achievement. + /// * `Name`: The API name of the achievement. + /// * `BitfieldLength`: The total bits in the bitfield. For bitfield achievements only. + /// * `Target`: The number of events to complete for unlocking the achievement. For count or bitfield achievements only. + /// * `Description`: The description of the achievement. + /// * `Title`: The display name of the achievement that users see. + /// * `IsArchived`: Whether the achievement is archived. Archiving will not delete the achievement or users' progress on it. + /// * `IsSecret`: Whether the achievement is hidden until it is unlocked by users. + /// * `ID`: The data ID. + /// * `UnlockedDescription`: The message displayed to users when they unlock the achievement. + /// * `WritePolicy`: Who are able to write achievement progress. + /// * `LockedImageURL`: The local path to the image displayed to users before they unlock the achievement. + /// * `UnlockedImageURL`: The local path to the image displayed to users after they unlock the achievement. + /// + public static Task GetDefinitionsByName(string[] names) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Achievements_GetDefinitionsByName(names)); + } + + /// Gets the user's progress on specified achievements, including API names, + /// whether or not the achievements are unlocked, the time at which they were unlocked, + /// achievement types and, depending on the type, the progress made towards unlocking them, and more. + /// The API names of the achievements. + /// The request ID of this async function. + /// | Error Code| Error Message | + /// |---|---| + /// |10729|invalid api name| + /// |10730|too many api names| + /// |10721|invalid request| + /// |10723|load achievement data failed| + /// + /// A message of type `MessageType.Achievements_GetProgressByName` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `AchievementProgressList`. + /// Extract the payload from the message handle with `Message.Data`. + /// + /// `AchievementProgressList` contains the following: + /// * `ID`: The data ID. + /// * `Bitfield`: A bitfield displaying the bits unlocked for a bitfield achievement, for example, `1110001`. + /// * `Count`: The number of events completed for unlocking a count achievement. + /// * `IsUnlocked`: Whether the achievement is unlocked. + /// * `Name`: The API name of the achievement. + /// * `UnlockTime`: The time at which the achievement was unlocked. + /// * `ExtraData`: Records the key information when unlocking the achievement. + /// + public static Task GetProgressByName(string[] names) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Achievements_GetProgressByName(names)); + } + + /// Unlocks a specified achievement of any type even if the target for + /// unlocking this achievement is not reached. + /// + /// The API name of the achievement to unlock. + /// Custom extension fields that can be used to record key information when unlocking achievements. + /// The request ID of this async function. + /// | Error Code| Error Message | + /// |---|---| + /// |10729|invalid api name| + /// |10725|extra data too long| + /// |10720|achievement is not exist| + /// |10723|load achievement data failed| + /// |10726|achievement is unreleased| + /// |10727|achievement is archived| + /// |10722|no write permission| + /// |10736|invalid parameter| + /// |10735|invalid extra data| + /// |10728|achievement is unlocked| + /// |10724|save achievement data failed| + /// + /// A message of type `MessageType.Achievements_Unlock` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `AchievementUpdate`. + /// Extract the payload from the message handle with `Message.Data`. + /// + /// `AchievementUpdate` contains the following: + /// * `JustUnlocked`: Whether the achievement has been successfully unlocked. + /// * `Name`: The API name of the achievement. + /// + public static Task Unlock(string name, byte[] extraData) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + GCHandle hobj = GCHandle.Alloc(extraData, GCHandleType.Pinned); + IntPtr pobj = hobj.AddrOfPinnedObject(); + var result = new Task(CLIB.ppf_Achievements_Unlock(name, pobj, (uint) (extraData != null ? extraData.Length : 0))); + if (hobj.IsAllocated) + hobj.Free(); + return result; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Achievements.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Achievements.cs.meta new file mode 100644 index 0000000..b75e14a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Achievements.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cc57c56aed09492bb5ddfa820fcd982c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Application.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Application.cs new file mode 100644 index 0000000..308e86e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Application.cs @@ -0,0 +1,209 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using Pico.Platform.Models; +using UnityEngine; +using SystemInfo = Pico.Platform.Models.SystemInfo; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + * + * ApplicationService provides functions like launch other application,jump to store, get launch details. + */ + public static class ApplicationService + { + /// + /// Launches another app by app package name. + /// @note If the user does not have that app installed, the user will be directed to the app's download page on the PICO Store. + /// + /// The package name of the to-be-launched app. + /// The options for launching the app. Pass `null` or leave this parameter empty. + /// If something goes wrong, a description message will be returned. + public static Task LaunchApp(string packageName, ApplicationOptions options = null) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Application_LaunchOtherApp(packageName, (IntPtr) options)); + } + + /// + /// Launches another app by app ID. + /// @note If the user does not have that app installed, the user will be directed to the app's download page on the PICO Store. + /// + /// The ID of the to-be-launched app. + /// The options for launching the app. Pass `null` or leave this parameter empty. + /// If something goes wrong, a description message will be returned. + public static Task LaunchAppByAppId(string appId, ApplicationOptions options = null) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Application_LaunchOtherAppByAppID(appId, (IntPtr) options)); + } + + /// + /// Launches the PICO Store app and go to the current app's details page. + /// + /// You can direct user to the PICO Store to upgrade the installed app by this + /// method. To judge whether there is a new version in the PICO Store, you can call + /// \ref GetVersion. + /// + /// @note + /// * If the current app has never published in the PICO Store, the response error code is non-zero. + /// * The current app will quit once the PICO Store app is launched. + /// + /// + /// A string that describes the launch info. + public static Task LaunchStore() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Application_LaunchStore()); + } + + /// + /// Gets the app's current version info and the latest version info. + /// + /// You can compare the current version info and the latest version info, and + /// then decide whether to call \ref LaunchStore to direct users to the current app's details page to upgrade the app. + /// + /// The response will contain the latest version info in the PICO Store + /// and the app's current version info. + /// + public static Task GetVersion() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Application_GetVersion()); + } + + /// + /// Gets the details about an app launch event. + /// + /// App launch details, including `LaunchResult` and `LaunchType`: + /// * `LaunchResult`: + /// * `0`: Unknown + /// * `1`: Success + /// * `2`: FailedRoomFull + /// * `3`: FailedGameAlreadyStarted + /// * `4`: FailedRoomNotFound + /// * `5`: FailedUserDeclined + /// * `6`: FailedOtherReason + /// * `LaunchType`: + /// * `0`: Unknown + /// * `1`: Normal + /// * `2`: Invite + /// * `3`: Coordinated + /// * `4`: Deeplink + /// + public static LaunchDetails GetLaunchDetails() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new LaunchDetails(CLIB.ppf_ApplicationLifecycle_GetLaunchDetails()); + } + + /// + /// Gets the device's system information synchronously. + /// + /// A structure contains the device's system information, including the device's system version, language code, + /// country/region code, product name, and more. + public static SystemInfo GetSystemInfo() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new SystemInfo(CLIB.ppf_Application_GetSystemInfo()); + } + + /// + /// Logs whether a user has been successfully directed to the desired destination via a deep link. + /// + /// The tracking ID of the app launch event. + /// The app launch result: + /// * `0`: Unknown + /// * `1`: Success + /// * `2`: FailedRoomFull + /// * `3`: FailedGameAlreadyStarted + /// * `4`: FailedRoomNotFound + /// * `5`: FailedUserDeclined + /// * `6`: FailedOtherReason + /// + public static void LogDeeplinkResult(string trackId, LaunchResult result) + { + CLIB.ppf_ApplicationLifecycle_LogDeeplinkResult(trackId, result); + } + + /// + /// When the launch intent is changed, you will receive this notification. + /// Then you can call \ref GetLaunchDetails to retrieve the launch details. + /// + /// The callback function. + public static void SetLaunchIntentChangedCallback(Message.Handler callback) + { + Looper.RegisterNotifyHandler(MessageType.Notification_ApplicationLifecycle_LaunchIntentChanged, callback); + } + } + + + public class ApplicationOptions + { + public ApplicationOptions() + { + Handle = CLIB.ppf_ApplicationOptions_Create(); + } + + + public void SetDeeplinkMessage(string value) + { + CLIB.ppf_ApplicationOptions_SetDeeplinkMessage(Handle, value); + } + + /// For passing to native C + public static explicit operator IntPtr(ApplicationOptions options) + { + return options?.Handle ?? IntPtr.Zero; + } + + ~ApplicationOptions() + { + CLIB.ppf_ApplicationOptions_Destroy(Handle); + } + + readonly IntPtr Handle; + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Application.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Application.cs.meta new file mode 100644 index 0000000..2d8ca85 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Application.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d95f2760768458048bb7e3ea645369ef +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/AssetFile.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/AssetFile.cs new file mode 100644 index 0000000..c57299e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/AssetFile.cs @@ -0,0 +1,251 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + * + * Downloadable content (DLC) represents the contents/files such as expansion packs that users can purchase and download, which can help grow your revenue. Each DLC is associated with an add-on and has an individual SKU as its unique identifier. Users must purchase the app before purchasing the DLCs provided in it. DLCs are downloadable in apps only. + * + * DLC enables you to update your app in a more flexible and lightweight way. Once you want to update the content for a published app, you only need to upload new resources such as levels and cosmetics as DLCs on the PICO Developer Platform, but do not need to upload a new build. Users can thereby purchase, download, and experience the latest resources without having to update or reinstall your app. + */ + public static class AssetFileService + { + /// + /// Deletes an installed asset file by asset file ID. The corresponding + /// asset file will be removed from the device. + /// + /// The ID of the asset file to delete. + /// + /// An object containing the asset file ID, asset file name, and a success flag. + /// + public static Task DeleteById(ulong assetFileId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_AssetFile_DeleteById(assetFileId)); + } + + /// + /// Deletes an installed asset file by asset file name. The corresponding + /// asset file will be removed from the device. + /// + /// The name of the asset file to delete. + /// + /// An object containing the asset file ID, asset file name, and a success flag. + /// + public static Task DeleteByName(string assetFileName) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_AssetFile_DeleteByName(assetFileName)); + } + + /// + /// Downloads an asset file by asset file ID. + /// + /// The ID of the asset file to download. + /// + /// An object containing the asset file ID and asset file name. + /// + /// If the response returns code `0`, the download will start and + /// the system will periodically push information about the download progress. + /// If the user has not purchased the asset file, a non-zero error code will be returned. + /// + public static Task DownloadById(ulong assetFileId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_AssetFile_DownloadById(assetFileId)); + } + + /// + /// Downloads an asset file by asset file name. + /// + /// The name of the asset file to download. + /// + /// An object containing the asset file ID and asset file name. + /// + /// If the response returns code `0`, the download will start and + /// the system will periodically push information about the download progress. + /// If the user has not purchased the asset file, a non-zero error code will be returned. + /// + public static Task DownloadByName(string assetFileName) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_AssetFile_DownloadByName(assetFileName)); + } + + /// + /// Cancels the download of an asset file by asset file ID. + /// + /// + /// The ID of the asset file to cancel download for. + /// + /// An object contains the asset file ID, asset file name, and a success flag. + /// + public static Task DownloadCancelById(ulong assetFileId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_AssetFile_DownloadCancelById(assetFileId)); + } + + /// + /// Cancels the download of an asset file by asset file name. + /// + /// + /// The name of the asset file to cancel download for. + /// + /// An object contains the asset file ID, asset file name, and a success flag. + /// + public static Task DownloadCancelByName(string assetFileName) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_AssetFile_DownloadCancelByName(assetFileName)); + } + + /// + /// Gets the download status of an asset file by asset file ID. + /// + /// The ID of the asset file to get the download status for. + /// + /// An object containing the asset file ID, asset file name, and whether the asset file is downloaded. + /// + public static Task StatusById(ulong assetId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_AssetFile_StatusById(assetId)); + } + + /// + /// Gets the download status of an asset file by asset file name. + /// + /// The name of the asset file to get the download status for. + /// + /// An object containing the asset file ID, asset file name, and whether the asset file is downloaded. + /// + public static Task StatusByName(string assetFileName) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_AssetFile_StatusByName(assetFileName)); + } + + /// + /// Gets the asset file list. + /// + /// + /// An asset file list. Each `AssetDetails` contains fields indicating + /// whether an asset file is purchased or downloaded. + /// + public static Task GetList() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_AssetFile_GetList()); + } + + /// + /// Gets the next page of the asset file list. + /// + /// The current page of the asset file list. + /// The next page of the asset file list. + public static Task GetNextAssetDetailsListPage(AssetDetailsList list) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (!list.HasNextPage) + { + Debug.LogWarning("GetNextAssetDetailsListPage: List has no next page"); + return null; + } + + if (String.IsNullOrEmpty(list.NextPageParam)) + { + Debug.LogWarning("GetNextAssetDetailsListPage: list.NextPageParam is empty"); + return null; + } + + return new Task(CLIB.ppf_AssetFile_GetNextAssetDetailsArrayPage(list.NextPageParam)); + } + + /// + /// This notification is used to track the download progress of asset file. + /// The `Transferred` field indicates the number of bytes downloaded. + /// The `CompleteStatus` field indicates the download status. + /// + /// The callback function. + public static void SetOnDownloadUpdateCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_AssetFile_DownloadUpdate, handler); + } + + /// + /// If the downloaded asset file is different from the original one, + /// the asset file will be automatically removed, and the app will receive a notification. + /// + /// The callback function. + public static void SetOnDeleteForSafetyCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_AssetFile_DeleteForSafety, handler); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/AssetFile.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/AssetFile.cs.meta new file mode 100644 index 0000000..485f26e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/AssetFile.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1b713a81e59d43a3a50d0dc59b3fda40 +timeCreated: 1661772509 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Challenges.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Challenges.cs new file mode 100644 index 0000000..85c3077 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Challenges.cs @@ -0,0 +1,232 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + * + * Challenges create fun-to-join competitions among users, which + * can therefore provide users with more opportunities to interact + * with others. Challenges are asynchronous events, so users do not + * have to be online and do challenges at the same time. + + * Both you and your app's users are able to create challenges, + * configure challenge settings (including name, visibility, start + * time, and end time), and invite friends to join challenges to + * have fun together. Users can also join the challenges created + * by PICO. + */ + public static class ChallengesService + { + /// Invites specified user(s). + /// The ID of the challenge to which user(s) are invited. + /// The ID(s) of the user(s) to invite. + /// Returns the `Challenge` struct that contains the information about the challenge, + /// such as challenge ID, the leaderboard the challenge belongs to, the challenge's end date and start date, etc. + public static Task Invite(UInt64 challengeID, string[] userID) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Challenges_Invites(challengeID, userID)); + } + + + /// Gets the information for a specified challenge. + /// The ID of the challenge to get information for. + /// Returns the `Challenge` struct that contains the information about the challenge, + /// such as challenge ID, the leaderboard the challenge belongs to, the challenge's end date and start date, etc. + public static Task Get(UInt64 challengeID) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Challenges_Get(challengeID)); + } + + /// Gets a list of challenge entries. + /// The ID of the challenge whose entries are to be returned. + /// Restricts the scope of entries to return: + /// * `0`: None (returns all entries of the specified leaderboard) + /// * `1`: Friends (returns the entries of the friends of the current logged-in user) + /// * `2`: Unknown (returns no entry) + /// * `3`: UserIds (returns the entries of specified users) + /// + /// Defines where to start returning challenge entries, the enumerations are: + /// * `0`: Top (return entries from top 1) + /// * `1`: CenteredOnViewer (place the current logged-in user's entry in the middle of the list on the first page. + /// For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, the ranks displayed + /// on the first page will be top 3, 4, 5, 6, and 7. Top 1 and 2 will not be displayed, and top 8, 9, and 10 will be + /// displayed on the second page) + /// * `2`: CenteredOnViewerOrTop (place the current logged-in user's entry on the top of the list on the first page. + /// For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, + /// the ranks displayed on the first page will be top 5, 6, 7, 8, and 9. Top 1, 2, 3, and 4 will not be displayed, + /// and top 10 will be displayed on the second page) + /// * `3`: Unknown (returns an empty list) + /// + /// Defines which page of entries to return. The first page index is `0`. + /// For example, if you want to get the first page of entries, pass `0`; if you want to get the second page of entries, pass `1`. + /// + /// Defines the number of entries to return on the page. + /// Returns a list of matching entries. + public static Task GetEntries(UInt64 challengeID, + LeaderboardFilterType filter, LeaderboardStartAt startAt, int pageIdx, int pageSize) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task( + CLIB.ppf_Challenges_GetEntries(challengeID, filter, startAt, pageIdx, pageSize)); + } + + /// Gets a list of challenge entries after a specified rank. + /// The ID of the challenge whose entries are to be returned. + /// Defines the rank after which the entries are to be returned. + /// Defines which page of entries to return. The first page index is `0`. + /// For example, if you want to get the first page of entries, pass `0`; if you want to get the second page of entries, pass `1`. + /// + /// Defines the number of entries to return on each page. + /// Returns a list of matching entries. + public static Task GetEntriesAfterRank(UInt64 challengeID, + ulong afterRank, int pageIdx, int pageSize) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task( + CLIB.ppf_Challenges_GetEntriesAfterRank(challengeID, afterRank, pageIdx, pageSize)); + } + + /// Gets a list of challenge entries for specified users. + /// The ID of the challenge whose entries are to be returned. + /// Defines where to start returning challenge entries, the enumerations are: + /// * `0`: Top (return entries from top 1) + /// * `1`: CenteredOnViewer (place the current logged-in user's entry in the middle of the list on the first page. + /// For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, the ranks displayed + /// on the first page will be top 3, 4, 5, 6, and 7. Top 1 and 2 will not be displayed, and top 8, 9, and 10 will be + /// displayed on the second page) + /// * `2`: CenteredOnViewerOrTop (place the current logged-in user's entry on the top of the list on the first page. + /// For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, + /// the ranks displayed on the first page will be top 5, 6, 7, 8, and 9. Top 1, 2, 3, and 4 will not be displayed, + /// and top 10 will be displayed on the second page) + /// * `3`: Unknown (returns an empty list) + /// + /// Defines a list of user IDs to get entries for. + /// Defines which page of entries to return. The first page index is `0`. + /// For example, if you want to get the first page of entries, pass `0`; if you want to get the second page of entries, pass `1`. + /// + /// Defines the number of entries to return on each page. + /// Returns a list of matching entries. + public static Task GetEntriesByIds(UInt64 challengeID, + LeaderboardStartAt startAt, string[] userIDs, int pageIdx, int pageSize) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Challenges_GetEntriesByIds(challengeID, startAt, userIDs, pageIdx, pageSize)); + } + + /// Gets a list of challenges. + /// Restricts the scope of challenges to return. You can define the start date and + /// end date of challenges, the leaderboard the challenges belong to, etc. + /// + /// Defines which page of challenges to return. The first page index is `0`. + /// For example, if you want to get the first page of entries, pass `0`; if you want to get the second page of entries, pass `1`. + /// + /// Defines the number of challenges to return on each page. + /// Returns a list of matching challenges. + public static Task GetList(ChallengeOptions challengeOptions, int pageIdx, int pageSize) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Challenges_GetList((IntPtr) challengeOptions, pageIdx, pageSize)); + } + + /// Lets the current user join a challenge. + /// The ID of the challenge to join. + /// Returns the `Challenge` struct that contains the information about the challenge, + /// such as challenge ID, the leaderboard the challenge belongs to, the challenge's end date and start date, etc. + public static Task Join(UInt64 challengeID) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Challenges_Join(challengeID)); + } + + /// Lets the current user leave a challenge. + /// The ID of the challenge to leave. + /// Returns the `Challenge` struct that contains the information about the challenge, + /// such as challenge ID, the leaderboard the challenge belongs to, the challenge's end date and start date, etc. + public static Task Leave(UInt64 challengeID) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Challenges_Leave(challengeID)); + } + + /// Launches the invitation flow to let the current user invite friends to a specified challenge. + /// This launches the system default invite UI where all of the user's friends are displayed. + /// This is intended to be a shortcut for developers not wanting to build their own invite-friends UI. + /// The ID of the challenge. + public static Task LaunchInvitableUserFlow(UInt64 challengeID) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Challenges_LaunchInvitableUserFlow(challengeID)); + } + + /// Sets the callback to get notified when the user has accepted an invitation. + /// @note You can get the ChallengeID by 'Message.Data'. + /// + /// The callback function will be called when receiving the `Notification_Challenge_LaunchByInvite` message. + public static void SetChallengeInviteAcceptedOrLaunchAppNotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Challenge_LaunchByInvite, handler); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Challenges.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Challenges.cs.meta new file mode 100644 index 0000000..82f11a7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Challenges.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 31e084e3699a42aab6084064d4789f2d +timeCreated: 1664349933 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/CloudStorage.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/CloudStorage.cs new file mode 100644 index 0000000..7e18ec0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/CloudStorage.cs @@ -0,0 +1,26 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +namespace Pico.Platform +{ + public class CloudStorageService + { + /// + /// Starts cloud data backup whenever needed. + /// + /// Returns nothing for a success, otherwise returns error information. + public static Task StartNewBackup() + { + return new Task(CLIB.ppf_CloudStorage_StartNewBackup()); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/CloudStorage.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/CloudStorage.cs.meta new file mode 100644 index 0000000..ad74883 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/CloudStorage.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ca8e54478ee44174dac9eb355d755c7f +timeCreated: 1679484591 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Compliance.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Compliance.cs new file mode 100644 index 0000000..d442728 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Compliance.cs @@ -0,0 +1,47 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + * Application or games need comply with the laws where they distributes. So developers + * should take compliance into consideration. This module provides some useful methods + * to implement compliance. + */ + public static class ComplianceService + { + /// + /// Detects sensitive words in texts. + /// + /// Indicates where the text appears. For example, the text can appear in a username, room name, in-room chat, etc. + /// The text to check, which can be a username, room-chat message, etc. + /// + /// Whether the text contains sensitive words. If it contains, the app should not allow + /// the user to publish the text and can take the strategy proposed by the + /// result. + /// + public static Task DetectSensitive(DetectSensitiveScene scene, string content) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Compliance_DetectSensitive(scene, content)); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Compliance.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Compliance.cs.meta new file mode 100644 index 0000000..0cae019 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Compliance.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 18f2fcae6c334637ae67cdb01c26dab2 +timeCreated: 1679567015 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Core.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Core.cs new file mode 100644 index 0000000..53c3688 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Core.cs @@ -0,0 +1,256 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.IO; +using System.Runtime.CompilerServices; +using Pico.Platform.Framework; +using Unity.XR.PXR; +using UnityEngine; + +[assembly: InternalsVisibleTo("Assembly-CSharp-Editor")] + +namespace Pico.Platform +{ + /** + * \defgroup Platform Services + */ + /** + * \ingroup Platform + * + */ + public static class CoreService + { + public static bool Initialized = false; + public static string NotInitializedError = "Platform SDK has not been initialized!"; + + /// Gets whether the Platform SDK has been initialized. + /// + /// * `true`: initialized + /// * `false`: not initialized + /// + public static bool IsInitialized() + { + return Initialized; + } + + /// + /// Gets the app ID for the current app. + /// + /// The app ID. + /// If the app ID cannot be found, this exception will be thrown. + public static string GetAppID(string appId = null) + { + string configAppID = PXR_PlatformSetting.Instance.appID.Trim(); + if (!string.IsNullOrWhiteSpace(appId) && !string.IsNullOrWhiteSpace(configAppID) && appId != configAppID) + { + throw new UnityException("The parameter appId is inconsistent with the configured appId"); + } + + if (!string.IsNullOrWhiteSpace(appId)) + { + return appId; + } + + if (!string.IsNullOrWhiteSpace(configAppID)) + { + return configAppID; + } + + throw new UnityException("Cannot find appId"); + } + + /// + /// Initializes the Platform SDK asynchronously. + /// + /// The app ID for the Platform SDK. If not provided, Unity editor configuration will be applied. + /// The initialization result. + /// If the input app ID is null or empty or if the initialization fails, this exception will be thrown. + /// If the current platform is not supported, this exception will be thrown. + public static Task AsyncInitialize(string appId = null) + { + if (Initialized) + { + return new Task(0); + } + + appId = GetAppID(appId); + if (String.IsNullOrWhiteSpace(appId)) + { + throw new UnityException("AppID cannot be null or empty"); + } + + Task task; + if (Application.platform == RuntimePlatform.Android) + { + AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic("currentActivity"); + var requestId = CLIB.ppf_InitializeAndroidAsynchronous(appId, activity.GetRawObject(), IntPtr.Zero); + if (requestId == 0) + { + throw new Exception("PICO PlatformSDK failed to initialize"); + } + + task = new Task(requestId); + } + else if ((Application.platform == RuntimePlatform.WindowsPlayer || Application.platform == RuntimePlatform.WindowsEditor)) + { + var config = Resources.Load("PicoSdkPCConfig"); + var logDirectory = Path.GetFullPath("Logs"); + if (config == null) + { + throw new UnityException($"cannot find PC config file Resources/PicoSdkPCConfig"); + } + + if (!Directory.Exists(logDirectory)) + { + Directory.CreateDirectory(logDirectory); + } + + var requestId = CLIB.ppf_PcInitAsynchronousWrapper(appId, config.text, logDirectory); + if (requestId == 0) + { + throw new Exception("PICO PlatformSDK failed to initialize"); + } + else + { + task = new Task(requestId); + } + } + else + { + throw new NotImplementedException("PICO platform is not implemented on this platform yet."); + } + + Initialized = true; + Runner.RegisterGameObject(); + return task; + } + + /// + /// Initializes the Platform SDK synchronously. + /// + /// The app ID for the Platform SDK. If not provided, Unity editor configuration will be applied. + /// If the current platform is not supported, this exception will be thrown. + /// If the initialization fails, this exception will be thrown. + public static void Initialize(string appId = null) + { + if (Initialized) + { + return; + } + + appId = GetAppID(appId); + if (String.IsNullOrWhiteSpace(appId)) + { + throw new UnityException("AppID must not be null or empty"); + } + + PlatformInitializeResult initializeResult; + if (Application.platform == RuntimePlatform.Android) + { + AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic("currentActivity"); + + initializeResult = CLIB.ppf_InitializeAndroid(appId, activity.GetRawObject(), IntPtr.Zero); + + if (initializeResult == PlatformInitializeResult.Success || + initializeResult == PlatformInitializeResult.AlreadyInitialized) + { + Initialized = true; + } + } + else if ((Application.platform == RuntimePlatform.WindowsPlayer || Application.platform == RuntimePlatform.WindowsEditor)) + { + var config = Resources.Load("PicoSdkPCConfig"); + if (config == null) + { + throw new UnityException($"cannot find PC config file Resources/PicoSdkPCConfig"); + } + + var logDirectory = Path.GetFullPath("Logs"); + if (!Directory.Exists(logDirectory)) + { + Directory.CreateDirectory(logDirectory); + } + + initializeResult = CLIB.ppf_PcInitWrapper(appId, config.text, logDirectory); + if (initializeResult == PlatformInitializeResult.Success || + initializeResult == PlatformInitializeResult.AlreadyInitialized) + { + Initialized = true; + } + } + else + { + throw new NotImplementedException("PICO platform is not implemented on this platform yet."); + } + + if (!Initialized) + { + throw new UnityException($"PICO Platform failed to initialize:{initializeResult}."); + } + + Runner.RegisterGameObject(); + } + + /** + * \overload Task GameInitialize(string accessToken) + */ + /// + /// Initializes game-related modules, such as room, matchmaking, and network. + /// + /// The access token of Platform SDK. You can get the access token by calling `UserService.GetAccessToken()`. + public static Task GameInitialize(string accessToken) + { + if (Initialized) + { + return new Task(CLIB.ppf_Game_InitializeWithToken(accessToken)); + } + + Debug.LogError(NotInitializedError); + return null; + } + + /** + * \overload Task GameInitialize() + */ + /// + /// Initializes modules without token related with game, such as room, matchmaking, and net. + /// + public static Task GameInitialize() + { + if (Initialized) + { + return new Task(CLIB.ppf_Game_InitializeAuto()); + } + + Debug.LogError(NotInitializedError); + return null; + } + + /// + /// Uninitializes game-related modules, such as room, matchmaking, and network. + /// + /// + /// * `true`: success + /// * `false`: failure + /// + public static bool GameUninitialize() + { + if (Initialized) + { + return CLIB.ppf_Game_UnInitialize(); + } + + return false; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Core.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Core.cs.meta new file mode 100644 index 0000000..4a63a48 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Core.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 496980589199efc479aff90a62629be7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Highlight.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Highlight.cs new file mode 100644 index 0000000..2bf0db9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Highlight.cs @@ -0,0 +1,139 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + public class HighlightService + { + /// + /// Starts a new session. Before using screen recording and capturing-related functions, make sure you are in a session. + /// + /// The session ID, which is a string. + public static Task StartSession() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Highlight_StartSession()); + } + + /// + /// Captures the screen. + /// + /// The information about this capture, including image path and job ID. + public static Task CaptureScreen() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Highlight_CaptureScreen()); + } + + /// + /// Starts recording the screen. + /// + public static Task StartRecord() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Highlight_StartRecord()); + } + + /// + /// Stops recording the screen. + /// + /// The infomraiton about this recording, including video path, video duration, video size, and job ID. + public static Task StopRecord() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Highlight_StopRecord()); + } + + /// + /// Lists all the media resources for a session. + /// + /// Passes the ID of the session which is returned by `StartSession`. + /// The information about the images captured and videos recorded during this session. + public static Task ListMedia(string sessionId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Highlight_ListMedia(sessionId)); + } + + /// + /// Saves an image or a video to the device's local storage. + /// + /// Passes the ID of the screen-capturing or screen-recording task where the image or video is created. + /// Passes the ID of the session where the task takes place. + /// The job ID and session ID of the image or video saved. + public static Task SaveMedia(string jobId, string sessionId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Highlight_SaveMedia(jobId, sessionId)); + } + + /// + /// Shares an image or a video to the social media on the mobile phone. + /// + /// Passes the ID of the screen-capturing or screen-recording task where the image or video is created. + /// Passes the ID of the session where the task takes place. + /// The job ID and session ID of the image or video shared. + public static Task ShareMedia(string jobId, string sessionId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Highlight_ShareMedia(jobId, sessionId)); + } + + /// + /// The maiximum duration for a video is 15 minutes. + /// After the `StartRecord` function is called, if the `StopRecord` function is not called in time or if the recording is ended due to other causes, the system will automatically stop recording and return the recording information. + /// + /// Returns the recording information. + public static void SetOnRecordStopHandler(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Highlight_OnRecordStop, handler); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Highlight.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Highlight.cs.meta new file mode 100644 index 0000000..43ccdcb --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Highlight.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 49c5348fb263404a8d2d84556f274a40 +timeCreated: 1686138735 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/IAP.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/IAP.cs new file mode 100644 index 0000000..756f1b9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/IAP.cs @@ -0,0 +1,208 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + * + * You can diversify user experience and grow your revenue by selling + * products such as cosmetics, props, and coins/diamonds within your + * app. The PICO Unity Integration SDK provides In-App Purchase (IAP) + * service which enables users to purchase products within your app. + * The IAP service packages a series of payments systems such as Alipay, + * bank card, and Paypal, thereby providing you with a one-stop + * multi-payment-method solution. + */ + public static class IAPService + { + /// + /// Records the order fulfillment result for a consumable. + /// @note Users are unable to repurchase the same comsumable until the previous order is fulfilled. + /// + /// The SKU of the add-on to fulfill. + public static Task ConsumePurchase(string sku) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_IAP_ConsumePurchase(sku)); + } + + /// Gets a list of purchasable add-ons in the current app. + /// The SKUs of the add-ons to retrieve. If this parameter is empty, all purchasable add-ons will be returned. + /// A list of purchasable add-ons with their information, including the description, price, SKU, and more. + public static Task GetProductsBySKU(string[] skus) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (skus == null) + { + skus = Array.Empty(); + } + + return new Task(CLIB.ppf_IAP_GetProductsBySKU(skus)); + } + + /// Gets a list of purchased add-ons for a user, including durables and unfilfilled consumables. + /// A list of the user's purchased add-ons. + public static Task GetViewerPurchases() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_IAP_GetViewerPurchases()); + } + + /// @deprecated LaunchCheckoutFlow(string sku,string price,string currency) can be replaced by \ref LaunchCheckoutFlow2(Product product) + /// + /// Launches the checkout flow for a user to make a payment. + /// \note This method doesn't support subscription add-ons, you need to + /// use \ref LaunchCheckoutFlow2 instead. + /// + /// The SKU of the product the user wants to purchase. + /// The price for the product. + /// The currency of the payment. + /// Returns the purchased product if the user successfully pays the money. + /// Otherwise the purchase will be null. You can get the failure reason from the returned error code and error message. + [Obsolete("Please use LaunchCheckoutFlow2(Product product)", false)] + public static Task LaunchCheckoutFlow(string sku, string price, string currency) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_IAP_LaunchCheckoutFlow(sku, price, currency)); + } + + /// + /// Launches the checkout flow for a user to make a payment. + /// + /// The add-on's information which can be acquired by \ref GetProductsBySKU. + /// + /// Returns the purchased add-on if the user successfully makes the payment. + /// Otherwise the purchase will be null. You can get the failure reason from the returned error code and error message. + /// + public static Task LaunchCheckoutFlow2(Product product) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_IAP_LaunchCheckoutFlowV2(product.SKU, product.Price, product.Currency, product.OuterId)); + } + + /// + /// Launches the checkout flow for a user to make a payment. + /// + /// The add-on's information which can be acquired by \ref GetProductsBySKU. + /// + /// The comment for the order. If the user successfully purchases this add-on, + /// The order's comment can be accessed in \ref Purchase. The length of this field cannot exceed 1024 bytes in UTF-8 encoding. + /// + /// Returns the purchased add-on if the user successfully makes the payment. + /// Otherwise the purchase will be null. You can get the failure reason from the returned error code and error message. + /// + public static Task LaunchCheckoutFlow3(Product product, string orderComment) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_IAP_LaunchCheckoutFlowV3(product.SKU, product.Price, product.Currency, product.OuterId, orderComment)); + } + + /// + /// Gets the subscription status of a subscription add-on. + /// + /// The SKU of the add-on. + /// + /// The subscription status of the add-on. If the user is not entitled to access the add-on, the result will be an empty struct. + /// + public static Task GetSubscriptionStatus(string sku) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_IAP_GetSubscriptionStatus(sku)); + } + + /// + /// Gets the next page of purchasable add-ons. + /// + /// The current page of purchasable add-ons. + /// The next page of purchasable add-ons. + public static Task GetNextProductListPage(ProductList list) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (!list.HasNextPage) + { + Debug.LogWarning("Pico.Platform.GetNextProductListPage: List has no next page"); + return null; + } + + return new Task( + CLIB.ppf_IAP_GetNextProductArrayPage(list.NextPageParam) + ); + } + + /// + /// Gets the next page of purchased add-ons. + /// + /// The current page of purchased add-ons. + /// The next page of purchased add-ons. + public static Task GetNextPurchaseListPage(PurchaseList list) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (!list.HasNextPage) + { + Debug.LogWarning("Pico.Platform.GetNextPurchaseListPage: List has no next page"); + return null; + } + + return new Task(CLIB.ppf_IAP_GetNextPurchaseArrayPage(list.NextPageParam)); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/IAP.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/IAP.cs.meta new file mode 100644 index 0000000..f56afe6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/IAP.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e074c6a46e5d441b80ada0813183cb79 +timeCreated: 1655278625 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Leaderboard.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Leaderboard.cs new file mode 100644 index 0000000..313a0a7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Leaderboard.cs @@ -0,0 +1,275 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Runtime.InteropServices; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + * Leaderboard is one of the basic and important features of an app. + * By displaying users' rankings in a multi-dimensional approach, leaderboards can give rise to a competitive atmosphere among users in specific scenarios such as gaming, drive users to improve their skills, and therefore increase app engagement. You can also use leaderboards to promote the app and attract new users. + * Currently, Leaderboard service offers the following key features: + * * Create leaderboards + * * Get leaderboard data + * * Update leaderboard data + */ + public static class LeaderboardService + { + /// Gets the information for a specified leaderboard. + /// + /// The name of the leaderboard to get information for. + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `LeaderboardList`. + /// | Error Code| Error Message | + /// |---|---| + /// |10701|request server failed| + /// |10703|checking parameter failed| + /// |10704|leaderboard is not exist| + /// + /// A message of type `MessageType.Leaderboard_Get` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `LeaderboardList`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task Get(string leaderboardName) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Leaderboard_Get(leaderboardName)); + } + + /// Gets a list of entries. + /// + /// The name of the leaderboard whose entries are to be returned. + /// The number of entries to return on each page. + /// Defines which page of entries to return. The first page index is `0`. + /// For example, if you want to get the first page of entries, pass `0`; if you want to get the second page of entries, pass `1`. + /// + /// Restricts the scope of entries to return: + /// * `0`: None (returns all entries of the specified leaderboard) + /// * `1`: Friends (returns the entries of the friends of the current logged-in user) + /// * `2`: Unknown (returns no entry) + /// * `3`: UserIds (returns the entries of specified users) + /// + /// Defines where to start returning leaderboard entries, the enumerations are: + /// * `0`: Top (return entries from top 1) + /// * `1`: CenteredOnViewer (place the current logged-in user's entry in the middle of the list on the first page. + /// For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, the ranks displayed + /// on the first page will be top 3, 4, 5, 6, and 7. Top 1 and 2 will not be displayed, and top 8, 9, and 10 will be + /// displayed on the second page) + /// * `2`: CenteredOnViewerOrTop (place the current logged-in user's entry on the top of the list on the first page. + /// For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, + /// the ranks displayed on the first page will be top 5, 6, 7, 8, and 9. Top 1, 2, 3, and 4 will not be displayed, + /// and top 10 will be displayed on the second page) + /// * `3`: Unknown (returns an empty list) + /// + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `LeaderboardEntryList`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006501|request server failed| + /// |3006503|checking parameter failed| + /// |3006504|leaderboard is not exist| + /// |3006506|load leaderboard data failed| + /// |3006509|get friend failed| + /// |3006510|get user account failed| + /// + /// A message of type `MessageType.Leaderboard_GetEntries` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `LeaderboardEntryList`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task GetEntries(string leaderboardName, int pageSize, int pageIdx, LeaderboardFilterType filter, LeaderboardStartAt startAt) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Leaderboard_GetEntries(leaderboardName, pageSize, pageIdx, filter, startAt)); + } + + /// Gets a list of entries after a specified rank. + /// + /// The name of the leaderboard whose entries are to be returned. + /// The number of entries to return on each page. + /// Defines which page of entries to return. The first page index is `0`. + /// For example, if you want to get the first page of entries, pass `0`; if you want to get the second page of entries, pass `1`. + /// + /// Defines after which rank to return entries. + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `LeaderboardEntryList`. + /// | Error Code| Error Message | + /// |---|---| + /// |10701|request server failed| + /// |10703|checking parameter failed| + /// |10704|leaderboard is not exist| + /// |10706|load leaderboard data failed| + /// |10709|get friend failed| + /// |10710|get user account failed| + /// + /// A message of type `MessageType.Leaderboard_GetEntriesAfterRank` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `LeaderboardEntryList`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task GetEntriesAfterRank(string leaderboardName, int pageSize, int pageIdx, + ulong afterRank) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task( + CLIB.ppf_Leaderboard_GetEntriesAfterRank(leaderboardName, pageSize, pageIdx, afterRank)); + } + + /// Gets a list of entries for specified users. + /// + /// The name of the leaderboard whose entries are to be returned. + /// The number of entries to return on each page. + /// Defines which page of entries to return. The first page index is `0`. + /// For example, if you want to get the first page of entries, pass `0`; if you want to get the second page of entries, pass `1`. + /// + /// Defines where to start returning leaderboard entries, the enumerations are: + /// * `0`: Top (return entries from top 1) + /// * `1`: CenteredOnViewer (place the current logged-in user's entry in the middle of the list on the first page. + /// For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, the ranks displayed + /// on the first page will be top 3, 4, 5, 6, and 7. Top 1 and 2 will not be displayed, and top 8, 9, and 10 will be + /// displayed on the second page) + /// * `2`: CenteredOnViewerOrTop (place the current logged-in user's entry on the top of the list on the first page. + /// For example, if the total number of entries is 10, `pageSize` is set to `5`, and the user's rank is top 5, + /// the ranks displayed on the first page will be top 5, 6, 7, 8, and 9. Top 1, 2, 3, and 4 will not be displayed, + /// and top 10 will be displayed on the second page) + /// * `3`: Unknown (returns an empty list) + /// + /// The ID list of the users to get entries for. + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `LeaderboardEntryList`. + /// | Error Code| Error Message | + /// |---|---| + /// |10701|request server failed| + /// |10703|checking parameter failed| + /// |10704|leaderboard is not exist| + /// |10706|load leaderboard data failed| + /// |10709|get friend failed| + /// |10710|get user account failed| + /// + /// A message of type `MessageType.Leaderboard_GetEntriesByIds` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `LeaderboardEntryList`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task GetEntriesByIds(string leaderboardName, int pageSize, int pageIdx, + LeaderboardStartAt startAt, string[] userIDs) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Leaderboard_GetEntriesByIds(leaderboardName, + pageSize, pageIdx, startAt, userIDs)); + } + + /// Writes an entry to a leaderboard. + /// + /// The name of the leaderboard to write an entry to. + /// The score to write. + /// A 2KB custom data field that is associated with the leaderboard entry. This can be a game replay or anything that provides more details about the entry to the viewer. + /// Defines whether to force update the score. If set to `true`, the score always updates even if it is not the user's best score. + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `bool`. + /// | Error Code| Error Message | + /// |---|---| + /// |10701|request server failed| + /// |10703|checking parameter failed| + /// |10704|leaderboard is not exist| + /// |10705|no write permission| + /// |10706|load leaderboard data failed| + /// |10707|save leaderboard data failed| + /// |10708|extra data too long| + /// |10714|out of write time limit| + /// + /// A message of type `MessageType.Leaderboard_WriteEntry` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `bool`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task WriteEntry(string leaderboardName, long score, byte[] extraData = null, + bool forceUpdate = false) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + GCHandle hobj = GCHandle.Alloc(extraData, GCHandleType.Pinned); + IntPtr pobj = hobj.AddrOfPinnedObject(); + var result = new Task(CLIB.ppf_Leaderboard_WriteEntry(leaderboardName, score, pobj, + (uint) (extraData != null ? extraData.Length : 0), forceUpdate)); + if (hobj.IsAllocated) + hobj.Free(); + return result; + } + + /// Writes an entry to a leaderboard. The entry can include the supplementary metric for tiebreakers. + /// + /// The name of the leaderboard to write an entry to. + /// The score to write. + /// The metric that can be used for tiebreakers. + /// A 2KB custom data field that is associated with the leaderboard entry. This can be a game replay or anything that provides more details about the entry to the viewer. + /// Defines whether to force update the score. If set to `true`, the score always updates even if it is not the user's best score. + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `bool`. + /// | Error Code| Error Message | + /// |---|---| + /// |10701|request server failed| + /// |10703|checking parameter failed| + /// |10704|leaderboard is not exist| + /// |10705|no write permission| + /// |10706|load leaderboard data failed| + /// |10707|save leaderboard data failed| + /// |10708|extra data too long| + /// |10714|out of write time limit| + /// + /// A message of type `MessageType.Leaderboard_WriteEntryWithSupplementaryMetric` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `bool`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task WriteEntryWithSupplementaryMetric(string leaderboardName, long score, + long supplementaryMetric, byte[] extraData = null, bool forceUpdate = false) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + GCHandle hobj = GCHandle.Alloc(extraData, GCHandleType.Pinned); + IntPtr pobj = hobj.AddrOfPinnedObject(); + var result = new Task(CLIB.ppf_Leaderboard_WriteEntryWithSupplementaryMetric(leaderboardName, score, + supplementaryMetric, pobj, (uint) (extraData != null ? extraData.Length : 0), forceUpdate)); + if (hobj.IsAllocated) + hobj.Free(); + return result; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Leaderboard.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Leaderboard.cs.meta new file mode 100644 index 0000000..261906d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Leaderboard.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: afa08af6e76749e1b2ccad3292287c4f +timeCreated: 1655221139 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Matchmaking.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Matchmaking.cs new file mode 100644 index 0000000..82dbb5c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Matchmaking.cs @@ -0,0 +1,482 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Generic; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + */ + public static class MatchmakingService + { + /// Reports the result of a skill-rating match. + /// @note Applicable to the following matchmaking modes: Quickmatch, Browse (+ Skill Pool) + /// + /// The room ID. + /// The key-value pairs. + /// Request information of type `Task`, including the request ID, and its response message does not contain data. + /// | Error Code| Error Message | + /// |---|---| + /// |3006209|match result report: not in match| + /// |3006210|match result report: error report data| + /// |3006211|match result report: duplicate report| + /// |3006212|match result report: conflict with other's report| + /// + /// Only for pools with skill-based matchmaking. + /// Call this method after calling `StartMatch()` to begin a skill-rating + /// match. After the match finishes, the server will record the result and + /// update the skill levels of all players involved based on the result. This + /// method is insecure because, as a client API, it is susceptible to tampering + /// and therefore cheating to manipulate skill ratings. + /// + /// A message of type `MessageType.Matchmaking_ReportResultInsecure` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// This response has no payload. If no error has occurred, the request is successful. + /// + public static Task ReportResultsInsecure(UInt64 roomId, Dictionary data) + { + KVPairArray kvarray = new KVPairArray((uint) data.Count); + uint n = 0; + foreach (var d in data) + { + var item = kvarray.GetElement(n); + item.SetKey(d.Key); + item.SetIntValue(d.Value); + n++; + } + + return new Task(CLIB.ppf_Matchmaking_ReportResultInsecure(roomId, kvarray.GetHandle(), kvarray.Size)); + } + + /// Gets the matchmaking statistics for the current user. + /// @note Applicable to the following matchmaking modes: Quickmatch, Browse + /// + /// The pool to look in. + /// (beta feature, don't use it) + /// (beta feature, don't use it) + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `MatchmakingStats`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006201|match enqueue: invalid pool name| + /// |3006208|match enqueue: no skill| + /// + /// + /// When given a pool, the system will look up the current user's wins, losses, draws and skill + /// level. The skill level returned will be between `1` and the maximum level. The approach + /// will determine how should the skill level rise toward the maximum level. + /// + /// A message of type `MessageType.Matchmaking_GetStats` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `MatchmakingStats`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task GetStats(string pool, uint maxLevel, MatchmakingStatApproach approach = MatchmakingStatApproach.Trailing) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Matchmaking_GetStats(pool, maxLevel, approach)); + } + + /// Gets rooms by matchmakinging pool name. + /// The user can join the room with `RoomService.Join2 to`or cancel the retrieval with `MatchmakingService.Cancel`. + /// @note Applicable to the following matchmaking mode: Browse + /// + /// The matchmaking pool name you want to browse. + /// (Optional) The matchmaking configuration of the browse request. + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `MatchmakingBrowseResult`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006201|match enqueue: invalid pool name| + /// |3006205|match browse: access denied| + /// |3006207|match enqueue: invalid query key| + /// + /// A message of type `MessageType.Matchmaking_Browse2` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `MatchmakingBrowseResult`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task Browse2(string pool, MatchmakingOptions matchmakingOptions = null) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (matchmakingOptions == null) + { + return new Task(CLIB.ppf_Matchmaking_Browse2(pool, IntPtr.Zero)); + } + else + { + return new Task(CLIB.ppf_Matchmaking_Browse2(pool, matchmakingOptions.GetHandle())); + } + } + + /// Gets rooms by matchmakinging pool name and specify the page number and the number of pages per page. + /// + /// The matchmaking pool name you want to browse. + /// (Optional) The matchmaking configuration of the browse request. + /// (Optional)Start page index. + /// (Optional)the number of pages per page. + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `MatchmakingBrowseResult`. + /// + /// A message of type `MessageType.Matchmaking_Browse2CustomPage` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `MatchmakingBrowseResult`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task Browse2ForCustomPage(string pool, MatchmakingOptions matchmakingOptions = null, int pageIndex = 0, int pageSize = 5) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (matchmakingOptions == null) + { + return new Task(CLIB.ppf_Matchmaking_Browse2CustomPage(pool, IntPtr.Zero, pageIndex, pageSize)); + } + else + { + return new Task(CLIB.ppf_Matchmaking_Browse2CustomPage(pool, matchmakingOptions.GetHandle(), pageIndex, pageSize)); + } + } + + /// Cancels a matchmaking request. Call this function + /// to cancel an enqueue request before a match + /// is made. This is typically triggered when a user gives up waiting. + /// If you do not cancel the request but the user goes offline, the user/room + /// will be timed out according to the setting of reserved period on the PICO Developer Platform. + /// @note Applicable to the following matchmaking modes: Quickmatch, Browse + /// + /// Request information of type `Task`, including the request ID, and its response message does not contain data. + /// | Error Code| Error Message | + /// |---|---| + /// |3006201|match enqueue: invalid pool name| + /// |3006206|match cancel: not in match| + /// |3006301|server error: unknown| + /// + /// + /// A message of type `MessageType.Matchmaking_Cancel2` will be generated in response. + /// Call `Message.IsError()` to check if any error has occurred. + /// This response has no payload. If no error has occurred, the request is successful. + /// + public static Task Cancel() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Matchmaking_Cancel2()); + } + + /// Creates a matchmaking room, then enqueues and joins it. + /// @note Applicable to the following matchmaking modes: Quickmatch, Browse, Advanced (Can Users Create Rooms=`true`) + /// + /// The matchmaking pool to use, which is created on the PICO Developer Platform. + /// (Optional) Additional matchmaking configuration for this request. + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `MatchmakingEnqueueResultAndRoom`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006201|match enqueue: invalid pool name| + /// |3006203|match create room: pool config not allow user create room| + /// |3006207|match enqueue: invalid query key | + /// |3006301|server error: unknown | + /// |3006204|match enqueue: invalid room id(Assigned room id, present in this context, indicates an internal server error) | + /// |3006103|invalid room(The room was found to be invalid when joining the room, which appears in this context, indicating an internal server error) | + /// |3006102|duplicate join room(Duplicate joins are found when joining a room, which appears in this context, indicating an internal server error) | + /// |3006106|exceed max room player number(Exceeding the maximum number of people when joining a room, appears in this context, indicating an internal server error) | + /// |3006105|illegal enter request(Illegal incoming requests, such as not in the allowed whitelist, appear in this context, indicating an internal server error) | + /// |3006108|room is locked(When joining a room, it is found that the room is locked, appears in this context, indicating an internal server error)| + /// + /// A message of type `MessageType.Matchmaking_CreateAndEnqueueRoom2` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `MatchmakingEnqueueResultAndRoom`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task CreateAndEnqueueRoom2(string pool, MatchmakingOptions matchmakingOptions = null) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (matchmakingOptions == null) + { + return new Task(CLIB.ppf_Matchmaking_CreateAndEnqueueRoom2(pool, IntPtr.Zero)); + } + else + { + return new Task(CLIB.ppf_Matchmaking_CreateAndEnqueueRoom2(pool, matchmakingOptions.GetHandle())); + } + } + + /// Enqueues for an available matchmaking room to join. + /// When the server finds a match, it will return a message of + /// type `MessageType.Notification_Matchmaking_MatchFound`. You + /// can join found matching rooms by calling `RoomService.Join2`. + /// If you want to cancel the match early, you can use `MatchmakingService.Cancel`. + /// @note Applicable to the following matchmaking mode: Quickmatch + /// + /// The matchmaking pool to use, which is defined on the PICO Developer Platform. + /// (Optional) Match configuration for Enqueue. + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `MatchmakingEnqueueResult`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006201|match enqueue: invalid pool name| + /// |3006401|logic state checking failed| + /// |3006207|match enqueue: invalid query key| + /// |3006301|server error: unknown| + /// + /// A message of type `MessageType.Matchmaking_Enqueue2` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `MatchmakingEnqueueResult`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task Enqueue2(string pool, MatchmakingOptions matchmakingOptions = null) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (matchmakingOptions == null) + { + return new Task(CLIB.ppf_Matchmaking_Enqueue2(pool, IntPtr.Zero)); + } + else + { + return new Task(CLIB.ppf_Matchmaking_Enqueue2(pool, matchmakingOptions.GetHandle())); + } + } + + /// Debugs the state of the current matchmaking pool queue. + /// @note + /// * This function should not be used in production. + /// * Applicable to the following matchmaking modes: Quickmatch, Browse + /// + /// + /// + /// Request information of type `Task`, including the request ID, and its response message will contain data of type `MatchmakingAdminSnapshot`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006201|match enqueue: invalid pool name| + /// |3006301|server error: unknown | + /// + /// A message of type `MessageType.Matchmaking_GetAdminSnapshot` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `MatchmakingAdminSnapshot`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task GetAdminSnapshot() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Matchmaking_GetAdminSnapshot()); + } + + /// Reports that a skill-rating match has started. + /// You can use this method after joining the room. + /// @note + /// * This function is only for pools with skill-based matching. + /// * Applicable to the following matchmaking modes: Quickmatch, Browse (+ Skill Pool) + /// + /// + /// The ID of the room you want to match. + /// Request information of type `Task`, including the request ID, and its response message does not contain data. + /// + /// A message of type `MessageType.Matchmaking_StartMatch` will be generated in response. + /// Call `message.IsError()` to check if any error has occurred. + /// + public static Task StartMatch(UInt64 roomId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Matchmaking_StartMatch(roomId)); + } + + /// Sets the callback to get notified when a match has been found. For example, + /// after calling `MatchmakingService.Enqueue`, when the match is successful, you will + /// receive `Notification_Matchmaking_MatchFound`, and then execute the processing function + /// set by this function. + /// + /// The callback function will be called when receiving the `Notification_Matchmaking_MatchFound` message. + public static void SetMatchFoundNotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Matchmaking_MatchFound, handler); + } + + /// A notification will be sent to the player after they have been kicked out of the matchmaking pool. + /// Listen to the event to receive a message. + /// + /// The callback function will be called when receiving the `Matchmaking_Cancel2` message and the value of `requestID` is `0`. + public static void SetCancel2NotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Matchmaking_Cancel2, handler); + } + } + + + public class MatchmakingOptions + { + public MatchmakingOptions() + { + Handle = CLIB.ppf_MatchmakingOptions_Create(); + } + + /// + /// Sets the data store for a room. + /// + /// A unique identifier that maps to a value. + /// The data. + public void SetCreateRoomDataStore(string key, string value) + { + CLIB.ppf_MatchmakingOptions_SetCreateRoomDataStoreString(Handle, key, value); + } + + /// + /// Clears the data store for a room. + /// + public void ClearCreateRoomDataStore() + { + CLIB.ppf_MatchmakingOptions_ClearCreateRoomDataStore(Handle); + } + + /// + /// Sets a join policy for a room. + /// + /// The enumerations of join policy: + /// * `0`: None + /// * `1`: Everyone + /// * `2`: FriendsOfMembers + /// * `3`: FriendsOfOwner + /// * `4`: InvitedUsers + /// * `5`: Unknown + /// + public void SetCreateRoomJoinPolicy(RoomJoinPolicy value) + { + CLIB.ppf_MatchmakingOptions_SetCreateRoomJoinPolicy(Handle, value); + } + + /// + /// Sets the maximum number of users allowed for a room. + /// + /// The maximum number of users. + public void SetCreateRoomMaxUsers(uint value) + { + CLIB.ppf_MatchmakingOptions_SetCreateRoomMaxUsers(Handle, value); + } + + /// + /// Sets an integer data setting for a query of a matchmaking pool. + /// + /// A unique identifier that maps a value. + /// The data (integer). + public void SetEnqueueDataSettings(string key, int value) + { + CLIB.ppf_MatchmakingOptions_SetEnqueueDataSettingsInt(Handle, key, value); + } + + /// + /// Sets a float data setting for a query of a matchmaking pool. + /// + /// A unique identifier that maps a value. + /// The data. + public void SetEnqueueDataSettings(string key, double value) + { + CLIB.ppf_MatchmakingOptions_SetEnqueueDataSettingsDouble(Handle, key, value); + } + + /// + /// Sets a string data setting for a query of a matchmaking pool. + /// + /// A unique identifier that maps a value. + /// The data. + public void SetEnqueueDataSettings(string key, string value) + { + CLIB.ppf_MatchmakingOptions_SetEnqueueDataSettingsString(Handle, key, value); + } + + /// + /// Clears data settings for a query of a matchmaking pool. + /// + public void ClearEnqueueDataSettings() + { + CLIB.ppf_MatchmakingOptions_ClearEnqueueDataSettings(Handle); + } + + /// + /// Sets whether to return the debugging information. + /// + /// + /// * `true`: return the debugging information with the response payload + /// * `false`: do not return the debugging information + /// + public void SetEnqueueIsDebug(bool value) + { + CLIB.ppf_MatchmakingOptions_SetEnqueueIsDebug(Handle, value); + } + + /// + /// Sets the query for a matchmaking. + /// + /// The key of the target query. + /// @note One matchmaking pool can include multiple queries which are created on the PICO Developer Platform. + /// You can choose which query to use before starting a matchmaking. + /// + public void SetEnqueueQueryKey(string value) + { + CLIB.ppf_MatchmakingOptions_SetEnqueueQueryKey(Handle, value); + } + + + /// For passing to native C + public static explicit operator IntPtr(MatchmakingOptions matchmakingOptions) + { + return matchmakingOptions != null ? matchmakingOptions.Handle : IntPtr.Zero; + } + + ~MatchmakingOptions() + { + CLIB.ppf_MatchmakingOptions_Destroy(Handle); + } + + IntPtr Handle; + + public IntPtr GetHandle() + { + return Handle; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Matchmaking.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Matchmaking.cs.meta new file mode 100644 index 0000000..cc6f5f4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Matchmaking.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 51d1402fc42ddf141ba5d9bb9e470a26 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Network.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Network.cs new file mode 100644 index 0000000..692f12f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Network.cs @@ -0,0 +1,194 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Runtime.InteropServices; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + */ + public static class NetworkService + { + /// + /// Reads the messages from other users in the room. + /// + public static Packet ReadPacket() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + var handle = CLIB.ppf_Net_ReadPacket(); + if (handle == IntPtr.Zero) + return null; + return new Packet(handle); + } + + /// + /// Sends messages to a specified user. The maximum messaging frequency is 1000/s. + /// + /// The ID of the user to send messages to. + /// The message length (in bytes). The maximum bytes allowed is 512. + /// + /// * `true`: success + /// * `false`: failure + /// + public static bool SendPacket(string userId, byte[] bytes) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return false; + } + + if (string.IsNullOrEmpty(userId)) + { + Debug.LogError("User ID is null or empty!"); + return false; + } + + GCHandle hobj = GCHandle.Alloc(bytes, GCHandleType.Pinned); + IntPtr pobj = hobj.AddrOfPinnedObject(); + var ok = CLIB.ppf_Net_SendPacket(userId, (UIntPtr) bytes.Length, pobj); + if (hobj.IsAllocated) + hobj.Free(); + return ok; + } + + /// + /// Sends messages to a specified user. The maximum messaging frequency is 1000/s. + /// + /// The ID of the user to send messages to. + /// The message length (in bytes). The maximum bytes allowed is 512. + /// When `reliable` is set to `true`, messages between lost and resume will not be lost. + /// The retention time is determined by the `reserve_period` parameter configured for the matchmaking pool, with a maximum of 1 minute. + /// When `reliable` is set to `false`, this function works the same as the other `SendPacket` function. + /// + /// * `true`: success + /// * `false`: failure + /// + public static bool SendPacket(string userId, byte[] bytes, bool reliable) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return false; + } + + if (string.IsNullOrEmpty(userId)) + { + Debug.LogError("User ID is null or empty!"); + return false; + } + + GCHandle hobj = GCHandle.Alloc(bytes, GCHandleType.Pinned); + IntPtr pobj = hobj.AddrOfPinnedObject(); + var ok = CLIB.ppf_Net_SendPacket2(userId, (UIntPtr) bytes.Length, pobj, reliable); + if (hobj.IsAllocated) + { + hobj.Free(); + } + + return ok; + } + + /// + /// Sends messages to other users in the room. The maximum messaging frequency is 1000/s. + /// + /// The message length (in bytes). The maximum bytes allowed is 512. + /// + /// * `true`: success + /// * `false`: failure + /// + public static bool SendPacketToCurrentRoom(byte[] bytes) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return false; + } + + GCHandle hobj = GCHandle.Alloc(bytes, GCHandleType.Pinned); + IntPtr pobj = hobj.AddrOfPinnedObject(); + var ok = CLIB.ppf_Net_SendPacketToCurrentRoom((UIntPtr) bytes.Length, pobj); + if (hobj.IsAllocated) + { + hobj.Free(); + } + + return ok; + } + + /// + /// Sends messages to other users in the room. The maximum messaging frequency is 1000/s. + /// + /// The message length (in bytes). The maximum bytes allowed is 512. + /// When `reliable` is set to `true`, messages between lost and resume will not be lost. + /// The retention time is determined by the `reserve_period` parameter configured for the matchmaking pool, with a maximum of 1 minute. + /// When `reliable` is set to `false`, this function works the same as the other `SendPacketToCurrentRoom` function. + /// + /// * `true`: success + /// * `false`: failure + /// + public static bool SendPacketToCurrentRoom(byte[] bytes, bool reliable) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return false; + } + + GCHandle hobj = GCHandle.Alloc(bytes, GCHandleType.Pinned); + IntPtr pobj = hobj.AddrOfPinnedObject(); + var ok = CLIB.ppf_Net_SendPacketToCurrentRoom2((UIntPtr) bytes.Length, pobj, reliable); + if (hobj.IsAllocated) + hobj.Free(); + return ok; + } + + public static void SetPlatformGameInitializeAsynchronousCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.PlatformGameInitializeAsynchronous, handler); + } + + /// Sets the callback to get notified when the game network fluctuates. + /// Listen to this event to receive a relevant message. Use `Message.Data` to get the network situation in the game. + /// + /// Callback handler. The callback function will be called when receiving the `Notification_Game_ConnectionEvent` message and the value of `requestID` is `0`. + public static void SetNotification_Game_ConnectionEventCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Game_ConnectionEvent, handler); + } + + public static void SetNotification_Game_Request_FailedCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Game_RequestFailed, handler); + } + + /// Sets the callback to get notified when the game state needs to be reset. + /// Listen to this event to receive a relevant message. If you receive this message, you will need to reset your gaming state. For example, + /// * If you are in a room before receiving this message, you will need to check and reset your room state after receving this message. + /// * If you are in a matchmaking queue before receiving this message, you will need to check and reset your matchmaking state after receiving this message. + /// + /// Callback handler. The callback function will be called when receiving the "Notification_Game_StateReset" message and the value of `requestID` is `0`. + public static void SetNotification_Game_StateResetCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Game_StateReset, handler); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Network.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Network.cs.meta new file mode 100644 index 0000000..41290f6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Network.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8590c499f74c2f346a273d23e44feadd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Notification.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Notification.cs new file mode 100644 index 0000000..5a61820 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Notification.cs @@ -0,0 +1,64 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + */ + public static class NotificationService + { + /// + /// Gets a list of all pending room invites for your app. For example, notifications that may have been sent before the user launches your app. + /// + /// Defines which page of pending room invites to return. The first page index is `0`. + /// Defines the number of pending room invites returned on each page. + /// Request information of type `Task`, including the request id, and its response message will contain data of type `RoomInviteNotificationList`. + /// + /// A message of type `MessageType.Notification_GetRoomInvites` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `RoomInviteNotificationList`. + /// Extract the payload from the message handle with `message.Data`. + public static Task GetRoomInviteNotifications(int pageIdx, int pageSize) + { + if (CoreService.IsInitialized()) + { + return new Task(CLIB.ppf_Notification_GetRoomInvites(pageIdx, pageSize)); + } + + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + /// + /// Marks a notification as read. + /// + /// The ID of the notificaiton to mark. + /// Request information of type `Task`, including the request id, and its response message does not contain data. + /// A message of type `MessageType.Notification_MarkAsRead` will be generated in response. Call `message.IsError()` to check if any error has occurred. + /// + public static Task MarkAsRead(UInt64 notificationID) + { + if (CoreService.IsInitialized()) + { + return new Task(CLIB.ppf_Notification_MarkAsRead(notificationID)); + } + + Debug.LogError(CoreService.NotInitializedError); + return null; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Notification.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Notification.cs.meta new file mode 100644 index 0000000..c0f7fb1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Notification.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b4c79e1681394a0292f762df49b5cdd4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Presence.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Presence.cs new file mode 100644 index 0000000..843ead4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Presence.cs @@ -0,0 +1,502 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Generic; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + */ + public static class PresenceService + { + /// + /// Gets a list of invitable users for the current logged-in user. + /// @note Currently, only invitable friends will be returned. + /// + /// Restricts the scope of friends returned. If no user ID is passed, all friends will + /// be returned. If specific user IDs are passed, the information about specified friends will be returned. + /// + /// + /// A list of friends that can be invited to the current destination. + /// + public static Task GetInvitableUsers(InviteOptions options) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_GetInvitableUsers((IntPtr) options)); + } + + /// + /// Gets a list of invited users for the current logged-in user. + /// You need set Presence before call this function. + /// + /// + /// A list of users that have been invited. + /// + public static Task GetSentInvites() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_GetSentInvites()); + } + + /// + /// Get the next page of invited users. + /// + /// The current page of invited users. + /// The next page of invited users. + public static Task GetNextApplicationInviteListPage(ApplicationInviteList list) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (!list.HasNextPage) + { + Debug.LogWarning("GetNextApplicationInviteListPage: List has no next page"); + return null; + } + + if (!String.IsNullOrEmpty(list.NextPageParam)) + { + Debug.LogWarning("GetNextApplicationInviteListPage: list.NextPageParam is empty"); + return null; + } + + return new Task(CLIB.ppf_Presence_GetNextApplicationInviteArrayPage(list.NextPageParam)); + } + + /// + /// Invites specified user(s) to the current destination. + /// + /// The ID(s) of the user(s) to invite. + public static Task SendInvites(string[] userIds) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (userIds == null) + userIds = Array.Empty(); + return new Task(CLIB.ppf_Presence_SendInvites(userIds)); + } + + /// Sets presence data for the current logged-in user. + /// Presence-related options, including: + /// * `DestinationApiName`: string, the API name of the destination. + /// * `IsJoinable`: bool, + /// * `true`: joinable + /// * `false`: not joinable + /// * `LobbySessionId`: string, a lobby session ID identifies a user group or team. Users with the same lobby session ID can play together or form a team in a game. + /// * `MatchSessionId`: string, a match session ID identifies all users within a same destination, such as a map or a level. Users with different lobby session IDs will have the same match session ID when playing the same match. + /// * `Extra`: string, extra presence data defined by the developer. + /// + public static Task Set(PresenceOptions options) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_Set((IntPtr) options)); + } + + /// @deprecated SetDestination can be replaced by \ref Set() + /// + /// Replaces the current logged-in user's destination with the provided one. + /// @note Other presence parameter settings will remain the same. + /// + /// The API name of the new destination. + [Obsolete("SetDestination can be replaced by Set()", false)] + public static Task SetDestination(string apiName) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_SetDestination(apiName)); + } + + /// @deprecated SetIsJoinable can be replaced by \ref Set() + /// Sets whether the current logged-in user is joinable. + /// @note Other presence parameter settings will remain the same. If the user's destination or session + /// ID has not been set, the user cannot be set as joinable. + /// Defines whether the user is joinable: + /// * `true`: joinable + /// * `false`: not joinable + /// + [Obsolete("SetIsJoinable can be replaced by Set()", false)] + public static Task SetIsJoinable(bool joinable) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_SetIsJoinable(joinable)); + } + + /// @deprecated SetLobbySession can be replaced by \ref Set() + /// + /// Replaces the current logged-in user's lobby session ID with the provided one. + /// @note Other presence parameter settings will remain the same. + /// + /// The new lobby session ID. + [Obsolete("SetLobbySession can be replaced by Set()", false)] + public static Task SetLobbySession(string lobbySessionId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_SetLobbySession(lobbySessionId)); + } + + /// @deprecated SetMatchSession can be replaced by \ref Set() + /// + /// Replaces the current logged-in user's match session ID with the provided one. + /// @note Other presence parameter settings will remain the same. + /// + /// The new match session ID. + [Obsolete("SetMatchSession can be replaced by Set()", false)] + public static Task SetMatchSession(string matchSessionId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_SetMatchSession(matchSessionId)); + } + + /// @deprecated SetExtra can be replaced by \ref Set() + /// + /// Sets extra presence data for the current logged-in user. + /// + /// The extra presence data, which is defined by the developer and will be returned in the user's presence information. + [Obsolete("SetExtra can be replaced by Set()", false)] + public static Task SetExtra(string extra) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_SetExtra(extra)); + } + + /// + /// Clears presence data for the current logged-in user. + /// @note You need to clear a user's presence data when the user exits your app, leaves a specific destination within the app, or does not want others to see their destination and status. + /// + public static Task Clear() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_Clear()); + } + + /// + /// Gets a list of destinations created on the PICO Developer Platform. + /// + /// The list of destinations. + public static Task GetDestinations() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_GetDestinations()); + } + + /// + /// Gets the next page of destinations. + /// + /// The current page of destinations. + /// The next page of destinations. + public static Task GetNextDestinationListPage(DestinationList destinationList) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_GetNextDestinationArrayPage(destinationList.NextPageParam)); + } + + /// + /// Launches the invite panel provided in the PICO Friends app. Users can invite other people on the panel. + /// @note Before calling this method, you should set presence data correctly. + /// + /// Returns a message. Check `Message.Error` to see whether the panel has been successfully launched. + public static Task LaunchInvitePanel() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Presence_LaunchInvitePanel()); + } + + /// + /// Shares a video made of images to Douyin (a video app in Mainland China). + /// @note Available in Mainland China only. + /// + /// The local path to images. + /// Returns a message. Check `Message.Error` to see whether the video has been successfully shared. + public static Task ShareVideoByImages(List imagePaths) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + var options = new ShareMediaOptions(); + foreach (var imagePath in imagePaths) + { + options.AddImagePath(imagePath); + } + + options.SetShareMediaType(ShareMediaType.Image); + return new Task(CLIB.ppf_Presence_ShareMedia((IntPtr) options)); + } + + /// + /// Shares a video to Douyin (a video app in Mainland China). + /// @note Available in Mainland China only. + /// + /// The local path to the video. + /// The local path to the video thumbnail. + /// If not defined, the first frame of the video will become the thumbnail. + /// + /// Returns a message. Check `Message.Error` to see whether the video has been successfully shared. + public static Task ShareVideo(string videoPath, string videoThumbPath) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + var options = new ShareMediaOptions(); + options.SetShareMediaType(ShareMediaType.Video); + options.SetVideoPath(videoPath); + options.SetVideoThumbPath(videoThumbPath); + return new Task(CLIB.ppf_Presence_ShareMedia((IntPtr) options)); + } + + /// When the user clicks on the invitation message, the system will launch your app and + /// the callback will be triggered. Read the fields of \ref Pico.Platform.Models.PresenceJoinIntent + /// to figure out where the user wants to go. If the user is unable to go there, + /// show the user the info about why they cannot go there. + public static void SetJoinIntentReceivedNotificationCallback(Message.Handler callback) + { + Looper.RegisterNotifyHandler( + MessageType.Notification_Presence_JoinIntentReceived, + callback + ); + } + } + + public class ShareMediaOptions + { + public ShareMediaOptions() + { + Handle = CLIB.ppf_ShareMediaOptions_Create(); + } + + + public void SetShareMediaType(ShareMediaType value) + { + CLIB.ppf_ShareMediaOptions_SetShareMediaType(Handle, value); + } + + + public void SetVideoPath(string value) + { + CLIB.ppf_ShareMediaOptions_SetVideoPath(Handle, value); + } + + + public void SetVideoThumbPath(string value) + { + CLIB.ppf_ShareMediaOptions_SetVideoThumbPath(Handle, value); + } + + + public void AddImagePath(string ele) + { + CLIB.ppf_ShareMediaOptions_AddImagePath(Handle, ele); + } + + public void ClearImagePaths() + { + CLIB.ppf_ShareMediaOptions_ClearImagePaths(Handle); + } + + + public void SetShareAppType(ShareAppType value) + { + CLIB.ppf_ShareMediaOptions_SetShareAppType(Handle, value); + } + + /// For passing to native C + public static explicit operator IntPtr(ShareMediaOptions options) + { + return options != null ? options.Handle : IntPtr.Zero; + } + + ~ShareMediaOptions() + { + CLIB.ppf_ShareMediaOptions_Destroy(Handle); + } + + IntPtr Handle; + } + + public class PresenceOptions + { + public PresenceOptions() + { + Handle = CLIB.ppf_PresenceOptions_Create(); + } + + /// + /// Sets a destination for the current logged-in user. + /// + /// The API name of the destination. + public void SetDestinationApiName(string value) + { + CLIB.ppf_PresenceOptions_SetDestinationApiName(Handle, value); + } + + /// + /// Sets whether the current logged-in user is joinable. + /// + /// + /// * `true`: joinable + /// * `false`: not joinable + /// + public void SetIsJoinable(bool value) + { + CLIB.ppf_PresenceOptions_SetIsJoinable(Handle, value); + } + + /// + /// Sets a lobby session ID for the current logged-in user. + /// + /// The lobby session ID. + public void SetLobbySessionId(string value) + { + CLIB.ppf_PresenceOptions_SetLobbySessionId(Handle, value); + } + + /// + /// Sets a match session ID for the current logged-in user. + /// + /// The match session ID. + public void SetMatchSessionId(string value) + { + CLIB.ppf_PresenceOptions_SetMatchSessionId(Handle, value); + } + + /// + /// Sets extra presence data for the current logged-in user. + /// + /// Extra presence data defined by the developer. + public void SetExtra(string value) + { + CLIB.ppf_PresenceOptions_SetExtra(Handle, value); + } + + + /// For passing to native C + public static explicit operator IntPtr(PresenceOptions options) + { + return options != null ? options.Handle : IntPtr.Zero; + } + + ~PresenceOptions() + { + CLIB.ppf_PresenceOptions_Destroy(Handle); + } + + IntPtr Handle; + } + + public class InviteOptions + { + public InviteOptions() + { + Handle = CLIB.ppf_InviteOptions_Create(); + } + + + public void AddSuggestedUser(string ele) + { + CLIB.ppf_InviteOptions_AddSuggestedUser(Handle, ele); + } + + public void ClearSuggestedUsers() + { + CLIB.ppf_InviteOptions_ClearSuggestedUsers(Handle); + } + + + /// For passing to native C + public static explicit operator IntPtr(InviteOptions options) + { + return options != null ? options.Handle : IntPtr.Zero; + } + + ~InviteOptions() + { + CLIB.ppf_InviteOptions_Destroy(Handle); + } + + IntPtr Handle; + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Presence.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Presence.cs.meta new file mode 100644 index 0000000..37f426e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Presence.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ec5d2740554cc9147b92daecb097798d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/RTC.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/RTC.cs new file mode 100644 index 0000000..7f95e01 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/RTC.cs @@ -0,0 +1,978 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Generic; +using AOT; +using Pico.Platform.Models; +using UnityEngine; +using UnityEngine.Android; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + * + * Real-time communications (RTC) technology enables users in the same room to communicate with each other through voice chat. + * + * RTC service uses a centralized communication structure instead of an end-to-end one. After users have joined a room and enabled voice chat, the microphone keeps capturing audio data from users and uploading the data to the RTC server. Then, the RTC server transmits the audio data to each client in the room, and the client broadcasts the audio data received. + */ + public static class RtcService + { + /// + /// Initializes the RTC engine. + /// @note You should call this method before using the RTC service. + /// + /// The status that indicates whether the initialization is successful. + public static RtcEngineInitResult InitRtcEngine() + { + if (Application.platform == RuntimePlatform.Android && !Permission.HasUserAuthorizedPermission(Permission.Microphone)) + { + Permission.RequestUserPermission(Permission.Microphone); + } + + return CLIB.ppf_Rtc_InitRtcEngine(); + } + + /// + /// Gets the token required by \ref JoinRoom. + /// + /// + /// The ID of the room that the token is for. + /// The ID of the user that the token is for. + /// The time-to-live (ttl) of the token. The unit is seconds. + /// The user will be kicked out from the room after ttl seconds. + /// + /// The dictionary that maps privilege to ttl. The unit is seconds. + public static Task GetToken(string roomId, string userId, int ttl, Dictionary privileges) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + var tokenOption = new RtcGetTokenOptions(); + tokenOption.SetRoomId(roomId); + tokenOption.SetUserId(userId); + tokenOption.SetTtl(ttl); + if (privileges != null) + { + foreach (var i in privileges) + { + tokenOption.SetPrivileges(i.Key, i.Value); + } + } + + return new Task(CLIB.ppf_Rtc_GetToken((IntPtr) tokenOption)); + } + + /// + /// Joins a user to a specified room. + /// + /// @note + /// * If code `0` is returned, you should use \ref SetOnJoinRoomResultCallback to handle the + /// final join room result. + /// * If a non-zero code is returned, you should call \ref LeaveRoom firstly to join the room in the next time. + /// + /// The ID of the room to join. + /// The ID of user. + /// The token required for joining the room. You can get the token by calling \ref GetToken. + /// Room type: + /// * `0`: communication room + /// * `1`: live broadcasting room + /// * `2`: game room + /// * `3`: cloud game room + /// * `4`: low-latency room + /// + /// Whether to automatically subscribe to the audio in the room: + /// * `true`: subscribe + /// * `false`: do not subscribe + /// + /// `0` indicates success, and other codes indicate failure. + /// | Code| Description | + /// |---|---| + /// |0|Success.| + /// |-1|Invalid `roomID` or `userId`.| + /// |-2|The user is already in this room.| + /// |-3|The RTC engine is null. You should initialize the RTC engine before joining a room.| + /// |-4|Creating the room failed.| + /// + public static int JoinRoom(string roomId, string userId, string token, RtcRoomProfileType roomProfileType, bool isAutoSubscribeAudio) + { + var roomOption = new RtcRoomOptions(); + roomOption.SetRoomId(roomId); + roomOption.SetUserId(userId); + roomOption.SetToken(token); + roomOption.SetRoomProfileType(roomProfileType); + roomOption.SetIsAutoSubscribeAudio(isAutoSubscribeAudio); + return CLIB.ppf_Rtc_JoinRoom((IntPtr) roomOption); + } + + /// + /// Joins a user to a room. + /// + /// The options to join a room. + /// Retry to join the room if the request returns error code `-2` (the user is already in the room). + /// `0` indicates success, and other codes indicate failure. + /// | Code| Description | + /// |---|---| + /// |0|Success.| + /// |-1|Invalid `roomID` or `userId`.| + /// |-2|The user is already in this room.| + /// |-3|The RTC engine is null. You should initialize the RTC engine before joining a room.| + /// |-4|Creating the room failed.| + /// + public static int JoinRoom2(RtcRoomOptions joinRoomOptions, bool leaveIfInRoom = true) + { + var res = CLIB.ppf_Rtc_JoinRoom((IntPtr) joinRoomOptions); + if (leaveIfInRoom && res == -2) + { + LeaveRoom(joinRoomOptions.RoomId); + res = CLIB.ppf_Rtc_JoinRoom((IntPtr) joinRoomOptions); + } + + return res; + } + + /// + /// Leaves a room and retries to join it when the previous request fails and returns error code `-2` (the user is already in this room). + /// + /// The ID of the room to join. + /// The ID of user. + /// The token required for joining the room. You can get the token by calling `GetToken`. + /// Room type: + /// * `0`: communication room + /// * `1`: live broadcasting room + /// * `2`: game room + /// * `3`: cloud game room + /// * `4`: low-latency room + /// + /// Whether to automatically subscribe to the audio in the room: + /// * `true`: subscribe + /// * `false`: do not subscribe + /// + /// `0` indicates success, and other codes indicate failure. + /// | Code| Description | + /// |---|---| + /// |0|Success.| + /// |-1|Invalid `roomID` or `userId`.| + /// |-2|The user is already in this room.| + /// |-3|The RTC engine is null. You should initialize the RTC engine before joining a room.| + /// |-4|Creating the room failed.| + /// + public static int JoinRoomWithRetry(string roomId, string userId, string token, RtcRoomProfileType roomProfileType, bool isAutoSubscribeAudio) + { + var roomOption = new RtcRoomOptions(); + roomOption.SetRoomId(roomId); + roomOption.SetUserId(userId); + roomOption.SetToken(token); + roomOption.SetRoomProfileType(roomProfileType); + roomOption.SetIsAutoSubscribeAudio(isAutoSubscribeAudio); + var res = CLIB.ppf_Rtc_JoinRoom((IntPtr) roomOption); + if (res == -2) + { + LeaveRoom(roomId); + res = CLIB.ppf_Rtc_JoinRoom((IntPtr) roomOption); + } + + return res; + } + + /// + /// Leaves a specified room. + /// + /// The ID of the room to leave. + /// `0` indicates success, and other codes indicate failure. + /// + /// | Code| Description | + /// |---|---| + /// |0|Success.| + /// |-1|The RTC engine is not initialized.| + /// |-2|The user is not in the room.| + /// + public static int LeaveRoom(string roomId) + { + return CLIB.ppf_Rtc_LeaveRoom(roomId); + } + + /// + /// Sets the audio playback device. + /// + /// The device ID. + public static void SetAudioPlaybackDevice(RtcAudioPlaybackDevice device) + { + CLIB.ppf_Rtc_SetAudioPlaybackDevice(device); + } + + /// + /// Unsubscribing from all the audio streams of a room, thereby making the local user unable to hear anything from the room. + /// + /// The ID of the room whose audio streams are to be unsubscribed from. + public static void RoomPauseAllSubscribedStream(string roomId) + { + CLIB.ppf_Rtc_RoomPauseAllSubscribedStream(roomId, RtcPauseResumeMediaType.Audio); + } + + /// + /// Resubscribing to all the audio streams of a room, thereby making the local user hear the voice from every in-room user. + /// + /// The ID of the room whose audio streams are to be resubscribed to. + public static void RoomResumeAllSubscribedStream(string roomId) + { + CLIB.ppf_Rtc_RoomResumeAllSubscribedStream(roomId, RtcPauseResumeMediaType.Audio); + } + + public delegate int ProcessAudioFrameFunction(RtcAudioFrame frame); + + static ProcessAudioFrameFunction audioProcessor = null; + + [MonoPInvokeCallback(typeof(CLIB.RtcProcessAudioFrameFunction))] + static int InnerAudioProcessor(IntPtr ptr) + { + if (audioProcessor != null) + { + return audioProcessor(new RtcAudioFrame(ptr)); + } + + return 0; + } + + /// + /// Register local audio processor. You can use this function to modify the recorded audio. + /// + /// The processor function. + /// If it returns 0,means the function didn't change the data. + /// If its return value is negative integer, means the function encounters error. + /// If its return value is positive integer, means the function handled successfully. + /// + /// The channel of the audio you want to process. + /// The sample rate of the audio you want to process. + public static void RegisterLocalAudioProcessor(ProcessAudioFrameFunction processor, RtcAudioChannel channel, RtcAudioSampleRate sampleRate) + { + // here should hold the processor to avoid GC delete the processor and `InnerAudioProcessor` will call this. + audioProcessor = processor; + CLIB.ppf_Rtc_RegisterLocalAudioProcessor(InnerAudioProcessor, channel, sampleRate); + } + + /// + /// Enables audio properties report. Once enabled, you will regularly receive audio report data. + /// + /// + /// The interval (in milliseconds) between one report and the next. You can set this parameter to `0` or any negative integer to stop receiving audio properties report. + /// For any integer between (0, 100), the SDK will regard it as invalid and automatically set this parameter to `100`; any integer equal to or greater than `100` is valid. + /// + public static void EnableAudioPropertiesReport(int interval) + { + var conf = new RtcAudioPropertyOptions(); + conf.SetInterval(interval); + CLIB.ppf_Rtc_EnableAudioPropertiesReport((IntPtr) conf); + } + + /// + /// Publishes the local audio stream to a room, thereby making the local user's voice heard by other in-room users. + /// @note + /// * A user can only publish the local audio stream to one room at the same time. + /// * If a user wants to publish the local audio stream to another room, + /// `UnPublishRoom(oldRoomId)` should be called first to stop publishing the local audio stream to the current room and then `Publish(newRoomId)` should be called. + /// + /// The ID of the room that the local audio stream is published to. + public static void PublishRoom(string roomId) + { + CLIB.ppf_Rtc_RoomPublishStream(roomId, RtcMediaStreamType.Audio); + } + + /// + /// Stops publishing the local audio stream to a room, so other in-room users are unable to hear the local user's voice. + /// + /// The ID of the room to stop publishing the local audio stream to. + public static void UnPublishRoom(string roomId) + { + CLIB.ppf_Rtc_RoomUnPublishStream(roomId, RtcMediaStreamType.Audio); + } + + /// + /// Destroys a specified room. The resources occupied by the room will be released after destruction. + /// + /// The ID of the room to destroy. + public static void DestroyRoom(string roomId) + { + CLIB.ppf_Rtc_DestroyRoom(roomId); + } + + /// + /// Starts audio capture via the microphone. + /// + public static void StartAudioCapture() + { + CLIB.ppf_Rtc_StartAudioCapture(); + } + + /// + /// Stops audio capture. + /// + public static void StopAudioCapture() + { + CLIB.ppf_Rtc_StopAudioCapture(); + } + + /// + /// Sets the volume of the captured audio. + /// + /// The target volume. The valid value ranges from `0` to `400`. `100` indicates keeping the original volume. + public static void SetCaptureVolume(int volume) + { + CLIB.ppf_Rtc_SetCaptureVolume(RtcStreamIndex.Main, volume); + } + + /// + /// Sets the playback volume. + /// + /// The target volume. The valid value ranges from `0` to `400`. `100` indicates keeping the original volume. + public static void SetPlaybackVolume(int volume) + { + CLIB.ppf_Rtc_SetPlaybackVolume(volume); + } + + /// + /// Switches the in-ear monitoring mode on/off. Once the in-ear monitoring mode is enabled, one can hear their own voice. + /// + /// Whether to switch the in-ear monitoring mode on/off: + /// * `0`: off + /// * `1`: on + /// + public static void SetEarMonitorMode(RtcEarMonitorMode mode) + { + CLIB.ppf_Rtc_SetEarMonitorMode(mode); + } + + /// + /// Sets the volume for in-ear monitoring. + /// + /// The target volume. The valid value range from `0` to `400`. + public static void SetEarMonitorVolume(int volume) + { + CLIB.ppf_Rtc_SetEarMonitorVolume(volume); + } + + /// @deprecated MuteLocalAudio() can be replaced by \ref UnPublishRoom(string roomId) + /// + /// Mutes local audio to make one's voice unable to be heard by other in-room users. + /// + /// The state of local audio: + /// * `0`: off + /// * `1`: on + /// + [Obsolete("MuteLocalAudio can be replaced by UnPublishRoom(roomId)", true)] + public static void MuteLocalAudio(RtcMuteState rtcMuteState) + { + CLIB.ppf_Rtc_MuteLocalAudio(rtcMuteState); + } + + /// + /// Updates the token in a room. + /// + /// When a token's ttl is about to expire, you will receive a notification + /// through \ref SetOnTokenWillExpire. If you still want to stay in the room, + /// you should call \ref GetToken to get a new token and call \ref UpdateToken + /// with the new token. If you don't update token timely,you will be kicked + /// out from the room. + /// + /// The ID of the room you are in. + /// The token to update. + public static void UpdateToken(string roomId, string token) + { + CLIB.ppf_Rtc_UpdateToken(roomId, token); + } + + /// + /// Sets the audio scenario. + /// @note Different audio scenarios can impact the voice quality and how the earphones work. + /// + /// The audio scenario type: + /// * `0`: Music + /// * `1`: HighQualityCommunication + /// * `2`: Communication + /// * `3`: Media + /// * `4`: GameStreaming + /// + public static void SetAudioScenario(RtcAudioScenarioType scenarioType) + { + CLIB.ppf_Rtc_SetAudioScenario(scenarioType); + } + + /// + /// Sets the volume for a remote user in a room. + /// + /// The ID of the room. + /// The ID of the remote user. + /// The volume to set for the remote user, which ranges from `0` to `400` and `100` indicates the default volume. + public static void RoomSetRemoteAudioPlaybackVolume(string roomId, string userId, int volume) + { + CLIB.ppf_Rtc_RoomSetRemoteAudioPlaybackVolume(roomId, userId, volume); + } + + /// + /// Subscribes to the audio stream of a specific user in a room. + /// + /// The ID of the room. + /// The ID of the user in the room. + public static void RoomSubscribeStream(string roomId, string userId) + { + CLIB.ppf_Rtc_RoomSubscribeStream(roomId, userId, RtcMediaStreamType.Audio); + } + + /// + /// Unsubscribes from the audio stream of a specific user in a room. + /// + /// The ID of the room. + /// The ID of the user in the room. + public static void RoomUnSubscribeStream(string roomId, string userId) + { + CLIB.ppf_Rtc_RoomUnsubscribeStream(roomId, userId, RtcMediaStreamType.Audio); + } + + /// + /// Sends a binary message to a room. All in-room users will receive this message. + /// + /// The message's bytes size shouldn't be greater than 64kB. + /// + /// The ID of the room. + /// The binary message to be sent. + /// A room message ID of the int64 type, which is automatically generated and incremented. + public static long SendRoomBinaryMessage(string roomId, byte[] message) + { + var ptr = new PtrManager(message); + var ans = CLIB.ppf_Rtc_SendRoomBinaryMessage(roomId, ptr.ptr, message.Length); + ptr.Free(); + return ans; + } + + /// + /// Sends a text message to a room. All in-room users will receive this message. + /// + /// The message's bytes size shouldn't be greater than 64kB. + /// + /// The ID of the room. + /// The message to be sent. + /// A room message ID of the int64 type, which is automatically generated and incremented. + public static long SendRoomMessage(string roomId, string message) + { + return CLIB.ppf_Rtc_SendRoomMessage(roomId, message); + } + + /// + /// Sends a binary message to a user. Only the user can receive this message. + /// + /// The message's bytes size shouldn't be greater than 64kB. + /// + /// The ID of the room the user is in. + /// The ID of the user the message is sent to. + /// The message to be sent. + /// A user message ID of the int64 type, which is automatically generated and incremented. + public static long SendUserBinaryMessage(string roomId, string userId, byte[] message) + { + var ptr = new PtrManager(message); + var ans = CLIB.ppf_Rtc_SendUserBinaryMessage(roomId, userId, ptr.ptr, message.Length); + ptr.Free(); + return ans; + } + + /// + /// Sends a text message to a user. Only the user can receive this message. + /// The message's bytes size shouldn't be greater than 64kB. + /// + /// The ID of the room the user is in. + /// The ID of the user the message is sent to. + /// The message to be sent. + /// A user message ID of the int64 type, which is automatically generated and incremented. + public static long SendUserMessage(string roomId, string userId, string message) + { + return CLIB.ppf_Rtc_SendUserMessage(roomId, userId, message); + } + + /// + /// Sends stream sync info. The sync info data will be sent in the same packet with the audio data. Users who subscribe to this audio stream will receive the stream sync info message. + /// + /// The stream sync info. + /// The stream sync info will be sent repeatedly for the times set in `repeatCount`. + /// It's designed to avoid losing package and ensuring that the sync info can be sent successfully. + /// However, if `repeatCount` is too large, it will cause the sync info to pile up in the queue. + /// Setting this parameter to `0` is recommended. + /// + /// Any code equal to or below `0` indicates success, and others codes indicate failure. + /// | Code | Description| + /// |---|---| + /// |>=0|Send successfully.Indicates the times sent successfully.| + /// |-1|Send Failed. Message length exceeded 255B| + /// |-2|Send Failed. The data is empty.| + /// |-3|Send Failed. Send sync info with a un-publish screen stream.| + /// |-4|Send Failed. Send sync info with a un-publish audio stream.| + /// + public static int SendStreamSyncInfo(byte[] data, int repeatCount) + { + var config = new RtcStreamSyncInfoOptions(); + config.SetRepeatCount(repeatCount); + config.SetStreamIndex(RtcStreamIndex.Main); + config.SetStreamType(RtcSyncInfoStreamType.Audio); + var ptr = new PtrManager(data); + var ans = CLIB.ppf_Rtc_SendStreamSyncInfo(ptr.ptr, data.Length, (IntPtr) config); + ptr.Free(); + return ans; + } + + /// + /// Sets the callback to get notified when the token is about to expire. + /// @note The token will expire 30 seconds after you receive this notification. + /// * If you still want to stay in the room, you can get a new token by calling `UpdateToken`. + /// * If you do not update the token after receiving this notification, you will be kicked out of the room in 30 seconds. + /// + /// The callback function, the string in the message indicates the room ID. + public static void SetOnTokenWillExpire(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnTokenWillExpire, handler); + } + + /// + /// Sets the callback to get notified when a to-room message is received. + /// + /// The callback handler. + public static void SetOnRoomMessageReceived(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnRoomMessageReceived, handler); + } + + /// + /// Sets the callback to get notified when a to-room binary message is received. + /// + /// The callback handler. + public static void SetOnRoomBinaryMessageReceived(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnRoomBinaryMessageReceived, handler); + } + + /// + /// Sets the callback to get notified when a to-user message is received. + /// + /// The callback handler. + public static void SetOnUserMessageReceived(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnUserMessageReceived, handler); + } + + /// + /// Sets the callback to get notified when a to-user binary message is received. + /// + /// The callback handler. + public static void SetOnUserBinaryMessageReceived(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnUserBinaryMessageReceived, handler); + } + + /// + /// Sets the callback to get whether the to-room message is sent successfully. + /// + /// The callback handler. + public static void SetOnRoomMessageSendResult(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnRoomMessageSendResult, handler); + } + + /// + /// Sets the callback to get whether the to-user message is sent successfully. + /// + /// + public static void SetOnUserMessageSendResult(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnUserMessageSendResult, handler); + } + + /// + /// Sets the callback to get notified when a remote user publishes audio stream. + /// + /// The callback handler. + public static void SetOnUserPublishStream(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnUserPublishStream, handler); + } + + /// + /// Sets the callback to get notified when a remote user cancels publishing audio stream. + /// + /// The callback handler. + public static void SetOnUserUnPublishStream(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnUserUnPublishStream, handler); + } + + /// + /// Sets the callback to get notified when the stream sync info is received. + /// + /// The callback handler. + public static void SetOnStreamSyncInfoReceived(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnStreamSyncInfoReceived, handler); + } + + /// + /// Sets the callback of `JoinRoom` to get `RtcJoinRoomResult`. + /// + /// The callback handler. + public static void SetOnJoinRoomResultCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnJoinRoom, handler); + } + + /// + /// Sets the callback of `LeaveRoom` to get `RtcLeaveRoomResult`. + /// + /// The callback handler. + public static void SetOnLeaveRoomResultCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnLeaveRoom, handler); + } + + /// + /// Sets the callback to get notified when someone has joined the room. + /// + /// The callback handler. + public static void SetOnUserJoinRoomResultCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnUserJoinRoom, handler); + } + + /// + /// Sets the callback to get notified when someone has left the room. + /// + /// The callback handler. + public static void SetOnUserLeaveRoomResultCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnUserLeaveRoom, handler); + } + + /// + /// Sets the callback to regularly get room statistics after joining a room. + /// + /// + /// The callback handler. + public static void SetOnRoomStatsCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnRoomStats, handler); + } + + /// + /// Sets the callback to get warning messages from the RTC engine. + /// The warning codes and descriptions are given below. + /// + /// |Warning Code|Description| + /// |---|---| + /// |-2001|Joining the room failed.| + /// |-2002|Publishing audio stream failed.| + /// |-2003|Subscribing to the audio stream failed because the stream cannot be found.| + /// |-2004|Subscribing to the audio stream failed due to server error.| + /// |-2013|When the people count in the room exceeds 500, the client will not be informed of user join and leave info anymore.| + /// |-5001|The camera permission is missing.| + /// |-5002|The microphone permission is missing.| + /// |-5003|Starting the audio capture device failed.| + /// |-5004|Starting the audio playback device failed.| + /// |-5005|No available audio capture device.| + /// |-5006|No available audio playback device.| + /// |-5007|The audio capture device failed to capture valid audio data.| + /// |-5008|Invalid media device operation.| + /// + /// The callback handler. + public static void SetOnWarnCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnWarn, handler); + } + + /// + /// Sets the callback to get error messages from the RTC engine. + /// The error codes and descriptions are given below. + /// + /// |Error Code|Description| + /// |---|---| + /// |-1000|Invalid token.| + /// |-1001|Unknown error.| + /// |-1002|No permission to publish audio stream.| + /// |-1003|No permission to subscribe audio stream.| + /// |-1004|A user with the same user Id joined this room. You are kicked out of the room.| + /// |-1005|Incorrect configuration on the Developer Platform.| + /// |-1007|Invalid room id.| + /// |-1009|Token expired. You should get a new token and join the room.| + /// |-1010|Token is invalid when you call `UpdateToken`| + /// |-1011|The room is dismissed and all user is moved out from the room.| + /// |-1070|Subscribing to audio stream failed. Perhaps the number of subscribed audio streams has exceeded the limit.| + /// + /// The callback handler. + public static void SetOnErrorCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnError, handler); + } + + /// + /// Sets the callback to get warning messages from the room. + /// + /// The callback handler. + public static void SetOnRoomWarnCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnRoomWarn, handler); + } + + /// + /// Sets the callback to get error messages from the room. + /// + /// The callback handler. + public static void SetOnRoomErrorCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnRoomError, handler); + } + + /// + /// Sets the callback to get notified when the state of the connection to the RTC server has changed. + /// + /// The callback handler. + public static void SetOnConnectionStateChangeCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnConnectionStateChange, handler); + } + + /// + /// Sets the callback to get notified when the user has muted local audio. + /// + /// The callback handler. + [Obsolete("SetOnUserMuteAudio is deprecated,please use SetOnUserPublishStream/SetOnUserUnPublishStream", true)] + public static void SetOnUserMuteAudio(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnUserMuteAudio, handler); + } + + /// + /// Sets the callback to get notified when the user has started audio capture. + /// + /// When a remote user called \ref StartAudioCapture,RTC engine will call this callback. + /// + /// The callback handler. + public static void SetOnUserStartAudioCapture(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnUserStartAudioCapture, handler); + } + + /// + /// Sets the callback to get notified when the user has stopped audio capture. + /// + /// When a remote user called \ref StopAudioCapture,RTC engine will call this callback. + /// + /// The callback handler. + public static void SetOnUserStopAudioCapture(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnUserStopAudioCapture, handler); + } + + /// + /// Sets the callback to get notified when the audio playback device has been changed. + /// + /// The callback handler. + public static void SetOnAudioPlaybackDeviceChange(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnAudioPlaybackDeviceChanged, handler); + } + + /// + /// Sets the callback to receive local audio report. + /// Rtc engine will call this callback periodically once you call \ref EnableAudioPropertiesReport. + /// + /// The callback handler. + public static void SetOnLocalAudioPropertiesReport(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnLocalAudioPropertiesReport, handler); + } + + /// + /// Sets the callback to receive remote audio report. + /// Rtc engine will call this callback periodically once you call \ref EnableAudioPropertiesReport. + /// + /// The callback handler. + public static void SetOnRemoteAudioPropertiesReport(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Rtc_OnRemoteAudioPropertiesReport, handler); + } + } + + public class RtcStreamSyncInfoOptions + { + private IntPtr Handle; + + public RtcStreamSyncInfoOptions() + { + Handle = CLIB.ppf_RtcStreamSyncInfoOptions_Create(); + } + + public void SetRepeatCount(int value) + { + CLIB.ppf_RtcStreamSyncInfoOptions_SetRepeatCount(Handle, value); + } + + public void SetStreamIndex(RtcStreamIndex value) + { + CLIB.ppf_RtcStreamSyncInfoOptions_SetStreamIndex(Handle, value); + } + + public void SetStreamType(RtcSyncInfoStreamType value) + { + CLIB.ppf_RtcStreamSyncInfoOptions_SetStreamType(Handle, value); + } + + public static explicit operator IntPtr(RtcStreamSyncInfoOptions options) + { + return options != null ? options.Handle : IntPtr.Zero; + } + + ~RtcStreamSyncInfoOptions() + { + CLIB.ppf_RtcStreamSyncInfoOptions_Destroy(Handle); + } + } + + public class RtcRoomOptions + { + public string RoomId; + + public RtcRoomOptions() + { + Handle = CLIB.ppf_RtcRoomOptions_Create(); + } + + + public void SetRoomProfileType(RtcRoomProfileType value) + { + CLIB.ppf_RtcRoomOptions_SetRoomProfileType(Handle, value); + } + + + public void SetIsAutoSubscribeAudio(bool value) + { + CLIB.ppf_RtcRoomOptions_SetIsAutoSubscribeAudio(Handle, value); + } + + public void SetRoomId(string value) + { + this.RoomId = value; + CLIB.ppf_RtcRoomOptions_SetRoomId(Handle, value); + } + + + public void SetUserId(string value) + { + CLIB.ppf_RtcRoomOptions_SetUserId(Handle, value); + } + + + public void SetUserExtra(string value) + { + CLIB.ppf_RtcRoomOptions_SetUserExtra(Handle, value); + } + + + public void SetToken(string value) + { + CLIB.ppf_RtcRoomOptions_SetToken(Handle, value); + } + + /// For passing to native C + public static explicit operator IntPtr(RtcRoomOptions options) + { + return options != null ? options.Handle : IntPtr.Zero; + } + + ~RtcRoomOptions() + { + CLIB.ppf_RtcRoomOptions_Destroy(Handle); + } + + private IntPtr Handle; + } + + public class RtcGetTokenOptions + { + public RtcGetTokenOptions() + { + Handle = CLIB.ppf_RtcGetTokenOptions_Create(); + } + + + public void SetUserId(string value) + { + CLIB.ppf_RtcGetTokenOptions_SetUserId(Handle, value); + } + + + public void SetRoomId(string value) + { + CLIB.ppf_RtcGetTokenOptions_SetRoomId(Handle, value); + } + + public void SetTtl(int value) + { + CLIB.ppf_RtcGetTokenOptions_SetTtl(Handle, value); + } + + public void SetPrivileges(RtcPrivilege key, int value) + { + CLIB.ppf_RtcGetTokenOptions_SetPrivileges(Handle, key, value); + } + + public void ClearPrivileges() + { + CLIB.ppf_RtcGetTokenOptions_ClearPrivileges(Handle); + } + + /// For passing to native C + public static explicit operator IntPtr(RtcGetTokenOptions options) + { + return options != null ? options.Handle : IntPtr.Zero; + } + + ~RtcGetTokenOptions() + { + CLIB.ppf_RtcGetTokenOptions_Destroy(Handle); + } + + private IntPtr Handle; + } + + public class RtcAudioPropertyOptions + { + public IntPtr Handle; + + public RtcAudioPropertyOptions() + { + Handle = CLIB.ppf_RtcAudioPropertyOptions_Create(); + } + + public void SetInterval(int value) + { + CLIB.ppf_RtcAudioPropertyOptions_SetInterval(Handle, value); + } + + ~RtcAudioPropertyOptions() + { + CLIB.ppf_RtcAudioPropertyOptions_Destroy(Handle); + } + + /// For passing to native C + public static explicit operator IntPtr(RtcAudioPropertyOptions options) + { + return options != null ? options.Handle : IntPtr.Zero; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/RTC.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/RTC.cs.meta new file mode 100644 index 0000000..c00165f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/RTC.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5156f6aeca9c5bd4caf2a75e964824db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Room.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Room.cs new file mode 100644 index 0000000..c7dd4cd --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Room.cs @@ -0,0 +1,736 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Generic; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + */ + public static class RoomService + { + /// Gets the room options for create a private room. You can use it when you use \ref RoomService.CreateAndJoinPrivate2. + /// The key/value pairs to add. + /// The room options for create a private room. + public static RoomOptions GetCreatePrivateRoomOptions(Dictionary dataStore) + { + RoomOptions options = new RoomOptions(); + foreach (var data in dataStore) + { + options.SetDataStore(data.Key, data.Value); + } + + return options; + } + + /// Gets the room options for joining or creating a named room. You can use it when you use \ref RoomService.JoinOrCreateNamedRoom. + /// The key/value pairs to add. + /// The name of the named room. + /// The password of the named room. + /// The room options for joining or creating a named room. + public static RoomOptions GetJoinOrCreateNamedRoomOptions(Dictionary dataStore, string name, string password) + { + RoomOptions options = new RoomOptions(); + foreach (var data in dataStore) + { + options.SetDataStore(data.Key, data.Value); + } + + options.SetRoomName(name); + options.SetPassword(password); + + return options; + } + + /// Gets the list of named rooms created for the app. + /// Defines which page of entries to return. The index for the first page is `0`. + /// The number of entries returned on each page. Value range: [5,20]. + /// The request ID of this async function. + /// + /// A message of type `MessageType.Room_GetNamedRooms` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `RoomList`. + /// Extract the payload from the message handle with `Message.Data`. + /// + public static Task GetNamedRooms(int pageIndex, int pageSize) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_GetNamedRooms(pageIndex, pageSize)); + } + + /// Join or create a named room. + /// The join policy of the room. Currently only support 'RoomJoinPolicy Everyone'. + /// Determines whether to create a new room if the named room does not exist: + /// * `true`: create + /// * `false`: do not create + /// + /// The maximum number of users allowed in the room, including the creator. + /// Additional room configuration for this request. + /// The request ID of this async function. + /// + /// A message of type `MessageType.Room_JoinNamed` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `Message.Data`. + /// + public static Task JoinOrCreateNamedRoom(RoomJoinPolicy joinPolicy, bool createIfNotExist, uint maxUsers, RoomOptions options) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_JoinNamed(joinPolicy, createIfNotExist, maxUsers, options.GetHandle())); + } + + /// Launches the invitation flow to let the current user invite friends to a specified room. + /// This launches the system default invite UI where all of the user's friends are displayed. + /// This is intended to be a shortcut for developers not wanting to build their own invite-friends UI. + /// + /// The ID of the room. + /// The request ID of this async function. + /// A message of type `MessageType.Room_LaunchInvitableUserFlow` will be generated in response. + /// Call `message.IsError()` to check if any error has occurred. + /// + public static Task LaunchInvitableUserFlow(UInt64 roomID) + { + if (!CoreService.IsInitialized()) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_LaunchInvitableUserFlow(roomID)); + } + + /// Updates the data store of the current room (the caller should be the room owner). + /// @note Room data stores only allow string values. The maximum key length is 32 bytes and the maximum value length is 64 bytes. + /// If you provide illegal values, this method will return an error. + /// The ID of the room that you currently own (call `Room.OwnerOptional` to check). + /// The key/value pairs to add or update. Null value will clear a given key. + /// The request ID of this async function. + /// | Error Code| Error Message | + /// |---|---| + /// |3006004|change datastore failed: need room owner| + /// + /// A message of type `MessageType.Room_UpdateDataStore` will be generated in response. + /// First call `Message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `Message.Data`. + /// + public static Task UpdateDataStore(UInt64 roomId, Dictionary data) + { + KVPairArray kvarray = new KVPairArray((uint) data.Count); + uint n = 0; + foreach (var d in data) + { + var item = kvarray.GetElement(n); + item.SetKey(d.Key); + item.SetStringValue(d.Value); + n++; + } + + return new Task(CLIB.ppf_Room_UpdateDataStore(roomId, kvarray.GetHandle(), kvarray.Size)); + } + + /// Creates a new private room and joins it. + /// @note This type of room can be obtained by querying the room where + /// a friend is, so it is suitable for playing with friends. + /// + /// Specifies who can join the room: + /// * `0`: nobody + /// * `1`: everybody + /// * `2`: friends of members + /// * `3`: friends of the room owner + /// * `4`: invited users + /// * `5`: unknown + /// + /// The maximum number of members allowed in the room, including the room creator. + /// Room configuration for this request. + /// Request information of type Task, including the request id, and its response message will contain data of type `Room`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006101|room create: unknown error| + /// |3006114|setting of 'room max user' is too large| + /// + /// A message of type `MessageType.Room_CreateAndJoinPrivate2` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task CreateAndJoinPrivate2(RoomJoinPolicy policy, uint maxUsers, RoomOptions roomOptions) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_CreateAndJoinPrivate2(policy, maxUsers, roomOptions.GetHandle())); + } + + /// Gets the information about a specified room. + /// The ID of the room to get information for. + /// Request information of type `Task`, including the request id, and its response message will contain data of type `Room`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006103|invalid room| + /// |3006301|server error: unknown| + /// + /// A message of type `MessageType.Room_Get` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task Get(UInt64 roomId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_Get(roomId)); + } + + /// Gets the data of the room you are currently in. + /// Request information of type `Task`, including the request id, and its response message will contain data of type `Room`. + /// |Error Code| Error Message | + /// |---|---| + /// |3006104|not in room| + /// + /// A message of type `MessageType.Room_GetCurrent` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload with of type `Room`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task GetCurrent() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_GetCurrent()); + } + + /// Gets the current room of the specified user. + /// @note The user's privacy settings may not allow you to access their room. + /// + /// + /// The ID of the user. + /// Request information of type `Task`, including the request id, and its response message will contain data of type `Room`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006104|not in room| + /// |3006009|tgt player is not in game now| + /// |3006301|server error: unknown| + /// + /// A message of type `MessageType.Room_GetCurrentForUser` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task GetCurrentForUser(string userId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_GetCurrentForUser(userId)); + } + + /// Gets a list of members the user can invite to the room. + /// These members are drawn from the user's friends list and recently + /// encountered list, and filtered based on relevance and interests. + /// @note: Only applicable to private rooms and named rooms. + /// + /// + /// Additional configuration for this request. + /// If you pass `null`, the response will return code `0`. + /// Request information of type `Task`, including the request id, and its response message will contain data of type `UserList`. + /// + /// A message of type `MessageType.Room_GetInvitableUsers2` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `UserList`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task GetInvitableUsers2(RoomOptions roomOptions = null) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (roomOptions == null) + { + return new Task(CLIB.ppf_Room_GetInvitableUsers2(IntPtr.Zero)); + } + else + { + return new Task(CLIB.ppf_Room_GetInvitableUsers2(roomOptions.GetHandle())); + } + } + + /// Gets the list of moderated rooms created for the application. + /// + /// Start page index. + /// Page entry number in response (should range from `5` to `20`). + /// Request information of type `Task`, including the request id, and its response message will contain data of type `RoomList`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006301|server error: unknown| + /// + /// A message of type `MessageType.Room_GetModeratedRooms` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `RoomList`, the room info does not contain the `UserList` info. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task GetModeratedRooms(int index, int size) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_GetModeratedRooms(index, size)); + } + + /// Invites a user to the current room. + /// @note The user invited will receive a notification of type `MessageType.Notification_Room_InviteReceived`. + /// + /// + /// The ID of the room. + /// The user's invitation token, which is returned by `RoomService.GetInvitableUsers2()`. + /// Request information of type `Task`, including the request id, and its response message will contain data of type `Room`. + /// + /// A message of type `MessageType.Room_InviteUser` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task InviteUser(UInt64 roomId, string token) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_InviteUser(roomId, token)); + } + + /// Joins the target room and meanwhile leaves the current room. + /// + /// The ID of the room to join. + /// (Optional) Additional room configuration for this request. + /// Request information of type `Task`, including the request id, and its response message will contain data of type `Room`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006401|logic state checking failed| + /// |3006103|invalid room| + /// |3006102|duplicate join room(regarded as normal entry)| + /// |3006106|exceed max room player number| + /// |3006105|illegal enter request(Players outside the legal list enter)| + /// |3006108|room is locked| + /// + /// A message of type `MessageType.Room_Join2` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task Join2(UInt64 roomId, RoomOptions options) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_Join2(roomId, options.GetHandle())); + } + + /// Kicks a user out of a room. For use by homeowners only. + /// + /// The ID of the room. + /// The ID of the user to be kicked (cannot be yourself). + /// The Length of the ban (in seconds). + /// Request information of type `Task`, including the request id, and its response message will contain data of type `Room`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006006|kick user failed: need room owner| + /// |3006007|kick user failed: tgt user is not in the room| + /// |3006008|kick user failed: can not kick self| + /// + /// A message of type `MessageType.Room_KickUser` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task KickUser(UInt64 roomId, string userId, int kickDuration) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_KickUser(roomId, userId, kickDuration)); + } + + /// Leaves the current room. + /// @note The room you are now in will be returned if the request succeeds. + /// + /// The ID of the room. + /// Request information of type `Task`, including the request id, and its response message will contain data of type `Room`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006401|logic state checking failed(e.g. not in the room)| + /// |3006301|server error: unknown| + /// + /// A message of type `MessageType.Room_Leave` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task Leave(UInt64 roomId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_Leave(roomId)); + } + + /// Sets the description of a room. For use by homeowners only. + /// + /// The ID of the room to set description for. + /// The new description of the room. + /// Request information of type `Task`, including the request id, and its response message will contain data of type `Room`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006005|set description failed: need room owner| + /// + /// A message of type `MessageType.Room_SetDescription` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task SetDescription(UInt64 roomId, string description) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_SetDescription(roomId, description)); + } + + /// Locks/unlocks the membership of a room (the caller should be the room owner) to allow/disallow new members from being able to join the room. + /// @note Locking membership will prevent other users from joining the room through `Join2()`, invitations, etc. Users that are in the room at the time of lock will be able to rejoin. + /// + /// The ID of the room to lock/unlock membership for. + /// The new membership status to set for the room: + /// * `0`: Unknown + /// * `1`: lock + /// * `2`: unlock + /// + /// Request information of type `Task`, including the request id, and its response message will contain data of type `Room`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006104|not in room | + /// |3006109|update membership lock: need room owner| + /// + /// A message of type `MessageType.Room_UpdateMembershipLockStatus` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room` + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task UpdateMembershipLockStatus(UInt64 roomId, RoomMembershipLockStatus membershipLockStatus) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_UpdateMembershipLockStatus(roomId, membershipLockStatus)); + } + + /// Modifies the owner of the room, this person needs to be the person in this room. + /// + /// The ID of the room to change ownership for. + /// The ID of the new user to own the room. The new user must be in the same room. + /// Request information of type `Task`, including the request id, and its response message does not contain data. + /// | Error Code| Error Message | + /// |---|---| + /// |3006001|change owner failed: need room owner| + /// |3006003|change owner failed: duplicate setting| + /// |3006002|change owner failed: new owner not in this room| + /// + /// A message of type `MessageType.Room_UpdateOwner` will be generated in response. + /// Call `message.IsError()` to check if any error has occurred. + /// + public static Task UpdateOwner(UInt64 roomId, string userId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_UpdateOwner(roomId, userId)); + } + + /// Sets the join policy for a specified private room. + /// + /// The ID of the room you want to set join policy for. + /// Specifies who can join the room: + /// * `0`: nobody + /// * `1`: everybody + /// * `2`: friends of members + /// * `3`: friends of the room owner + /// * `4`: invited users + /// * `5`: unknown + /// + /// Request information of type `Task`, including the request id, and its response message will contain data of type `Room`. + /// | Error Code| Error Message | + /// |---|---| + /// |3006104|not in room | + /// |3006112|update room join policy: need room owner| + /// + /// A message of type `MessageType.Room_UpdatePrivateRoomJoinPolicy` will be generated in response. + /// First call `message.IsError()` to check if any error has occurred. + /// If no error has occurred, the message will contain a payload of type `Room`. + /// Extract the payload from the message handle with `message.Data`. + /// + public static Task UpdatePrivateRoomJoinPolicy(UInt64 roomId, RoomJoinPolicy policy) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Room_UpdatePrivateRoomJoinPolicy(roomId, policy)); + } + + /// Sets the callback to get notified when the user has accepted an invitation. + /// @note You can get the RoomID by 'Message.Data'. Then you can call 'RoomService.Join2' to join it. + /// + /// The callback function will be called when receiving the `Notification_Room_InviteAccepted` message. + public static void SetRoomInviteAcceptedNotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Room_InviteAccepted, handler); + } + + /// Sets the callback to get notified when the current room has been updated. Use `Message.Data` to extract the room. + /// + /// The callback function will be called when receiving the `Notification_Room_RoomUpdate` message. + public static void SetUpdateNotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Room_RoomUpdate, handler); + } + + /// Sets the callback to get notified when the user has been kicked out of a room. + /// Listen to this event to receive a relevant message. Use `Message.Data` to extract the room. + /// + /// The callback function will be called when receiving the `Room_KickUser` message and the value of `requestID` is `0`. + public static void SetKickUserNotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Room_KickUser, handler); + } + + /// Sets the callback to get notified when the room description has been updated. + /// Listen to this event to receive a relevant message. Use `Message.Data` to extract the room. + /// + /// The callback function will be called when receiving the `Room_SetDescription` message and the value of `requestID` is `0`. + public static void SetSetDescriptionNotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Room_SetDescription, handler); + } + + /// Sets the callback to get notified when the room data has been modified. + /// Listen to this event to receive a relevant message. Use `Message.Data` to extract the room. + /// + /// The callback function will be called when receiving the `Room_UpdateDataStore` message and the value of `requestID` is `0`. + public static void SetUpdateDataStoreNotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Room_UpdateDataStore, handler); + } + + /// If a player is passively removed from a room (for example, if they initiate another match within the room and are subsequently removed by the system or if they are kicked out of the room), they will receive a notification. + /// Listen to this event to receive a relevant message. + /// Use `Message.Data` to extract the room. + /// + /// The callback function will be called when receiving the `Room_Leave` message and the value of `requestID` is `0`. + public static void SetLeaveNotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Room_Leave, handler); + } + + /// If a player comes across network or disaster recovery problems after joining a room, they may not receive a notification confirming that they've successfully entered the room. + /// In such cases, the server will resend the notification to ensure that the user receives it. + /// Use `Message.Data` to extract the room. + /// + /// The callback function will be called when receiving the `Room_Join2` message and the value of `requestID` is `0`. + public static void SetJoin2NotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Room_Join2, handler); + } + + /// When there is a change in the room owner, the new owner will receive a notification. + /// Listen to this event to receive a relevant message. + /// Use `Message.Data` to extract the room. + /// + /// The callback function will be called when receiving the `Room_UpdateOwner` message and the value of `requestID` is `0`. + public static void SetUpdateOwnerNotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Room_UpdateOwner, handler); + } + + /// Sets the callback to get notified when the membership status of a room has been changed. + /// Listen to this event to receive a relevant message. Use `Message.Data` to extract the room. + /// + /// The callback function will be called when receiving the "Room_UpdateMembershipLockStatus" message and the value of `requestID` is `0`. + public static void SetUpdateMembershipLockStatusNotificationCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Room_UpdateMembershipLockStatus, handler); + } + } + + public class RoomOptions + { + public RoomOptions() + { + Handle = CLIB.ppf_RoomOptions_Create(); + } + + /// + /// Sets the data store for a room. + /// + /// A unique identifier that maps to a value. + /// The data. + public void SetDataStore(string key, string value) + { + CLIB.ppf_RoomOptions_SetDataStoreString(Handle, key, value); + } + + /// + /// Clears the data store for a room. + /// + public void ClearDataStore() + { + CLIB.ppf_RoomOptions_ClearDataStore(Handle); + } + + /// + /// Sets whether to exclude recently-met users. + /// + /// + /// * `true`: exclude + /// * `false`: not exclude + /// + public void SetExcludeRecentlyMet(bool value) + { + CLIB.ppf_RoomOptions_SetExcludeRecentlyMet(Handle, value); + } + + /// + /// Sets the maximum number of users to return. + /// + /// The maximum number of users to return. + public void SetMaxUserResults(uint value) + { + CLIB.ppf_RoomOptions_SetMaxUserResults(Handle, value); + } + + /// + /// Sets a room ID. + /// @note Only available to \ref RoomService.GetInvitableUsers2. + /// + /// The room ID. + public void SetRoomId(UInt64 value) + { + CLIB.ppf_RoomOptions_SetRoomId(Handle, value); + } + + /// + /// Sets a name for the room. + /// @note Only available to \ref RoomService.JoinOrCreateNamedRoom and \ref RoomService.GetNamedRooms. + /// + /// The room's name. The maximum length is 64 characters. + public void SetRoomName(string roomName) + { + CLIB.ppf_RoomOptions_SetName(Handle, roomName); + } + + /// + /// Sets a password for the room. + /// @note Only available to \ref RoomService.JoinOrCreateNamedRoom and \ref RoomService.GetNamedRooms. + /// + /// The room's password. The maximum length is 64 characters. + public void SetPassword(string password) + { + CLIB.ppf_RoomOptions_SetPassword(Handle, password); + } + + /// + /// Enables/Disables the update of room data. + /// + /// + /// * `true`: enable + /// * `false`: disable + /// + public void SetTurnOffUpdates(bool value) + { + CLIB.ppf_RoomOptions_SetTurnOffUpdates(Handle, value); + } + + + /// For passing to native C + public static explicit operator IntPtr(RoomOptions roomOptions) + { + return roomOptions != null ? roomOptions.Handle : IntPtr.Zero; + } + + ~RoomOptions() + { + CLIB.ppf_RoomOptions_Destroy(Handle); + } + + IntPtr Handle; + + public IntPtr GetHandle() + { + return Handle; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Room.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Room.cs.meta new file mode 100644 index 0000000..1f7977f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Room.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 288ca2a98b45b4d47957eae7a66fc97c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Speech.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Speech.cs new file mode 100644 index 0000000..7ce6f79 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Speech.cs @@ -0,0 +1,120 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using Pico.Platform.Models; + +namespace Pico.Platform +{ + public class SpeechService + { + /// + /// Initializes the automatic speech recognition engine. + /// + /// The initialization result. + public static AsrEngineInitResult InitAsrEngine() + { + return CLIB.ppf_Speech_InitAsrEngine(); + } + + /// + /// Starts automatic speech recognition (ASR). + /// + /// Specifies whether to automatically stop ASR when the speaker stops speaking (i.e., when no voice is detected): + /// * `true`: auto stop + /// * `false`: do not auto stop + /// + /// Specifies whether to show punctuations in the text: + /// * `true`: show + /// * `false`: do not show + /// + /// Specifies the maximum duration allowed for speaking per time. Unit: milliseconds. + /// + /// `0` indicates success and other values indicates failure. + /// + public static int StartAsr(bool autoStop, bool showPunctual, int vadMaxDurationInSeconds) + { + var option = new StartAsrOptions(); + option.SetAutoStop(autoStop); + option.SetShowPunctual(showPunctual); + option.SetVadMaxDurationInSeconds(vadMaxDurationInSeconds); + return CLIB.ppf_Speech_StartAsr((IntPtr) option); + } + + /// + /// Stops automatic speech recognition. + /// + public static void StopAsr() + { + CLIB.ppf_Speech_StopAsr(); + } + + /// + /// When automatic speech recognition is enabled, it constantly converts the transmitted speech into text and returns it through the callback. + /// @note After reconnection following a network disconnection during the recognition process, only the text recognized from the speech after the reconnection will be returned, + /// and the text recognized from the speech before the disconnection will not be returned. + /// + /// Returns the recognition result. + public static void SetOnAsrResultCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Speech_OnAsrResult, handler); + } + + /// + /// If an error occurs during the speech recognition process, it will be returned through this callback. + /// + /// Returns the information about the error. + public static void SetOnSpeechErrorCallback(Message.Handler handler) + { + Looper.RegisterNotifyHandler(MessageType.Notification_Speech_OnSpeechError, handler); + } + } + + public class StartAsrOptions + { + public StartAsrOptions() + { + Handle = CLIB.ppf_StartAsrOptions_Create(); + } + + + public void SetAutoStop(bool value) + { + CLIB.ppf_StartAsrOptions_SetAutoStop(Handle, value); + } + + + public void SetVadMaxDurationInSeconds(int value) + { + CLIB.ppf_StartAsrOptions_SetVadMaxDurationInSeconds(Handle, value); + } + + + public void SetShowPunctual(bool value) + { + CLIB.ppf_StartAsrOptions_SetShowPunctual(Handle, value); + } + + /// For passing to native C + public static explicit operator IntPtr(StartAsrOptions options) + { + return options != null ? options.Handle : IntPtr.Zero; + } + + ~StartAsrOptions() + { + CLIB.ppf_StartAsrOptions_Destroy(Handle); + } + + public IntPtr Handle; + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Speech.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Speech.cs.meta new file mode 100644 index 0000000..67267e1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Speech.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c640c57562fe4afd8f49c65022cc336b +timeCreated: 1679484591 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Sport.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Sport.cs new file mode 100644 index 0000000..f36037c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Sport.cs @@ -0,0 +1,108 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + * + * SportService provides multiple APIs for you to access + * users' exercise data from the built-in PICO app — PICO Fitness. + + * When users are working out with PICO VR headsets, the app records + * their exercise data, including exercise duration, calories burned, + * exercise plan, preferences, and more. + + * With the APIs provided by the service, you can gather data to + * understand the exercise habits of individuals, thereby providing + * users with a better exercise experience. + */ + public static class SportService + { + /// + /// Gets a user's basic information and exercise plan. + /// + /// The \ref Pico.Platform.Models.SportUserInfo class containing the following: + /// * `Gender` + /// * `Birthday` + /// * `Stature`: The natural height in centimeters. + /// * `Weight`: The weight in kilograms. + /// * `SportLevel`: `1`-low; `2`-medium; `3`-high. + /// * `DailyDurationInMinutes`: The planned daily exercise duration (in minutes). + /// * `DaysPerWeek`: The planned days for exercise per week. + /// * `SportTarget`: "lose weight" or "stay healthy". + /// + public static Task GetUserInfo() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Sport_GetUserInfo()); + } + + /// + /// Gets a summary of the user's daily exercise data for a specified period within the recent 90 days. + /// For example, if the period you set is between 2022/08/16 and 2022/08/18, the exercise data generated on 08/16, 08/17, and 08/18 will be returned. + /// + /// A DateTime struct defining the begin time of the period. The begin time should be no earlier than 90 days before the current time. + /// A DateTime struct defining the end time of the period, . + /// The \ref Pico.Platform.Models.SportDailySummaryList class containing the exercise data generated on each day within the specified period, including: + /// * `Id`: Summary ID. + /// * `Date`: The date when the data was generated. + /// * `DurationInSeconds`: The actual daily exercise duration in seconds. + /// * `PlanDurationInMinutes`: The planned daily exercise duration in minutes. + /// * `Calorie`: The actual daily calorie burned. + /// * `PlanCalorie`: The planned daily calorie to burn. + /// + public static Task GetDailySummary(DateTime beginTime, DateTime endTime) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Sport_GetDailySummary(TimeUtil.DateTimeToMilliSeconds(beginTime), TimeUtil.DateTimeToMilliSeconds(endTime))); + } + + /// + /// Get a summary of the user's exercise data for a specified period within + /// the recent 24 hours. The period should not exceed 24 hours. + /// + /// A DateTime struct defining the begin time of the period. The begin time should be no earlier than 24 hours before the current time. + /// A DateTime struct defining the end time of the period. + /// The \ref Pico.Platform.Models.SportSummary class containing the following: + /// * `DurationInSeconds`: The actual exercise duration. + /// * `Calorie`: The actual calorie burned. + /// * `StartTime`: The start time you defined. + /// * `EndTime`: The end time you defined. + /// + public static Task GetSummary(DateTime beginTime, DateTime endTime) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_Sport_GetSummary(TimeUtil.DateTimeToMilliSeconds(beginTime), TimeUtil.DateTimeToMilliSeconds(endTime))); + } + + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Sport.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Sport.cs.meta new file mode 100644 index 0000000..9befd0d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/Sport.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9138eed51e124e57aac6c3c6a2198ce9 +timeCreated: 1657617033 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/User.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/User.cs new file mode 100644 index 0000000..8d5f709 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/User.cs @@ -0,0 +1,290 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using Pico.Platform.Models; +using UnityEngine; + +namespace Pico.Platform +{ + /** + * \ingroup Platform + * + * Account & Friends service allows developers to access the info of a specified account, get the friends list of the currently logged-in users, send friend requests, and more. + */ + public static class UserService + { + /// + /// Returns an access token for this user. Starting from SDK V2.2.0, + /// the system caches the access token upon the first request, allowing subsequent requests to use the cached token information stored locally. + /// @note User's permission is required if the user uses this app for the first time. + /// + /// The access token for the current user. + public static Task GetAccessToken() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_GetAccessToken()); + } + + /// + /// Gets the organization ID for a specified user. + /// Different users have different organization IDs. + /// A user has only one fixed unique organization ID for all the apps created by the same organization. + /// + /// + /// The ID of the user. It's the user's openID in the current app. + /// The `OrgScopedID` structure that contains the user's organization ID. + public static Task GetOrgScopedID(string userID) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_GetOrgScopedID(userID)); + } + + /// + /// Gets the information about the current logged-in user. + /// + /// The User structure that contains the details about the user. + public static Task GetLoggedInUser() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_GetLoggedInUser()); + } + + /// + /// Gets the information about a specified user. + /// @note The same user has different user IDs for different apps. + /// + /// The ID of the user. + /// The User structure that contains the details about the specified user. + public static Task Get(string userId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_Get(userId)); + } + + /// + /// Gets the friend list of the current user. + /// @note Friends who don't use this app won't appear in this list. + /// + /// The friend list of the current user. + public static Task GetFriends() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_GetLoggedInUserFriends()); + } + + /// + /// Gets the relationship between the current user and other users. + /// + /// The list of user IDs. + /// The request queries the current user's relationship with specified users. + /// A single request can pass no more than 20 user IDs. + /// `UserRelationResult` which is a dictionary of user relationships. + public static Task GetUserRelations(string[] userIds) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_GetRelations(userIds)); + } + + /// + /// Launches the flow to apply for friendship with someone. + /// + /// The ID of the user that the friend request is sent to. + /// `LaunchFriendRequest` that indicates whether the request is sent successfully. + public static Task LaunchFriendRequestFlow(string userId) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_LaunchFriendRequestFlow(userId)); + } + + /// + /// Gets the friends of the logged-in user and the rooms the friends might be in. + /// + /// `UserRoomList` that contains the friend and room data. If a friend is not in any room, the `room` field will be null. + public static Task GetFriendsAndRooms() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_GetLoggedInUserFriendsAndRooms()); + } + + /// + /// Gets the next page of user and room list. + /// + /// The user and room list from the current page. + /// The user and room list from the next page. + public static Task GetNextUserAndRoomListPage(UserRoomList list) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (!list.HasNextPage) + { + Debug.LogWarning("GetNextUserAndRoomListPage: List has no next page"); + return null; + } + + if (String.IsNullOrEmpty(list.NextPageParam)) + { + Debug.LogWarning("GetNextUserAndRoomListPage: list.NextPageParam is empty"); + return null; + } + + return new Task(CLIB.ppf_User_GetNextUserAndRoomArrayPage(list.NextPageParam)); + } + + /// + /// Gets the next page of user list. + /// + /// The user list from the current page. + /// The user list from the next page. + public static Task GetNextUserListPage(UserList list) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + if (!list.HasNextPage) + { + Debug.LogWarning("GetNextUserListPage: List has no next page"); + return null; + } + + if (String.IsNullOrEmpty(list.NextPageParam)) + { + Debug.LogWarning("GetNextUserListPage: list.NextPageParam is empty"); + return null; + } + + return new Task(CLIB.ppf_User_GetNextUserArrayPage(list.NextPageParam)); + } + + /// + /// Gets authorized permissions. + /// + /// + /// A struct containing the access token and permission list. The `UserID` field is empty so do NOT use it. + /// + public static Task GetAuthorizedPermissions() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_GetAuthorizedPermissions()); + } + + /// + /// Requests user permissions. The user will received a pop-up notification window. + /// + /// The list of permissions to request. You can use constants in \ref Pico.Platform.Models.Permissions. + /// + /// A struct containing the access token and permission list. + public static Task RequestUserPermissions(params string[] permissionList) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_RequestUserPermissions(permissionList)); + } + + /// + /// Checks whether the current user is entitled to use the current app. + /// + /// If the user is not entitled, the system will close the app and show a dialog box to remind the user to buy the app from the PICO Store. + /// For customizations, you can set param `killApp` to `false` and then customize the dialog. + /// + /// Determines whether the system closes the app if the user fails to pass the entitlement check. + /// The default value is `true`. + /// + /// The entitlement check result. + public static Task EntitlementCheck(bool killApp = true) + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_EntitlementCheck(killApp)); + } + + /// + /// Gets the ID token for the current user. The ID token is used for OIDC login. + /// You can use \ref ApplicationService.GetSystemInfo to determine the region of user's device and then choose the proper OIDC identity provider. + /// Read the following articles for more information: + /// * [Unity Service signin with openID connect](https://docs.unity.com/authentication/en/manual/platform-signin-openid-connect) + /// * [PICO SDK guide](http://developer-global.pico-interactive.com/document/unity/accounts-and-friends/) + /// @note User's permission is required if the user uses this app for the first time. Call \ref UserService.RequestUserPermissions to request desired permissions in a batch. + /// + /// The ID token for the current user. + public static Task GetIdToken() + { + if (!CoreService.Initialized) + { + Debug.LogError(CoreService.NotInitializedError); + return null; + } + + return new Task(CLIB.ppf_User_GetIdToken()); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/User.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/User.cs.meta new file mode 100644 index 0000000..9764fd3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Platform/Scripts/Service/User.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d99829583dd409e439ddfb0930207154 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime.meta new file mode 100644 index 0000000..e465db0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eef18d110a825854fb83f5834ff8eebf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android.meta new file mode 100644 index 0000000..09c31a9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b03ab07eeedbd547b6f82096aaf7407 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64.meta new file mode 100644 index 0000000..5bb043f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18b9a599c3004344ea5103af8f11d458 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_loader.so b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_loader.so new file mode 100644 index 0000000..525fac1 Binary files /dev/null and b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_loader.so differ diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_loader.so.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_loader.so.meta new file mode 100644 index 0000000..ed446e9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_loader.so.meta @@ -0,0 +1,70 @@ +fileFormatVersion: 2 +guid: 774f35846a5b19e4eb185c21e40e6a1a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 0 + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Android: Android + second: + enabled: 1 + settings: + CPU: ARM64 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_pico.so b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_pico.so new file mode 100644 index 0000000..4f414c5 Binary files /dev/null and b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_pico.so differ diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_pico.so.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_pico.so.meta new file mode 100644 index 0000000..e4574f4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Android/arm64/libopenxr_pico.so.meta @@ -0,0 +1,71 @@ +fileFormatVersion: 2 +guid: d2301b1e70182e04fbe3c844b6d3f17a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 0 + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Android: Android + second: + enabled: 1 + settings: + AndroidSharedLibraryType: Executable + CPU: ARM64 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller.meta new file mode 100644 index 0000000..e62767c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9ce63b88c884fb94b90fa0b631abaf1e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerAnimator.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerAnimator.cs new file mode 100644 index 0000000..4fb3235 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerAnimator.cs @@ -0,0 +1,105 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.XR; + +namespace Unity.XR.PXR +{ + public class PXR_ControllerAnimator : MonoBehaviour + { + private Animator controllerAnimator; + public Transform primary2DAxisTran; + public Transform gripTran; + public Transform triggerTran; + public bool controllerL=false; + private Vector2 axis2D = Vector2.zero; + private bool primaryButton; + private bool secondaryButton; + private bool menuButton; + private float grip; + private float trigger; + private Vector3 originalGrip; + private Vector3 originalTrigger; + private Vector3 originalJoystick; + + public const string primary = "IsPrimaryDown"; + public const string secondary = "IsSecondaryDown"; + public const string media = "IsMediaDown"; + public const string menu = "IsMenuDown"; + + void Start() + { + controllerAnimator = GetComponent(); + originalGrip = gripTran.localEulerAngles; + originalJoystick = primary2DAxisTran.localEulerAngles; + originalTrigger = triggerTran.localEulerAngles; + } + + void Update() + { + InputDevices.GetDeviceAtXRNode(controllerL + ? XRNode.LeftHand + : XRNode.RightHand).TryGetFeatureValue(CommonUsages.primary2DAxis, out axis2D); + InputDevices.GetDeviceAtXRNode(controllerL + ? XRNode.LeftHand + : XRNode.RightHand).TryGetFeatureValue(CommonUsages.grip, out grip); + InputDevices.GetDeviceAtXRNode(controllerL + ? XRNode.LeftHand + : XRNode.RightHand).TryGetFeatureValue(CommonUsages.trigger, out trigger); + InputDevices.GetDeviceAtXRNode(controllerL + ? XRNode.LeftHand + : XRNode.RightHand).TryGetFeatureValue(CommonUsages.primaryButton, out primaryButton); + InputDevices.GetDeviceAtXRNode(controllerL + ? XRNode.LeftHand + : XRNode.RightHand).TryGetFeatureValue(CommonUsages.secondaryButton, out secondaryButton); + InputDevices.GetDeviceAtXRNode(controllerL + ? XRNode.LeftHand + : XRNode.RightHand).TryGetFeatureValue(CommonUsages.menuButton, out menuButton); + + float x = Mathf.Clamp(axis2D.x * 10f, -10f, 10f); + float z = Mathf.Clamp(axis2D.y * 10f, -10f, 10f); + if (primary2DAxisTran != null) + { + if (controllerL) + { + primary2DAxisTran.localEulerAngles = new Vector3(-z, 0, x) + originalJoystick; + } + else + { + primary2DAxisTran.localEulerAngles = new Vector3(-z, 0, -x) + originalJoystick; + } + } + + trigger *= -15; + if (triggerTran != null) + triggerTran.localEulerAngles = new Vector3(trigger, 0f, 0f) + originalTrigger; + grip *= 12; + if (gripTran != null) + gripTran.localEulerAngles = new Vector3(0f, grip, 0f) + originalGrip; + + if (controllerAnimator != null) + { + controllerAnimator.SetBool(primary, primaryButton); + controllerAnimator.SetBool(secondary, secondaryButton); + + + if (controllerL) + controllerAnimator.SetBool(menu, menuButton); + else + controllerAnimator.SetBool(media, menuButton); + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerAnimator.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerAnimator.cs.meta new file mode 100644 index 0000000..8379352 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerAnimator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0551a3e12ecf0614fa83e84a93d87bb5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerG3Animator.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerG3Animator.cs new file mode 100644 index 0000000..731e59b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerG3Animator.cs @@ -0,0 +1,70 @@ +/******************************************************************************* +Copyright ? 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using UnityEngine; +using UnityEngine.XR; + +namespace Unity.XR.PXR +{ + public class PXR_ControllerG3Animator : MonoBehaviour + { + public Transform triggerTran; + public Transform menuTran; + public Transform touchPadTran; + + + private bool primaryAxisState = false; + private bool menuButtonState; + private float trigger; + + private Vector3 menu; + private Vector3 originTrigger; + private Vector3 touchPadPos; + + + private InputDevice currentController; + private int handness; + + void Start() + { + menu = menuTran.localPosition; + originTrigger = triggerTran.localEulerAngles; + touchPadPos = touchPadTran.localPosition; + } + + void Update() + { + InputDevices.GetDeviceAtXRNode(XRNode.RightHand).TryGetFeatureValue(CommonUsages.primary2DAxisClick, out primaryAxisState); + InputDevices.GetDeviceAtXRNode(XRNode.RightHand).TryGetFeatureValue(CommonUsages.menuButton, out menuButtonState); + InputDevices.GetDeviceAtXRNode(XRNode.RightHand).TryGetFeatureValue(CommonUsages.trigger, out trigger); + + if (triggerTran != null) + { + trigger *= -9.0f; + triggerTran.localEulerAngles = new Vector3(0f, 0f, Mathf.Clamp(trigger, -9f, 0f)) + originTrigger; + } + + if (touchPadTran != null) + { + if (primaryAxisState) + touchPadTran.localPosition = touchPadPos + new Vector3(0f, -0.0005f, 0f); + else + touchPadTran.localPosition = touchPadPos; + } + + if (menuButtonState) + menuTran.localPosition = new Vector3(0f, -0.00021f, 0f) + menu; + else + menuTran.localPosition = menu; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerG3Animator.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerG3Animator.cs.meta new file mode 100644 index 0000000..001fb39 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerG3Animator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e4ee62d8e7a57c8458f969922f7a06a2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerLoader.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerLoader.cs new file mode 100644 index 0000000..22806a7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerLoader.cs @@ -0,0 +1,182 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System.Collections; +using System.IO; +using LitJson; +using Unity.XR.OpenXR.Features.PICOSupport; +using UnityEngine; +using UnityEngine.XR; + +namespace Unity.XR.PXR +{ + public class PXR_ControllerLoader : MonoBehaviour + { + [SerializeField] + private bool Lefthand; + + public GameObject neo3L; + public GameObject neo3R; + public GameObject PICO_4L; + public GameObject PICO_4R; + public GameObject G3; + public GameObject PICO_4U_L; + public GameObject PICO_4U_R; + + private Texture2D modelTexture2D; + + private int controllerType = -1; + + private JsonData curControllerData = null; + private int systemOrLocal = 0; + private bool loadModelSuccess = false; + private string modelName = ""; + private string texFormat = ""; + private string prePath = ""; + private bool isconnect = false; + + private bool leftControllerState = false; + private bool rightControllerState = false; + + private enum ControllerSimulationType + { + None, + Neo3, + PICO4, + G3, + PICO4U + } +#if UNITY_EDITOR + [SerializeField] + private ControllerSimulationType controllerSimulation = ControllerSimulationType.None; +#endif + + private InputDevice currentController; + void Awake() + { + +#if UNITY_EDITOR + switch (controllerSimulation) + { + case ControllerSimulationType.Neo3: + { + Instantiate(Lefthand ? neo3L : neo3R, transform, false); + break; + } + case ControllerSimulationType.PICO4: + { + Instantiate(Lefthand ? PICO_4L : PICO_4R, transform, false); + break; + } + case ControllerSimulationType.G3: + { + Instantiate(G3, transform, false); + break; + } + case ControllerSimulationType.PICO4U: + { + Instantiate(Lefthand ? PICO_4U_L : PICO_4U_R, transform, false); + break; + } + } +#endif + } + + void Start() + { + controllerType = OpenXRExtensions.GetControllerType(); + InputDevices.GetDeviceAtXRNode(Lefthand + ? XRNode.LeftHand + : XRNode.RightHand).TryGetFeatureValue(CommonUsages.isTracked, out isconnect); + if (isconnect) + { + RefreshController(); + } + + InvokeRepeating("CheckConnect", 0, 0.5f); + } + + void CheckConnect() + { + InputDevices.GetDeviceAtXRNode(Lefthand + ? XRNode.LeftHand + : XRNode.RightHand).TryGetFeatureValue(CommonUsages.isTracked, out isconnect); + if (isconnect) + { + RefreshController(); + } + else + { + DestroyLocalController(); + } + } + + private void RefreshController() + { + if (!loadModelSuccess) + { + LoadControllerFromPrefab(Lefthand); + } + + if (loadModelSuccess) + { + var currentController = transform.Find(modelName); + currentController.gameObject.SetActive(true); + } + + } + + private void DestroyLocalController() + { + if (loadModelSuccess) + { + var currentController = transform.Find(modelName); + currentController.gameObject.SetActive(false); + } + } + + private void LoadControllerFromPrefab(bool hand) + { + GameObject go; + switch (controllerType) + { + case 5: + go= Instantiate(hand ? neo3L : neo3R, transform, false); + go.name=modelName = (hand ? neo3L : neo3R).name; + loadModelSuccess = true; + break; + case 6: + go= Instantiate(hand ? PICO_4L : PICO_4R, transform, false); + go.name=modelName = (hand ? PICO_4L : PICO_4R).name; + loadModelSuccess = true; + break; + case 7: + go=Instantiate(G3, transform, false); + go.name=modelName = G3.name; + loadModelSuccess = true; + break; + case 8: + go=Instantiate(hand ? PICO_4U_L : PICO_4U_R, transform, false); + go.name=modelName = (hand ? PICO_4U_L : PICO_4U_R).name; + loadModelSuccess = true; + break; + default: + loadModelSuccess = false; + break; + } + } + + + + } +} + diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerLoader.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerLoader.cs.meta new file mode 100644 index 0000000..37c0b39 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerLoader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c1ba2bcdb414e3b47aca41fdc1a87e64 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerPower.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerPower.cs new file mode 100644 index 0000000..70c24fb --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerPower.cs @@ -0,0 +1,128 @@ +/******************************************************************************* +Copyright ? 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System.Collections; +using System.Collections.Generic; +using Unity.XR.PXR; +using UnityEngine; +using UnityEngine.XR; + +public class PXR_ControllerPower : MonoBehaviour +{ + [SerializeField] + private Texture power1; + [SerializeField] + private Texture power2; + [SerializeField] + private Texture power3; + [SerializeField] + private Texture power4; + [SerializeField] + private Texture power5; + + private Material powerMaterial; + private float interval = 2f; + public bool controllerL=false; + + // Start is called before the first frame update + void Awake() + { + if (GetComponent() != null) + { + powerMaterial = GetComponent().material; + + } + else + { + powerMaterial = GetComponent().material; + } + + + // Vector3 a=Vector3.zero; + // InputDevices.GetDeviceAtXRNode(XRNode.CenterEye).TryGetFeatureValue(EyeTrackingUsages.gazePosition, out a); + } + + + void OnEnable() + { + RefreshPower(); + } + + private void RefreshPower() + { + var curBattery = 0f; + if (controllerL) + { + InputDevices.GetDeviceAtXRNode(XRNode.LeftHand).TryGetFeatureValue(CommonUsages.batteryLevel, out curBattery); + } + else + { + InputDevices.GetDeviceAtXRNode(XRNode.RightHand).TryGetFeatureValue(CommonUsages.batteryLevel, out curBattery); + } + switch ((int)curBattery) + { + case 1: + { + powerMaterial.SetTexture("_MainTex", power1); + powerMaterial.SetTexture("_EmissionMap", power1); + } + + break; + case 2: + { + powerMaterial.SetTexture("_MainTex", power2); + powerMaterial.SetTexture("_EmissionMap", power2); + } + + break; + case 3: + { + powerMaterial.SetTexture("_MainTex", power3); + powerMaterial.SetTexture("_EmissionMap", power3); + } + + break; + case 4: + { + powerMaterial.SetTexture("_MainTex", power4); + powerMaterial.SetTexture("_EmissionMap", power4); + } + + break; + case 5: + { + powerMaterial.SetTexture("_MainTex", power5); + powerMaterial.SetTexture("_EmissionMap", power5); + } + + break; + default: + { + powerMaterial.SetTexture("_MainTex", power1); + powerMaterial.SetTexture("_EmissionMap", power1); + } + + break; + } + } + + // Update is called once per frame + void Update() + { + interval -= Time.deltaTime; + if (interval > 0) + return; + interval = 2f; + + RefreshPower(); + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerPower.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerPower.cs.meta new file mode 100644 index 0000000..1810af9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerPower.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7cfc8380945cdad43ae2cacaadf47013 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerWithHandAnimator.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerWithHandAnimator.cs new file mode 100644 index 0000000..026b0c8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerWithHandAnimator.cs @@ -0,0 +1,304 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.XR; + + +namespace Unity.XR.PXR +{ + public class PXR_ControllerWithHandAnimator : MonoBehaviour + { + public bool controllerL=false; + + private Animator mAnimator; + + + private readonly float animation_time = 0.05f; + private float per_animation_step = 0.1f; + + //trigger; + private readonly string trigger_Touch_LayerName = "trigger_touch"; + private int trigger_Touch_LayerIndex; + private readonly string trigger_Value_LayerName = "trigger_press"; + private int trigger_Value_LayerIndex; + private bool trigger_Touch; + private float trigger_Value; + private float trigger_Touch_Weight = 0f; + + // A/X; + private readonly string X_A_Touch_LayerName = "X_A_touch"; + private int X_A_Touch_LayerIndex; + private readonly string X_A_Press_LayerName = "X_A_press"; + private int X_A_Press_LayerIndex; + private bool X_A_Press; + private bool X_A_Touch; + private float X_A_Touch_Weight = 0f; + + // B/Y; + private readonly string Y_B_Touch_LayerName = "Y_B_touch"; + private int Y_B_Touch_LayerIndex; + private readonly string Y_B_Press_LayerName = "Y_B_press"; + private int Y_B_Press_LayerIndex; + private bool Y_B_Press; + private bool Y_B_Touch; + private float Y_B_Touch_Weight = 0f; + + //Y/B or X/A + private readonly string X_A_Y_B_Press_LayerName = "X_A_Y_B_press"; + private int X_A_Y_B_Press_LayerIndex; + + //Y/B or X/A + private readonly string X_A_Y_B_Touch_LayerName = "X_A_Y_B_touch"; + private int X_A_Y_B_Touch_LayerIndex; + private float X_A_Y_B_Touch_Weight = 0f; + + //grip; + private readonly string grip_Value_LayerName = "grip_press"; + private int grip_Value_LayerIndex; + private float grip_Value; + + //rocker + private readonly string primary2DAxis_Touch_LayerName = "axis_touch"; + private int primary2DAxis_Touch_LayerIndex; + private readonly string primary2DAxis_Vertical = "axis_vertical"; + private int primary2DAxis_Vertical_Index; + private readonly string primary2DAxis_Horizontal = "axis_horizontal"; + private int primary2DAxis_Horizontal_Index; + private Vector2 primary2DAxisVec2; + private bool primary2DAxis_Touch; + private float primary2DAxis_Touch_Weight = 0f; + + //print screen + private readonly string menu_Press_LayerName = "thumbMenu"; + private int menu_Press_LayerIndex; + private bool menu_Press; + private float menu_Press_Weight; + + //home + private readonly string pico_Press_LayerName = "thumbPico"; + private int pico_Press_LayerIndex; + private bool pico_Press; + private float pico_Press_Weight; + + //thumb rest + private readonly string thumbstick_Touch_LayerName = "thumbstick_touch"; + private int thumbstick_Touch_LayerIndex; + private bool thumbstick_Touch; + private float thumbstick_Touch_Weight; + + + // Start is called before the first frame update + void Start() + { + per_animation_step = 1.0f / animation_time; + mAnimator = GetComponent(); + + if (mAnimator != null) + { + trigger_Touch_LayerIndex = mAnimator.GetLayerIndex(trigger_Touch_LayerName); + trigger_Value_LayerIndex = mAnimator.GetLayerIndex(trigger_Value_LayerName); + grip_Value_LayerIndex = mAnimator.GetLayerIndex(grip_Value_LayerName); + + X_A_Touch_LayerIndex = mAnimator.GetLayerIndex(X_A_Touch_LayerName); + X_A_Press_LayerIndex = mAnimator.GetLayerIndex(X_A_Press_LayerName); + Y_B_Touch_LayerIndex = mAnimator.GetLayerIndex(Y_B_Touch_LayerName); + Y_B_Press_LayerIndex = mAnimator.GetLayerIndex(Y_B_Press_LayerName); + X_A_Y_B_Press_LayerIndex = mAnimator.GetLayerIndex(X_A_Y_B_Press_LayerName); + X_A_Y_B_Touch_LayerIndex = mAnimator.GetLayerIndex(X_A_Y_B_Touch_LayerName); + primary2DAxis_Touch_LayerIndex = mAnimator.GetLayerIndex(primary2DAxis_Touch_LayerName); + thumbstick_Touch_LayerIndex = mAnimator.GetLayerIndex(thumbstick_Touch_LayerName); + + primary2DAxis_Vertical_Index = Animator.StringToHash(primary2DAxis_Vertical); + primary2DAxis_Horizontal_Index = Animator.StringToHash(primary2DAxis_Horizontal); + } + else + { + Debug.Log("Animator is null"); + } + } + + // Update is called once per frame + void Update() + { + InputDevices.GetDeviceAtXRNode(controllerL ? XRNode.LeftHand : XRNode.RightHand).TryGetFeatureValue(CommonUsages.primaryButton, out X_A_Press); + InputDevices.GetDeviceAtXRNode(controllerL ? XRNode.LeftHand : XRNode.RightHand).TryGetFeatureValue(CommonUsages.primaryTouch, out X_A_Touch); + + InputDevices.GetDeviceAtXRNode(controllerL ? XRNode.LeftHand : XRNode.RightHand).TryGetFeatureValue(CommonUsages.secondaryButton, out Y_B_Press); + InputDevices.GetDeviceAtXRNode(controllerL ? XRNode.LeftHand : XRNode.RightHand).TryGetFeatureValue(CommonUsages.secondaryTouch, out Y_B_Touch); + + InputDevices.GetDeviceAtXRNode(controllerL ? XRNode.LeftHand : XRNode.RightHand).TryGetFeatureValue(CommonUsages.trigger, out trigger_Value); + InputDevices.GetDeviceAtXRNode(controllerL ? XRNode.LeftHand : XRNode.RightHand).TryGetFeatureValue(CommonUsages.triggerButton, out trigger_Touch); + + InputDevices.GetDeviceAtXRNode(controllerL ? XRNode.LeftHand : XRNode.RightHand).TryGetFeatureValue(CommonUsages.grip, out grip_Value); + + InputDevices.GetDeviceAtXRNode(controllerL ? XRNode.LeftHand : XRNode.RightHand).TryGetFeatureValue(CommonUsages.primary2DAxis, out primary2DAxisVec2); + InputDevices.GetDeviceAtXRNode(controllerL ? XRNode.LeftHand : XRNode.RightHand).TryGetFeatureValue(CommonUsages.primary2DAxisTouch, out primary2DAxis_Touch); + if (!primary2DAxis_Touch) + { + if (primary2DAxisVec2 != Vector2.zero) + primary2DAxis_Touch = true; + } + + InputDevices.GetDeviceAtXRNode(controllerL ? XRNode.LeftHand : XRNode.RightHand).TryGetFeatureValue(CommonUsages.menuButton, out menu_Press); + + if (Y_B_Touch && primary2DAxisVec2 == Vector2.zero) + { + if (Y_B_Press) + { + Y_B_Touch_Weight = 1.0f; + mAnimator.SetLayerWeight(Y_B_Touch_LayerIndex, Y_B_Touch_Weight); + mAnimator.SetLayerWeight(Y_B_Press_LayerIndex, 1.0f); + mAnimator.SetLayerWeight(X_A_Y_B_Press_LayerIndex, X_A_Press ? 1.0f : 0.0f); + } + else + { + if (X_A_Touch) + { + if (X_A_Press) + { + X_A_Touch_Weight = 1.0f; + mAnimator.SetLayerWeight(X_A_Touch_LayerIndex, X_A_Touch_Weight); + } + else + { + if (X_A_Y_B_Touch_Weight < 0.9999f) + { + X_A_Y_B_Touch_Weight = Mathf.Min(mAnimator.GetLayerWeight(X_A_Y_B_Touch_LayerIndex) + Time.deltaTime * per_animation_step, 1.0f); + mAnimator.SetLayerWeight(X_A_Y_B_Touch_LayerIndex, X_A_Y_B_Touch_Weight); + } + } + mAnimator.SetLayerWeight(X_A_Press_LayerIndex, X_A_Press ? 1.0f : 0f); + } + else + { + if (Y_B_Touch_Weight < 0.9999f) + { + Y_B_Touch_Weight = Mathf.Min(mAnimator.GetLayerWeight(Y_B_Touch_LayerIndex) + Time.deltaTime * per_animation_step, 1.0f); + mAnimator.SetLayerWeight(Y_B_Touch_LayerIndex, Y_B_Touch_Weight); + } + if (X_A_Y_B_Touch_Weight > 0.0001f) + { + X_A_Y_B_Touch_Weight = Mathf.Max(mAnimator.GetLayerWeight(X_A_Y_B_Touch_LayerIndex) - Time.deltaTime * per_animation_step, 0.0f); + mAnimator.SetLayerWeight(X_A_Y_B_Touch_LayerIndex, X_A_Y_B_Touch_Weight); + } + + if (X_A_Touch_Weight > 0.0001f) + { + X_A_Touch_Weight = Mathf.Max(mAnimator.GetLayerWeight(X_A_Touch_LayerIndex) - Time.deltaTime * per_animation_step, 0.0f); + mAnimator.SetLayerWeight(X_A_Touch_LayerIndex, X_A_Touch_Weight); + } + } + mAnimator.SetLayerWeight(Y_B_Press_LayerIndex, 0.0f); + mAnimator.SetLayerWeight(X_A_Y_B_Press_LayerIndex, 0.0f); + } + + } + else + { + if (Y_B_Touch_Weight > 0.0001f) + { + Y_B_Touch_Weight = Mathf.Max(mAnimator.GetLayerWeight(Y_B_Touch_LayerIndex) - Time.deltaTime * per_animation_step, 0.0f); + mAnimator.SetLayerWeight(Y_B_Touch_LayerIndex, Y_B_Touch_Weight); + mAnimator.SetLayerWeight(Y_B_Press_LayerIndex, 0.0f); + mAnimator.SetLayerWeight(X_A_Y_B_Press_LayerIndex, 0.0f); + } + if (X_A_Y_B_Touch_Weight > 0.0001f) + { + X_A_Y_B_Touch_Weight = Mathf.Max(mAnimator.GetLayerWeight(X_A_Y_B_Touch_LayerIndex) - Time.deltaTime * per_animation_step, 0.0f); + + mAnimator.SetLayerWeight(X_A_Y_B_Touch_LayerIndex, X_A_Y_B_Touch_Weight); + mAnimator.SetLayerWeight(Y_B_Press_LayerIndex, 0.0f); + mAnimator.SetLayerWeight(X_A_Y_B_Press_LayerIndex, 0.0f); + } + if (X_A_Touch && primary2DAxisVec2 == Vector2.zero) + { + if (X_A_Press) + { + X_A_Touch_Weight = 1.0f; + mAnimator.SetLayerWeight(X_A_Touch_LayerIndex, X_A_Touch_Weight); + } + else + { + if (X_A_Touch_Weight < 0.9999f) + { + X_A_Touch_Weight = Mathf.Min(mAnimator.GetLayerWeight(X_A_Touch_LayerIndex) + Time.deltaTime * per_animation_step, 1.0f); + mAnimator.SetLayerWeight(X_A_Touch_LayerIndex, X_A_Touch_Weight); + } + } + mAnimator.SetLayerWeight(X_A_Press_LayerIndex, X_A_Press ? 1.0f : 0f); + mAnimator.SetFloat(primary2DAxis_Vertical_Index, 0f); + mAnimator.SetFloat(primary2DAxis_Horizontal_Index, 0f); + } + else + { + if (X_A_Touch_Weight > 0.0001f) + { + X_A_Touch_Weight = Mathf.Max(mAnimator.GetLayerWeight(X_A_Touch_LayerIndex) - Time.deltaTime * per_animation_step, 0.0f); + mAnimator.SetLayerWeight(X_A_Touch_LayerIndex, X_A_Touch_Weight); + mAnimator.SetLayerWeight(X_A_Press_LayerIndex, 0f); + } + if (primary2DAxis_Touch) + { + if (primary2DAxis_Touch_Weight < 0.9999f) + { + primary2DAxis_Touch_Weight = Mathf.Min(mAnimator.GetLayerWeight(primary2DAxis_Touch_LayerIndex) + Time.deltaTime * per_animation_step, 1.0f); + mAnimator.SetLayerWeight(primary2DAxis_Touch_LayerIndex, primary2DAxis_Touch_Weight); + } + mAnimator.SetFloat(primary2DAxis_Vertical_Index, primary2DAxisVec2.y); + mAnimator.SetFloat(primary2DAxis_Horizontal_Index, primary2DAxisVec2.x); + } + else + { + if (primary2DAxis_Touch_Weight > 0.0001f) + { + primary2DAxis_Touch_Weight = Mathf.Max(mAnimator.GetLayerWeight(primary2DAxis_Touch_LayerIndex) - Time.deltaTime * per_animation_step, 0.0f); + mAnimator.SetLayerWeight(primary2DAxis_Touch_LayerIndex, primary2DAxis_Touch_Weight); + + mAnimator.SetFloat(primary2DAxis_Vertical_Index, 0f); + mAnimator.SetFloat(primary2DAxis_Horizontal_Index, 0f); + } + if (thumbstick_Touch) + { + if (thumbstick_Touch_Weight < 0.9999f) + { + thumbstick_Touch_Weight = Mathf.Min(mAnimator.GetLayerWeight(thumbstick_Touch_LayerIndex) + Time.deltaTime * per_animation_step, 1.0f); + mAnimator.SetLayerWeight(thumbstick_Touch_LayerIndex, thumbstick_Touch_Weight); + } + } + else + { + if (thumbstick_Touch_Weight > 0.0001f) + { + thumbstick_Touch_Weight = Mathf.Max(mAnimator.GetLayerWeight(thumbstick_Touch_LayerIndex) - Time.deltaTime * per_animation_step, 0.0f); + mAnimator.SetLayerWeight(thumbstick_Touch_LayerIndex, thumbstick_Touch_Weight); + } + } + + } + } + } + + if (trigger_Touch) + { + if (trigger_Touch_Weight < 0.9999f) + { + trigger_Touch_Weight = Mathf.Min(mAnimator.GetLayerWeight(trigger_Touch_LayerIndex) + Time.deltaTime * per_animation_step, 1.0f); + mAnimator.SetLayerWeight(trigger_Touch_LayerIndex, trigger_Touch_Weight); + } + mAnimator.SetLayerWeight(trigger_Value_LayerIndex, trigger_Value); + } + else + { + if (trigger_Touch_Weight > 0.0001f) + { + trigger_Touch_Weight = Mathf.Max(mAnimator.GetLayerWeight(trigger_Touch_LayerIndex) - Time.deltaTime * per_animation_step, 0.0f); + mAnimator.SetLayerWeight(trigger_Touch_LayerIndex, trigger_Touch_Weight); + } + } + mAnimator.SetLayerWeight(grip_Value_LayerIndex, grip_Value); + + } + } +} + diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerWithHandAnimator.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerWithHandAnimator.cs.meta new file mode 100644 index 0000000..539985a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Controller/PXR_ControllerWithHandAnimator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ad904341cd701b544911a03d77412e1d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features.meta new file mode 100644 index 0000000..0974c5f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7e78bf255aba48829c94f5b6ca2a8ddc +timeCreated: 1685686515 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerFeature.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerFeature.cs new file mode 100644 index 0000000..e6f55cb --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerFeature.cs @@ -0,0 +1,681 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; +using UnityEngine.Experimental.Rendering; +using UnityEngine.Rendering; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public class CompositeLayerFeature : MonoBehaviour, IComparable + { + private const string TAG = "[POXR_CompositeLayers]"; + public static List Instances = new List(); + + private static int overlayID = 0; + [NonSerialized] + public int overlayIndex; + public int layerDepth; + public int imageIndex = 0; + public OverlayType overlayType = OverlayType.Overlay; + public OverlayShape overlayShape = OverlayShape.Quad; + public TextureType textureType = TextureType.StaticTexture; + public Transform overlayTransform; + public Camera xrRig; + + public Texture[] layerTextures = new Texture[2] { null, null }; + public bool isDynamic = false; + public int[] overlayTextureIds = new int[2]; + public Matrix4x4[] mvMatrixs = new Matrix4x4[2]; + public Vector3[] modelScales = new Vector3[2]; + public Quaternion[] modelRotations = new Quaternion[2]; + public Vector3[] modelTranslations = new Vector3[2]; + public Quaternion[] cameraRotations = new Quaternion[2]; + public Vector3[] cameraTranslations = new Vector3[2]; + public Camera[] overlayEyeCamera = new Camera[2]; + + public bool overrideColorScaleAndOffset = false; + public Vector4 colorScale = Vector4.one; + public Vector4 colorOffset = Vector4.zero; + + // Eac + public Vector3 offsetPosLeft = Vector3.one; + public Vector3 offsetPosRight = Vector3.one; + public Vector4 offsetRotLeft = Vector4.one; + public Vector4 offsetRotRight = Vector4.one; + public DegreeType degreeType = DegreeType.Eac360; + public float overlapFactor = 0; + + private Vector4 overlayLayerColorScaleDefault = Vector4.one; + private Vector4 overlayLayerColorOffsetDefault = Vector4.zero; + + // 360 + public float radius = 0; // >0 + + // ImageRect + public bool useImageRect = false; + public TextureRect textureRect = TextureRect.StereoScopic; + public DestinationRect destinationRect = DestinationRect.Default; + public Rect srcRectLeft = new Rect(0, 0, 1, 1); + public Rect srcRectRight = new Rect(0, 0, 1, 1); + public Rect dstRectLeft = new Rect(0, 0, 1, 1); + public Rect dstRectRight = new Rect(0, 0, 1, 1); + + public PxrRecti imageRectLeft; + public PxrRecti imageRectRight; + + + // LayerBlend + public bool useLayerBlend = false; + public PxrBlendFactor srcColor = PxrBlendFactor.One; + public PxrBlendFactor dstColor = PxrBlendFactor.One; + public PxrBlendFactor srcAlpha = PxrBlendFactor.One; + public PxrBlendFactor dstAlpha = PxrBlendFactor.One; + public float[] colorMatrix = new float[18] { + 1,0,0, // left + 0,1,0, + 0,0,1, + 1,0,0, // right + 0,1,0, + 0,0,1, + }; + + public bool isClones = false; + public bool isClonesToNew = false; + public CompositeLayerFeature originalOverLay; + + + public IntPtr layerSubmitPtr = IntPtr.Zero; + + private bool toCreateSwapChain = false; + private bool toCopyRT = false; + private bool copiedRT = false; + private int eyeCount = 2; + private UInt32 imageCounts = 0; + private PxrLayerParam overlayParam = new PxrLayerParam(); + private struct NativeTexture + { + public Texture[] textures; + }; + private NativeTexture[] nativeTextures; + private static Material cubeM; + private IntPtr leftPtr = IntPtr.Zero; + private IntPtr rightPtr = IntPtr.Zero; + + + public int CompareTo(CompositeLayerFeature other) + { + return layerDepth.CompareTo(other.layerDepth); + } + + protected void Awake() + { + xrRig = Camera.main; + Instances.Add(this); + if (null == xrRig.gameObject.GetComponent()) + { + xrRig.gameObject.AddComponent(); + } + overlayEyeCamera[0] = xrRig; + overlayEyeCamera[1] = xrRig; + + overlayTransform = GetComponent(); +#if UNITY_ANDROID && !UNITY_EDITOR + if (overlayTransform != null) + { + MeshRenderer render = overlayTransform.GetComponent(); + if (render != null) + { + render.enabled = false; + } + } +#endif + + if (!isClones) + { + InitializeBuffer(); + } + } + + private void Start() + { + if (isClones) + { + InitializeBuffer(); + } + + if (PICOManager.Instance == null) + { + PLog.e(TAG + " PICOManager.Instance is null!"); + return; + } + + Camera[] cam = PICOManager.Instance.GetEyeCamera(); + if (cam[0] != null && cam[0].enabled) + { + RefreshCamera(cam[0], cam[0]); + } + else if (cam[1] != null && cam[2] != null) + { + RefreshCamera(cam[1], cam[2]); + } + } + + public void RefreshCamera(Camera leftCamera, Camera rightCamera) + { + overlayEyeCamera[0] = leftCamera; + overlayEyeCamera[1] = rightCamera; + } + + private void InitializeBuffer() + { + if (null == layerTextures[0] && null == layerTextures[1]) + { + PLog.e(TAG + " The left and right images are all empty!"); + return; + } + else if (null == layerTextures[0] && null != layerTextures[1]) + { + layerTextures[0] = layerTextures[1]; + } + else if (null != layerTextures[0] && null == layerTextures[1]) + { + layerTextures[1] = layerTextures[0]; + } + + overlayID++; + overlayIndex = overlayID; + overlayParam.layerId = overlayIndex; + overlayParam.layerShape = overlayShape == 0 ? OverlayShape.Quad : overlayShape; + overlayParam.layerType = overlayType; + overlayParam.width = (uint)layerTextures[1].width; + overlayParam.height = (uint)layerTextures[1].height; + overlayParam.arraySize = 1; + overlayParam.mipmapCount = 1; + overlayParam.sampleCount = 1; + overlayParam.layerFlags = 0; + overlayParam.faceCount = 1; + if (OverlayShape.Cubemap == overlayShape) + { + overlayParam.faceCount = 6; + if (cubeM == null) + cubeM = new Material(Shader.Find("PXR_SDK/PXR_CubemapBlit")); + } + + if (GraphicsDeviceType.Vulkan == SystemInfo.graphicsDeviceType) + { + overlayParam.format = QualitySettings.activeColorSpace == ColorSpace.Linear ? (UInt64)ColorForamt.VK_FORMAT_R8G8B8A8_SRGB : (UInt64)RenderTextureFormat.Default; + } + else + { + overlayParam.format = QualitySettings.activeColorSpace == ColorSpace.Linear ? (UInt64)ColorForamt.GL_SRGB8_ALPHA8 : (UInt64)RenderTextureFormat.Default; + } + + if (isClones) + { + if (null != originalOverLay) + { + overlayParam.layerFlags |= (UInt32)PxrLayerCreateFlags.PxrLayerFlagSharedImagesBetweenLayers; + leftPtr = Marshal.AllocHGlobal(Marshal.SizeOf(originalOverLay.overlayIndex)); + rightPtr = Marshal.AllocHGlobal(Marshal.SizeOf(originalOverLay.overlayIndex)); + Marshal.WriteInt64(leftPtr, originalOverLay.overlayIndex); + Marshal.WriteInt64(rightPtr, originalOverLay.overlayIndex); + overlayParam.leftExternalImages = leftPtr; + overlayParam.rightExternalImages = rightPtr; + isDynamic = originalOverLay.isDynamic; + overlayParam.width = (UInt32)Mathf.Min(overlayParam.width, originalOverLay.overlayParam.width); + overlayParam.height = (UInt32)Mathf.Min(overlayParam.height, originalOverLay.overlayParam.height); + } + else + { + PLog.e(TAG + " In clone state, originalOverLay cannot be empty!"); + } + } + + if (!isDynamic) + { + overlayParam.layerFlags |= (UInt32)PxrLayerCreateFlags.PxrLayerFlagStaticImage; + } + + if (layerTextures[0] == layerTextures[1]) + { + eyeCount = 1; + overlayParam.layerLayout = LayerLayout.Mono; + } + else + { + eyeCount = 2; + overlayParam.layerLayout = LayerLayout.Stereo; + } + + OpenXRExtensions.CreateLayerParam(overlayParam); + toCreateSwapChain = true; + CreateTexture(); + } + + public void UpdateCoords() + { + if (null == overlayTransform || !overlayTransform.gameObject.activeSelf || null == overlayEyeCamera[0] || null == overlayEyeCamera[1]) + { + return; + } + + for (int i = 0; i < mvMatrixs.Length; i++) + { + mvMatrixs[i] = overlayEyeCamera[i].worldToCameraMatrix * overlayTransform.localToWorldMatrix; + if (overlayTransform is RectTransform uiTransform) + { + var rect = uiTransform.rect; + var lossyScale = overlayTransform.lossyScale; + modelScales[i] = new Vector3(rect.width * lossyScale.x, + rect.height * lossyScale.y, 1); + modelTranslations[i] = uiTransform.TransformPoint(rect.center); + } + else + { + modelScales[i] = overlayTransform.lossyScale; + modelTranslations[i] = overlayTransform.position; + } + modelRotations[i] = overlayTransform.rotation; + cameraRotations[i] = overlayEyeCamera[i].transform.rotation; + cameraTranslations[i] = overlayEyeCamera[i].transform.position; + } + } + + public bool CreateTexture() + { + if (!toCreateSwapChain) + { + return false; + } + + if (null == nativeTextures) + nativeTextures = new NativeTexture[eyeCount]; + + for (int i = 0; i < eyeCount; i++) + { + int ret = OpenXRExtensions.GetLayerImageCount(overlayIndex, (EyeType)i, ref imageCounts); + if (ret != 0 || imageCounts < 1) + { + PLog.e(TAG + $" ret={ret}, imageCounts={imageCounts}"); + return false; + } + + if (null == nativeTextures[i].textures) + { + nativeTextures[i].textures = new Texture[imageCounts]; + } + + for (int j = 0; j < imageCounts; j++) + { + IntPtr ptr = IntPtr.Zero; + OpenXRExtensions.GetLayerImagePtr(overlayIndex, (EyeType)i, j, ref ptr); + + if (IntPtr.Zero == ptr) + { + PLog.e(TAG + $" ptr is zero!"); + return false; + } + + Texture texture; + if (OverlayShape.Cubemap == overlayShape) + { + texture = Cubemap.CreateExternalTexture((int)overlayParam.width, TextureFormat.RGBA32, false, ptr); + } + else + { + texture = Texture2D.CreateExternalTexture((int)overlayParam.width, (int)overlayParam.height, TextureFormat.RGBA32, false, true, ptr); + } + + if (null == texture) + { + PLog.e(TAG + $" texture is null!"); + return false; + } + nativeTextures[i].textures[j] = texture; + PLog.i($"composition_layer 2. i={i}, j={j},imageCounts={imageCounts}, ptr={ptr}"); + } + PLog.i("composition_layer 3"); + } + + toCreateSwapChain = false; + toCopyRT = true; + copiedRT = false; + + FreePtr(); + + return true; + } + + public bool CopyRT() + { + if (isClones) + { + return true; + } + + if (!toCopyRT) + { + return copiedRT; + } + + if (!isDynamic && copiedRT) + { + return copiedRT; + } + + if (null == nativeTextures) + { + PLog.e(TAG + $" nativeTextures is null!"); + return false; + } + + OpenXRExtensions.GetLayerNextImageIndex(overlayIndex, ref imageIndex); + + for (int i = 0; i < eyeCount; i++) + { + Texture nativeTexture = nativeTextures[i].textures[imageIndex]; + + if (null == nativeTexture || null == layerTextures[i]) + continue; + + RenderTexture texture = layerTextures[i] as RenderTexture; + + if (OverlayShape.Cubemap == overlayShape && null == layerTextures[i] as Cubemap) + { + PLog.e(TAG + $" Cubemap. The type of layerTextures is not a Cubemap!"); + return false; + } + + bool enable = QualitySettings.activeColorSpace == ColorSpace.Gamma && texture != null && texture.format == RenderTextureFormat.ARGB32; + + for (int f = 0; f < (int)overlayParam.faceCount; f++) + { + if (enable) + { + PLog.d(TAG + $" gamma CopyTexture. f={f}"); + Graphics.CopyTexture(layerTextures[i], f, 0, nativeTexture, f, 0); + } + else + { + RenderTextureDescriptor rtDes = new RenderTextureDescriptor((int)overlayParam.width, (int)overlayParam.height, RenderTextureFormat.ARGB32, 0); + rtDes.msaaSamples = (int)overlayParam.sampleCount; + rtDes.useMipMap = true; + rtDes.autoGenerateMips = false; + rtDes.sRGB = true; + + RenderTexture renderTexture = RenderTexture.GetTemporary(rtDes); + + if (!renderTexture.IsCreated()) + { + renderTexture.Create(); + } + renderTexture.DiscardContents(); + + if (OverlayShape.Cubemap == overlayShape) + { + cubeM.SetInt("_d", f); + Graphics.Blit(layerTextures[i], renderTexture, cubeM); + } + else + { + Graphics.Blit(layerTextures[i], renderTexture); + } + PLog.d(TAG + $" linear CopyTexture. f={f}"); + Graphics.CopyTexture(renderTexture, 0, 0, nativeTexture, f, 0); + RenderTexture.ReleaseTemporary(renderTexture); + } + } + copiedRT = true; + } + + return copiedRT; + } + + public void SetTexture(Texture texture, bool dynamic) + { + if (isClones) + { + return; + } + else + { + foreach (CompositeLayerFeature overlay in CompositeLayerFeature.Instances) + { + if (overlay.isClones && null != overlay.originalOverLay && overlay.originalOverLay.overlayIndex == overlayIndex) + { + overlay.DestroyLayer(); + overlay.isClonesToNew = true; + } + } + } + + toCopyRT = false; + OpenXRExtensions.DestroyLayerByRender(overlayIndex); + ClearTexture(); + for (int i = 0; i < layerTextures.Length; i++) + { + layerTextures[i] = texture; + } + + isDynamic = dynamic; + InitializeBuffer(); + + if (!isClones) + { + foreach (CompositeLayerFeature overlay in CompositeLayerFeature.Instances) + { + if (overlay.isClones && overlay.isClonesToNew) + { + overlay.originalOverLay = this; + overlay.InitializeBuffer(); + overlay.isClonesToNew = false; + } + } + } + } + + private void FreePtr() + { + if (leftPtr != IntPtr.Zero) + { + Marshal.FreeHGlobal(leftPtr); + leftPtr = IntPtr.Zero; + } + + if (rightPtr != IntPtr.Zero) + { + Marshal.FreeHGlobal(rightPtr); + rightPtr = IntPtr.Zero; + } + + if (layerSubmitPtr != IntPtr.Zero) + { + Marshal.FreeHGlobal(layerSubmitPtr); + layerSubmitPtr = IntPtr.Zero; + } + } + + public void OnDestroy() + { + DestroyLayer(); + Instances.Remove(this); + } + + public void DestroyLayer() + { + if (!isClones) + { + List toDestroyClones = new List(); + foreach (CompositeLayerFeature overlay in Instances) + { + if (overlay.isClones && null != overlay.originalOverLay && overlay.originalOverLay.overlayIndex == overlayIndex) + { + toDestroyClones.Add(overlay); + } + } + + foreach (CompositeLayerFeature overLay in toDestroyClones) + { + OpenXRExtensions.DestroyLayerByRender(overLay.overlayIndex); + ClearTexture(); + } + } + + OpenXRExtensions.DestroyLayerByRender(overlayIndex); + ClearTexture(); + } + + private void ClearTexture() + { + FreePtr(); + + if (null == nativeTextures || isClones) + { + return; + } + + for (int i = 0; i < eyeCount; i++) + { + if (null == nativeTextures[i].textures) + { + continue; + } + + for (int j = 0; j < imageCounts; j++) + DestroyImmediate(nativeTextures[i].textures[j]); + } + + nativeTextures = null; + } + + public void SetLayerColorScaleAndOffset(Vector4 scale, Vector4 offset) + { + colorScale = scale; + colorOffset = offset; + } + + public void SetEACOffsetPosAndRot(Vector3 leftPos, Vector3 rightPos, Vector4 leftRot, Vector4 rightRot, float factor) + { + offsetPosLeft = leftPos; + offsetPosRight = rightPos; + offsetRotLeft = leftRot; + offsetRotRight = rightRot; + overlapFactor = factor; + } + + public Vector4 GetLayerColorScale() + { + if (!overrideColorScaleAndOffset) + { + return overlayLayerColorScaleDefault; + } + return colorScale; + } + + public Vector4 GetLayerColorOffset() + { + if (!overrideColorScaleAndOffset) + { + return overlayLayerColorOffsetDefault; + } + return colorOffset; + } + + public PxrRecti getPxrRectiLeft(bool left) + { + if (left) + { + imageRectLeft.x = (int)(overlayParam.width * srcRectLeft.x); + imageRectLeft.y = (int)(overlayParam.height * srcRectLeft.y); + imageRectLeft.width = (int)(overlayParam.width * Mathf.Min(srcRectLeft.width, 1 - srcRectLeft.x)); + imageRectLeft.height = (int)(overlayParam.height * Mathf.Min(srcRectLeft.height, 1 - srcRectLeft.y)); + // Debug.LogFormat("imageRectLeft width={0}, height={1}, x={2}, y={3}",imageRectLeft.width,imageRectLeft.height,imageRectLeft.x,imageRectLeft.y); + return imageRectLeft; + } + else + { + imageRectRight.x = (int)(overlayParam.width * srcRectRight.x); + imageRectRight.y = (int)(overlayParam.height * srcRectRight.y); + imageRectRight.width = (int)(overlayParam.width * Mathf.Min(srcRectRight.width, 1 - srcRectRight.x)); + imageRectRight.height = (int)(overlayParam.height * Mathf.Min(srcRectRight.height, 1 - srcRectRight.y)); + // Debug.LogFormat("imageRectRight width={0}, height={1}, x={2}, y={3}",imageRectRight.width,imageRectRight.height,imageRectRight.x,imageRectRight.y); + return imageRectRight; + } + } + + public enum OverlayShape + { + Quad = 1, + Cylinder = 2, + Equirect = 4, + Cubemap = 5, + } + + public enum OverlayType + { + Overlay = 0, + Underlay = 1 + } + + public enum TextureType + { + DynamicTexture, + StaticTexture + } + + public enum LayerLayout + { + Stereo = 0, + DoubleWide = 1, + Array = 2, + Mono = 3 + } + + public enum Surface3DType + { + Single = 0, + LeftRight, + TopBottom + } + + public enum TextureRect + { + MonoScopic, + StereoScopic, + Custom + } + + public enum DestinationRect + { + Default, + Custom + } + + public enum DegreeType + { + Eac360 = 0, + Eac180 = 4, + } + + public enum ColorForamt + { + VK_FORMAT_R8G8B8A8_UNORM = 37, + VK_FORMAT_R8G8B8A8_SRGB = 43, + GL_SRGB8_ALPHA8 = 0x8c43, + GL_RGBA8 = 0x8058 + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerFeature.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerFeature.cs.meta new file mode 100644 index 0000000..7a9c089 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerFeature.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 03ca3817c49e82b499325fde5c9e66ff +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerManager.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerManager.cs new file mode 100644 index 0000000..2e0962f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerManager.cs @@ -0,0 +1,338 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Runtime.InteropServices; +using UnityEngine; +using UnityEngine.Rendering; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public class CompositeLayerManager : MonoBehaviour + { + private void OnEnable() + { +#if UNITY_2019_1_OR_NEWER + if (GraphicsSettings.renderPipelineAsset != null) + { + RenderPipelineManager.beginFrameRendering += BeginRendering; + RenderPipelineManager.endFrameRendering += EndRendering; + } + else + { + Camera.onPreRender += OnPreRenderCallBack; + Camera.onPostRender += OnPostRenderCallBack; + } +#endif + } + + private void OnDisable() + { +#if UNITY_2019_1_OR_NEWER + if (GraphicsSettings.renderPipelineAsset != null) + { + RenderPipelineManager.beginFrameRendering -= BeginRendering; + RenderPipelineManager.endFrameRendering -= EndRendering; + } + else + { + Camera.onPreRender -= OnPreRenderCallBack; + Camera.onPostRender -= OnPostRenderCallBack; + } +#endif + } + + private void Start() + { + + } + + private void BeginRendering(ScriptableRenderContext arg1, Camera[] arg2) + { + foreach (Camera cam in arg2) + { + OnPreRenderCallBack(cam); + } + } + + private void EndRendering(ScriptableRenderContext arg1, Camera[] arg2) + { + foreach (Camera cam in arg2) + { + OnPostRenderCallBack(cam); + } + } + + private void OnPreRenderCallBack(Camera cam) + { + // There is only one XR main camera in the scene. + if (null == Camera.main) return; + if (cam == null || cam != Camera.main || cam.stereoActiveEye == Camera.MonoOrStereoscopicEye.Right) return; + + //CompositeLayers + if (null == CompositeLayerFeature.Instances) return; + if (CompositeLayerFeature.Instances.Count > 0) + { + foreach (var overlay in CompositeLayerFeature.Instances) + { + if (!overlay.isActiveAndEnabled) continue; + if (null == overlay.layerTextures) continue; + if (!overlay.isClones && overlay.layerTextures[0] == null && overlay.layerTextures[1] == null) continue; + if (overlay.overlayTransform != null && !overlay.overlayTransform.gameObject.activeSelf) continue; + overlay.CreateTexture(); + } + } + } + + private void OnPostRenderCallBack(Camera cam) + { + // There is only one XR main camera in the scene. + if (null == Camera.main) return; + if (cam == null || cam != Camera.main || cam.stereoActiveEye == Camera.MonoOrStereoscopicEye.Right) return; + + if (null == CompositeLayerFeature.Instances) return; + if (CompositeLayerFeature.Instances.Count > 0) + { + CompositeLayerFeature.Instances.Sort(); + foreach (var compositeLayer in CompositeLayerFeature.Instances) + { + if (null == compositeLayer) continue; + compositeLayer.UpdateCoords(); + if (!compositeLayer.isActiveAndEnabled) continue; + if (null == compositeLayer.layerTextures) continue; + if (!compositeLayer.isClones && compositeLayer.layerTextures[0] == null && compositeLayer.layerTextures[1] == null) continue; + if (compositeLayer.overlayTransform != null && null == compositeLayer.overlayTransform.gameObject) continue; + if (compositeLayer.overlayTransform != null && !compositeLayer.overlayTransform.gameObject.activeSelf) continue; + + Vector4 colorScale = compositeLayer.GetLayerColorScale(); + Vector4 colorBias = compositeLayer.GetLayerColorOffset(); + bool isHeadLocked = compositeLayer.overlayTransform != null && compositeLayer.overlayTransform.parent == transform; + + if (!compositeLayer.CopyRT()) continue; + if (null == compositeLayer.cameraRotations || null == compositeLayer.modelScales || null == compositeLayer.modelTranslations) continue; + + PxrLayerHeader2 header = new PxrLayerHeader2(); + PxrPosef poseLeft = new PxrPosef(); + PxrPosef poseRight = new PxrPosef(); + + header.layerId = compositeLayer.overlayIndex; + header.colorScaleX = colorScale.x; + header.colorScaleY = colorScale.y; + header.colorScaleZ = colorScale.z; + header.colorScaleW = colorScale.w; + header.colorBiasX = colorBias.x; + header.colorBiasY = colorBias.y; + header.colorBiasZ = colorBias.z; + header.colorBiasW = colorBias.w; + header.compositionDepth = compositeLayer.layerDepth; + header.headPose.orientation.x = compositeLayer.cameraRotations[0].x; + header.headPose.orientation.y = compositeLayer.cameraRotations[0].y; + header.headPose.orientation.z = -compositeLayer.cameraRotations[0].z; + header.headPose.orientation.w = -compositeLayer.cameraRotations[0].w; + header.headPose.position.x = (compositeLayer.cameraTranslations[0].x + compositeLayer.cameraTranslations[1].x) / 2; + header.headPose.position.y = (compositeLayer.cameraTranslations[0].y + compositeLayer.cameraTranslations[1].y) / 2; + header.headPose.position.z = -(compositeLayer.cameraTranslations[0].z + compositeLayer.cameraTranslations[1].z) / 2; + header.layerShape = compositeLayer.overlayShape; + header.useLayerBlend = (UInt32)(compositeLayer.useLayerBlend ? 1 : 0); + header.layerBlend.srcColor = compositeLayer.srcColor; + header.layerBlend.dstColor = compositeLayer.dstColor; + header.layerBlend.srcAlpha = compositeLayer.srcAlpha; + header.layerBlend.dstAlpha = compositeLayer.dstAlpha; + header.useImageRect = (UInt32)(compositeLayer.useImageRect ? 1 : 0); + header.imageRectLeft = compositeLayer.getPxrRectiLeft(true); + header.imageRectRight = compositeLayer.getPxrRectiLeft(false); + + if (isHeadLocked) + { + poseLeft.orientation.x = compositeLayer.overlayTransform.localRotation.x; + poseLeft.orientation.y = compositeLayer.overlayTransform.localRotation.y; + poseLeft.orientation.z = -compositeLayer.overlayTransform.localRotation.z; + poseLeft.orientation.w = -compositeLayer.overlayTransform.localRotation.w; + poseLeft.position.x = compositeLayer.overlayTransform.localPosition.x; + poseLeft.position.y = compositeLayer.overlayTransform.localPosition.y; + poseLeft.position.z = -compositeLayer.overlayTransform.localPosition.z; + + poseRight.orientation.x = compositeLayer.overlayTransform.localRotation.x; + poseRight.orientation.y = compositeLayer.overlayTransform.localRotation.y; + poseRight.orientation.z = -compositeLayer.overlayTransform.localRotation.z; + poseRight.orientation.w = -compositeLayer.overlayTransform.localRotation.w; + poseRight.position.x = compositeLayer.overlayTransform.localPosition.x; + poseRight.position.y = compositeLayer.overlayTransform.localPosition.y; + poseRight.position.z = -compositeLayer.overlayTransform.localPosition.z; + + header.layerFlags = (UInt32)( + PxrLayerSubmitFlags.PxrLayerFlagLayerPoseNotInTrackingSpace | + PxrLayerSubmitFlags.PxrLayerFlagHeadLocked); + } + else + { + Quaternion quaternion = new Quaternion(compositeLayer.modelRotations[0].x, + compositeLayer.modelRotations[0].y, compositeLayer.modelRotations[0].z, + compositeLayer.modelRotations[0].w); + + Vector3 cameraPos = Vector3.zero; + Quaternion cameraRot = Quaternion.identity; + Transform origin = null; + bool ret = PICOManager.Instance.GetOrigin(ref cameraPos, ref cameraRot, ref origin); + if (!ret) + { + PLog.e(" GetOrigin ret false!"); + return; + } + + Quaternion lQuaternion = new Quaternion(-cameraRot.x, -cameraRot.y, -cameraRot.z, cameraRot.w); + Vector3 pos = new Vector3(compositeLayer.modelTranslations[0].x - cameraPos.x, + compositeLayer.modelTranslations[0].y - PICOManager.Instance.getCameraYOffset() + + PICOManager.Instance.GetOriginY() - cameraPos.y, compositeLayer.modelTranslations[0].z - cameraPos.z); + + quaternion *= lQuaternion; + origin.rotation *= lQuaternion; + pos = origin.TransformPoint(pos); + + // Quaternion.l + poseLeft.position.x = pos.x; + poseLeft.position.y = pos.y; + poseLeft.position.z = -pos.z; + poseLeft.orientation.x = -quaternion.x; + poseLeft.orientation.y = -quaternion.y; + poseLeft.orientation.z = quaternion.z; + poseLeft.orientation.w = quaternion.w; + + poseRight.position.x = pos.x; + poseRight.position.y = pos.y; + poseRight.position.z = -pos.z; + poseRight.orientation.x = -quaternion.x; + poseRight.orientation.y = -quaternion.y; + poseRight.orientation.z = quaternion.z; + poseRight.orientation.w = quaternion.w; + + header.layerFlags = (UInt32)( + PxrLayerSubmitFlags.PxrLayerFlagUseExternalHeadPose | + PxrLayerSubmitFlags.PxrLayerFlagLayerPoseNotInTrackingSpace); + } + + if (compositeLayer.overlayShape == CompositeLayerFeature.OverlayShape.Quad) + { + PxrLayerQuad layerSubmit2 = new PxrLayerQuad(); + layerSubmit2.header = header; + layerSubmit2.poseLeft = poseLeft; + layerSubmit2.poseRight = poseRight; + layerSubmit2.sizeLeft.x = compositeLayer.modelScales[0].x; + layerSubmit2.sizeLeft.y = compositeLayer.modelScales[0].y; + layerSubmit2.sizeRight.x = compositeLayer.modelScales[0].x; + layerSubmit2.sizeRight.y = compositeLayer.modelScales[0].y; + + if (compositeLayer.useImageRect) + { + layerSubmit2.poseLeft.position.x += compositeLayer.modelScales[0].x * (-0.5f + compositeLayer.dstRectLeft.x + 0.5f * Mathf.Min(compositeLayer.dstRectLeft.width, 1 - compositeLayer.dstRectLeft.x)); + layerSubmit2.poseLeft.position.y += compositeLayer.modelScales[0].y * (-0.5f + compositeLayer.dstRectLeft.y + 0.5f * Mathf.Min(compositeLayer.dstRectLeft.height, 1 - compositeLayer.dstRectLeft.y)); + layerSubmit2.poseRight.position.x += compositeLayer.modelScales[0].x * (-0.5f + compositeLayer.dstRectRight.x + 0.5f * Mathf.Min(compositeLayer.dstRectRight.width, 1 - compositeLayer.dstRectRight.x)); + layerSubmit2.poseRight.position.y += compositeLayer.modelScales[0].y * (-0.5f + compositeLayer.dstRectRight.y + 0.5f * Mathf.Min(compositeLayer.dstRectRight.height, 1 - compositeLayer.dstRectRight.y)); + + layerSubmit2.sizeLeft.x = compositeLayer.modelScales[0].x * Mathf.Min(compositeLayer.dstRectLeft.width, 1 - compositeLayer.dstRectLeft.x); + layerSubmit2.sizeLeft.y = compositeLayer.modelScales[0].y * Mathf.Min(compositeLayer.dstRectLeft.height, 1 - compositeLayer.dstRectLeft.y); + layerSubmit2.sizeRight.x = compositeLayer.modelScales[0].x * Mathf.Min(compositeLayer.dstRectRight.width, 1 - compositeLayer.dstRectRight.x); + layerSubmit2.sizeRight.y = compositeLayer.modelScales[0].y * Mathf.Min(compositeLayer.dstRectRight.height, 1 - compositeLayer.dstRectRight.y); + } + if (compositeLayer.layerSubmitPtr != IntPtr.Zero) + { + Marshal.FreeHGlobal(compositeLayer.layerSubmitPtr); + compositeLayer.layerSubmitPtr = IntPtr.Zero; + } + + compositeLayer.layerSubmitPtr = Marshal.AllocHGlobal(Marshal.SizeOf(layerSubmit2)); + Marshal.StructureToPtr(layerSubmit2, compositeLayer.layerSubmitPtr, false); + + OpenXRExtensions.SubmitLayerQuad(compositeLayer.layerSubmitPtr); + } + else if (compositeLayer.overlayShape == CompositeLayerFeature.OverlayShape.Cylinder) + { + PxrLayerCylinder layerSubmit2 = new PxrLayerCylinder(); + layerSubmit2.header = header; + layerSubmit2.poseLeft = poseLeft; + layerSubmit2.poseRight = poseRight; + + if (compositeLayer.modelScales[0].z != 0) + { + layerSubmit2.centralAngleLeft = compositeLayer.modelScales[0].x / compositeLayer.modelScales[0].z; + layerSubmit2.centralAngleRight = compositeLayer.modelScales[0].x / compositeLayer.modelScales[0].z; + } + else + { + PLog.e("Cylinder modelScales scale.z is 0!"); + } + layerSubmit2.heightLeft = compositeLayer.modelScales[0].y; + layerSubmit2.heightRight = compositeLayer.modelScales[0].y; + layerSubmit2.radiusLeft = compositeLayer.modelScales[0].z; + layerSubmit2.radiusRight = compositeLayer.modelScales[0].z; + + if (compositeLayer.layerSubmitPtr != IntPtr.Zero) + { + Marshal.FreeHGlobal(compositeLayer.layerSubmitPtr); + compositeLayer.layerSubmitPtr = IntPtr.Zero; + } + + compositeLayer.layerSubmitPtr = Marshal.AllocHGlobal(Marshal.SizeOf(layerSubmit2)); + Marshal.StructureToPtr(layerSubmit2, compositeLayer.layerSubmitPtr, false); + + OpenXRExtensions.SubmitLayerCylinder(compositeLayer.layerSubmitPtr); + } + else if (compositeLayer.overlayShape == CompositeLayerFeature.OverlayShape.Equirect) + { + PxrLayerEquirect layerSubmit2 = new PxrLayerEquirect(); + layerSubmit2.header = header; + layerSubmit2.poseLeft = poseLeft; + layerSubmit2.poseRight = poseRight; + + layerSubmit2.radiusLeft = compositeLayer.radius; + layerSubmit2.radiusRight = compositeLayer.radius; + layerSubmit2.centralHorizontalAngleLeft = compositeLayer.dstRectLeft.width * 2 * Mathf.PI; + layerSubmit2.centralHorizontalAngleRight = compositeLayer.dstRectRight.width * 2 * Mathf.PI; + layerSubmit2.upperVerticalAngleLeft = (compositeLayer.dstRectLeft.height + compositeLayer.dstRectLeft.y - 0.5f) * Mathf.PI; + layerSubmit2.upperVerticalAngleRight = (compositeLayer.dstRectRight.height + compositeLayer.dstRectRight.y - 0.5f) * Mathf.PI; + layerSubmit2.lowerVerticalAngleLeft = (compositeLayer.dstRectLeft.y - 0.5f) * Mathf.PI; + layerSubmit2.lowerVerticalAngleRight = (compositeLayer.dstRectRight.y - 0.5f) * Mathf.PI; + + if (compositeLayer.layerSubmitPtr != IntPtr.Zero) + { + Marshal.FreeHGlobal(compositeLayer.layerSubmitPtr); + compositeLayer.layerSubmitPtr = IntPtr.Zero; + } + + compositeLayer.layerSubmitPtr = Marshal.AllocHGlobal(Marshal.SizeOf(layerSubmit2)); + Marshal.StructureToPtr(layerSubmit2, compositeLayer.layerSubmitPtr, false); + + OpenXRExtensions.SubmitLayerEquirect(compositeLayer.layerSubmitPtr); + } + else if (compositeLayer.overlayShape == CompositeLayerFeature.OverlayShape.Cubemap) + { + PxrLayerCube layerSubmit2 = new PxrLayerCube(); + layerSubmit2.header = header; + layerSubmit2.poseLeft = poseLeft; + layerSubmit2.poseRight = poseRight; + + if (compositeLayer.layerSubmitPtr != IntPtr.Zero) + { + Marshal.FreeHGlobal(compositeLayer.layerSubmitPtr); + compositeLayer.layerSubmitPtr = IntPtr.Zero; + } + + compositeLayer.layerSubmitPtr = Marshal.AllocHGlobal(Marshal.SizeOf(layerSubmit2)); + Marshal.StructureToPtr(layerSubmit2, compositeLayer.layerSubmitPtr, false); + + OpenXRExtensions.SubmitLayerCube(compositeLayer.layerSubmitPtr); + } + } + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerManager.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerManager.cs.meta new file mode 100644 index 0000000..5703906 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/CompositeLayerManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9164f0a21d04d4544bc6682b3b94ddea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/DisplayRefreshRateFeature.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/DisplayRefreshRateFeature.cs new file mode 100644 index 0000000..c6af7ca --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/DisplayRefreshRateFeature.cs @@ -0,0 +1,175 @@ +using System; +using System.Runtime.InteropServices; +using Unity.Collections; +using Unity.Collections.LowLevel.Unsafe; +using UnityEngine; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public enum SystemDisplayFrequency + { + Default, + RefreshRate72=72, + RefreshRate90=90, + RefreshRate120=120, + } +#if UNITY_EDITOR + [OpenXRFeature(UiName = "OpenXR Display Refresh Rate", + Hidden = false, + BuildTargetGroups = new[] { UnityEditor.BuildTargetGroup.Android }, + Company = "PICO", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + FeatureId = featureId)] +#endif + public class DisplayRefreshRateFeature : OpenXRFeatureBase + { + public const string featureId = "com.pico.openxr.feature.refreshrate"; + public const string extensionString = "XR_FB_display_refresh_rate"; + public static bool isExtensionEnable =false; + public override void Initialize(IntPtr intPtr) + { + isExtensionEnable=_isExtensionEnable; + initialize(intPtr, xrInstance); + } + public override string GetExtensionString() + { + return extensionString; + } + + public override void SessionCreate() + { + PICOProjectSetting projectConfig = PICOProjectSetting.GetProjectConfig(); + if (projectConfig.displayFrequency != SystemDisplayFrequency.Default) + { + float displayRefreshRate = 0; + GetDisplayRefreshRate(ref displayRefreshRate); + PLog.i($"GetDisplayRefreshRate:{displayRefreshRate}"); + SetDisplayRefreshRate(projectConfig.displayFrequency); + } + } + public static bool SetDisplayRefreshRate(SystemDisplayFrequency DisplayFrequency) + { + if (!isExtensionEnable) + { + return false; + } + + + PLog.i($"SetDisplayRefreshRate:{DisplayFrequency}"); + float rate = 0; + switch (DisplayFrequency) + { + case SystemDisplayFrequency.Default: + return true; + case SystemDisplayFrequency.RefreshRate72: + rate = 72; + break; + case SystemDisplayFrequency.RefreshRate90: + rate = 90; + break; + case SystemDisplayFrequency.RefreshRate120: + rate = 120; + break; + } + + return SetDisplayRefreshRate(rate); + } + + public static bool GetDisplayRefreshRate(ref float displayRefreshRate) + { + if (!isExtensionEnable) + { + return false; + } + return xrGetDisplayRefreshRateFB( + xrSession, ref displayRefreshRate); + } + + private static bool SetDisplayRefreshRate(float displayRefreshRate) + { + if (!isExtensionEnable) + { + return false; + } + return xrRequestDisplayRefreshRateFB( + xrSession, displayRefreshRate); + } + + private static bool EnumerateDisplayRefreshRates(uint displayRefreshRateCapacityInput, + ref uint displayRefreshRateCountOutput, ref float displayRefreshRates) + { + if (!isExtensionEnable) + { + return false; + } + return xrEnumerateDisplayRefreshRatesFB( + xrSession, displayRefreshRateCapacityInput, ref displayRefreshRateCountOutput, ref displayRefreshRates); + } + + public static int GetDisplayRefreshRateCount() + { + if (!isExtensionEnable) + { + return 0; + } + return xrGetDisplayRefreshRateCount(xrSession); + } + + public static bool TryGetSupportedDisplayRefreshRates( + Allocator allocator, out NativeArray refreshRates) + { + refreshRates = default; + + if (!isExtensionEnable) + { + return false; + } + + var numDisplayRefreshRates = xrGetDisplayRefreshRateCount(xrSession); + if (numDisplayRefreshRates == 0) + { + Debug.LogError($"{nameof(TryGetSupportedDisplayRefreshRates)} failed due to an unknown error."); + return false; + } + + unsafe + { + refreshRates = new NativeArray(numDisplayRefreshRates, allocator); + if (!refreshRates.IsCreated) + return false; + + return TryGetDisplayRefreshRates(xrSession, + NativeArrayUnsafeUtility.GetUnsafeBufferPointerWithoutChecks(refreshRates), + (uint)numDisplayRefreshRates); + } + } + + private const string ExtLib = "openxr_pico"; + + [DllImport(ExtLib, EntryPoint = "PICO_initialize_DisplayRefreshRates", CallingConvention = CallingConvention.Cdecl)] + private static extern void initialize(IntPtr xrGetInstanceProcAddr, ulong xrInstance); + + [DllImport(ExtLib, EntryPoint = "PICO_xrEnumerateDisplayRefreshRatesFB", CallingConvention = CallingConvention.Cdecl)] + private static extern bool xrEnumerateDisplayRefreshRatesFB(ulong xrSession, + uint displayRefreshRateCapacityInput, ref uint displayRefreshRateCountOutput, + ref float displayRefreshRates); + + [DllImport(ExtLib, EntryPoint = "PICO_xrGetDisplayRefreshRateFB", CallingConvention = CallingConvention.Cdecl)] + private static extern bool xrGetDisplayRefreshRateFB(ulong xrSession, ref float displayRefreshRate); + + [DllImport(ExtLib, EntryPoint = "PICO_xrRequestDisplayRefreshRateFB", CallingConvention = CallingConvention.Cdecl)] + private static extern bool xrRequestDisplayRefreshRateFB(ulong xrSession, float displayRefreshRate); + [DllImport(ExtLib, EntryPoint = "PICO_xrGetDisplayRefreshRateCount", CallingConvention = CallingConvention.Cdecl)] + public static extern int xrGetDisplayRefreshRateCount(ulong xrSession); + + [DllImport(ExtLib, EntryPoint = "PICO_xrTryGetDisplayRefreshRates", CallingConvention = CallingConvention.Cdecl)] + public static extern unsafe bool TryGetDisplayRefreshRates(ulong xrSession,void* refreshRates, uint capacity); + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/DisplayRefreshRateFeature.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/DisplayRefreshRateFeature.cs.meta new file mode 100644 index 0000000..ff1554b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/DisplayRefreshRateFeature.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 233eef4f97ef4b0b8b65c5030c0b05f7 +timeCreated: 1685686551 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/FoveationFeature.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/FoveationFeature.cs new file mode 100644 index 0000000..89e2541 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/FoveationFeature.cs @@ -0,0 +1,159 @@ +using UnityEditor; +using UnityEngine.XR.OpenXR.Features; +using System.Runtime.InteropServices; +using System; +using Unity.XR.OpenXR.Features.PICOSupport; +using UnityEngine; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; + +[OpenXRFeature(UiName = "OpenXR Foveation", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + OpenxrExtensionStrings = extensionList, + Company = "PICO", + Version = "1.0.0", + FeatureId = featureId)] +#endif + + +public class FoveationFeature : OpenXRFeatureBase +{ + public const string extensionList = "XR_FB_foveation " + + "XR_FB_foveation_configuration " + + "XR_FB_foveation_vulkan " + + "XR_META_foveation_eye_tracked " + + "XR_META_vulkan_swapchain_create_info " + + "XR_FB_swapchain_update_state "; + + public const string featureId = "com.pico.openxr.feature.foveation"; + + public enum FoveatedRenderingLevel + { + Off = 0, + Low = 1, + Medium = 2, + High = 3 + } + public enum FoveatedRenderingMode + { + FixedFoveatedRendering = 0, + EyeTrackedFoveatedRendering = 1 + } + private static string TAG = "FoveationFeature"; + + private static UInt32 _foveatedRenderingLevel = 0; + private static UInt32 _useDynamicFoveation = 0; + public static bool isExtensionEnable =false; + + public override string GetExtensionString() + { + return extensionList; + } + public override void Initialize(IntPtr intPtr) + { + isExtensionEnable=_isExtensionEnable; + } + public override void SessionCreate() + { + if (!isExtensionEnable) + { + return ; + } + PICOProjectSetting projectConfig = PICOProjectSetting.GetProjectConfig(); + if (projectConfig.foveationEnable) + { + setFoveationEyeTracked(projectConfig.foveatedRenderingMode == + FoveatedRenderingMode.EyeTrackedFoveatedRendering); + foveatedRenderingLevel = projectConfig.foveatedRenderingLevel; + setSubsampledEnabled(projectConfig.isSubsampledEnabled); + } + } + public static FoveatedRenderingLevel foveatedRenderingLevel + { + get + { + if (!isExtensionEnable) + { + return FoveatedRenderingLevel.Off; + } + UInt32 level; + FBGetFoveationLevel(out level); + PLog.i($" foveatedRenderingLevel get if level= {level}"); + return (FoveatedRenderingLevel)level; + } + set + { + if (!isExtensionEnable) + { + return; + } + PLog.i($" foveatedRenderingLevel set if value= {value}"); + _foveatedRenderingLevel = (UInt32)value; + FBSetFoveationLevel(xrSession, _foveatedRenderingLevel, 0.0f, _useDynamicFoveation); + } + } + + public static bool useDynamicFoveatedRendering + { + get + { + if (!isExtensionEnable) + { + return false; + } + UInt32 dynamic; + FBGetFoveationLevel(out dynamic); + return dynamic != 0; + } + set + { + if (!isExtensionEnable) + { + return ; + } + if (value) + _useDynamicFoveation = 1; + else + _useDynamicFoveation = 0; + FBSetFoveationLevel(xrSession, _foveatedRenderingLevel, 0.0f, _useDynamicFoveation); + } + } + + public static bool supportsFoveationEyeTracked + { + get + { + if (!isExtensionEnable) + { + return false; + } + return isSupportsFoveationEyeTracked(xrInstance); + } + } + + + + #region OpenXR Plugin DLL Imports + + [DllImport("UnityOpenXR", EntryPoint = "FBSetFoveationLevel")] + private static extern void FBSetFoveationLevel(UInt64 session, UInt32 level, float verticalOffset, UInt32 dynamic); + + [DllImport("UnityOpenXR", EntryPoint = "FBGetFoveationLevel")] + private static extern void FBGetFoveationLevel(out UInt32 level); + + [DllImport("UnityOpenXR", EntryPoint = "FBGetFoveationDynamic")] + private static extern void FBGetFoveationDynamic(out UInt32 dynamic); + + #endregion + + const string extLib = "openxr_pico"; + + [DllImport(extLib, EntryPoint = "PICO_isSupportsFoveationEyeTracked", CallingConvention = CallingConvention.Cdecl)] + private static extern bool isSupportsFoveationEyeTracked(ulong xrInstance); + + [DllImport(extLib, EntryPoint = "PICO_setFoveationEyeTracked", CallingConvention = CallingConvention.Cdecl)] + private static extern void setFoveationEyeTracked(bool value); + [DllImport(extLib, EntryPoint = "PICO_setSubsampledEnabled", CallingConvention = CallingConvention.Cdecl)] + private static extern void setSubsampledEnabled(bool value); +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/FoveationFeature.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/FoveationFeature.cs.meta new file mode 100644 index 0000000..ffce509 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/FoveationFeature.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5f636716e11d15b4bbafb76eb9d63555 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/LayerSecureContentFeature.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/LayerSecureContentFeature.cs new file mode 100644 index 0000000..18aa490 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/LayerSecureContentFeature.cs @@ -0,0 +1,62 @@ +using System; +using System.Runtime.InteropServices; +using UnityEngine; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "OpenXR Composition Layer Secure Content", + Hidden = false, + BuildTargetGroups = new[] { UnityEditor.BuildTargetGroup.Android }, + Company = "PICO", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + FeatureId = featureId)] +#endif + public class LayerSecureContentFeature : OpenXRFeatureBase + { + public const string featureId = "com.pico.openxr.feature.LayerSecureContent"; + public const string extensionString = "XR_FB_composition_layer_secure_content"; + + public static bool isExtensionEnable =false; + public override string GetExtensionString() + { + return extensionString; + } + + public override void Initialize(IntPtr intPtr) + { + isExtensionEnable=_isExtensionEnable; + } + public override void SessionCreate() + { + PICOProjectSetting projectConfig = PICOProjectSetting.GetProjectConfig(); + if (projectConfig.useContentProtect) + { + SetSecureContentFlag(projectConfig.contentProtectFlags); + } + } + + + public static void SetSecureContentFlag(SecureContentFlag flag) + { + if (!isExtensionEnable) + { + return; + } + + setSecureContentFlag((int)flag); + } + + const string extLib = "openxr_pico"; + + [DllImport(extLib, EntryPoint = "PICO_setSecureContentFlag", CallingConvention = CallingConvention.Cdecl)] + private static extern void setSecureContentFlag(Int32 flag); + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/LayerSecureContentFeature.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/LayerSecureContentFeature.cs.meta new file mode 100644 index 0000000..5802fec --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/LayerSecureContentFeature.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 105a2b5276c1435d8411162e42e5064e +timeCreated: 1687177588 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality.meta new file mode 100644 index 0000000..ced1bdb --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11da15b829408094e9a647e4b3d566c7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/MR_Plugin.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/MR_Plugin.cs new file mode 100644 index 0000000..92b2e81 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/MR_Plugin.cs @@ -0,0 +1,927 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using Unity.Collections; +using Unity.Collections.LowLevel.Unsafe; +using Unity.XR.OpenXR.Features.PICOSupport; +using UnityEngine; + +namespace Unity.XR.PXR +{ + public partial class PXR_Plugin + { + public static class MixedReality + { + private const string TAG = "[MR_Plugin/MixedReality]"; + const string PXR_PLATFORM_DLL = "openxr_pico"; + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + public static extern int Pxr_SetMeshLOD(ushort spatialMeshLod); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_StartSenseDataProviderAsync(ulong providerHandle, out ulong future); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_PollFutureEXT(ref XrFuturePollInfoEXT pollInfo, ref XrFuturePollResultEXT pollResult); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_CreateSenseDataProvider(ref XrSenseDataProviderCreateInfoBaseHeader createInfo, out ulong providerHandle); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_StartSenseDataProviderComplete(ulong future, ref XrSenseDataProviderStartCompletion completion); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_GetSenseDataProviderState(ulong providerHandle, ref PxrSenseDataProviderState state); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_StopSenseDataProvider(ulong providerHandle); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_DestroySenseDataProvider(ulong providerHandle); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_CreateSpatialAnchorAsync(ulong providerHandle, ref PxrPosef info, out ulong future); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_CreateSpatialAnchorComplete(ulong providerHandle, ulong future, ref XrSpatialAnchorCompletion completion); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_PersistSpatialAnchorAsync(ulong providerHandle, ref XrSpatialAnchorPersistInfo info, out ulong future); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_PersistSpatialAnchorComplete(ulong providerHandle, ulong future, ref XrSpatialAnchorCompletion completion); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_DestroyAnchor(ulong anchorHandle); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_QuerySenseDataAsync(ulong providerHandle, ref XrSenseDataQueryInfo info, out ulong future); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_QuerySenseDataComplete(ulong providerHandle, ulong future, ref XrSenseDataQueryCompletion completion); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_GetQueriedSenseData(ulong providerHandle, ref XrQueriedSenseDataGetInfo info, ref XrQueriedSenseData senseData); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_RetrieveSpatialEntityAnchor(ulong snapshotHandle, ref XrSpatialEntityAnchorRetrieveInfo info, out ulong anchorHandle); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_DestroySenseDataQueryResult(ulong snapshotHandle); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_LocateAnchor(ulong anchorHandle, ref XrSpaceLocation location); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_GetAnchorUuid(ulong anchorHandle, out PxrUuid uuid); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_UnpersistSpatialAnchorAsync(ulong providerHandle, ref XrSpatialAnchorUnpersistInfo info, out ulong future); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_UnpersistSpatialAnchorComplete(ulong providerHandle, ulong future, ref XrSpatialAnchorCompletion completion); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_StartSceneCaptureAsync(ulong providerHandle, out ulong future); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_StartSceneCaptureComplete(ulong providerHandle, ulong future, ref XrSceneCaptureStartCompletion completion); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_EnumerateSpatialEntityComponentTypes(ulong snapshotHandle, ulong spatialEntity, uint inputCount, out uint outputCount, + IntPtr types); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern ulong Pxr_GetSpatialMeshProviderHandle(); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_GetSpatialEntityComponentInfo(ulong snapshotHandle, ref XrSpatialEntityComponentGetInfoBaseHeader componentGetInfo, + ref XrSpatialEntityComponentDataBaseHeader componentInfo); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_GetSpatialEntitySemanticInfo(ulong snapshotHandle, ref XrSpatialEntityGetInfo componentGetInfo, + ref XrSpatialEntitySemanticData componentInfo); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_GetSpatialEntityLocationInfo(ulong snapshotHandle, ref XrSpatialEntityLocationGetInfo componentGetInfo, + ref XrSpatialEntityLocationData componentInfo); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_GetSpatialEntityBox3DInfo(ulong snapshotHandle, ref XrSpatialEntityGetInfo componentGetInfo, + ref XrSpatialEntityBoundingBox3DData componentInfo); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_GetSpatialEntityBox2DInfo(ulong snapshotHandle, ref XrSpatialEntityGetInfo componentGetInfo, + ref XrSpatialEntityBoundingBox2DData componentInfo); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_GetSpatialEntityPolygonInfo(ulong snapshotHandle, ref XrSpatialEntityGetInfo componentGetInfo, + ref XrSpatialEntityPolygonData componentInfo); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern int Pxr_GetSpatialMeshVerticesAndIndices(ulong snapshotHandle, ref XrSpatialEntityGetInfo componentGetInfo, + ref PxrTriangleMeshInfo componentInfo); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern unsafe void Pxr_AddOrUpdateMesh(ulong id1, ulong id2, int numVertices, void* vertices, int numTriangles, void* indices, + Vector3 position, Quaternion rotation); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern void Pxr_RemoveMesh(ulong id1, ulong id2); + + [DllImport(PXR_PLATFORM_DLL, CallingConvention = CallingConvention.Cdecl)] + private static extern void Pxr_ClearMeshes(); + public static ulong SpatialAnchorProviderHandle { get; set; } + public static ulong SceneCaptureProviderHandle { get; set; } + + + public static Dictionary meshAnchorLastData = new Dictionary(); + public static Dictionary SceneAnchorData = new Dictionary(); + public static Dictionary SpatialMeshData = new Dictionary(); + private static readonly Dictionary> nativeMeshArrays = new Dictionary>(); + + public static ulong UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType type) + { + switch (type) + { + case PxrSenseDataProviderType.SpatialAnchor: + return SpatialAnchorProviderHandle; + case PxrSenseDataProviderType.SceneCapture: + return SceneCaptureProviderHandle; + default: + throw new ArgumentOutOfRangeException(nameof(type), type, null); + } + } + + public static PxrResult UPxr_StartSenseDataProviderAsync(ulong providerHandle, out ulong future) + { + future = UInt64.MinValue; + var pxrResult = (PxrResult)Pxr_StartSenseDataProviderAsync(providerHandle, out future); + return pxrResult; + } + + public static PxrResult UPxr_PollFuture(ulong future, out PxrFutureState futureState) + { + XrFuturePollInfoEXT pollInfo = new XrFuturePollInfoEXT() + { + type = XrStructureType.XR_TYPE_FUTURE_POLL_INFO_EXT, + future = future, + }; + XrFuturePollResultEXT pollResult = new XrFuturePollResultEXT() + { + type = XrStructureType.XR_TYPE_FUTURE_POLL_RESULT_EXT, + }; + var pxrResult = (PxrResult)Pxr_PollFutureEXT(ref pollInfo, ref pollResult); + futureState = pollResult.state; + + return pxrResult; + } + + public static PxrResult UPxr_CreateSenseDataProvider(ref XrSenseDataProviderCreateInfoBaseHeader info, out ulong providerHandle) + { + var pxrResult = (PxrResult)Pxr_CreateSenseDataProvider(ref info, out providerHandle); + return pxrResult; + } + + public static PxrResult UPxr_CreateSpatialAnchorSenseDataProvider() + { + XrSenseDataProviderCreateInfoBaseHeader header = new XrSenseDataProviderCreateInfoBaseHeader() + { + type = XrStructureType.XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_ANCHOR + }; + + var pxrResult = UPxr_CreateSenseDataProvider(ref header, out var providerHandle); + SpatialAnchorProviderHandle = providerHandle; + return pxrResult; + } + + public static PxrResult UPxr_CreateSceneCaptureSenseDataProvider() + { + XrSenseDataProviderCreateInfoBaseHeader header = new XrSenseDataProviderCreateInfoBaseHeader() + { + type = XrStructureType.XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SCENE_CAPTURE, + }; + + var pxrResult = UPxr_CreateSenseDataProvider(ref header, out var providerHandle); + SceneCaptureProviderHandle = providerHandle; + return pxrResult; + } + + public static PxrResult UPxr_StartSenseDataProviderComplete(ulong future, out XrSenseDataProviderStartCompletion completion) + { + completion = new XrSenseDataProviderStartCompletion() + { + type = XrStructureType.XR_TYPE_SENSE_DATA_PROVIDER_START_COMPLETION, + }; + var pxrResult = (PxrResult)Pxr_StartSenseDataProviderComplete(future, ref completion); + return pxrResult; + } + + public static PxrResult UPxr_GetSenseDataProviderState(ulong providerHandle, out PxrSenseDataProviderState state) + { + state = PxrSenseDataProviderState.Stopped; + var pxrResult = (PxrResult)Pxr_GetSenseDataProviderState(providerHandle, ref state); + return pxrResult; + } + + public static PxrResult UPxr_StopSenseDataProvide(ulong providerHandle) + { + var pxrResult = (PxrResult)Pxr_StopSenseDataProvider(providerHandle); + return pxrResult; + } + + public static PxrResult UPxr_DestroySenseDataProvider(ulong providerHandle) + { + var pxrResult = (PxrResult)Pxr_DestroySenseDataProvider(providerHandle); + return pxrResult; + } + + public static PxrResult UPxr_CreateSpatialAnchorAsync(ulong providerHandle, Vector3 position, Quaternion rotation, out ulong future) + { + PxrPosef pose = new PxrPosef() + { + orientation = new PxrVector4f() + { + x = rotation.x, + y = rotation.y, + z = -rotation.z, + w = -rotation.w + }, + position = new PxrVector3f() + { + x = position.x, + y = position.y, + z = -position.z + } + }; + var pxrResult = (PxrResult)Pxr_CreateSpatialAnchorAsync(providerHandle, ref pose, out future); + return pxrResult; + } + + public static PxrResult UPxr_CreateSpatialAnchorComplete(ulong providerHandle, ulong future, out XrSpatialAnchorCompletion completion) + { + completion = new XrSpatialAnchorCompletion() + { + type = XrStructureType.XR_TYPE_SPATIAL_ANCHOR_CREATE_COMPLETION + }; + var pxrResult = (PxrResult)Pxr_CreateSpatialAnchorComplete(providerHandle, future, ref completion); + return pxrResult; + } + + public static PxrResult UPxr_PersistSpatialAnchorAsync(ulong providerHandle, ulong anchorHandle, out ulong future) + { + XrSpatialAnchorPersistInfo persistInfo = new XrSpatialAnchorPersistInfo() + { + type = XrStructureType.XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO, + location = PxrPersistenceLocation.Local, + anchorHandle = anchorHandle + }; + var pxrResult = (PxrResult)Pxr_PersistSpatialAnchorAsync(providerHandle, ref persistInfo, out future); + return pxrResult; + } + + public static PxrResult UPxr_PersistSpatialAnchorComplete(ulong providerHandle,ulong future,out XrSpatialAnchorCompletion completion) + { + completion = new XrSpatialAnchorCompletion() + { + type = XrStructureType.XR_TYPE_SPATIAL_ANCHOR_PERSIST_COMPLETION, + }; + var pxrResult = (PxrResult)Pxr_PersistSpatialAnchorComplete(providerHandle, future, ref completion); + return pxrResult; + } + + public static PxrResult UPxr_DestroyAnchor(ulong anchorHandle) + { + var pxrResult = (PxrResult)Pxr_DestroyAnchor(anchorHandle); + return pxrResult; + } + + public static PxrResult UPxr_QuerySenseDataAsync(ulong providerHandle,ref XrSenseDataQueryInfo info, out ulong future) + { + var pxrResult = (PxrResult)Pxr_QuerySenseDataAsync(providerHandle, ref info, out future); + return pxrResult; + } + public static PxrResult UPxr_QuerySenseDataByUuidAsync(Guid[] uuids, out ulong future) + { + XrSenseDataQueryInfo info = new XrSenseDataQueryInfo() + { + type = XrStructureType.XR_TYPE_SENSE_DATA_QUERY_INFO, + }; + XrSenseDataFilterUuid uuidFilter = new XrSenseDataFilterUuid() + { + type = XrStructureType.XR_TYPE_SENSE_DATA_FILTER_UUID + }; + + if (uuids.Length > 0) + { + uuidFilter.uuidCount = (uint)uuids.Length; + uuidFilter.uuidList = Marshal.AllocHGlobal(uuids.Length * Marshal.SizeOf(typeof(Guid))); + byte[] bytes = uuids.SelectMany(g => g.ToByteArray()).ToArray(); + Marshal.Copy(bytes, 0, uuidFilter.uuidList, uuids.Length * Marshal.SizeOf(typeof(Guid))); + int size = Marshal.SizeOf(); + info.filter = Marshal.AllocHGlobal(size); + Marshal.StructureToPtr(uuidFilter, info.filter, false); + } + else + { + info.filter = IntPtr.Zero; + } + + var pxrResult = UPxr_QuerySenseDataAsync(UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor), ref info, out future); + Marshal.FreeHGlobal(uuidFilter.uuidList); + Marshal.FreeHGlobal(info.filter); + return pxrResult; + } + + public static PxrResult UPxr_QuerySenseDataComplete(ulong providerHandle,ulong future,out XrSenseDataQueryCompletion completion) + { + completion = new XrSenseDataQueryCompletion() + { + type = XrStructureType.XR_TYPE_SENSE_DATA_QUERY_COMPLETION, + }; + var pxrResult = (PxrResult)Pxr_QuerySenseDataComplete(providerHandle, future,ref completion); + return pxrResult; + } + + + + public static PxrResult UPxr_GetQueriedSenseData(ulong providerHandle, ulong snapshotHandle, out List entityinfos) + { + XrQueriedSenseDataGetInfo info = new XrQueriedSenseDataGetInfo() + { + type = XrStructureType.XR_TYPE_QUERIED_SENSE_DATA_GET_INFO, + snapshotHandle = snapshotHandle + }; + + XrQueriedSenseData senseDataFirst = new XrQueriedSenseData() + { + type = XrStructureType.XR_TYPE_QUERIED_SENSE_DATA_GET_INFO, + queriedSpatialEntityCapacityInput = 0, + queriedSpatialEntityCountOutput = 0, + }; + + var getResultFirst = (PxrResult)Pxr_GetQueriedSenseData(providerHandle, ref info, ref senseDataFirst); + if (getResultFirst == PxrResult.SUCCESS) + { + XrQueriedSenseData senseDataSecond = new XrQueriedSenseData() + { + type = XrStructureType.XR_TYPE_QUERIED_SENSE_DATA_GET_INFO, + queriedSpatialEntityCapacityInput = senseDataFirst.queriedSpatialEntityCountOutput, + queriedSpatialEntityCountOutput = senseDataFirst.queriedSpatialEntityCountOutput, + }; + int resultSize = Marshal.SizeOf(); + // Debug.Log("[PoxrUnity] PxrQueriedSpatialEntityInfo size:"+resultSize); + int bytesSize = (int)senseDataFirst.queriedSpatialEntityCountOutput * resultSize; + senseDataSecond.queriedSpatialEntities = Marshal.AllocHGlobal(bytesSize); + var getResultSecond = (PxrResult)Pxr_GetQueriedSenseData(providerHandle, ref info, ref senseDataSecond); + entityinfos = new List(); + if (getResultSecond==PxrResult.SUCCESS) + { + for (int i = 0; i < senseDataFirst.queriedSpatialEntityCountOutput; i++) + { + PxrQueriedSpatialEntityInfo t = + (PxrQueriedSpatialEntityInfo)Marshal.PtrToStructure(senseDataSecond.queriedSpatialEntities + i * resultSize, + typeof(PxrQueriedSpatialEntityInfo)); + // Debug.Log($"[PoxrUnity] {i} spatialEntity="+t.spatialEntity); + entityinfos.Add(t); + } + } + Marshal.FreeHGlobal(senseDataSecond.queriedSpatialEntities); + return getResultSecond; + } + else + { + entityinfos = new List(); + return getResultFirst; + } + } + + public static PxrResult UPxr_RetrieveSpatialEntityAnchor(ulong snapshotHandle, ulong spatialEntityHandle,out ulong anchorHandle) + { + XrSpatialEntityAnchorRetrieveInfo info = new XrSpatialEntityAnchorRetrieveInfo() + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_ANCHOR_RETRIEVE_INFO, + spatialEntity = spatialEntityHandle, + }; + var pxrResult = (PxrResult)Pxr_RetrieveSpatialEntityAnchor(snapshotHandle, ref info,out anchorHandle); + return pxrResult; + } + public static PxrResult UPxr_DestroySenseDataQueryResult(ulong queryResultHandle) + { + var pxrResult = (PxrResult)Pxr_DestroySenseDataQueryResult(queryResultHandle); + return pxrResult; + } + + public static PxrResult UPxr_LocateAnchor(ulong anchorHandle, out Vector3 position, out Quaternion rotation) + { + + + XrSpaceLocation location = new XrSpaceLocation() + { + type = XrStructureType.XR_TYPE_SPACE_LOCATION, + }; + var pxrResult = (PxrResult)Pxr_LocateAnchor(anchorHandle, ref location); + foreach (PxrSpaceLocationFlags value in Enum.GetValues(typeof(PxrSpaceLocationFlags))) + { + if ((location.locationFlags & (ulong)value) != (ulong)value) + { + position = Vector3.zero; + rotation = Quaternion.identity; + return PxrResult.ERROR_POSE_INVALID; + } + } + rotation = new Quaternion(location.pose.orientation.x, location.pose.orientation.y, -location.pose.orientation.z, -location.pose.orientation.w); + position = new Vector3(location.pose.position.x, location.pose.position.y, -location.pose.position.z); + return pxrResult; + } + + public static PxrResult UPxr_GetAnchorUuid(ulong anchorHandle, out Guid uuid) + { + var pxrResult = (PxrResult)Pxr_GetAnchorUuid(anchorHandle,out var pUuid); + byte[] byteArray = new byte[16]; + BitConverter.GetBytes(pUuid.value0).CopyTo(byteArray, 0); + BitConverter.GetBytes(pUuid.value1).CopyTo(byteArray, 8); + // Debug.Log($"GetAnchorUuid, uuid byteArray result is {string.Join(", ", byteArray)}"); + uuid = new Guid(byteArray); + return pxrResult; + } + + + public static PxrResult UPxr_UnPersistSpatialAnchorAsync(ulong providerHandle, ulong anchorHandle, out ulong future) + { + XrSpatialAnchorUnpersistInfo unPersistInfo = new XrSpatialAnchorUnpersistInfo() + { + type = XrStructureType.XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_INFO, + location = PxrPersistenceLocation.Local, + anchorHandle = anchorHandle + }; + var pxrResult = (PxrResult)Pxr_UnpersistSpatialAnchorAsync(providerHandle, ref unPersistInfo, out future); + return pxrResult; + } + public static PxrResult UPxr_UnPersistSpatialAnchorComplete(ulong providerHandle,ulong future, out XrSpatialAnchorCompletion completion) + { + completion = new XrSpatialAnchorCompletion() + { + type = XrStructureType.XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_COMPLETION, + }; + var pxrResult = (PxrResult)Pxr_UnpersistSpatialAnchorComplete(providerHandle, future, ref completion); + return pxrResult; + } + + public static PxrResult UPxr_StartSceneCaptureAsync(out ulong future) + { + var pxrResult = (PxrResult)Pxr_StartSceneCaptureAsync(UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SceneCapture), out future); + return pxrResult; + } + + public static PxrResult UPxr_StartSceneCaptureComplete(ulong future,out XrSceneCaptureStartCompletion completion) + { + completion = new XrSceneCaptureStartCompletion() + { + type = XrStructureType.XR_TYPE_SCENE_CAPTURE_START_COMPLETION + }; + var pxrResult = (PxrResult)Pxr_StartSceneCaptureComplete(UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SceneCapture), future,ref completion); + return pxrResult; + } + + public static PxrResult UPxr_QuerySenseDataBySemanticAsync(PxrSemanticLabel[] labels, out ulong future) + { + XrSenseDataQueryInfo info = new XrSenseDataQueryInfo() + { + type = XrStructureType.XR_TYPE_SENSE_DATA_QUERY_INFO, + }; + + XrSenseDataFilterSemantic semanticFilter = new XrSenseDataFilterSemantic() + { + type = XrStructureType.XR_TYPE_SENSE_DATA_FILTER_SEMANTIC + }; + + if (labels.Length > 0) + { + semanticFilter.semanticCount = (uint)labels.Length; + int[] labelsAsInts = labels.Select(x => (int)x).ToArray(); + semanticFilter.semantics = Marshal.AllocHGlobal(labels.Length * Marshal.SizeOf(typeof(int))); + Marshal.Copy(labelsAsInts, 0, semanticFilter.semantics, labelsAsInts.Length); + int size = Marshal.SizeOf(); + info.filter = Marshal.AllocHGlobal(size); + Marshal.StructureToPtr(semanticFilter, info.filter, false); + } + else + { + info.filter = IntPtr.Zero; + } + + var pxrResult = UPxr_QuerySenseDataAsync(UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SceneCapture), ref info, out future); + Marshal.FreeHGlobal(semanticFilter.semantics); + Marshal.FreeHGlobal(info.filter); + return pxrResult; + } + + + + public static PxrResult UPxr_GetSpatialEntitySemanticInfo(ulong snapshotHandle, ulong spatialEntityHandle, out PxrSemanticLabel label) + { + label = PxrSemanticLabel.Unknown; + PxrResult result = UPxr_GetSpatialSemantics(snapshotHandle, spatialEntityHandle, out var labels); + if (result==PxrResult.SUCCESS&&labels.Length>0) + { + label = labels[0]; + } + return result; + } + + + + + public static PxrResult UPxr_GetSpatialEntityLocationInfo(ulong snapshotHandle, ulong spatialEntityHandle, out Vector3 position, + out Quaternion rotation) + { + position = Vector3.zero; + rotation = Quaternion.identity; + var getInfo = new XrSpatialEntityLocationGetInfo + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_LOCATION_GET_INFO, + entity = spatialEntityHandle, + componentType = PxrSceneComponentType.Location, + baseSpace = 0, + time = 0, + }; + XrSpatialEntityLocationData locationInfo = new XrSpatialEntityLocationData() + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_LOCATION_DATA + }; + var result = (PxrResult)Pxr_GetSpatialEntityLocationInfo(snapshotHandle, ref getInfo, ref locationInfo); + if (result == PxrResult.SUCCESS) + { + foreach (PxrSpaceLocationFlags value in Enum.GetValues(typeof(PxrSpaceLocationFlags))) + { + if ((locationInfo.location.locationFlags & (ulong)value) != (ulong)value) + { + position = Vector3.zero; + rotation = Quaternion.identity; + return PxrResult.ERROR_POSE_INVALID; + } + } + rotation = new Quaternion(locationInfo.location.pose.orientation.x, locationInfo.location.pose.orientation.y, -locationInfo.location.pose.orientation.z, + -locationInfo.location.pose.orientation.w); + position = new Vector3(locationInfo.location.pose.position.x, locationInfo.location.pose.position.y, -locationInfo.location.pose.position.z); + // Debug.Log("[PoxrUnity] UPxr_GetSpatialEntityLocationInfo rotation:"+rotation+" position:"+position); + } + return result; + } + + public static PxrResult UPxr_EnumerateSpatialEntityComponentTypes(ulong snapshotHandle, ulong spatialEntityHandle, + out PxrSceneComponentType[] types) + { + var componentTypes = IntPtr.Zero; + types = Array.Empty(); + var firstResult = + (PxrResult)Pxr_EnumerateSpatialEntityComponentTypes(snapshotHandle, spatialEntityHandle, 0, out var firstOutputCount, componentTypes); + if (firstResult == PxrResult.SUCCESS) + { + int size = (int)firstOutputCount * Marshal.SizeOf(typeof(int)); + componentTypes = Marshal.AllocHGlobal(size); + var secondResult = (PxrResult)Pxr_EnumerateSpatialEntityComponentTypes(snapshotHandle, spatialEntityHandle, firstOutputCount, + out var outputCount, componentTypes); + if (secondResult == PxrResult.SUCCESS) + { + types = new PxrSceneComponentType[outputCount]; + int[] typesInts = new int[outputCount]; + Marshal.Copy(componentTypes, typesInts, 0, (int)firstOutputCount); + for (int i = 0; i < outputCount; i++) + { + types[i] = (PxrSceneComponentType)typesInts[i]; + // Debug.Log("[PoxrUnity] UPxr_EnumerateSpatialEntityComponentTypes componentTypes="+ typesInts[i]); + } + + Marshal.FreeHGlobal(componentTypes); + return PxrResult.SUCCESS; + } + else + { + types = Array.Empty(); + Marshal.FreeHGlobal(componentTypes); + return secondResult; + } + } + else + { + types = Array.Empty(); + return firstResult; + } + } + + + public static PxrResult UPxr_GetSpatialEntityBox3DInfo(ulong snapshotHandle, ulong spatialEntityHandle, out Vector3 position, + out Quaternion rotation, out Vector3 extent) + { + position = Vector3.zero; + rotation = Quaternion.identity; + extent = Vector3.zero; + var getInfo = new XrSpatialEntityGetInfo + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_BOUNDING_BOX_3D_GET_INFO, + next = IntPtr.Zero, + entity = spatialEntityHandle, + componentType = PxrSceneComponentType.Box3D + }; + + + XrSpatialEntityBoundingBox3DData box3DInfo = new XrSpatialEntityBoundingBox3DData() + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_BOUNDING_BOX_3D_DATA, + next = IntPtr.Zero + }; + + var result = (PxrResult)Pxr_GetSpatialEntityBox3DInfo(snapshotHandle, ref getInfo, ref box3DInfo); + if (result == PxrResult.SUCCESS) + { + position = new Vector3(box3DInfo.box3D.center.position.x, box3DInfo.box3D.center.position.y, box3DInfo.box3D.center.position.z); + rotation = new Quaternion(box3DInfo.box3D.center.orientation.x, box3DInfo.box3D.center.orientation.y, box3DInfo.box3D.center.orientation.z, + box3DInfo.box3D.center.orientation.w); + extent = new Vector3(box3DInfo.box3D.extents.width, box3DInfo.box3D.extents.height, box3DInfo.box3D.extents.depth); + // Debug.Log($"[PoxrUnity] UPxr_GetSpatialEntityBox3DInfo snapshotHandle={snapshotHandle} position={position} rotation={rotation} extent={ extent}"); + + } + return result; + } + + public static PxrResult UPxr_GetSpatialEntityBox2DInfo(ulong snapshotHandle, ulong spatialEntityHandle, out Vector2 offset, out Vector2 extent) + { + offset = Vector2.zero; + extent = Vector2.zero; + var getInfo = new XrSpatialEntityGetInfo + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_BOUNDING_BOX_2D_GET_INFO, + entity = spatialEntityHandle, + componentType = PxrSceneComponentType.Box2D + }; + + XrSpatialEntityBoundingBox2DData box2DInfo = new XrSpatialEntityBoundingBox2DData() + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_BOUNDING_BOX_2D_DATA, + }; + + var result = (PxrResult)Pxr_GetSpatialEntityBox2DInfo(snapshotHandle, ref getInfo, ref box2DInfo); + if (result == PxrResult.SUCCESS) + { + offset = box2DInfo.box2D.offset; + extent =box2DInfo.box2D.extent.ToVector2(); + Debug.Log($"[PoxrUnity] UPxr_GetSpatialEntityBox2DInfo snapshotHandle={snapshotHandle} offset={offset} extent={extent} "); + } + return result; + } + + + public static PxrResult UPxr_GetSpatialEntityPolygonInfo(ulong snapshotHandle, ulong spatialEntityHandle, out Vector2[] vertices) + { + vertices = Array.Empty(); + var getInfo = new XrSpatialEntityGetInfo + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_POLYGON_GET_INFO, + entity = spatialEntityHandle, + componentType = PxrSceneComponentType.Polygon + }; + + XrSpatialEntityPolygonData polygonInfo = new XrSpatialEntityPolygonData() + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_POLYGON_DATA, + polygonCapacityInput = 0, + polygonCountOutput = 0, + vertices = IntPtr.Zero + }; + + var result = (PxrResult)Pxr_GetSpatialEntityPolygonInfo(snapshotHandle, ref getInfo, ref polygonInfo); + + if (result == PxrResult.SUCCESS) + { + if (polygonInfo.polygonCountOutput > 0) + { + polygonInfo.polygonCapacityInput = polygonInfo.polygonCountOutput; + polygonInfo.vertices = Marshal.AllocHGlobal((int)polygonInfo.polygonCountOutput * Marshal.SizeOf(typeof(PxrVector2f))); + + result = (PxrResult)Pxr_GetSpatialEntityPolygonInfo(snapshotHandle, ref getInfo, ref polygonInfo); + if (result == PxrResult.SUCCESS) + { + vertices = new Vector2[polygonInfo.polygonCountOutput]; + var vector2fs = new PxrVector2f[polygonInfo.polygonCountOutput]; + for (int i = 0; i < polygonInfo.polygonCountOutput; i++) + { + vector2fs[i] = Marshal.PtrToStructure(polygonInfo.vertices + i * Marshal.SizeOf(typeof(PxrVector2f))); + vertices[i].x = vector2fs[i].x; + vertices[i].y = vector2fs[i].y; + // Debug.Log($"[PoxrUnity] UPxr_GetSpatialEntityPolygonInfo snapshotHandle={snapshotHandle} vertices[{i}]={vertices[i]}"); + } + } + + Marshal.FreeHGlobal(polygonInfo.vertices); + } + } + + return result; + } + public static ulong UPxr_GetSpatialMeshProviderHandle() + { + return Pxr_GetSpatialMeshProviderHandle(); + } + + public static PxrResult UPxr_GetSpatialMesh(ulong snapshotHandle, ulong entityHandle, ref PxrSpatialMeshInfo meshInfo) + { + var result = UPxr_GetSpatialMeshVerticesAndIndices(snapshotHandle, entityHandle, out var indices, out var vertices); + if (result == PxrResult.SUCCESS) + { + meshInfo.indices = indices; + meshInfo.vertices = vertices; + result = UPxr_GetSpatialSemantics(snapshotHandle, entityHandle, out var labels); + if (result == PxrResult.SUCCESS) + { + meshInfo.labels = labels; + result = UPxr_GetSpatialEntityLocationInfo(snapshotHandle, entityHandle, out var position, out var rotation); + if (result == PxrResult.SUCCESS) + { + meshInfo.position = position; + meshInfo.rotation = rotation; + + return PxrResult.SUCCESS; + } + else + { + return result; + } + } + else + { + return result; + } + } + else + { + return result; + } + } + + + public static PxrResult UPxr_GetSpatialMeshVerticesAndIndices(ulong snapshotHandle, ulong entityHandle, out ushort[] indices, out Vector3[] vertices) + { + indices = Array.Empty(); + vertices = Array.Empty(); + var getInfo = new XrSpatialEntityGetInfo + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_TRIANGLE_MESH_GET_INFO, + entity = entityHandle, + componentType = PxrSceneComponentType.TriangleMesh + }; + + PxrTriangleMeshInfo meshInfo = new PxrTriangleMeshInfo() + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_TRIANGLE_MESH_DATA, + vertexCapacityInput = 0, + vertexCountOutput = 0, + vertices = IntPtr.Zero, + indexCapacityInput = 0, + indexCountOutput = 0, + indices = IntPtr.Zero + }; + + var result = (PxrResult)Pxr_GetSpatialMeshVerticesAndIndices(snapshotHandle, ref getInfo, ref meshInfo); + if (result == PxrResult.SUCCESS) + { + + meshInfo.indexCapacityInput = meshInfo.indexCountOutput; + meshInfo.indices = Marshal.AllocHGlobal((int)meshInfo.indexCountOutput * Marshal.SizeOf(typeof(ushort))); + meshInfo.vertexCapacityInput = meshInfo.vertexCountOutput; + meshInfo.vertices = Marshal.AllocHGlobal((int)meshInfo.vertexCountOutput * Marshal.SizeOf(typeof(PxrVector3f))); + + result = (PxrResult)Pxr_GetSpatialMeshVerticesAndIndices(snapshotHandle, ref getInfo, ref meshInfo); + if (result == PxrResult.SUCCESS) + { + + indices = new ushort[meshInfo.indexCountOutput]; + if (meshInfo.indexCountOutput > 0) + { + var indicesTmp = new short[meshInfo.indexCountOutput]; + Marshal.Copy(meshInfo.indices, indicesTmp, 0, (int)meshInfo.indexCountOutput); + indices = indicesTmp.Select(l => (ushort)l).ToArray(); + + for (int i = 0; i < indices.Length; i += 3) + { + (indices[i + 1], indices[i + 2]) = (indices[i + 2], indices[i + 1]); + } + } + vertices = new Vector3[meshInfo.vertexCountOutput]; + if (meshInfo.vertexCountOutput > 0) + { + IntPtr tempPtr = meshInfo.vertices; + for (int i = 0; i < meshInfo.vertexCountOutput; i++) + { + vertices[i] = Marshal.PtrToStructure(tempPtr); + tempPtr += Marshal.SizeOf(typeof(Vector3)); + } + + vertices = vertices.Select(v => new Vector3(v.x, v.y, -v.z)).ToArray(); + } + } + + Marshal.FreeHGlobal(meshInfo.indices); + Marshal.FreeHGlobal(meshInfo.vertices); + return result; + } + + return result; + + } + + public static PxrResult UPxr_GetSpatialSemantics(ulong snapshotHandle, ulong spatialEntityHandle, out PxrSemanticLabel[] labels) + { + labels = Array.Empty(); + XrSpatialEntityGetInfo getInfo = new XrSpatialEntityGetInfo + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_SEMANTIC_GET_INFO, + entity = spatialEntityHandle, + componentType = PxrSceneComponentType.Semantic + }; + XrSpatialEntitySemanticData semanticInfo = new XrSpatialEntitySemanticData() + { + type = XrStructureType.XR_TYPE_SPATIAL_ENTITY_SEMANTIC_DATA, + semanticCapacityInput = 0, + semanticCountOutput = 0, + semanticLabels = IntPtr.Zero + }; + + var result = (PxrResult)Pxr_GetSpatialEntitySemanticInfo(snapshotHandle, ref getInfo, ref semanticInfo); + if (result == PxrResult.SUCCESS) + { + if (semanticInfo.semanticCountOutput > 0) + { + semanticInfo.semanticCapacityInput = semanticInfo.semanticCountOutput; + + semanticInfo.semanticLabels = Marshal.AllocHGlobal((int)semanticInfo.semanticCapacityInput*Marshal.SizeOf(typeof(int))); + + result = (PxrResult)Pxr_GetSpatialEntitySemanticInfo(snapshotHandle, ref getInfo, ref semanticInfo); + if (result == PxrResult.SUCCESS) + { + labels = new PxrSemanticLabel[semanticInfo.semanticCountOutput]; + var sTmp = new int[semanticInfo.semanticCountOutput]; + Marshal.Copy(semanticInfo.semanticLabels, sTmp, 0, (int)semanticInfo.semanticCountOutput); + labels = sTmp.Select(l => (PxrSemanticLabel)l).ToArray(); + // label = (PxrSemanticLabel)Marshal.ReadInt32(semanticInfo.semanticLabels); + // Debug.Log("[PoxrUnity] UPxr_GetSpatialEntitySemanticInfo semanticLabels:"+label); + } + + Marshal.FreeHGlobal(semanticInfo.semanticLabels); + return result; + } + + return result; + } + + return result; + } + + public static void UPxr_AddOrUpdateMesh(PxrSpatialMeshInfo meshInfo) + { + byte[] temp = meshInfo.uuid.ToByteArray(); + var id1 = BitConverter.ToUInt64(temp, 0); + var id2 = BitConverter.ToUInt64(temp, 8); + var vertices = new NativeArray(meshInfo.vertices, Allocator.Persistent); + var indices = new NativeArray(meshInfo.indices, Allocator.Persistent); + + unsafe + { + Pxr_AddOrUpdateMesh(id1, id2, meshInfo.vertices.Length, NativeArrayUnsafeUtility.GetUnsafeReadOnlyPtr(vertices), meshInfo.indices.Length, NativeArrayUnsafeUtility.GetUnsafeReadOnlyPtr(indices), meshInfo.position, meshInfo.rotation); + } + + if (nativeMeshArrays.TryGetValue(meshInfo.uuid, out var nativeArrays)) + nativeArrays.ForEach(x => x.Dispose()); + nativeMeshArrays[meshInfo.uuid] = new List { vertices, indices}; + } + public static void UPxr_RemoveMesh(Guid uuid) + { + byte[] temp = uuid.ToByteArray(); + var id1 = BitConverter.ToUInt64(temp, 0); + var id2 = BitConverter.ToUInt64(temp, 8); + Pxr_RemoveMesh(id1, id2); + if (nativeMeshArrays.TryGetValue(uuid, out var nativeArrays)) + { + nativeArrays.ForEach(x => x.Dispose()); + nativeMeshArrays.Remove(uuid); + } + } + public static void UPxr_DisposeMesh() + { + foreach (var nativeArrays in nativeMeshArrays.Values) + { + nativeArrays.ForEach(x => x.Dispose()); + } + + nativeMeshArrays.Clear(); + UPxr_ClearMeshes(); + } + public static void UPxr_ClearMeshes() + { + Pxr_ClearMeshes(); + } + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/MR_Plugin.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/MR_Plugin.cs.meta new file mode 100644 index 0000000..98ef972 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/MR_Plugin.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 22c136dcdaaa485aaa5680cf25bf28d5 +timeCreated: 1721811189 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_MixedReality.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_MixedReality.cs new file mode 100644 index 0000000..7481c9e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_MixedReality.cs @@ -0,0 +1,1048 @@ +/******************************************************************************* +Copyright ? 2015-2022 Pico Technology Co., Ltd.All rights reserved. + +NOTICE All information contained herein is, and remains the property of +Pico Technology Co., Ltd. The intellectual and technical concepts +contained hererin are proprietary to Pico Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +Pico Technology Co., Ltd. +*******************************************************************************/ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Unity.XR.OpenXR.Features.PICOSupport; +using UnityEngine; +using UnityEngine.XR; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; + +namespace Unity.XR.PXR +{ + public class PXR_MixedReality + { + private const string TAG = "[PXR_MixedReality]"; + /// + /// Starts the Spatial Anchor or Scene Capture feature by starting the corresponding sense data provider. + /// + /// Specifies the type of sense data provider to start: `SpatialAnchor` or `SceneCapture`. + /// Propagates notification that operations should be canceled. + /// Refer to the `PxrResult` enumeration for details. + public static async Task StartSenseDataProvider(PxrSenseDataProviderType type, CancellationToken token = default) + { + var isFeature = false; + + if (type==PxrSenseDataProviderType.SpatialAnchor) + { + isFeature = PICOSpatialAnchor.isEnable; + } + else if (type==PxrSenseDataProviderType.SceneCapture) + { + isFeature = PICOSceneCapture.isEnable; + } + + if (!isFeature) + { + return await Task.Run(() => { return PxrResult.ERROR_EXTENSION_NOT_ENABLED; }, token); + } + + int isPermissionMR = -1; + PXR_PermissionRequest.RequestUserPermissionMR(d => + { + isPermissionMR = -2; + Debug.LogError($"request permission result is {d}"); + }, async g => { isPermissionMR = 0; }, dda => + { + isPermissionMR = -2; + Debug.LogError($"request permission result is {dda}"); + }); + + while (isPermissionMR==-1) + { + await Task.Delay(200); + } + if (isPermissionMR != 0) + { + return await Task.Run(() => { return PxrResult.ERROR_PERMISSION_INSUFFICIENT; }, token); + } + return await Task.Run(() => + { + var providerHandle = PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(type); + var startResult = + PXR_Plugin.MixedReality.UPxr_StartSenseDataProviderAsync(providerHandle, out var future); + if (startResult == PxrResult.SUCCESS) + { + while (true) + { + var pollResult = PXR_Plugin.MixedReality.UPxr_PollFuture(future, out var futureState); + if (pollResult == PxrResult.SUCCESS) + { + if (futureState == PxrFutureState.Ready) + { + var completeResult = + PXR_Plugin.MixedReality.UPxr_StartSenseDataProviderComplete(future, + out var completion); + if (completeResult == PxrResult.SUCCESS) + { + return completion.futureResult; + } + else + { + return completeResult; + } + } + } + else + { + return pollResult; + } + } + } + else + { + return startResult; + } + }, token); + } + /// + /// Gets the state of the sense data provider. + /// + /// Specifies the type of sense data provider to get state for: `SpatialAnchor` or `SceneCapture`. + /// Returns the state of the specified sense data provider. + /// Refer to the `PxrResult` enumeration for details. + public static PxrResult GetSenseDataProviderState(PxrSenseDataProviderType type,out PxrSenseDataProviderState state) + { + var providerHandle = PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(type); + return PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderState(providerHandle, out state); + } + /// + /// Stops the Spatial Anchor or Scene Capture feature by stopping the corresponding sense data provider. + /// + /// Specifies the sense data provider to stop: `SpatialAnchor` or `SceneCapture`. + /// Refer to the `PxrResult` enumeration for details. + public static PxrResult StopSenseDataProvider(PxrSenseDataProviderType type) + { + var providerHandle = PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(type); + var stopResult = PXR_Plugin.MixedReality.UPxr_StopSenseDataProvide(providerHandle); + return stopResult; + } + /// + /// Creates a spatial anchor in the app's memory. + /// + /// Specifies the position of the spatial anchor. + /// Specifies the rotation of the spatial anchor. + /// Propagates notification that operations should be canceled. + /// Refer to the `PxrResult` enumeration for details. In addition, the handle and UUID of the spatial anchor created are returned. + + public static async Task<(PxrResult result, ulong anchorHandle, Guid uuid)> CreateSpatialAnchorAsync( + Vector3 position, Quaternion rotation, CancellationToken token = default) + { + return await Task.Run(() => + { + var createResult = PXR_Plugin.MixedReality.UPxr_CreateSpatialAnchorAsync( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor), position, rotation, out var future); + if (createResult == PxrResult.SUCCESS) + { + while (true) + { + var pollResult = PXR_Plugin.MixedReality.UPxr_PollFuture(future, out var futureState); + if (pollResult == PxrResult.SUCCESS) + { + if (futureState == PxrFutureState.Ready) + { + var completeResult = PXR_Plugin.MixedReality.UPxr_CreateSpatialAnchorComplete( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor), future, + out var completion); + if (completeResult == PxrResult.SUCCESS) + { + byte[] byteArray = new byte[16]; + // Debug.Log($"request anchor result is {completeResult}"); + BitConverter.GetBytes(completion.uuid.value0).CopyTo(byteArray, 0); + BitConverter.GetBytes(completion.uuid.value1).CopyTo(byteArray, 8); + //Debug.Log($"xrCreateSpatialAnchorComplete byteArray result is {string.Join(", ", byteArray)}"); + var uuid = new Guid(byteArray); + return (completion.futureResult, completion.anchorHandle, uuid); + } + else + { + return (completeResult, ulong.MinValue, Guid.Empty); + } + } + } + else + { + return (pollResult, ulong.MinValue, Guid.Empty); + } + } + } + else + { + return (createResult, ulong.MinValue, Guid.Empty); + } + }, token); + } + /// + /// Persists a spatial anchor to the PICO device's local disk. + /// + /// Specifies the handle of the spatial anchor to persist. + /// Propagates notification that operations should be canceled. + /// Refer to the `PxrResult` enumeration for details. + public static async Task PersistSpatialAnchorAsync(ulong anchorHandle,CancellationToken token = default) + { + return await Task.Run(() => + { + var persistResult = PXR_Plugin.MixedReality.UPxr_PersistSpatialAnchorAsync( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor), anchorHandle, out var future); + if (persistResult == PxrResult.SUCCESS) + { + while (true) + { + var pollResult = PXR_Plugin.MixedReality.UPxr_PollFuture(future, out var futureState); + if (pollResult == PxrResult.SUCCESS) + { + if (futureState == PxrFutureState.Ready) + { + var completeResult = PXR_Plugin.MixedReality.UPxr_PersistSpatialAnchorComplete( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor), future, + out var completion); + if (completeResult == PxrResult.SUCCESS) + { + return completion.futureResult; + } + else + { + return completeResult; + } + } + } + else + { + return pollResult; + } + } + } + else + { + return persistResult; + } + }, token); + } + /// + /// Destroys an anchor in the app's memory. + /// + /// Specifies the handle of the anchor to destroy. If you specify the handle of a scene anchor, the "Invalid handle" prompt will appear. + /// Refer to the `PxrResult` enumeration for details. + public static PxrResult DestroyAnchor(ulong anchorHandle) + { + if (PXR_Plugin.MixedReality.SceneAnchorData.ContainsKey(anchorHandle)) + { + return PxrResult.ERROR_HANDLE_INVALID; + } + else + { + return PXR_Plugin.MixedReality.UPxr_DestroyAnchor(anchorHandle); + } + } + /// + /// Loads spatial anchor(s) from the device's local storage and the app's memory. + /// + /// Specifies the UUID(s) of the spatial anchor(s) you want to load. If you do not pass any UUID, all spatial anchors will be loaded. + /// Propagates notification that operations should be canceled. + /// Refer to the `PxrResult` enumeration for details. In addition, a list of the handles of the loaded anchors is returned. + public static async Task<(PxrResult result, List anchorHandleList)> QuerySpatialAnchorAsync(Guid[] uuids = null, CancellationToken token = default) + { + return await Task.Run(() => + { + if (uuids == null) + { + uuids = Array.Empty(); + } + var queryResult = PXR_Plugin.MixedReality.UPxr_QuerySenseDataByUuidAsync(uuids, out var future); + if (queryResult == PxrResult.SUCCESS) + { + while (true) + { + var pollResult = PXR_Plugin.MixedReality.UPxr_PollFuture(future, out var futureState); + if (pollResult == PxrResult.SUCCESS) + { + if (futureState == PxrFutureState.Ready) + { + var completeResult = PXR_Plugin.MixedReality.UPxr_QuerySenseDataComplete( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor), future, + out var completion); + if (completeResult == PxrResult.SUCCESS) + { + if (completion.futureResult == PxrResult.SUCCESS) + { + var getResult = PXR_Plugin.MixedReality.UPxr_GetQueriedSenseData( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor), + completion.snapshotHandle, out var entityInfos); + if (getResult == PxrResult.SUCCESS) + { + var anchorHandleList = new List(); + foreach (var e in entityInfos) + { + var retrieveResult = PXR_Plugin.MixedReality.UPxr_RetrieveSpatialEntityAnchor(completion.snapshotHandle, + e.spatialEntity, out var anchorHandle); + if (retrieveResult == PxrResult.SUCCESS) + { + anchorHandleList.Add(anchorHandle); + } + } + PXR_Plugin.MixedReality.UPxr_DestroySenseDataQueryResult(completion.snapshotHandle); + return (getResult, anchorHandleList); + } + else + { + PXR_Plugin.MixedReality.UPxr_DestroySenseDataQueryResult(completion.snapshotHandle); + return (getResult, new List()); + } + } + else + { + return (completion.futureResult, new List()); + } + } + else + { + return (completeResult, new List()); + } + } + } + else + { + return (pollResult, new List()); + } + } + } + else + { + return (queryResult, new List()); + } + }, token); + } + /// + /// Locates an anchor by getting its real-time position and rotation. + /// + /// Specifies the handle of the anchor to locate. + /// Returns the position of the anchor. + /// Returns the rotation of the anchor. + /// Refer to the `PxrResult` enumeration for details. + public static PxrResult LocateAnchor(ulong anchorHandle, out Vector3 position, out Quaternion rotation) + { + if (PXR_Plugin.MixedReality.SceneAnchorData.ContainsKey(anchorHandle)) + { + if (PXR_Plugin.MixedReality.SceneAnchorData.TryGetValue(anchorHandle, out var data)) + { + position = data.position; + rotation = data.rotation; + return PxrResult.SUCCESS; + } + else + { + position = Vector3.zero; + rotation = Quaternion.identity; + return PxrResult.ERROR_HANDLE_INVALID; + } + } + else + { + return PXR_Plugin.MixedReality.UPxr_LocateAnchor(anchorHandle, out position, out rotation); + } + } + /// + /// Gets the UUID of an anchor. + /// + /// Specifies the handle of the anchor to get UUID for. + /// Returns the UUID of the specified anchor. + /// Refer to the `PxrResult` enumeration for details. + public static PxrResult GetAnchorUuid(ulong anchorHandle, out Guid uuid) + { + if (PXR_Plugin.MixedReality.SceneAnchorData.ContainsKey(anchorHandle)) + { + if (PXR_Plugin.MixedReality.SceneAnchorData.TryGetValue(anchorHandle, out var data)) + { + uuid = data.uuid; + return PxrResult.SUCCESS; + } + else + { + uuid = Guid.Empty; + return PxrResult.ERROR_HANDLE_INVALID; + } + } + else + { + return PXR_Plugin.MixedReality.UPxr_GetAnchorUuid(anchorHandle, out uuid); + } + } + /// + /// Unpersists a spatial anchor from the PICO device's local disk. + /// + /// Specifies the handle of the spatial anchor to unpersist. + /// Propagates notification that operations should be canceled. + /// Refer to the `PxrResult` enumeration for details. + public static async Task UnPersistSpatialAnchorAsync(ulong anchorHandle, CancellationToken token = default) + { + return await Task.Run(() => + { + var unPersistResult = PXR_Plugin.MixedReality.UPxr_UnPersistSpatialAnchorAsync( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor), anchorHandle, out var future); + if (unPersistResult == PxrResult.SUCCESS) + { + while (true) + { + var pollResult = PXR_Plugin.MixedReality.UPxr_PollFuture(future, out var futureState); + if (pollResult == PxrResult.SUCCESS) + { + if (futureState == PxrFutureState.Ready) + { + var completeResult = PXR_Plugin.MixedReality.UPxr_UnPersistSpatialAnchorComplete( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor), future, + out var completion); + if (completeResult == PxrResult.SUCCESS) + { + return completion.futureResult; + } + else + { + return completeResult; + } + } + } + else + { + return pollResult; + } + } + } + else + { + return unPersistResult; + } + }, token); + } + /// + /// Launches the Room Capture app to capture the current real-world scene. + /// + /// Propagates notification that operations should be canceled. + /// Refer to the `PxrResult` enumeration for details. + public static async Task StartSceneCaptureAsync(CancellationToken token = default) + { + return await Task.Run(() => + { + var startResult = PXR_Plugin.MixedReality.UPxr_StartSceneCaptureAsync(out var future); + if (startResult == PxrResult.SUCCESS) + { + while (true) + { + var pollResult = PXR_Plugin.MixedReality.UPxr_PollFuture(future, out var futureState); + if (pollResult == PxrResult.SUCCESS) + { + if (futureState == PxrFutureState.Ready) + { + var completeResult = PXR_Plugin.MixedReality.UPxr_StartSceneCaptureComplete(future, out var completion); + if (completeResult == PxrResult.SUCCESS) + { + return completion.futureResult; + } + else + { + return completeResult; + } + } + } + else + { + return pollResult; + } + } + } + else + { + return startResult; + } + }, token); + } + /// + /// Loads scene anchors with specified semantic label(s). + /// + /// Specifies the semantic label(s). If not specified, all scene anchors will be returned. + /// Propagates notification that operations should be canceled. + /// Refer to the `PxrResult` enumeration for details. In addition, a list of the handles of loaded anchors is returned. + public static async Task<(PxrResult result, List anchorHandleList)> QuerySceneAnchorAsync(PxrSemanticLabel[] labels = null, + CancellationToken token = default) + { + return await Task.Run(() => + { + if (labels == null) + { + labels = Array.Empty(); + } + + var queryResult = PXR_Plugin.MixedReality.UPxr_QuerySenseDataBySemanticAsync(labels, out var future); + if (queryResult == PxrResult.SUCCESS) + { + while (true) + { + var pollResult = PXR_Plugin.MixedReality.UPxr_PollFuture(future, out var futureState); + if (pollResult == PxrResult.SUCCESS) + { + if (futureState == PxrFutureState.Ready) + { + var completeResult = PXR_Plugin.MixedReality.UPxr_QuerySenseDataComplete( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SceneCapture), future, + out var completion); + if (completeResult == PxrResult.SUCCESS) + { + if (completion.futureResult == PxrResult.SUCCESS) + { + var getResult = PXR_Plugin.MixedReality.UPxr_GetQueriedSenseData( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SceneCapture), + completion.snapshotHandle, out var entityInfos); + if (getResult == PxrResult.SUCCESS) + { + var anchorHandleList = new List(); + PXR_Plugin.MixedReality.SceneAnchorData.Clear(); + PXR_Plugin.MixedReality.SceneAnchorData = new Dictionary(); + foreach (var e in entityInfos) + { + byte[] byteArray = new byte[16]; + BitConverter.GetBytes(e.uuid.value0).CopyTo(byteArray, 0); + BitConverter.GetBytes(e.uuid.value1).CopyTo(byteArray, 8); + + Guid guid = new Guid(byteArray); + anchorHandleList.Add(e.spatialEntity); + var sceneAnchor = new PxrSceneComponentData + { + uuid = guid + }; + var result = PXR_Plugin.MixedReality.UPxr_GetSpatialEntitySemanticInfo(completion.snapshotHandle, e.spatialEntity, out var label); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.label = label; + } + + result = PXR_Plugin.MixedReality.UPxr_GetSpatialEntityLocationInfo(completion.snapshotHandle, + e.spatialEntity, out var position, out var rotation); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.position = position; + sceneAnchor.rotation = rotation; + } + + result = PXR_Plugin.MixedReality.UPxr_EnumerateSpatialEntityComponentTypes(completion.snapshotHandle, + e.spatialEntity, out var types); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.types = types; + } + + foreach (var t in types) + { + switch (t) + { + case PxrSceneComponentType.Box3D: + { + result = PXR_Plugin.MixedReality.UPxr_GetSpatialEntityBox3DInfo(completion.snapshotHandle, + e.spatialEntity, out var cPosition, out var cRotation, out var extent); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.box3D = new PxrSceneBox3D() + { + position = cPosition, + rotation = cRotation, + extent = extent + }; + } + break; + } + case PxrSceneComponentType.Box2D: + { + result = PXR_Plugin.MixedReality.UPxr_GetSpatialEntityBox2DInfo(completion.snapshotHandle, + e.spatialEntity, out var offset, out var extent); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.box2D = new PxrSceneBox2D() + { + offset = offset, + extent =new XrExtent2Df(extent) + }; + } + break; + } + case PxrSceneComponentType.Polygon: + { + result = PXR_Plugin.MixedReality.UPxr_GetSpatialEntityPolygonInfo(completion.snapshotHandle, + e.spatialEntity, out var vertices); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.polygon = new PxrScenePolygon() + { + vertices = vertices + }; + } + break; + } + } + } +#if UNITY_2021_1_OR_NEWER + PXR_Plugin.MixedReality.SceneAnchorData.TryAdd(e.spatialEntity, sceneAnchor); +#else + PXR_Plugin.MixedReality.SceneAnchorData.Add(e.spatialEntity, sceneAnchor); +#endif + } + PXR_Plugin.MixedReality.UPxr_DestroySenseDataQueryResult(completion.snapshotHandle); + return (getResult, anchorHandleList); + } + else + { + PXR_Plugin.MixedReality.UPxr_DestroySenseDataQueryResult(completion.snapshotHandle); + return (getResult, new List()); + } + } + else + { + return (completion.futureResult, new List()); + } + } + else + { + return (completeResult, new List()); + } + } + } + else + { + return (pollResult, new List()); + } + } + } + else + { + return (queryResult, new List()); + } + }, token); + } + /// + /// Loads all scene anchors. + /// + /// Propagates notification that operations should be canceled. + /// Refer to the `PxrResult` enumeration for details. In addition, a list of the handles and UUIDs of all scene anchors is returned. + public static async Task<(PxrResult result, Dictionary anchorDictionary)> QuerySceneAnchorAsync(CancellationToken token = default) + { + return await Task.Run(() => + { + var queryResult = PXR_Plugin.MixedReality.UPxr_QuerySenseDataBySemanticAsync(Array.Empty(), out var future); + if (queryResult == PxrResult.SUCCESS) + { + while (true) + { + var pollResult = PXR_Plugin.MixedReality.UPxr_PollFuture(future, out var futureState); + if (pollResult == PxrResult.SUCCESS) + { + if (futureState == PxrFutureState.Ready) + { + var completeResult = PXR_Plugin.MixedReality.UPxr_QuerySenseDataComplete(PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SceneCapture), future, out var completion); + if (completeResult == PxrResult.SUCCESS) + { + if (completion.futureResult == PxrResult.SUCCESS) + { + var getResult = PXR_Plugin.MixedReality.UPxr_GetQueriedSenseData(PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SceneCapture), completion.snapshotHandle, out var entityInfos); + if (getResult == PxrResult.SUCCESS) + { + var anchorDictionary = new Dictionary(); + PXR_Plugin.MixedReality.SceneAnchorData.Clear(); + PXR_Plugin.MixedReality.SceneAnchorData = new Dictionary(); + foreach (var e in entityInfos) + { + byte[] byteArray = new byte[16]; + BitConverter.GetBytes(e.uuid.value0).CopyTo(byteArray, 0); + BitConverter.GetBytes(e.uuid.value1).CopyTo(byteArray, 8); + Guid guid = new Guid(byteArray); + anchorDictionary.Add(e.spatialEntity, guid); + var sceneAnchor = new PxrSceneComponentData(); + var result = PXR_Plugin.MixedReality.UPxr_GetSpatialEntitySemanticInfo(completion.snapshotHandle, e.spatialEntity, out var label); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.label = label; + } + result = PXR_Plugin.MixedReality.UPxr_GetSpatialEntityLocationInfo(completion.snapshotHandle, e.spatialEntity, out var position, out var rotation); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.position = position; + sceneAnchor.rotation = rotation; + } + result = PXR_Plugin.MixedReality.UPxr_EnumerateSpatialEntityComponentTypes(completion.snapshotHandle, e.spatialEntity, out var types); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.types = types; + } + + foreach (var t in types) + { + switch (t) + { + case PxrSceneComponentType.Box3D: + { + result = PXR_Plugin.MixedReality.UPxr_GetSpatialEntityBox3DInfo(completion.snapshotHandle, e.spatialEntity, out var cPosition, out var cRotation, out var extent); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.box3D = new PxrSceneBox3D() + { + position = cPosition, + rotation = cRotation, + extent = extent + }; + } + break; + } + case PxrSceneComponentType.Box2D: + { + result = PXR_Plugin.MixedReality.UPxr_GetSpatialEntityBox2DInfo(completion.snapshotHandle, e.spatialEntity, out var offset, out var extent); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.box2D = new PxrSceneBox2D() + { + offset = offset, + extent = new XrExtent2Df(extent) + }; + } + break; + } + case PxrSceneComponentType.Polygon: + { + result = PXR_Plugin.MixedReality.UPxr_GetSpatialEntityPolygonInfo(completion.snapshotHandle, e.spatialEntity, out var vertices); + if (result == PxrResult.SUCCESS) + { + sceneAnchor.polygon = new PxrScenePolygon() + { + vertices = vertices + }; + } + break; + } + } + } +#if UNITY_2021_1_OR_NEWER + PXR_Plugin.MixedReality.SceneAnchorData.TryAdd(e.spatialEntity, sceneAnchor); +#else + PXR_Plugin.MixedReality.SceneAnchorData.Add(e.spatialEntity, sceneAnchor); +#endif + } + PXR_Plugin.MixedReality.UPxr_DestroySenseDataQueryResult(completion.snapshotHandle); + return (getResult, anchorDictionary); + } + else + { + return (getResult, new Dictionary()); + } + } + else + { + return (completion.futureResult, new Dictionary()); + } + } + else + { + return (completeResult, new Dictionary()); + } + } + } + else + { + return (pollResult, new Dictionary()); + } + } + } + else + { + return (queryResult, new Dictionary()); + } + }, token); + } + /// + /// Gets the component type of a scene anchor. + /// + /// Specifies the handle of the anchor to get component type for. + /// Returns the component type of the specified anchor. + /// Refer to the `PxrResult` enumeration for details. + public static PxrResult GetSceneAnchorComponentTypes(ulong anchorHandle, out PxrSceneComponentType[] types) + { + if (PXR_Plugin.MixedReality.SceneAnchorData.TryGetValue(anchorHandle, out var data)) + { + types = data.types; + return PxrResult.SUCCESS; + } + else + { + types = Array.Empty(); + return PxrResult.ERROR_HANDLE_INVALID; + } + } + /// + /// Gets the information of a 3D box object. + /// + /// Specifies the handle of the scene anchor that the 3D box object is associated with. + /// Returns the position of the 3D box object relative to the center of the scene anchor. + /// Returns the rotation of the 3D box object relative to the center of the scene anchor. + /// Returns the length, width, and height of the 3D box object. + /// Refer to the `PxrResult` enumeration for details. + public static PxrResult GetSceneBox3DData(ulong anchorHandle, out Vector3 position, out Quaternion rotation, out Vector3 extent) + { + if (PXR_Plugin.MixedReality.SceneAnchorData.TryGetValue(anchorHandle, out var data)) + { + if (data.types.Contains(PxrSceneComponentType.Box3D)) + { + position = data.box3D.position; + rotation = data.box3D.rotation; + extent = data.box3D.extent; + return PxrResult.SUCCESS; + } + else + { + position = Vector3.zero; + rotation = Quaternion.identity; + extent = Vector3.zero; + return PxrResult.ERROR_HANDLE_INVALID; + } + + } + else + { + position = Vector3.zero; + rotation = Quaternion.identity; + extent = Vector3.zero; + return PxrResult.ERROR_HANDLE_INVALID; + } + } + /// + /// Gets the information of a 2D box object. + /// + /// Specifies the handle of the scene anchor that the 2D box object is associated with. + /// Returns the offset of the 2D box object relative to the center of the scene anchor. + /// Returns the length and width of the 2D box object. + /// Refer to the `PxrResult` enumeration for details. + public static PxrResult GetSceneBox2DData(ulong anchorHandle, out Vector2 offset, out Vector2 extent) + { + if (PXR_Plugin.MixedReality.SceneAnchorData.TryGetValue(anchorHandle, out var data)) + { + if (data.types.Contains(PxrSceneComponentType.Box2D)) + { + offset = data.box2D.offset; + extent = data.box2D.extent.ToVector2(); + return PxrResult.SUCCESS; + } + else + { + offset = Vector2.zero; + extent = Vector2.zero; + return PxrResult.ERROR_HANDLE_INVALID; + } + } + else + { + offset = Vector2.zero; + extent = Vector2.zero; + return PxrResult.ERROR_HANDLE_INVALID; + } + } + + /// + /// Gets the semantic label of a scene anchor. + /// + /// Specifies the handle of the anchor to get semantic label for. + /// Returns the semantic label of the specified anchor. + /// Refer to the `PxrResult` enumeration for details. + public static PxrResult GetSceneSemanticLabel(ulong anchorHandle, out PxrSemanticLabel label) + { + if (PXR_Plugin.MixedReality.SceneAnchorData.TryGetValue(anchorHandle, out var data)) + { + label = data.label; + return PxrResult.SUCCESS; + } + else + { + label = PxrSemanticLabel.Unknown; + return PxrResult.ERROR_HANDLE_INVALID; + } + } + /// + /// Gets the information of a polygon object. + /// + /// Specifies the handle of the scene anchor that the polygon object is associated with. + /// Returns the array of vertices of the polygon object. + /// Refer to the `PxrResult` enumeration for details. + public static PxrResult GetScenePolygonData(ulong anchorHandle, out Vector2[] vertices) + { + if (PXR_Plugin.MixedReality.SceneAnchorData.TryGetValue(anchorHandle, out var data)) + { + if (data.types.Contains(PxrSceneComponentType.Polygon)) + { + vertices = data.polygon.vertices; + return PxrResult.SUCCESS; + } + else + { + vertices = Array.Empty(); + return PxrResult.ERROR_HANDLE_INVALID; + } + } + else + { + vertices = Array.Empty(); + return PxrResult.ERROR_HANDLE_INVALID; + } + } + + public static async Task<(PxrResult result, List meshInfos)> QueryMeshAnchorAsync(CancellationToken token = default) + { + return await Task.Run(() => + { + XrSenseDataQueryInfo info = new XrSenseDataQueryInfo() + { + type = XrStructureType.XR_TYPE_SENSE_DATA_QUERY_INFO, + filter = IntPtr.Zero + }; + var pxrResult = PXR_Plugin.MixedReality.UPxr_QuerySenseDataAsync(PXR_Plugin.MixedReality.UPxr_GetSpatialMeshProviderHandle(), ref info, + out var future); + if (pxrResult == PxrResult.SUCCESS) + { + while (true) + { + var pollResult = PXR_Plugin.MixedReality.UPxr_PollFuture(future, out var futureState); + if (pollResult == PxrResult.SUCCESS) + { + if (futureState == PxrFutureState.Ready) + { + var completeResult = + PXR_Plugin.MixedReality.UPxr_QuerySenseDataComplete(PXR_Plugin.MixedReality.UPxr_GetSpatialMeshProviderHandle(), future, + out var completion); + if (completeResult == PxrResult.SUCCESS) + { + if (completion.futureResult == PxrResult.SUCCESS) + { + var getResult = PXR_Plugin.MixedReality.UPxr_GetQueriedSenseData( + PXR_Plugin.MixedReality.UPxr_GetSpatialMeshProviderHandle(), completion.snapshotHandle, out var entityHandles); + if (getResult == PxrResult.SUCCESS) + { + var keysToRemove = PXR_Plugin.MixedReality.SpatialMeshData + .Where(pair => pair.Value.state == MeshChangeState.Removed) + .Select(pair => pair.Key) + .ToList(); + foreach (var key in keysToRemove) + { + PXR_Plugin.MixedReality.SpatialMeshData.Remove(key); + } + + var toBeRemove = new List(PXR_Plugin.MixedReality.meshAnchorLastData.Keys); + foreach (var e in entityHandles) + { + byte[] byteArray = new byte[16]; + BitConverter.GetBytes(e.uuid.value0).CopyTo(byteArray, 0); + BitConverter.GetBytes(e.uuid.value1).CopyTo(byteArray, 8); + Guid guid = new Guid(byteArray); + var item = new PxrSpatialMeshInfo() + { + uuid = guid, + }; + toBeRemove.Remove(guid); + + if (PXR_Plugin.MixedReality.meshAnchorLastData.TryGetValue(guid, out var lastTime)) + { + if (lastTime < e.time) + { + var result = PXR_Plugin.MixedReality.UPxr_GetSpatialMesh(completion.snapshotHandle, e.spatialEntity, + ref item); + if (result == PxrResult.SUCCESS) + { + item.state = MeshChangeState.Updated; + PXR_Plugin.MixedReality.SpatialMeshData[guid] = item; + } + + PXR_Plugin.MixedReality.meshAnchorLastData[guid] = e.time; + } + else + { + var tempMesh = PXR_Plugin.MixedReality.SpatialMeshData[guid]; + tempMesh.state = MeshChangeState.Unchanged; + PXR_Plugin.MixedReality.SpatialMeshData[guid] = tempMesh; + } + } + else + { + var result = PXR_Plugin.MixedReality.UPxr_GetSpatialMesh(completion.snapshotHandle, e.spatialEntity, + ref item); + if (result == PxrResult.SUCCESS) + { + item.state = MeshChangeState.Added; +#if UNITY_2021_1_OR_NEWER + PXR_Plugin.MixedReality.SpatialMeshData.TryAdd(guid, item); +#else + PXR_Plugin.MixedReality.SpatialMeshData.Add(guid, item); +#endif + } +#if UNITY_2021_1_OR_NEWER + PXR_Plugin.MixedReality.meshAnchorLastData.TryAdd(guid, e.time); +#else + PXR_Plugin.MixedReality.meshAnchorLastData.Add(guid, e.time); +#endif + } + } + + foreach (var m in toBeRemove) + { + PXR_Plugin.MixedReality.meshAnchorLastData.Remove(m); + PXR_Plugin.MixedReality.SpatialMeshData.Remove(m); + var removedMesh = new PxrSpatialMeshInfo() + { + uuid = m, + state = MeshChangeState.Removed + }; +#if UNITY_2021_1_OR_NEWER + PXR_Plugin.MixedReality.SpatialMeshData.TryAdd(m, removedMesh); +#else + PXR_Plugin.MixedReality.SpatialMeshData.Add(m, removedMesh); +#endif + } + + PXR_Plugin.MixedReality.UPxr_DestroySenseDataQueryResult(completion.snapshotHandle); + return (getResult, PXR_Plugin.MixedReality.SpatialMeshData.Values.ToList()); + } + else + { + PXR_Plugin.MixedReality.UPxr_DestroySenseDataQueryResult(completion.snapshotHandle); + return (getResult, new List()); + } + } + else + { + return (completion.futureResult, new List()); + } + } + else + { + return (completeResult, new List()); + } + } + } + else + { + return (pollResult, new List()); + } + } + } + else + { + return (pxrResult, new List()); + } + }, token); + } + + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_MixedReality.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_MixedReality.cs.meta new file mode 100644 index 0000000..ec0c946 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_MixedReality.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7b4c8a0079dc90a48b34d0456b0e8d26 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_SpatialMeshManager.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_SpatialMeshManager.cs new file mode 100644 index 0000000..b8a9b3f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_SpatialMeshManager.cs @@ -0,0 +1,296 @@ + using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using Unity.XR.OpenXR.Features.PICOSupport; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.XR; + +namespace Unity.XR.PXR +{ + [DisallowMultipleComponent] + public class PXR_SpatialMeshManager : MonoBehaviour + { + public GameObject meshPrefab; + private Dictionary meshIDToGameobject; + private Dictionary spatialMeshNeedingDraw; + private Mesh mesh; + private XRMeshSubsystem subsystem; + static List s_SubsystemsReuse = new List(); + private int objectPoolMaxSize = 200; + private Queue meshObjectsPool; + private const float frameCount = 15.0f; + + /// + /// The drawing of the new spatial mesh is complete. + /// + public static Action MeshAdded; + + /// + /// The drawing the updated spatial mesh is complete. + /// + public static Action MeshUpdated; + + /// + /// The deletion of the disappeared spatial mesh is complete. + /// + public static Action MeshRemoved; + + void Start() + { + spatialMeshNeedingDraw = new Dictionary(); + meshIDToGameobject = new Dictionary(); + meshObjectsPool = new Queue(); + + InitializePool(); + } + + void Update() + { + GetXRMeshSubsystem(); + if (subsystem != null && subsystem.running) + { + DrawMesh(); + } + } + + void GetXRMeshSubsystem() + { + if (subsystem != null) + return; + SubsystemManager.GetSubsystems(s_SubsystemsReuse); + + if (s_SubsystemsReuse.Count == 0) + return; + + subsystem = s_SubsystemsReuse[0]; + + + PXR_PermissionRequest.RequestUserPermissionMR(Granted => + { + subsystem.Start(); + if (subsystem.running) + { + OpenXRExtensions.SpatialMeshDataUpdated += SpatialMeshDataUpdated; + } + }); + + } + + void OnEnable() + { + GetXRMeshSubsystem(); + } + + void OnDisable() + { + if (subsystem != null && subsystem.running) + subsystem.Stop(); + } + + private void InitializePool() + { + if (meshPrefab != null) + { + while (meshObjectsPool.Count < objectPoolMaxSize) + { + GameObject obj = Instantiate(meshPrefab); + obj.transform.SetParent(this.transform); + obj.SetActive(false); + meshObjectsPool.Enqueue(obj); + } + } + } + + private void DrawMesh() + { + if (meshPrefab != null) + { + StartCoroutine(ForeachLoopCoroutine()); + } + } + + private IEnumerator ForeachLoopCoroutine() + { + int totalWork = spatialMeshNeedingDraw.Count; + if (totalWork > 0 ) + { + var meshList = spatialMeshNeedingDraw.Values.ToList(); + int workPerFrame = Mathf.CeilToInt(totalWork / frameCount); + int currentIndex = 0; + + while (currentIndex < totalWork) + { + int workThisFrame = 0; + while (workThisFrame < workPerFrame && currentIndex < totalWork) + { + CreateMeshRoutine(meshList[currentIndex]); + currentIndex++; + workThisFrame++; + } + + yield return null; + } + } + } + + void SpatialMeshDataUpdated(List meshInfos) + { + for (int i = 0; i < meshInfos.Count; i++) + { + switch (meshInfos[i].state) + { + case MeshChangeState.Added: + { + spatialMeshNeedingDraw.Add(meshInfos[i].uuid, meshInfos[i]); + } + break; + case MeshChangeState.Updated: + { + if (!spatialMeshNeedingDraw.ContainsKey(meshInfos[i].uuid)) + { + spatialMeshNeedingDraw.Add(meshInfos[i].uuid, meshInfos[i]); + } + else + { + spatialMeshNeedingDraw[meshInfos[i].uuid] = meshInfos[i]; + } + } + break; + case MeshChangeState.Removed: + { + MeshRemoved?.Invoke(meshInfos[i].uuid); + + spatialMeshNeedingDraw.Remove(meshInfos[i].uuid); + GameObject removedGo; + if (meshIDToGameobject.TryGetValue(meshInfos[i].uuid, out removedGo)) + { + if (meshObjectsPool.Count < objectPoolMaxSize) + { + removedGo.SetActive(false); + meshObjectsPool.Enqueue(removedGo); + } + else + { + Destroy(removedGo); + } + meshIDToGameobject.Remove(meshInfos[i].uuid); + } + } + break; + case MeshChangeState.Unchanged: + { + spatialMeshNeedingDraw.Remove(meshInfos[i].uuid); + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + } + } + + private void CreateMeshRoutine(PxrSpatialMeshInfo block) + { + GameObject meshGameObject = GetOrCreateGameObject(block.uuid); + var meshFilter = meshGameObject.GetComponentInChildren(); + var meshCollider = meshGameObject.GetComponentInChildren(); + + if (meshFilter.mesh == null) + { + mesh = new Mesh(); + } + else + { + mesh = meshFilter.mesh; + mesh.Clear(); + } + Color[] normalizedColors = new Color[block.vertices.Length]; + for (int i = 0; i < block.vertices.Length; i++) + { + normalizedColors[i] = GetMeshColorBySemanticLabel(block.labels[i]); + } + mesh.SetVertices(block.vertices); + mesh.SetColors(normalizedColors); + mesh.SetTriangles(block.indices, 0); + meshFilter.mesh = mesh; + if (meshCollider != null) + { + meshCollider.sharedMesh = mesh; + } + meshGameObject.transform.position = block.position; + meshGameObject.transform.rotation = block.rotation; + + switch (block.state) + { + case MeshChangeState.Added: + { + MeshAdded?.Invoke(block.uuid, meshGameObject); + } + break; + case MeshChangeState.Updated: + { + MeshUpdated?.Invoke(block.uuid, meshGameObject); + } + break; + default: + throw new ArgumentOutOfRangeException(); + } + } + + GameObject CreateGameObject(Guid meshId) + { + GameObject meshObject = meshObjectsPool.Dequeue(); + meshObject.name = $"Mesh {meshId}"; + meshObject.SetActive(true); + return meshObject; + } + + GameObject GetOrCreateGameObject(Guid meshId) + { + GameObject go = null; + if (!meshIDToGameobject.TryGetValue(meshId, out go)) + { + go = CreateGameObject(meshId); + meshIDToGameobject[meshId] = go; + } + + return go; + } + + private Color GetMeshColorBySemanticLabel(PxrSemanticLabel label) + { + switch (label) + { + case PxrSemanticLabel.Unknown: + return Color.white; + case PxrSemanticLabel.Floor: + return Color.red; + case PxrSemanticLabel.Ceiling: + return Color.green; + case PxrSemanticLabel.Wall: + return Color.blue; + case PxrSemanticLabel.Door: + return Color.grey; + case PxrSemanticLabel.Window: + return Color.yellow; + case PxrSemanticLabel.Opening: + return Color.cyan; + case PxrSemanticLabel.Table: + return Color.magenta; + case PxrSemanticLabel.Sofa: + return Color.gray; + case PxrSemanticLabel.Chair: + return new Color(0.8f, 0.2f, 0.5f); + case PxrSemanticLabel.Human: + return new Color(0.8f, 0.2f, 0.6f); + default: + return Color.white; + } + } + } + +} + + diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_SpatialMeshManager.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_SpatialMeshManager.cs.meta new file mode 100644 index 0000000..8613816 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/MixedReality/PXR_SpatialMeshManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a9a7bfb0312c046479b565c21f977fec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/OpenXRExtensions.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/OpenXRExtensions.cs new file mode 100644 index 0000000..93bb9e5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/OpenXRExtensions.cs @@ -0,0 +1,411 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using AOT; +using Unity.XR.PXR; +using UnityEditor; +using UnityEngine; +using UnityEngine.XR; +#if AR_FOUNDATION +using UnityEngine.XR.ARSubsystems; +#endif +using UnityEngine.XR.OpenXR.Features; +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ +#if UNITY_EDITOR + public class FeatureConfig + { + public const string OpenXrExtensionList = "XR_EXT_local_floor " + + "XR_FB_triangle_mesh " + + "XR_FB_composition_layer_alpha_blend " + + "XR_KHR_composition_layer_color_scale_bias " + + "XR_KHR_composition_layer_cylinder " + + "XR_KHR_composition_layer_equirect " + + "XR_KHR_composition_layer_cube"; + } + + [OpenXRFeature(UiName = "PICO OpenXR Features", + Desc = "PICO XR Features for OpenXR.", + Company = "PICO", + Version = "1.0.0", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + OpenxrExtensionStrings = FeatureConfig.OpenXrExtensionList, + FeatureId = featureId + )] +#endif + public class OpenXRExtensions : OpenXRFeature + { + public const string featureId = "com.unity.openxr.pico.features"; + private static ulong xrInstance = 0ul; + private static ulong xrSession = 0ul; + public static event Action SenseDataUpdated; + public static event Action SpatialAnchorDataUpdated; + public static event Action SceneAnchorDataUpdated; + + public static event Action SenseDataProviderStateChanged; + public static event Action> SpatialMeshDataUpdated; + + static bool isCoroutineRunning = false; + protected override bool OnInstanceCreate(ulong instance) + { + xrInstance = instance; + xrSession = 0ul; + return true; + } + + /// + protected override void OnSessionCreate(ulong xrSessionId) + { + xrSession = xrSessionId; + Initialize(xrGetInstanceProcAddr, xrInstance, xrSession); + Pxr_SetEventDataBufferCallBack(XrEventDataBufferFunction); + setColorSpace((int)QualitySettings.activeColorSpace); + base.OnSessionCreate(xrSessionId); + + } + + /// + protected override void OnInstanceDestroy(ulong xrInstance) + { + base.OnInstanceDestroy(xrInstance); + xrInstance = 0ul; + } + + // HookGetInstanceProcAddr + protected override IntPtr HookGetInstanceProcAddr(IntPtr func) + { + // return base.HookGetInstanceProcAddr(func); + return HookCreateInstance(func); + } + + /// + protected override void OnSessionDestroy(ulong xrSessionId) + { + base.OnSessionDestroy(xrSessionId); + xrSession = 0ul; + } + + protected override void OnAppSpaceChange(ulong xrSpace) + { + SpaceChange(xrSpace); + base.OnAppSpaceChange(xrSpace); + } + + public static int GetReferenceSpaceBoundsRect(XrReferenceSpaceType referenceSpace, ref XrExtent2Df extent2D) + { + return xrGetReferenceSpaceBoundsRect( + xrSession, referenceSpace, ref extent2D); + } + + public static XrReferenceSpaceType[] EnumerateReferenceSpaces() + { + UInt32 Output = 0; + XrReferenceSpaceType[] outSpaces = null; + xrEnumerateReferenceSpaces(xrSession, 0, ref Output, outSpaces); + if (Output <= 0) + { + return null; + } + + outSpaces = new XrReferenceSpaceType[Output]; + xrEnumerateReferenceSpaces(xrSession, Output, ref Output, outSpaces); + return outSpaces; + } + + public static void CreateLayerParam(PxrLayerParam layerParam) + { + PLog.i("POXR_CreateLayerParam() "); +#if UNITY_ANDROID && !UNITY_EDITOR + xrCreateLayerParam(layerParam); +#endif + } + + public static int GetLayerImageCount(int layerId, EyeType eye, ref UInt32 imageCount) + { + int result = 0; +#if UNITY_ANDROID && !UNITY_EDITOR + result = xrGetLayerImageCount(layerId, eye, ref imageCount); +#endif + PLog.i("GetLayerImageCount() layerId:" + layerId + " eye:" + eye + " imageCount:" + imageCount + + " result:" + result); + return result; + } + + public static void GetLayerImagePtr(int layerId, EyeType eye, int imageIndex, ref IntPtr image) + { +#if UNITY_ANDROID && !UNITY_EDITOR + xrGetLayerImagePtr(layerId, eye, imageIndex, ref image); +#endif + PLog.i("GetLayerImagePtr() layerId:" + layerId + " eye:" + eye + " imageIndex:" + imageIndex + " image:" + + image); + } + + public static void DestroyLayerByRender(int layerId) + { + PLog.i("DestroyLayerByRender() layerId:" + layerId); +#if UNITY_ANDROID && !UNITY_EDITOR + xrDestroyLayerByRender(layerId); +#endif + } + + public static bool SubmitLayerQuad(IntPtr ptr) + { + int result = 0; +#if UNITY_ANDROID && !UNITY_EDITOR + result = xrSubmitLayerQuad(ptr); +#endif + PLog.d("SubmitLayerQuad() ptr:" + ptr + " result:" + result); + return result == -8; + } + + public static bool SubmitLayerCylinder(IntPtr ptr) + { + int result = 0; +#if UNITY_ANDROID && !UNITY_EDITOR + result = xrSubmitLayerCylinder(ptr); +#endif + PLog.d("SubmitLayerCylinder() ptr:" + ptr + " result:" + result); + return result == -8; + } + + public static bool SubmitLayerEquirect(IntPtr ptr) + { + int result = 0; +#if UNITY_ANDROID && !UNITY_EDITOR + result = xrSubmitLayerEquirect(ptr); +#endif + PLog.d("SubmitLayerEquirect() ptr:" + ptr + " result:" + result); + return result == -8; + } + + public static bool SubmitLayerCube(IntPtr ptr) + { + int result = 0; +#if UNITY_ANDROID && !UNITY_EDITOR + result = xrSubmitLayerCube(ptr); +#endif + PLog.d("xrSubmitLayerCube() ptr:" + ptr + " result:" + result); + return result == -8; + } + + public static int GetLayerNextImageIndex(int layerId, ref int imageIndex) + { + int result = 0; +#if UNITY_ANDROID && !UNITY_EDITOR + result = xrGetLayerNextImageIndex(layerId, ref imageIndex); +#endif + PLog.d("GetLayerNextImageIndex() layerId:" + layerId + " imageIndex:" + imageIndex + " result:" + result); + return result; + } + + protected override void OnSystemChange(ulong xrSystem) + { + base.OnSystemChange(xrSystem); + SystemChange(xrSystem); + } + + public static float GetLocationHeight() + { + float height = 0; + getLocationHeight( ref height); + return height; + } + + public static int GetControllerType() + { + int type = 0; + Pxr_GetControllerType(ref type); + return type; + } + + [MonoPInvokeCallback(typeof(XrEventDataBufferCallBack))] + static void XrEventDataBufferFunction(ref XrEventDataBuffer eventDB) + { + int status, action; + PLog.i($"XrEventDataBufferFunction eventType={eventDB.type}"); + switch (eventDB.type) + { + case XrStructureType.XR_TYPE_EVENT_DATA_SENSE_DATA_PROVIDER_STATE_CHANGED: + { + if (SenseDataProviderStateChanged != null) + { + PxrEventSenseDataProviderStateChanged data = new PxrEventSenseDataProviderStateChanged() + { + providerHandle = BitConverter.ToUInt64(eventDB.data, 0), + newState = (PxrSenseDataProviderState)BitConverter.ToInt32(eventDB.data, 8), + }; + SenseDataProviderStateChanged(data); + } + break; + } + case XrStructureType.XR_TYPE_EVENT_DATA_SENSE_DATA_UPDATED: + { + ulong providerHandle = BitConverter.ToUInt64(eventDB.data, 0); + PLog.i($"providerHandle ={providerHandle}"); + if (SenseDataUpdated != null) + { + SenseDataUpdated(providerHandle); + } + + if (providerHandle == PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor)) + { + if (SpatialAnchorDataUpdated != null) + { + SpatialAnchorDataUpdated(); + } + } + + if (providerHandle == PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SceneCapture)) + { + if (SceneAnchorDataUpdated != null) + { + SceneAnchorDataUpdated(); + } + } + + if (providerHandle == PXR_Plugin.MixedReality.UPxr_GetSpatialMeshProviderHandle()) + { + if (!isCoroutineRunning) + { + QuerySpatialMeshAnchor(); + } + } + + break; + } + } + } + + + static async void QuerySpatialMeshAnchor() + { + isCoroutineRunning = true; + var task = await PXR_MixedReality.QueryMeshAnchorAsync(); + isCoroutineRunning = false; + var (result, meshInfos) = task; + for (int i = 0; i < meshInfos.Count; i++) + { + switch (meshInfos[i].state) + { + case MeshChangeState.Added: + case MeshChangeState.Updated: + { + PXR_Plugin.MixedReality.UPxr_AddOrUpdateMesh(meshInfos[i]); + } + break; + case MeshChangeState.Removed: + { + PXR_Plugin.MixedReality.UPxr_RemoveMesh(meshInfos[i].uuid); + } + break; + case MeshChangeState.Unchanged: + { + break; + } + } + } + + if (result == PxrResult.SUCCESS) + { + SpatialMeshDataUpdated?.Invoke(meshInfos); + } + } +#if AR_FOUNDATION + public bool isSessionSubsystem=true; + private static List sessionSubsystemDescriptors = new List(); + protected override void OnSubsystemCreate() + { + base.OnSubsystemCreate(); + if (isSessionSubsystem) + { + CreateSubsystem(sessionSubsystemDescriptors, PICOSessionSubsystem.k_SubsystemId); + } + } + protected override void OnSubsystemStart() + { + if (isSessionSubsystem) + { + StartSubsystem(); + } + } + protected override void OnSubsystemStop() + { + if (isSessionSubsystem) + { + StopSubsystem(); + } + } + protected override void OnSubsystemDestroy() + { + if (isSessionSubsystem) + { + DestroySubsystem(); + } + } +#endif + + const string extLib = "openxr_pico"; + + [DllImport(extLib, EntryPoint = "PICO_Initialize", CallingConvention = CallingConvention.Cdecl)] + private static extern void Initialize(IntPtr xrGetInstanceProcAddr, ulong xrInstance, ulong xrSession); + + [DllImport(extLib, EntryPoint = "PICO_HookCreateInstance", CallingConvention = CallingConvention.Cdecl)] + public static extern IntPtr HookCreateInstance(IntPtr func); + + [DllImport(extLib, EntryPoint = "PICO_OnAppSpaceChange", CallingConvention = CallingConvention.Cdecl)] + private static extern void SpaceChange(ulong xrSession); + [DllImport(extLib, EntryPoint = "PICO_OnSystemChange", CallingConvention = CallingConvention.Cdecl)] + public static extern void SystemChange(ulong xrSystem); + + [DllImport(extLib, EntryPoint = "PICO_xrEnumerateReferenceSpaces", CallingConvention = CallingConvention.Cdecl)] + private static extern int xrEnumerateReferenceSpaces(ulong xrSession, UInt32 CountInput, ref UInt32 CountOutput, + XrReferenceSpaceType[] Spaces); + + [DllImport(extLib, EntryPoint = "PICO_xrGetReferenceSpaceBoundsRect", CallingConvention = CallingConvention.Cdecl)] + private static extern int xrGetReferenceSpaceBoundsRect(ulong xrSession, XrReferenceSpaceType referenceSpace, + ref XrExtent2Df extent2D); + + [DllImport(extLib, EntryPoint = "PICO_CreateLayerParam", CallingConvention = CallingConvention.Cdecl)] + private static extern void xrCreateLayerParam(PxrLayerParam layerParam); + + [DllImport(extLib, EntryPoint = "PICO_GetLayerImageCount", CallingConvention = CallingConvention.Cdecl)] + private static extern int xrGetLayerImageCount(int layerId, EyeType eye, ref UInt32 imageCount); + + [DllImport(extLib, EntryPoint = "PICO_GetLayerImagePtr", CallingConvention = CallingConvention.Cdecl)] + public static extern void xrGetLayerImagePtr(int layerId, EyeType eye, int imageIndex, ref IntPtr image); + + [DllImport(extLib, EntryPoint = "PICO_DestroyLayerByRender", CallingConvention = CallingConvention.Cdecl)] + private static extern void xrDestroyLayerByRender(int layerId); + + [DllImport(extLib, EntryPoint = "PICO_SubmitLayerQuad", CallingConvention = CallingConvention.Cdecl)] + private static extern int xrSubmitLayerQuad(IntPtr ptr); + + [DllImport(extLib, EntryPoint = "PICO_SubmitLayerCylinder", CallingConvention = CallingConvention.Cdecl)] + private static extern int xrSubmitLayerCylinder(IntPtr ptr); + + [DllImport(extLib, EntryPoint = "PICO_SubmitLayerEquirect", CallingConvention = CallingConvention.Cdecl)] + private static extern int xrSubmitLayerEquirect(IntPtr ptr); + + [DllImport(extLib, EntryPoint = "PICO_SubmitLayerCube", CallingConvention = CallingConvention.Cdecl)] + private static extern int xrSubmitLayerCube(IntPtr ptr); + + [DllImport(extLib, EntryPoint = "PICO_GetLayerNextImageIndex", CallingConvention = CallingConvention.Cdecl)] + private static extern int xrGetLayerNextImageIndex(int layerId, ref int imageIndex); + + [DllImport(extLib, EntryPoint = "PICO_SetColorSpace", CallingConvention = CallingConvention.Cdecl)] + private static extern int setColorSpace(int colorSpace); + [DllImport(extLib, EntryPoint = "PICO_GetLocationHeight", CallingConvention = CallingConvention.Cdecl)] + private static extern XrResult getLocationHeight(ref float delaY); + [DllImport(extLib, EntryPoint = "PICO_SetMarkMode", CallingConvention = CallingConvention.Cdecl)] + public static extern void SetMarkMode(); + [DllImport(extLib, CallingConvention = CallingConvention.Cdecl)] + private static extern void Pxr_GetControllerType(ref int type); + [DllImport(extLib, CallingConvention = CallingConvention.Cdecl)] + private static extern void Pxr_SetEventDataBufferCallBack(XrEventDataBufferCallBack callback); + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/OpenXRExtensions.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/OpenXRExtensions.cs.meta new file mode 100644 index 0000000..15e7c1f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/OpenXRExtensions.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 077bca9897b444788c83491c066a79b1 +timeCreated: 1689921014 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO.meta new file mode 100644 index 0000000..3a7f669 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 97367776cd8a48ddb9070381398beda6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSceneCapture.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSceneCapture.cs new file mode 100644 index 0000000..afceaf9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSceneCapture.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Text; +using Unity.XR.CoreUtils; +using Unity.XR.PXR; +using UnityEditor; +using UnityEngine; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; +using Object = UnityEngine.Object; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "PICO Scene Capture", + Hidden = false, + BuildTargetGroups = new[] { UnityEditor.BuildTargetGroup.Android }, + Company = "PICO", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + FeatureId = featureId)] +#endif + public class PICOSceneCapture: OpenXRFeature + { + public const string featureId = "com.pico.openxr.feature.scenecapture"; + public const string extensionString = "XR_PICO_scene_capture XR_PICO_spatial_sensing XR_EXT_future"; + public static bool isEnable => OpenXRRuntime.IsExtensionEnabled("XR_PICO_scene_capture"); + protected override void OnSessionCreate(ulong xrSession) + { + base.OnSessionCreate(xrSession); + PXR_Plugin.MixedReality.UPxr_CreateSceneCaptureSenseDataProvider(); + } + + protected override void OnSessionExiting(ulong xrSession) + { + PXR_MixedReality.GetSenseDataProviderState(PxrSenseDataProviderType.SceneCapture, out var providerState); + if (providerState == PxrSenseDataProviderState.Running) + { + PXR_MixedReality.StopSenseDataProvider(PxrSenseDataProviderType.SceneCapture); + } + + PXR_Plugin.MixedReality.UPxr_DestroySenseDataProvider( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SceneCapture)); + + base.OnSessionExiting(xrSession); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSceneCapture.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSceneCapture.cs.meta new file mode 100644 index 0000000..274aa80 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSceneCapture.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a0b5403262c64d5888bf5672e1e1f3bb +timeCreated: 1721806849 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialAnchor.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialAnchor.cs new file mode 100644 index 0000000..cd2200f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialAnchor.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Text; +using Unity.XR.CoreUtils; +using Unity.XR.PXR; +using UnityEditor; +using UnityEngine; +#if AR_FOUNDATION +using UnityEngine.XR.ARSubsystems; +#endif +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; +using Object = UnityEngine.Object; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "PICO Spatial Anchor", + Hidden = false, + BuildTargetGroups = new[] { UnityEditor.BuildTargetGroup.Android }, + Company = "PICO", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + FeatureId = featureId)] +#endif + public class PICOSpatialAnchor: OpenXRFeature + { + public const string featureId = "com.pico.openxr.feature.spatialanchor"; + public const string extensionString = "XR_PICO_spatial_anchor XR_PICO_spatial_sensing XR_EXT_future"; + + public static bool isEnable => OpenXRRuntime.IsExtensionEnabled("XR_PICO_spatial_anchor"); + + protected override void OnSessionCreate(ulong xrSession) + { + base.OnSessionCreate(xrSession); + PXR_Plugin.MixedReality.UPxr_CreateSpatialAnchorSenseDataProvider(); + } + protected override void OnSessionExiting(ulong xrSession) + { + PXR_MixedReality.GetSenseDataProviderState(PxrSenseDataProviderType.SpatialAnchor, out var providerState); + if (providerState == PxrSenseDataProviderState.Running) + { + PXR_MixedReality.StopSenseDataProvider(PxrSenseDataProviderType.SpatialAnchor); + } + + PXR_Plugin.MixedReality.UPxr_DestroySenseDataProvider( + PXR_Plugin.MixedReality.UPxr_GetSenseDataProviderHandle(PxrSenseDataProviderType.SpatialAnchor)); + + base.OnSessionExiting(xrSession); + } + +#if AR_FOUNDATION + public bool isAnchorSubsystem=true; + static List anchorSubsystemDescriptors = new List(); + protected override void OnSubsystemCreate() + { + base.OnSubsystemCreate(); + if (isAnchorSubsystem) + { + CreateSubsystem( + anchorSubsystemDescriptors, + PICOAnchorSubsystem.k_SubsystemId); + } + + } + protected override void OnSubsystemStart() + { + if (isAnchorSubsystem) + { + StartSubsystem(); + } + } + protected override void OnSubsystemStop() + { + if (isAnchorSubsystem) + { + StopSubsystem(); + } + } + protected override void OnSubsystemDestroy() + { + if (isAnchorSubsystem) + { + DestroySubsystem(); + } + } +#endif + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialAnchor.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialAnchor.cs.meta new file mode 100644 index 0000000..f0042da --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialAnchor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a8b7731b990240c0b289e41fb880787b +timeCreated: 1721806849 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialMesh.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialMesh.cs new file mode 100644 index 0000000..f1b4172 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialMesh.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Text; +using Unity.XR.CoreUtils; +using Unity.XR.PXR; +using UnityEditor; +using UnityEngine; +using UnityEngine.XR; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; +using Object = UnityEngine.Object; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "PICO Spatial Mesh", + Hidden = false, + BuildTargetGroups = new[] { UnityEditor.BuildTargetGroup.Android }, + Company = "PICO", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + FeatureId = featureId)] +#endif + public class PICOSpatialMesh: OpenXRFeature + { + public const string featureId = "com.pico.openxr.feature.spatialmesh"; + public const string extensionString = "XR_PICO_spatial_mesh XR_PICO_spatial_sensing XR_EXT_future"; + private static List meshSubsystemDescriptors = new List(); + + public PxrMeshLod LOD; + + private XRMeshSubsystem subsystem; + public static bool isEnable => OpenXRRuntime.IsExtensionEnabled("XR_PICO_spatial_mesh"); + protected override void OnSubsystemCreate() + { + base.OnSubsystemCreate(); + PXR_Plugin.MixedReality.Pxr_SetMeshLOD(Convert.ToUInt16(LOD)); + + } + + protected override void OnSessionCreate(ulong xrSession) + { + base.OnSessionCreate(xrSession); + CreateSubsystem(meshSubsystemDescriptors, "PICO Mesh"); + } + + protected override void OnSubsystemStop() + { + base.OnSubsystemStop(); + StopSubsystem(); + + } + + protected override void OnSubsystemDestroy() + { + base.OnSubsystemDestroy(); + PXR_Plugin.MixedReality.UPxr_DisposeMesh(); + DestroySubsystem(); + } + + + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialMesh.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialMesh.cs.meta new file mode 100644 index 0000000..00beae0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PICO/PICOSpatialMesh.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b1248416ce414cd0a788c5240bec5766 +timeCreated: 1721806849 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughFeature.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughFeature.cs new file mode 100644 index 0000000..c11a016 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughFeature.cs @@ -0,0 +1,532 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Text; +using Unity.XR.CoreUtils; +using UnityEditor; +using UnityEngine; + +#if AR_FOUNDATION +using UnityEngine.XR.ARSubsystems; +#endif +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; +using Object = UnityEngine.Object; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ +#if UNITY_EDITOR + [OpenXRFeature(UiName = "OpenXR Passthrough", + Hidden = false, + BuildTargetGroups = new[] { UnityEditor.BuildTargetGroup.Android }, + Company = "PICO", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + FeatureId = featureId)] +#endif + public class PassthroughFeature : OpenXRFeatureBase + { + public const string featureId = "com.pico.openxr.feature.passthrough"; + public const string extensionString = "XR_FB_passthrough"; + public static bool isExtensionEnable = false; + public const int XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB = 256; + private static byte[] colorData; + private static uint Size = 0; + private static bool isInit = false; + private static bool isPause = false; + private static int _enableVideoSeeThrough=-1; + public static event Action EnableVideoSeeThroughAction; + [HideInInspector] + public static bool EnableVideoSeeThrough + { + get => _enableVideoSeeThrough==1; + set + { + if (value) + { + if (_enableVideoSeeThrough != 1) + { + _enableVideoSeeThrough = 1; + EnableSeeThroughManual(value); + + if (EnableVideoSeeThroughAction != null) + { + EnableVideoSeeThroughAction(value); + } + } + } + else + { + if (_enableVideoSeeThrough == 1) + { + _enableVideoSeeThrough = 0; + EnableSeeThroughManual(value); + + if (EnableVideoSeeThroughAction != null) + { + EnableVideoSeeThroughAction(value); + } + } + } + } + } + public override void Initialize(IntPtr intPtr) + { + isExtensionEnable = _isExtensionEnable; + initialize(intPtr, xrInstance); + } + + public override string GetExtensionString() + { + return extensionString; + } + + public static void PassthroughStart() + { + passthroughStart(); + isPause = false; + } + + public static void PassthroughPause() + { + passthroughPause(); + isPause = true; + } + + public static bool EnableSeeThroughManual(bool value) + { + if (!isExtensionEnable) + { + return false; + } + + if (!isInit) + { + isInit = initializePassthrough(); + } + + if (value) + { + createFullScreenLayer(); + if (!isPause) + { + passthroughStart(); + } + } + else + { + passthroughPause(); + } + + return true; + } + + public static void Destroy() + { + if (!isExtensionEnable) + { + return; + } + + Passthrough_Destroy(); + } + + private void OnDestroy() + { + Destroy(); + } + + private static void AllocateColorMapData(uint size) + { + if (colorData != null && size != colorData.Length) + { + Clear(); + } + + if (colorData == null) + { + colorData = new byte[size]; + } + } + + private static void Clear() + { + if (colorData != null) + { + colorData = null; + } + } + + private static void WriteVector3ToColorMap(int colorIndex, ref Vector3 color) + { + for (int c = 0; c < 3; c++) + { + byte[] bytes = BitConverter.GetBytes(color[c]); + Buffer.BlockCopy(bytes, 0, colorData, colorIndex * 12 + c * 4, 4); + } + } + + private static void WriteFloatToColorMap(int index, float value) + { + byte[] bytes = BitConverter.GetBytes(value); + Buffer.BlockCopy(bytes, 0, colorData, index * sizeof(float), sizeof(float)); + } + + private static void WriteColorToColorMap(int colorIndex, ref Color color) + { + for (int c = 0; c < 4; c++) + { + byte[] bytes = BitConverter.GetBytes(color[c]); + Buffer.BlockCopy(bytes, 0, colorData, colorIndex * 16 + c * 4, 4); + } + } + + + public static unsafe void SetBrightnessContrastSaturation(ref PassthroughStyle style, float brightness = 0.0f, + float contrast = 0.0f, float saturation = 0.0f) + { + style.enableColorMap = true; + style.TextureColorMapType = PassthroughColorMapType.BrightnessContrastSaturation; + Size = 3 * sizeof(float); + AllocateColorMapData(Size); + WriteFloatToColorMap(0, brightness); + + WriteFloatToColorMap(1, contrast); + + WriteFloatToColorMap(2, saturation); + fixed (byte* p = colorData) + { + style.TextureColorMapData = (IntPtr)p; + } + + style.TextureColorMapDataSize = Size; + StringBuilder str = new StringBuilder(); + for (int i = 0; i < Size; i++) + { + str.Append(colorData[i]); + } + + Debug.Log("SetPassthroughStyle SetBrightnessContrastSaturation colorData:" + str); + } + + public static unsafe void SetColorMapbyMonoToMono(ref PassthroughStyle style, int[] values) + { + if (values.Length != XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB) + throw new ArgumentException("Must provide exactly 256 values"); + style.enableColorMap = true; + style.TextureColorMapType = PassthroughColorMapType.MonoToMono; + Size = XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB * 4; + AllocateColorMapData(Size); + Buffer.BlockCopy(values, 0, colorData, 0, (int)Size); + + fixed (byte* p = colorData) + { + style.TextureColorMapData = (IntPtr)p; + } + + style.TextureColorMapDataSize = Size; + } + + public static unsafe void SetColorMapbyMonoToRgba(ref PassthroughStyle style, Color[] values) + { + if (values.Length != XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB) + throw new ArgumentException("Must provide exactly 256 colors"); + + style.TextureColorMapType = PassthroughColorMapType.MonoToRgba; + style.enableColorMap = true; + Size = XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB * 4 * 4; + + AllocateColorMapData(Size); + + for (int i = 0; i < XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB; i++) + { + WriteColorToColorMap(i, ref values[i]); + } + + fixed (byte* p = colorData) + { + style.TextureColorMapData = (IntPtr)p; + } + + style.TextureColorMapDataSize = Size; + } + + public static _PassthroughStyle ToPassthroughStyle(PassthroughStyle c) + { + _PassthroughStyle mPassthroughStyle = new _PassthroughStyle(); + mPassthroughStyle.enableEdgeColor = (uint)(c.enableEdgeColor ? 1 : 0); + mPassthroughStyle.enableColorMap = (uint)(c.enableColorMap ? 1 : 0); + mPassthroughStyle.TextureOpacityFactor = c.TextureOpacityFactor; + mPassthroughStyle.TextureColorMapType = c.TextureColorMapType; + mPassthroughStyle.TextureColorMapDataSize = c.TextureColorMapDataSize; + mPassthroughStyle.TextureColorMapData = c.TextureColorMapData; + mPassthroughStyle.EdgeColor = new Colorf() + { r = c.EdgeColor.r, g = c.EdgeColor.g, b = c.EdgeColor.b, a = c.EdgeColor.a }; + return mPassthroughStyle; + } + + public static void SetPassthroughStyle(PassthroughStyle style) + { + setPassthroughStyle(ToPassthroughStyle(style)); + } + + public static bool IsPassthroughSupported() + { + return isPassthroughSupported(); + } + + + public static unsafe bool CreateTriangleMesh(int id, Vector3[] vertices, int[] triangles, + GeometryInstanceTransform transform) + { + if (vertices == null || triangles == null || vertices.Length == 0 || triangles.Length == 0) + { + return false; + } + + if (!isInit) + { + isInit = initializePassthrough(); + } + + int vertexCount = vertices.Length; + int triangleCount = triangles.Length; + + Size = (uint)vertexCount * 3 * 4; + + AllocateColorMapData(Size); + + for (int i = 0; i < vertexCount; i++) + { + WriteVector3ToColorMap(i, ref vertices[i]); + } + + IntPtr vertexDataPtr = IntPtr.Zero; + + fixed (byte* p = colorData) + { + vertexDataPtr = (IntPtr)p; + } + + StringBuilder str = new StringBuilder(); + for (int i = 0; i < 3 * 4; i++) + { + str.Append(colorData[i]); + } + + Debug.Log("CreateTriangleMesh vertexDataPtr colorData:" + str); + str.Clear(); + + Size = (uint)triangleCount * 4; + AllocateColorMapData(Size); + Buffer.BlockCopy(triangles, 0, colorData, 0, (int)Size); + IntPtr triangleDataPtr = IntPtr.Zero; + fixed (byte* p = colorData) + { + triangleDataPtr = (IntPtr)p; + } + + for (int i = 0; i < colorData.Length; i++) + { + str.Append(colorData[i]); + } + + // Debug.Log("CreateTriangleMesh triangleDataPtr colorData:" + str); + // + // Debug.Log("CreateTriangleMesh vertexDataPtr=" + vertexDataPtr + " vertexCount=" + vertexCount); + // Debug.Log("CreateTriangleMesh triangleDataPtr=" + triangleDataPtr + " triangleCount=" + triangleCount); + + XrResult result = + createTriangleMesh(id, vertexDataPtr, vertexCount, triangleDataPtr, triangleCount, transform); + Clear(); + if (result == XrResult.Success) + { + return true; + } + + return false; + } + + public static void UpdateMeshTransform(int id, GeometryInstanceTransform transform) + { + updatePassthroughMeshTransform(id, transform); + } + +#if UNITY_EDITOR + /// + /// Validation Rules for ARCameraFeature. + /// + protected override void GetValidationChecks(List rules, BuildTargetGroup targetGroup) + { + var AdditionalRules = new ValidationRule[] + { + new ValidationRule(this) + { + message = "Passthrough requires Camera clear flags set to solid color with alpha value zero.", + checkPredicate = () => + { + + var xrOrigin = FindObjectsOfType(); + + if (xrOrigin != null && xrOrigin.Length > 0) + { + if (!xrOrigin[0].enabled) return true; + } + else + { + return true; + } + + var camera = xrOrigin[0].Camera; + if (camera == null) return true; + + return camera.clearFlags == CameraClearFlags.SolidColor && Mathf.Approximately(camera.backgroundColor.a, 0); + }, + fixItAutomatic = true, + fixItMessage = "Set your XR Origin camera's Clear Flags to solid color with alpha value zero.", + fixIt = () => + { + var xrOrigin = FindObjectsOfType(); + if (xrOrigin!=null&&xrOrigin.Length>0) + { + if (xrOrigin[0].enabled) + { + var camera = xrOrigin[0].Camera; + if (camera != null ) + { + camera.clearFlags = CameraClearFlags.SolidColor; + Color clearColor = camera.backgroundColor; + clearColor.a = 0; + camera.backgroundColor = clearColor; + } + } + } + + }, + error = false + } + }; + + rules.AddRange(AdditionalRules); + } +#endif + +#if AR_FOUNDATION + public bool isCameraSubsystem=true; + static List s_CameraDescriptors = new List(); + protected override void OnSubsystemCreate() + { + base.OnSubsystemCreate(); + if (isCameraSubsystem) + { + CreateSubsystem( + s_CameraDescriptors, + PICOCameraSubsystem.k_SubsystemId); + } + + } + protected override void OnSubsystemStart() + { + if (isCameraSubsystem) + { + StartSubsystem(); + } + } + protected override void OnSubsystemStop() + { + if (isCameraSubsystem) + { + StopSubsystem(); + } + } + protected override void OnSubsystemDestroy() + { + if (isCameraSubsystem) + { + DestroySubsystem(); + } + } + +#endif + protected override void OnSessionStateChange(int oldState, int newState) + { + base.OnSessionStateChange(oldState, newState); + if (newState == 1) + { +#if AR_FOUNDATION + if (isCameraSubsystem) + { + StopSubsystem(); + }else{ + if (_enableVideoSeeThrough!=-1) + { + EnableSeeThroughManual(false); + } + } +#else + if (_enableVideoSeeThrough!=-1) + { + EnableSeeThroughManual(false); + } +#endif + } + else if (newState == 5) + { +#if AR_FOUNDATION + if (isCameraSubsystem) + { + StartSubsystem(); + }else{ + if (_enableVideoSeeThrough!=-1) + { + EnableSeeThroughManual(EnableVideoSeeThrough); + } + } +#else + if (_enableVideoSeeThrough!=-1) + { + EnableSeeThroughManual(EnableVideoSeeThrough); + } + +#endif + } + } + private const string ExtLib = "openxr_pico"; + + [DllImport(ExtLib, EntryPoint = "PICO_initialize_Passthrough", CallingConvention = CallingConvention.Cdecl)] + private static extern void initialize(IntPtr xrGetInstanceProcAddr, ulong xrInstance); + + [DllImport(ExtLib, EntryPoint = "PICO_InitializePassthrough", CallingConvention = CallingConvention.Cdecl)] + private static extern bool initializePassthrough(); + + [DllImport(ExtLib, EntryPoint = "PICO_CreateFullScreenLayer", CallingConvention = CallingConvention.Cdecl)] + private static extern bool createFullScreenLayer(); + + [DllImport(ExtLib, EntryPoint = "PICO_PassthroughStart", CallingConvention = CallingConvention.Cdecl)] + private static extern void passthroughStart(); + + [DllImport(ExtLib, EntryPoint = "PICO_PassthroughPause", CallingConvention = CallingConvention.Cdecl)] + private static extern void passthroughPause(); + + [DllImport(ExtLib, EntryPoint = "PICO_SetPassthroughStyle", CallingConvention = CallingConvention.Cdecl)] + private static extern void setPassthroughStyle(_PassthroughStyle style); + + [DllImport(ExtLib, EntryPoint = "PICO_IsPassthroughSupported", CallingConvention = CallingConvention.Cdecl)] + private static extern bool isPassthroughSupported(); + + [DllImport(ExtLib, EntryPoint = "PICO_Passthrough_Destroy", CallingConvention = CallingConvention.Cdecl)] + private static extern void Passthrough_Destroy(); + + [DllImport(ExtLib, EntryPoint = "PICO_CreateTriangleMesh", CallingConvention = CallingConvention.Cdecl)] + private static extern XrResult createTriangleMesh(int id, IntPtr vertices, int vertexCount, IntPtr triangles, + int triangleCount, GeometryInstanceTransform transform); + + [DllImport(ExtLib, EntryPoint = "PICO_UpdatePassthroughMeshTransform", + CallingConvention = CallingConvention.Cdecl)] + private static extern void updatePassthroughMeshTransform(int id, GeometryInstanceTransform transform); + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughFeature.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughFeature.cs.meta new file mode 100644 index 0000000..79d04a5 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughFeature.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7d49168b6dfb469dadf8cd56e4ab8884 +timeCreated: 1689933482 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughLayerFeature.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughLayerFeature.cs new file mode 100644 index 0000000..e566208 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughLayerFeature.cs @@ -0,0 +1,81 @@ +using System; +using UnityEngine; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public class PassthroughLayerFeature : LayerBase + { + private int id = 0; + private Vector3[] vertices; + private int[] triangles; + private Mesh mesh; + private bool isPassthroughSupported = false; + private bool isCreateTriangleMesh = false; + + private void Awake() + { + base.Awake(); + id = ID; + Debug.Log("AAA:"+this.gameObject.name+" ID="+id); + } + + private void Start() + { + MeshFilter meshFilter = this.gameObject.GetComponent(); + if (meshFilter == null) + { + Debug.LogError("Passthrough GameObject does not have a mesh component."); + return; + } + + mesh = meshFilter.sharedMesh; + vertices = mesh.vertices; + triangles = mesh.triangles; + isPassthroughSupported = PassthroughFeature.IsPassthroughSupported(); + } + + private void Update() + { + if (isPassthroughSupported && !isCreateTriangleMesh) + { + GeometryInstanceTransform Transform = new GeometryInstanceTransform(); + UpdateCoords(); + GetCurrentTransform(ref Transform); + isCreateTriangleMesh = PassthroughFeature.CreateTriangleMesh(id, vertices, triangles, Transform); + } + } + + private void OnEnable() + { + Camera.onPostRender += OnPostRenderCallBack; + } + + private void OnDisable() + { + Camera.onPostRender -= OnPostRenderCallBack; + } + + + private void OnPostRenderCallBack(Camera cam) + { + GeometryInstanceTransform Transform = new GeometryInstanceTransform(); + UpdateCoords(); + GetCurrentTransform(ref Transform); + PassthroughFeature.UpdateMeshTransform(id, Transform); + } + + void OnApplicationPause(bool pause) + { + if (pause) + { + PassthroughFeature.PassthroughPause(); + } + else + { + PassthroughFeature.PassthroughStart(); + } + } + + + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughLayerFeature.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughLayerFeature.cs.meta new file mode 100644 index 0000000..87ea2aa --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PassthroughLayerFeature.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8853b182e1e842fbb91b68c168d5b587 +timeCreated: 1694522562 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PerformanceSettingsFeature.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PerformanceSettingsFeature.cs new file mode 100644 index 0000000..8159416 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PerformanceSettingsFeature.cs @@ -0,0 +1,113 @@ +using System; +using System.Runtime.InteropServices; +using AOT; +using UnityEngine; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; + +#if UNITY_EDITOR +using UnityEditor.XR.OpenXR.Features; +#endif + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public enum XrPerfSettingsDomainEXT + { + XR_PERF_SETTINGS_DOMAIN_CPU_EXT = 1, + XR_PERF_SETTINGS_DOMAIN_GPU_EXT = 2, + } + + public enum XrPerfSettingsLevelEXT + { + XR_PERF_SETTINGS_LEVEL_POWER_SAVINGS_EXT = 0, + XR_PERF_SETTINGS_LEVEL_SUSTAINED_LOW_EXT = 25, + XR_PERF_SETTINGS_LEVEL_SUSTAINED_HIGH_EXT = 50, + XR_PERF_SETTINGS_LEVEL_BOOST_EXT = 75, + } + + public enum XrPerfSettingsSubDomainEXT + { + XR_PERF_SETTINGS_SUB_DOMAIN_COMPOSITING_EXT = 1, + XR_PERF_SETTINGS_SUB_DOMAIN_RENDERING_EXT = 2, + XR_PERF_SETTINGS_SUB_DOMAIN_THERMAL_EXT = 3, + } + + public enum XrPerfSettingsNotificationLevelEXT + { + XR_PERF_SETTINGS_NOTIF_LEVEL_NORMAL_EXT = 0, + XR_PERF_SETTINGS_NOTIF_LEVEL_WARNING_EXT = 25, + XR_PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED_EXT = 75, + } +#if UNITY_EDITOR + [OpenXRFeature(UiName = "OpenXR Performance Settings", + Hidden = false, + BuildTargetGroups = new[] { UnityEditor.BuildTargetGroup.Android }, + Company = "PICO", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + FeatureId = featureId)] +#endif + + public class PerformanceSettingsFeature : OpenXRFeatureBase + { + public const string featureId = "com.pico.openxr.feature.performancesettings"; + public const string extensionString = "XR_EXT_performance_settings"; + public static bool isExtensionEnable = false; + + private static Action mCallback; + + public delegate void EventDelegate(XrPerfSettingsDomainEXT domain, XrPerfSettingsSubDomainEXT subDomain, + XrPerfSettingsNotificationLevelEXT fromLevel, + XrPerfSettingsNotificationLevelEXT toLevel); + + public override void Initialize(IntPtr intPtr) + { + isExtensionEnable = _isExtensionEnable; + initialize(intPtr, xrInstance, EventFromCpp); + } + + + [MonoPInvokeCallback(typeof(EventDelegate))] + public static void EventFromCpp(XrPerfSettingsDomainEXT domain, XrPerfSettingsSubDomainEXT subDomain, + XrPerfSettingsNotificationLevelEXT fromLevel, + XrPerfSettingsNotificationLevelEXT toLevel) + { + if (mCallback != null) + { + mCallback(domain, subDomain, fromLevel, toLevel); + } + } + + public override string GetExtensionString() + { + return extensionString; + } + + public static XrResult XrPerfSettingsSetPerformanceLevelEXT(XrPerfSettingsDomainEXT domain, + XrPerfSettingsLevelEXT level) + { + return xrPerfSettingsSetPerformanceLevelEXT(xrSession, domain, level); + } + + + public static void AddPerfSettingsSetPerformanceEvent( + Action callback) + { + mCallback = callback; + } + + private const string ExtLib = "openxr_pico"; + + [DllImport(ExtLib, EntryPoint = "PICO_initialize_PerformanceSettings", + CallingConvention = CallingConvention.Cdecl)] + private static extern void initialize(IntPtr xrGetInstanceProcAddr, ulong xrInstance, + EventDelegate eventDelegate); + + [DllImport(ExtLib, EntryPoint = "PICO_xrPerfSettingsSetPerformanceLevelEXT", + CallingConvention = CallingConvention.Cdecl)] + private static extern XrResult xrPerfSettingsSetPerformanceLevelEXT(ulong xrSession, + XrPerfSettingsDomainEXT domain, XrPerfSettingsLevelEXT level); + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PerformanceSettingsFeature.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PerformanceSettingsFeature.cs.meta new file mode 100644 index 0000000..ab56a96 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/PerformanceSettingsFeature.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 48a4218836ed47e2b2fe51c7c56925c7 +timeCreated: 1695634496 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils.meta new file mode 100644 index 0000000..6987216 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: eef38826347e4f57aadf5fa0a9a299cd +timeCreated: 1687328262 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LayerBase.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LayerBase.cs new file mode 100644 index 0000000..148f956 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LayerBase.cs @@ -0,0 +1,108 @@ +using System; +using UnityEngine; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public class LayerBase : MonoBehaviour + { + public static int ID = 0; + private Transform overlayTransform; + private Camera[] overlayEyeCamera = new Camera[2]; + private Camera xrRig; + private Matrix4x4[] mvMatrixs = new Matrix4x4[2]; + private Vector3[] modelScales = new Vector3[2]; + private Vector3[] modelTranslations = new Vector3[2]; + private Quaternion[] modelRotations = new Quaternion[2]; + private Quaternion[] cameraRotations = new Quaternion[2]; + private Vector3[] cameraTranslations = new Vector3[2]; + + public void Awake() + { + ID++; + xrRig = Camera.main; + overlayEyeCamera[0] = xrRig; + overlayEyeCamera[1] = xrRig; + overlayTransform = GetComponent(); +#if UNITY_ANDROID && !UNITY_EDITOR + if (overlayTransform != null) + { + MeshRenderer render = overlayTransform.GetComponent(); + if (render != null) + { + render.enabled = false; + } + } +#endif + } + private void OnDestroy() + { + ID--; + } + public void UpdateCoords() + { + if (null == overlayTransform || !overlayTransform.gameObject.activeSelf || null == overlayEyeCamera[0] || + null == overlayEyeCamera[1]) + { + return; + } + + for (int i = 0; i < mvMatrixs.Length; i++) + { + mvMatrixs[i] = overlayEyeCamera[i].worldToCameraMatrix * overlayTransform.localToWorldMatrix; + if (overlayTransform is RectTransform uiTransform) + { + var rect = uiTransform.rect; + var lossyScale = overlayTransform.lossyScale; + modelScales[i] = new Vector3(rect.width * lossyScale.x, + rect.height * lossyScale.y, 1); + modelTranslations[i] = uiTransform.TransformPoint(rect.center); + } + else + { + modelScales[i] = overlayTransform.lossyScale; + modelTranslations[i] = overlayTransform.position; + } + + modelRotations[i] = overlayTransform.rotation; + cameraRotations[i] = overlayEyeCamera[i].transform.rotation; + cameraTranslations[i] = overlayEyeCamera[i].transform.position; + } + } + + public void GetCurrentTransform(ref GeometryInstanceTransform geometryInstanceTransform) + { + Quaternion quaternion = new Quaternion(modelRotations[0].x, + modelRotations[0].y, modelRotations[0].z, + modelRotations[0].w); + Vector3 cameraPos = Vector3.zero; + Quaternion cameraRot = Quaternion.identity; + Transform origin = null; + bool ret = PICOManager.Instance.GetOrigin(ref cameraPos, ref cameraRot, ref origin); + if (!ret) + { + return; + } + + Quaternion lQuaternion = new Quaternion(-cameraRot.x, -cameraRot.y, -cameraRot.z, cameraRot.w); + Vector3 pos = new Vector3(modelTranslations[0].x - cameraPos.x, + modelTranslations[0].y - PICOManager.Instance.getCameraYOffset() + + PICOManager.Instance.GetOriginY() - cameraPos.y, modelTranslations[0].z - cameraPos.z); + + quaternion *= lQuaternion; + origin.rotation *= lQuaternion; + pos = origin.TransformPoint(pos); + + geometryInstanceTransform.pose.position.x = pos.x; + geometryInstanceTransform.pose.position.y = pos.y; + geometryInstanceTransform.pose.position.z = -pos.z; + geometryInstanceTransform.pose.orientation.x = -quaternion.x; + geometryInstanceTransform.pose.orientation.y = -quaternion.y; + geometryInstanceTransform.pose.orientation.z = quaternion.z; + geometryInstanceTransform.pose.orientation.w = quaternion.w; + + geometryInstanceTransform.scale.x = modelScales[0].x; + geometryInstanceTransform.scale.y = modelScales[0].y; + geometryInstanceTransform.scale.z = 1; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LayerBase.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LayerBase.cs.meta new file mode 100644 index 0000000..2243b92 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LayerBase.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 619cbe0f286043ec9552bc759e03b9d7 +timeCreated: 1695197751 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson.meta new file mode 100644 index 0000000..bdc22f9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2e80d58020bdd4b42b9c135992067180 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/IJsonWrapper.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/IJsonWrapper.cs new file mode 100644 index 0000000..9b7e2d1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/IJsonWrapper.cs @@ -0,0 +1,60 @@ +#region Header +/** + * IJsonWrapper.cs + * Interface that represents a type capable of handling all kinds of JSON + * data. This is mainly used when mapping objects through JsonMapper, and + * it's implemented by JsonData. + * + * The authors disclaim copyright to this source code. For more details, see + * the COPYING file included with this distribution. + **/ +#endregion + + +using System.Collections; +using System.Collections.Specialized; + + +namespace LitJson +{ + public enum JsonType + { + None, + + Object, + Array, + String, + Int, + Long, + Double, + Boolean + } + + public interface IJsonWrapper : IList, IOrderedDictionary + { + bool IsArray { get; } + bool IsBoolean { get; } + bool IsDouble { get; } + bool IsInt { get; } + bool IsLong { get; } + bool IsObject { get; } + bool IsString { get; } + + bool GetBoolean (); + double GetDouble (); + int GetInt (); + JsonType GetJsonType (); + long GetLong (); + string GetString (); + + void SetBoolean (bool val); + void SetDouble (double val); + void SetInt (int val); + void SetJsonType (JsonType type); + void SetLong (long val); + void SetString (string val); + + string ToJson (); + void ToJson (JsonWriter writer); + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/IJsonWrapper.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/IJsonWrapper.cs.meta new file mode 100644 index 0000000..7e456d6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/IJsonWrapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e1ef0f496c0fb5146b7aa4877024fa79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonData.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonData.cs new file mode 100644 index 0000000..e89e4b1 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonData.cs @@ -0,0 +1,1059 @@ +#region Header +/** + * JsonData.cs + * Generic type to hold JSON data (objects, arrays, and so on). This is + * the default type returned by JsonMapper.ToObject(). + * + * The authors disclaim copyright to this source code. For more details, see + * the COPYING file included with this distribution. + **/ +#endregion + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.IO; + + +namespace LitJson +{ + public class JsonData : IJsonWrapper, IEquatable + { + #region Fields + private IList inst_array; + private bool inst_boolean; + private double inst_double; + private int inst_int; + private long inst_long; + private IDictionary inst_object; + private string inst_string; + private string json; + private JsonType type; + + // Used to implement the IOrderedDictionary interface + private IList> object_list; + #endregion + + + #region Properties + public int Count { + get { return EnsureCollection ().Count; } + } + + public bool IsArray { + get { return type == JsonType.Array; } + } + + public bool IsBoolean { + get { return type == JsonType.Boolean; } + } + + public bool IsDouble { + get { return type == JsonType.Double; } + } + + public bool IsInt { + get { return type == JsonType.Int; } + } + + public bool IsLong { + get { return type == JsonType.Long; } + } + + public bool IsObject { + get { return type == JsonType.Object; } + } + + public bool IsString { + get { return type == JsonType.String; } + } + + public ICollection Keys { + get { EnsureDictionary (); return inst_object.Keys; } + } + + /// + /// Determines whether the json contains an element that has the specified key. + /// + /// The key to locate in the json. + /// true if the json contains an element that has the specified key; otherwise, false. + public Boolean ContainsKey(String key) { + EnsureDictionary(); + return this.inst_object.Keys.Contains(key); + } + #endregion + + + #region ICollection Properties + int ICollection.Count { + get { + return Count; + } + } + + bool ICollection.IsSynchronized { + get { + return EnsureCollection ().IsSynchronized; + } + } + + object ICollection.SyncRoot { + get { + return EnsureCollection ().SyncRoot; + } + } + #endregion + + + #region IDictionary Properties + bool IDictionary.IsFixedSize { + get { + return EnsureDictionary ().IsFixedSize; + } + } + + bool IDictionary.IsReadOnly { + get { + return EnsureDictionary ().IsReadOnly; + } + } + + ICollection IDictionary.Keys { + get { + EnsureDictionary (); + IList keys = new List (); + + foreach (KeyValuePair entry in + object_list) { + keys.Add (entry.Key); + } + + return (ICollection) keys; + } + } + + ICollection IDictionary.Values { + get { + EnsureDictionary (); + IList values = new List (); + + foreach (KeyValuePair entry in + object_list) { + values.Add (entry.Value); + } + + return (ICollection) values; + } + } + #endregion + + + + #region IJsonWrapper Properties + bool IJsonWrapper.IsArray { + get { return IsArray; } + } + + bool IJsonWrapper.IsBoolean { + get { return IsBoolean; } + } + + bool IJsonWrapper.IsDouble { + get { return IsDouble; } + } + + bool IJsonWrapper.IsInt { + get { return IsInt; } + } + + bool IJsonWrapper.IsLong { + get { return IsLong; } + } + + bool IJsonWrapper.IsObject { + get { return IsObject; } + } + + bool IJsonWrapper.IsString { + get { return IsString; } + } + #endregion + + + #region IList Properties + bool IList.IsFixedSize { + get { + return EnsureList ().IsFixedSize; + } + } + + bool IList.IsReadOnly { + get { + return EnsureList ().IsReadOnly; + } + } + #endregion + + + #region IDictionary Indexer + object IDictionary.this[object key] { + get { + return EnsureDictionary ()[key]; + } + + set { + if (! (key is String)) + throw new ArgumentException ( + "The key has to be a string"); + + JsonData data = ToJsonData (value); + + this[(string) key] = data; + } + } + #endregion + + + #region IOrderedDictionary Indexer + object IOrderedDictionary.this[int idx] { + get { + EnsureDictionary (); + return object_list[idx].Value; + } + + set { + EnsureDictionary (); + JsonData data = ToJsonData (value); + + KeyValuePair old_entry = object_list[idx]; + + inst_object[old_entry.Key] = data; + + KeyValuePair entry = + new KeyValuePair (old_entry.Key, data); + + object_list[idx] = entry; + } + } + #endregion + + + #region IList Indexer + object IList.this[int index] { + get { + return EnsureList ()[index]; + } + + set { + EnsureList (); + JsonData data = ToJsonData (value); + + this[index] = data; + } + } + #endregion + + + #region Public Indexers + public JsonData this[string prop_name] { + get { + EnsureDictionary (); + return inst_object[prop_name]; + } + + set { + EnsureDictionary (); + + KeyValuePair entry = + new KeyValuePair (prop_name, value); + + if (inst_object.ContainsKey (prop_name)) { + for (int i = 0; i < object_list.Count; i++) { + if (object_list[i].Key == prop_name) { + object_list[i] = entry; + break; + } + } + } else + object_list.Add (entry); + + inst_object[prop_name] = value; + + json = null; + } + } + + public JsonData this[int index] { + get { + EnsureCollection (); + + if (type == JsonType.Array) + return inst_array[index]; + + return object_list[index].Value; + } + + set { + EnsureCollection (); + + if (type == JsonType.Array) + inst_array[index] = value; + else { + KeyValuePair entry = object_list[index]; + KeyValuePair new_entry = + new KeyValuePair (entry.Key, value); + + object_list[index] = new_entry; + inst_object[entry.Key] = value; + } + + json = null; + } + } + #endregion + + + #region Constructors + public JsonData () + { + } + + public JsonData (bool boolean) + { + type = JsonType.Boolean; + inst_boolean = boolean; + } + + public JsonData (double number) + { + type = JsonType.Double; + inst_double = number; + } + + public JsonData (int number) + { + type = JsonType.Int; + inst_int = number; + } + + public JsonData (long number) + { + type = JsonType.Long; + inst_long = number; + } + + public JsonData (object obj) + { + if (obj is Boolean) { + type = JsonType.Boolean; + inst_boolean = (bool) obj; + return; + } + + if (obj is Double) { + type = JsonType.Double; + inst_double = (double) obj; + return; + } + + if (obj is Int32) { + type = JsonType.Int; + inst_int = (int) obj; + return; + } + + if (obj is Int64) { + type = JsonType.Long; + inst_long = (long) obj; + return; + } + + if (obj is String) { + type = JsonType.String; + inst_string = (string) obj; + return; + } + + throw new ArgumentException ( + "Unable to wrap the given object with JsonData"); + } + + public JsonData (string str) + { + type = JsonType.String; + inst_string = str; + } + #endregion + + + #region Implicit Conversions + public static implicit operator JsonData (Boolean data) + { + return new JsonData (data); + } + + public static implicit operator JsonData (Double data) + { + return new JsonData (data); + } + + public static implicit operator JsonData (Int32 data) + { + return new JsonData (data); + } + + public static implicit operator JsonData (Int64 data) + { + return new JsonData (data); + } + + public static implicit operator JsonData (String data) + { + return new JsonData (data); + } + #endregion + + + #region Explicit Conversions + public static explicit operator Boolean (JsonData data) + { + if (data.type != JsonType.Boolean) + throw new InvalidCastException ( + "Instance of JsonData doesn't hold a double"); + + return data.inst_boolean; + } + + public static explicit operator Double (JsonData data) + { + if (data.type != JsonType.Double) + throw new InvalidCastException ( + "Instance of JsonData doesn't hold a double"); + + return data.inst_double; + } + + public static explicit operator Int32(JsonData data) + { + if (data.type != JsonType.Int && data.type != JsonType.Long) + { + throw new InvalidCastException( + "Instance of JsonData doesn't hold an int"); + } + + // cast may truncate data... but that's up to the user to consider + return data.type == JsonType.Int ? data.inst_int : (int)data.inst_long; + } + + public static explicit operator Int64(JsonData data) + { + if (data.type != JsonType.Long && data.type != JsonType.Int) + { + throw new InvalidCastException( + "Instance of JsonData doesn't hold a long"); + } + + return data.type == JsonType.Long ? data.inst_long : data.inst_int; + } + + public static explicit operator String (JsonData data) + { + if (data.type != JsonType.String) + throw new InvalidCastException ( + "Instance of JsonData doesn't hold a string"); + + return data.inst_string; + } + #endregion + + + #region ICollection Methods + void ICollection.CopyTo (Array array, int index) + { + EnsureCollection ().CopyTo (array, index); + } + #endregion + + + #region IDictionary Methods + void IDictionary.Add (object key, object value) + { + JsonData data = ToJsonData (value); + + EnsureDictionary ().Add (key, data); + + KeyValuePair entry = + new KeyValuePair ((string) key, data); + object_list.Add (entry); + + json = null; + } + + void IDictionary.Clear () + { + EnsureDictionary ().Clear (); + object_list.Clear (); + json = null; + } + + bool IDictionary.Contains (object key) + { + return EnsureDictionary ().Contains (key); + } + + IDictionaryEnumerator IDictionary.GetEnumerator () + { + return ((IOrderedDictionary) this).GetEnumerator (); + } + + void IDictionary.Remove (object key) + { + EnsureDictionary ().Remove (key); + + for (int i = 0; i < object_list.Count; i++) { + if (object_list[i].Key == (string) key) { + object_list.RemoveAt (i); + break; + } + } + + json = null; + } + #endregion + + + #region IEnumerable Methods + IEnumerator IEnumerable.GetEnumerator () + { + return EnsureCollection ().GetEnumerator (); + } + #endregion + + + #region IJsonWrapper Methods + bool IJsonWrapper.GetBoolean () + { + if (type != JsonType.Boolean) + throw new InvalidOperationException ( + "JsonData instance doesn't hold a boolean"); + + return inst_boolean; + } + + double IJsonWrapper.GetDouble () + { + if (type != JsonType.Double) + throw new InvalidOperationException ( + "JsonData instance doesn't hold a double"); + + return inst_double; + } + + int IJsonWrapper.GetInt () + { + if (type != JsonType.Int) + throw new InvalidOperationException ( + "JsonData instance doesn't hold an int"); + + return inst_int; + } + + long IJsonWrapper.GetLong () + { + if (type != JsonType.Long) + throw new InvalidOperationException ( + "JsonData instance doesn't hold a long"); + + return inst_long; + } + + string IJsonWrapper.GetString () + { + if (type != JsonType.String) + throw new InvalidOperationException ( + "JsonData instance doesn't hold a string"); + + return inst_string; + } + + void IJsonWrapper.SetBoolean (bool val) + { + type = JsonType.Boolean; + inst_boolean = val; + json = null; + } + + void IJsonWrapper.SetDouble (double val) + { + type = JsonType.Double; + inst_double = val; + json = null; + } + + void IJsonWrapper.SetInt (int val) + { + type = JsonType.Int; + inst_int = val; + json = null; + } + + void IJsonWrapper.SetLong (long val) + { + type = JsonType.Long; + inst_long = val; + json = null; + } + + void IJsonWrapper.SetString (string val) + { + type = JsonType.String; + inst_string = val; + json = null; + } + + string IJsonWrapper.ToJson () + { + return ToJson (); + } + + void IJsonWrapper.ToJson (JsonWriter writer) + { + ToJson (writer); + } + #endregion + + + #region IList Methods + int IList.Add (object value) + { + return Add (value); + } + + void IList.Clear () + { + EnsureList ().Clear (); + json = null; + } + + bool IList.Contains (object value) + { + return EnsureList ().Contains (value); + } + + int IList.IndexOf (object value) + { + return EnsureList ().IndexOf (value); + } + + void IList.Insert (int index, object value) + { + EnsureList ().Insert (index, value); + json = null; + } + + void IList.Remove (object value) + { + EnsureList ().Remove (value); + json = null; + } + + void IList.RemoveAt (int index) + { + EnsureList ().RemoveAt (index); + json = null; + } + #endregion + + + #region IOrderedDictionary Methods + IDictionaryEnumerator IOrderedDictionary.GetEnumerator () + { + EnsureDictionary (); + + return new OrderedDictionaryEnumerator ( + object_list.GetEnumerator ()); + } + + void IOrderedDictionary.Insert (int idx, object key, object value) + { + string property = (string) key; + JsonData data = ToJsonData (value); + + this[property] = data; + + KeyValuePair entry = + new KeyValuePair (property, data); + + object_list.Insert (idx, entry); + } + + void IOrderedDictionary.RemoveAt (int idx) + { + EnsureDictionary (); + + inst_object.Remove (object_list[idx].Key); + object_list.RemoveAt (idx); + } + #endregion + + + #region Private Methods + private ICollection EnsureCollection () + { + if (type == JsonType.Array) + return (ICollection) inst_array; + + if (type == JsonType.Object) + return (ICollection) inst_object; + + throw new InvalidOperationException ( + "The JsonData instance has to be initialized first"); + } + + private IDictionary EnsureDictionary () + { + if (type == JsonType.Object) + return (IDictionary) inst_object; + + if (type != JsonType.None) + throw new InvalidOperationException ( + "Instance of JsonData is not a dictionary"); + + type = JsonType.Object; + inst_object = new Dictionary (); + object_list = new List> (); + + return (IDictionary) inst_object; + } + + private IList EnsureList () + { + if (type == JsonType.Array) + return (IList) inst_array; + + if (type != JsonType.None) + throw new InvalidOperationException ( + "Instance of JsonData is not a list"); + + type = JsonType.Array; + inst_array = new List (); + + return (IList) inst_array; + } + + private JsonData ToJsonData (object obj) + { + if (obj == null) + return null; + + if (obj is JsonData) + return (JsonData) obj; + + return new JsonData (obj); + } + + private static void WriteJson (IJsonWrapper obj, JsonWriter writer) + { + if (obj == null) { + writer.Write (null); + return; + } + + if (obj.IsString) { + writer.Write (obj.GetString ()); + return; + } + + if (obj.IsBoolean) { + writer.Write (obj.GetBoolean ()); + return; + } + + if (obj.IsDouble) { + writer.Write (obj.GetDouble ()); + return; + } + + if (obj.IsInt) { + writer.Write (obj.GetInt ()); + return; + } + + if (obj.IsLong) { + writer.Write (obj.GetLong ()); + return; + } + + if (obj.IsArray) { + writer.WriteArrayStart (); + foreach (object elem in (IList) obj) + WriteJson ((JsonData) elem, writer); + writer.WriteArrayEnd (); + + return; + } + + if (obj.IsObject) { + writer.WriteObjectStart (); + + foreach (DictionaryEntry entry in ((IDictionary) obj)) { + writer.WritePropertyName ((string) entry.Key); + WriteJson ((JsonData) entry.Value, writer); + } + writer.WriteObjectEnd (); + + return; + } + } + #endregion + + + public int Add (object value) + { + JsonData data = ToJsonData (value); + + json = null; + + return EnsureList ().Add (data); + } + + public bool Remove(object obj) + { + json = null; + if(IsObject) + { + JsonData value = null; + if (inst_object.TryGetValue((string)obj, out value)) + return inst_object.Remove((string)obj) && object_list.Remove(new KeyValuePair((string)obj, value)); + else + throw new KeyNotFoundException("The specified key was not found in the JsonData object."); + } + if(IsArray) + { + return inst_array.Remove(ToJsonData(obj)); + } + throw new InvalidOperationException ( + "Instance of JsonData is not an object or a list."); + } + + public void Clear () + { + if (IsObject) { + ((IDictionary) this).Clear (); + return; + } + + if (IsArray) { + ((IList) this).Clear (); + return; + } + } + + public bool Equals (JsonData x) + { + if (x == null) + return false; + + if (x.type != this.type) + { + // further check to see if this is a long to int comparison + if ((x.type != JsonType.Int && x.type != JsonType.Long) + || (this.type != JsonType.Int && this.type != JsonType.Long)) + { + return false; + } + } + + switch (this.type) { + case JsonType.None: + return true; + + case JsonType.Object: + return this.inst_object.Equals (x.inst_object); + + case JsonType.Array: + return this.inst_array.Equals (x.inst_array); + + case JsonType.String: + return this.inst_string.Equals (x.inst_string); + + case JsonType.Int: + { + if (x.IsLong) + { + if (x.inst_long < Int32.MinValue || x.inst_long > Int32.MaxValue) + return false; + return this.inst_int.Equals((int)x.inst_long); + } + return this.inst_int.Equals(x.inst_int); + } + + case JsonType.Long: + { + if (x.IsInt) + { + if (this.inst_long < Int32.MinValue || this.inst_long > Int32.MaxValue) + return false; + return x.inst_int.Equals((int)this.inst_long); + } + return this.inst_long.Equals(x.inst_long); + } + + case JsonType.Double: + return this.inst_double.Equals (x.inst_double); + + case JsonType.Boolean: + return this.inst_boolean.Equals (x.inst_boolean); + } + + return false; + } + + public JsonType GetJsonType () + { + return type; + } + + public void SetJsonType (JsonType type) + { + if (this.type == type) + return; + + switch (type) { + case JsonType.None: + break; + + case JsonType.Object: + inst_object = new Dictionary (); + object_list = new List> (); + break; + + case JsonType.Array: + inst_array = new List (); + break; + + case JsonType.String: + inst_string = default (String); + break; + + case JsonType.Int: + inst_int = default (Int32); + break; + + case JsonType.Long: + inst_long = default (Int64); + break; + + case JsonType.Double: + inst_double = default (Double); + break; + + case JsonType.Boolean: + inst_boolean = default (Boolean); + break; + } + + this.type = type; + } + + public string ToJson () + { + if (json != null) + return json; + + StringWriter sw = new StringWriter (); + JsonWriter writer = new JsonWriter (sw); + writer.Validate = false; + + WriteJson (this, writer); + json = sw.ToString (); + + return json; + } + + public void ToJson (JsonWriter writer) + { + bool old_validate = writer.Validate; + + writer.Validate = false; + + WriteJson (this, writer); + + writer.Validate = old_validate; + } + + public override string ToString () + { + switch (type) { + case JsonType.Array: + return "JsonData array"; + + case JsonType.Boolean: + return inst_boolean.ToString (); + + case JsonType.Double: + return inst_double.ToString (); + + case JsonType.Int: + return inst_int.ToString (); + + case JsonType.Long: + return inst_long.ToString (); + + case JsonType.Object: + return "JsonData object"; + + case JsonType.String: + return inst_string; + } + + return "Uninitialized JsonData"; + } + } + + + internal class OrderedDictionaryEnumerator : IDictionaryEnumerator + { + IEnumerator> list_enumerator; + + + public object Current { + get { return Entry; } + } + + public DictionaryEntry Entry { + get { + KeyValuePair curr = list_enumerator.Current; + return new DictionaryEntry (curr.Key, curr.Value); + } + } + + public object Key { + get { return list_enumerator.Current.Key; } + } + + public object Value { + get { return list_enumerator.Current.Value; } + } + + + public OrderedDictionaryEnumerator ( + IEnumerator> enumerator) + { + list_enumerator = enumerator; + } + + + public bool MoveNext () + { + return list_enumerator.MoveNext (); + } + + public void Reset () + { + list_enumerator.Reset (); + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonData.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonData.cs.meta new file mode 100644 index 0000000..b8940a8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d3ae25b6b7cd44b40a54c07476a52456 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonException.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonException.cs new file mode 100644 index 0000000..4efd890 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonException.cs @@ -0,0 +1,65 @@ +#region Header +/** + * JsonException.cs + * Base class throwed by LitJSON when a parsing error occurs. + * + * The authors disclaim copyright to this source code. For more details, see + * the COPYING file included with this distribution. + **/ +#endregion + + +using System; + + +namespace LitJson +{ + public class JsonException : +#if NETSTANDARD1_5 + Exception +#else + ApplicationException +#endif + { + public JsonException () : base () + { + } + + internal JsonException (ParserToken token) : + base (String.Format ( + "Invalid token '{0}' in input string", token)) + { + } + + internal JsonException (ParserToken token, + Exception inner_exception) : + base (String.Format ( + "Invalid token '{0}' in input string", token), + inner_exception) + { + } + + internal JsonException (int c) : + base (String.Format ( + "Invalid character '{0}' in input string", (char) c)) + { + } + + internal JsonException (int c, Exception inner_exception) : + base (String.Format ( + "Invalid character '{0}' in input string", (char) c), + inner_exception) + { + } + + + public JsonException (string message) : base (message) + { + } + + public JsonException (string message, Exception inner_exception) : + base (message, inner_exception) + { + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonException.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonException.cs.meta new file mode 100644 index 0000000..b6b7b41 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonException.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 81e400e6b0dcff7418936a822864e3a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMapper.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMapper.cs new file mode 100644 index 0000000..99946cf --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMapper.cs @@ -0,0 +1,987 @@ +#region Header +/** + * JsonMapper.cs + * JSON to .Net object and object to JSON conversions. + * + * The authors disclaim copyright to this source code. For more details, see + * the COPYING file included with this distribution. + **/ +#endregion + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Reflection; + + +namespace LitJson +{ + internal struct PropertyMetadata + { + public MemberInfo Info; + public bool IsField; + public Type Type; + } + + + internal struct ArrayMetadata + { + private Type element_type; + private bool is_array; + private bool is_list; + + + public Type ElementType { + get { + if (element_type == null) + return typeof (JsonData); + + return element_type; + } + + set { element_type = value; } + } + + public bool IsArray { + get { return is_array; } + set { is_array = value; } + } + + public bool IsList { + get { return is_list; } + set { is_list = value; } + } + } + + + internal struct ObjectMetadata + { + private Type element_type; + private bool is_dictionary; + + private IDictionary properties; + + + public Type ElementType { + get { + if (element_type == null) + return typeof (JsonData); + + return element_type; + } + + set { element_type = value; } + } + + public bool IsDictionary { + get { return is_dictionary; } + set { is_dictionary = value; } + } + + public IDictionary Properties { + get { return properties; } + set { properties = value; } + } + } + + + internal delegate void ExporterFunc (object obj, JsonWriter writer); + public delegate void ExporterFunc (T obj, JsonWriter writer); + + internal delegate object ImporterFunc (object input); + public delegate TValue ImporterFunc (TJson input); + + public delegate IJsonWrapper WrapperFactory (); + + + public class JsonMapper + { + #region Fields + private static readonly int max_nesting_depth; + + private static readonly IFormatProvider datetime_format; + + private static readonly IDictionary base_exporters_table; + private static readonly IDictionary custom_exporters_table; + + private static readonly IDictionary> base_importers_table; + private static readonly IDictionary> custom_importers_table; + + private static readonly IDictionary array_metadata; + private static readonly object array_metadata_lock = new Object (); + + private static readonly IDictionary> conv_ops; + private static readonly object conv_ops_lock = new Object (); + + private static readonly IDictionary object_metadata; + private static readonly object object_metadata_lock = new Object (); + + private static readonly IDictionary> type_properties; + private static readonly object type_properties_lock = new Object (); + + private static readonly JsonWriter static_writer; + private static readonly object static_writer_lock = new Object (); + #endregion + + + #region Constructors + static JsonMapper () + { + max_nesting_depth = 100; + + array_metadata = new Dictionary (); + conv_ops = new Dictionary> (); + object_metadata = new Dictionary (); + type_properties = new Dictionary> (); + + static_writer = new JsonWriter (); + + datetime_format = DateTimeFormatInfo.InvariantInfo; + + base_exporters_table = new Dictionary (); + custom_exporters_table = new Dictionary (); + + base_importers_table = new Dictionary> (); + custom_importers_table = new Dictionary> (); + + RegisterBaseExporters (); + RegisterBaseImporters (); + } + #endregion + + + #region Private Methods + private static void AddArrayMetadata (Type type) + { + if (array_metadata.ContainsKey (type)) + return; + + ArrayMetadata data = new ArrayMetadata (); + + data.IsArray = type.IsArray; + + if (type.GetInterface ("System.Collections.IList") != null) + data.IsList = true; + + foreach (PropertyInfo p_info in type.GetProperties ()) { + if (p_info.Name != "Item") + continue; + + ParameterInfo[] parameters = p_info.GetIndexParameters (); + + if (parameters.Length != 1) + continue; + + if (parameters[0].ParameterType == typeof (int)) + data.ElementType = p_info.PropertyType; + } + + lock (array_metadata_lock) { + try { + array_metadata.Add (type, data); + } catch (ArgumentException) { + return; + } + } + } + + private static void AddObjectMetadata (Type type) + { + if (object_metadata.ContainsKey (type)) + return; + + ObjectMetadata data = new ObjectMetadata (); + + if (type.GetInterface ("System.Collections.IDictionary") != null) + data.IsDictionary = true; + + data.Properties = new Dictionary (); + + foreach (PropertyInfo p_info in type.GetProperties ()) { + if (p_info.Name == "Item") { + ParameterInfo[] parameters = p_info.GetIndexParameters (); + + if (parameters.Length != 1) + continue; + + if (parameters[0].ParameterType == typeof (string)) + data.ElementType = p_info.PropertyType; + + continue; + } + + PropertyMetadata p_data = new PropertyMetadata (); + p_data.Info = p_info; + p_data.Type = p_info.PropertyType; + + data.Properties.Add (p_info.Name, p_data); + } + + foreach (FieldInfo f_info in type.GetFields ()) { + PropertyMetadata p_data = new PropertyMetadata (); + p_data.Info = f_info; + p_data.IsField = true; + p_data.Type = f_info.FieldType; + + data.Properties.Add (f_info.Name, p_data); + } + + lock (object_metadata_lock) { + try { + object_metadata.Add (type, data); + } catch (ArgumentException) { + return; + } + } + } + + private static void AddTypeProperties (Type type) + { + if (type_properties.ContainsKey (type)) + return; + + IList props = new List (); + + foreach (PropertyInfo p_info in type.GetProperties ()) { + if (p_info.Name == "Item") + continue; + + PropertyMetadata p_data = new PropertyMetadata (); + p_data.Info = p_info; + p_data.IsField = false; + props.Add (p_data); + } + + foreach (FieldInfo f_info in type.GetFields ()) { + PropertyMetadata p_data = new PropertyMetadata (); + p_data.Info = f_info; + p_data.IsField = true; + + props.Add (p_data); + } + + lock (type_properties_lock) { + try { + type_properties.Add (type, props); + } catch (ArgumentException) { + return; + } + } + } + + private static MethodInfo GetConvOp (Type t1, Type t2) + { + lock (conv_ops_lock) { + if (! conv_ops.ContainsKey (t1)) + conv_ops.Add (t1, new Dictionary ()); + } + + if (conv_ops[t1].ContainsKey (t2)) + return conv_ops[t1][t2]; + + MethodInfo op = t1.GetMethod ( + "op_Implicit", new Type[] { t2 }); + + lock (conv_ops_lock) { + try { + conv_ops[t1].Add (t2, op); + } catch (ArgumentException) { + return conv_ops[t1][t2]; + } + } + + return op; + } + + private static object ReadValue (Type inst_type, JsonReader reader) + { + reader.Read (); + + if (reader.Token == JsonToken.ArrayEnd) + return null; + + Type underlying_type = Nullable.GetUnderlyingType(inst_type); + Type value_type = underlying_type ?? inst_type; + + if (reader.Token == JsonToken.Null) { + #if NETSTANDARD1_5 + if (inst_type.IsClass() || underlying_type != null) { + return null; + } + #else + if (inst_type.IsClass || underlying_type != null) { + return null; + } + #endif + + throw new JsonException (String.Format ( + "Can't assign null to an instance of type {0}", + inst_type)); + } + + if (reader.Token == JsonToken.Double || + reader.Token == JsonToken.Int || + reader.Token == JsonToken.Long || + reader.Token == JsonToken.String || + reader.Token == JsonToken.Boolean) { + + Type json_type = reader.Value.GetType (); + + if (value_type.IsAssignableFrom (json_type)) + return reader.Value; + + // If there's a custom importer that fits, use it + if (custom_importers_table.ContainsKey (json_type) && + custom_importers_table[json_type].ContainsKey ( + value_type)) { + + ImporterFunc importer = + custom_importers_table[json_type][value_type]; + + return importer (reader.Value); + } + + // Maybe there's a base importer that works + if (base_importers_table.ContainsKey (json_type) && + base_importers_table[json_type].ContainsKey ( + value_type)) { + + ImporterFunc importer = + base_importers_table[json_type][value_type]; + + return importer (reader.Value); + } + + // Maybe it's an enum + #if NETSTANDARD1_5 + if (value_type.IsEnum()) + return Enum.ToObject (value_type, reader.Value); + #else + if (value_type.IsEnum) + return Enum.ToObject (value_type, reader.Value); + #endif + // Try using an implicit conversion operator + MethodInfo conv_op = GetConvOp (value_type, json_type); + + if (conv_op != null) + return conv_op.Invoke (null, + new object[] { reader.Value }); + + // No luck + throw new JsonException (String.Format ( + "Can't assign value '{0}' (type {1}) to type {2}", + reader.Value, json_type, inst_type)); + } + + object instance = null; + + if (reader.Token == JsonToken.ArrayStart) { + + AddArrayMetadata (inst_type); + ArrayMetadata t_data = array_metadata[inst_type]; + + if (! t_data.IsArray && ! t_data.IsList) + throw new JsonException (String.Format ( + "Type {0} can't act as an array", + inst_type)); + + IList list; + Type elem_type; + + if (! t_data.IsArray) { + list = (IList) Activator.CreateInstance (inst_type); + elem_type = t_data.ElementType; + } else { + list = new ArrayList (); + elem_type = inst_type.GetElementType (); + } + + list.Clear(); + + while (true) { + object item = ReadValue (elem_type, reader); + if (item == null && reader.Token == JsonToken.ArrayEnd) + break; + + list.Add (item); + } + + if (t_data.IsArray) { + int n = list.Count; + instance = Array.CreateInstance (elem_type, n); + + for (int i = 0; i < n; i++) + ((Array) instance).SetValue (list[i], i); + } else + instance = list; + + } else if (reader.Token == JsonToken.ObjectStart) { + AddObjectMetadata (value_type); + ObjectMetadata t_data = object_metadata[value_type]; + + instance = Activator.CreateInstance (value_type); + + while (true) { + reader.Read (); + + if (reader.Token == JsonToken.ObjectEnd) + break; + + string property = (string) reader.Value; + + if (t_data.Properties.ContainsKey (property)) { + PropertyMetadata prop_data = + t_data.Properties[property]; + + if (prop_data.IsField) { + ((FieldInfo) prop_data.Info).SetValue ( + instance, ReadValue (prop_data.Type, reader)); + } else { + PropertyInfo p_info = + (PropertyInfo) prop_data.Info; + + if (p_info.CanWrite) + p_info.SetValue ( + instance, + ReadValue (prop_data.Type, reader), + null); + else + ReadValue (prop_data.Type, reader); + } + + } else { + if (! t_data.IsDictionary) { + + if (! reader.SkipNonMembers) { + throw new JsonException (String.Format ( + "The type {0} doesn't have the " + + "property '{1}'", + inst_type, property)); + } else { + ReadSkip (reader); + continue; + } + } + + ((IDictionary) instance).Add ( + property, ReadValue ( + t_data.ElementType, reader)); + } + + } + + } + + return instance; + } + + private static IJsonWrapper ReadValue (WrapperFactory factory, + JsonReader reader) + { + reader.Read (); + + if (reader.Token == JsonToken.ArrayEnd || + reader.Token == JsonToken.Null) + return null; + + IJsonWrapper instance = factory (); + + if (reader.Token == JsonToken.String) { + instance.SetString ((string) reader.Value); + return instance; + } + + if (reader.Token == JsonToken.Double) { + instance.SetDouble ((double) reader.Value); + return instance; + } + + if (reader.Token == JsonToken.Int) { + instance.SetInt ((int) reader.Value); + return instance; + } + + if (reader.Token == JsonToken.Long) { + instance.SetLong ((long) reader.Value); + return instance; + } + + if (reader.Token == JsonToken.Boolean) { + instance.SetBoolean ((bool) reader.Value); + return instance; + } + + if (reader.Token == JsonToken.ArrayStart) { + instance.SetJsonType (JsonType.Array); + + while (true) { + IJsonWrapper item = ReadValue (factory, reader); + if (item == null && reader.Token == JsonToken.ArrayEnd) + break; + + ((IList) instance).Add (item); + } + } + else if (reader.Token == JsonToken.ObjectStart) { + instance.SetJsonType (JsonType.Object); + + while (true) { + reader.Read (); + + if (reader.Token == JsonToken.ObjectEnd) + break; + + string property = (string) reader.Value; + + ((IDictionary) instance)[property] = ReadValue ( + factory, reader); + } + + } + + return instance; + } + + private static void ReadSkip (JsonReader reader) + { + ToWrapper ( + delegate { return new JsonMockWrapper (); }, reader); + } + + private static void RegisterBaseExporters () + { + base_exporters_table[typeof (byte)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToInt32 ((byte) obj)); + }; + + base_exporters_table[typeof (char)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToString ((char) obj)); + }; + + base_exporters_table[typeof (DateTime)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToString ((DateTime) obj, + datetime_format)); + }; + + base_exporters_table[typeof (decimal)] = + delegate (object obj, JsonWriter writer) { + writer.Write ((decimal) obj); + }; + + base_exporters_table[typeof (sbyte)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToInt32 ((sbyte) obj)); + }; + + base_exporters_table[typeof (short)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToInt32 ((short) obj)); + }; + + base_exporters_table[typeof (ushort)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToInt32 ((ushort) obj)); + }; + + base_exporters_table[typeof (uint)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToUInt64 ((uint) obj)); + }; + + base_exporters_table[typeof (ulong)] = + delegate (object obj, JsonWriter writer) { + writer.Write ((ulong) obj); + }; + + base_exporters_table[typeof(DateTimeOffset)] = + delegate (object obj, JsonWriter writer) { + writer.Write(((DateTimeOffset)obj).ToString("yyyy-MM-ddTHH:mm:ss.fffffffzzz", datetime_format)); + }; + } + + private static void RegisterBaseImporters () + { + ImporterFunc importer; + + importer = delegate (object input) { + return Convert.ToByte ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (byte), importer); + + importer = delegate (object input) { + return Convert.ToUInt64 ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (ulong), importer); + + importer = delegate (object input) { + return Convert.ToInt64((int)input); + }; + RegisterImporter(base_importers_table, typeof(int), + typeof(long), importer); + + importer = delegate (object input) { + return Convert.ToSByte ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (sbyte), importer); + + importer = delegate (object input) { + return Convert.ToInt16 ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (short), importer); + + importer = delegate (object input) { + return Convert.ToUInt16 ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (ushort), importer); + + importer = delegate (object input) { + return Convert.ToUInt32 ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (uint), importer); + + importer = delegate (object input) { + return Convert.ToSingle ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (float), importer); + + importer = delegate (object input) { + return Convert.ToDouble ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (double), importer); + + importer = delegate (object input) { + return Convert.ToDecimal ((double) input); + }; + RegisterImporter (base_importers_table, typeof (double), + typeof (decimal), importer); + + importer = delegate (object input) { + return Convert.ToSingle((double)input); + }; + RegisterImporter(base_importers_table, typeof(double), + typeof(float), importer); + + importer = delegate (object input) { + return Convert.ToUInt32 ((long) input); + }; + RegisterImporter (base_importers_table, typeof (long), + typeof (uint), importer); + + importer = delegate (object input) { + return Convert.ToChar ((string) input); + }; + RegisterImporter (base_importers_table, typeof (string), + typeof (char), importer); + + importer = delegate (object input) { + return Convert.ToDateTime ((string) input, datetime_format); + }; + RegisterImporter (base_importers_table, typeof (string), + typeof (DateTime), importer); + + importer = delegate (object input) { + return DateTimeOffset.Parse((string)input, datetime_format); + }; + RegisterImporter(base_importers_table, typeof(string), + typeof(DateTimeOffset), importer); + } + + private static void RegisterImporter ( + IDictionary> table, + Type json_type, Type value_type, ImporterFunc importer) + { + if (! table.ContainsKey (json_type)) + table.Add (json_type, new Dictionary ()); + + table[json_type][value_type] = importer; + } + + private static void WriteValue (object obj, JsonWriter writer, + bool writer_is_private, + int depth) + { + if (depth > max_nesting_depth) + throw new JsonException ( + String.Format ("Max allowed object depth reached while " + + "trying to export from type {0}", + obj.GetType ())); + + if (obj == null) { + writer.Write (null); + return; + } + + if (obj is IJsonWrapper) { + if (writer_is_private) + writer.TextWriter.Write (((IJsonWrapper) obj).ToJson ()); + else + ((IJsonWrapper) obj).ToJson (writer); + + return; + } + + if (obj is String) { + writer.Write ((string) obj); + return; + } + + if (obj is Double) { + writer.Write ((double) obj); + return; + } + + if (obj is Single) + { + writer.Write((float)obj); + return; + } + + if (obj is Int32) { + writer.Write ((int) obj); + return; + } + + if (obj is Boolean) { + writer.Write ((bool) obj); + return; + } + + if (obj is Int64) { + writer.Write ((long) obj); + return; + } + + if (obj is Array) { + writer.WriteArrayStart (); + + foreach (object elem in (Array) obj) + WriteValue (elem, writer, writer_is_private, depth + 1); + + writer.WriteArrayEnd (); + + return; + } + + if (obj is IList) { + writer.WriteArrayStart (); + foreach (object elem in (IList) obj) + WriteValue (elem, writer, writer_is_private, depth + 1); + writer.WriteArrayEnd (); + + return; + } + + if (obj is IDictionary dictionary) { + writer.WriteObjectStart (); + foreach (DictionaryEntry entry in dictionary) { + var propertyName = entry.Key is string key ? + key + : Convert.ToString(entry.Key, CultureInfo.InvariantCulture); + writer.WritePropertyName (propertyName); + WriteValue (entry.Value, writer, writer_is_private, + depth + 1); + } + writer.WriteObjectEnd (); + + return; + } + + Type obj_type = obj.GetType (); + + // See if there's a custom exporter for the object + if (custom_exporters_table.ContainsKey (obj_type)) { + ExporterFunc exporter = custom_exporters_table[obj_type]; + exporter (obj, writer); + + return; + } + + // If not, maybe there's a base exporter + if (base_exporters_table.ContainsKey (obj_type)) { + ExporterFunc exporter = base_exporters_table[obj_type]; + exporter (obj, writer); + + return; + } + + // Last option, let's see if it's an enum + if (obj is Enum) { + Type e_type = Enum.GetUnderlyingType (obj_type); + + if (e_type == typeof (long)) + writer.Write ((long) obj); + else if (e_type == typeof (uint)) + writer.Write ((uint) obj); + else if (e_type == typeof (ulong)) + writer.Write ((ulong) obj); + else if (e_type == typeof(ushort)) + writer.Write ((ushort)obj); + else if (e_type == typeof(short)) + writer.Write ((short)obj); + else if (e_type == typeof(byte)) + writer.Write ((byte)obj); + else if (e_type == typeof(sbyte)) + writer.Write ((sbyte)obj); + else + writer.Write ((int) obj); + + return; + } + + // Okay, so it looks like the input should be exported as an + // object + AddTypeProperties (obj_type); + IList props = type_properties[obj_type]; + + writer.WriteObjectStart (); + foreach (PropertyMetadata p_data in props) { + if (p_data.IsField) { + writer.WritePropertyName (p_data.Info.Name); + WriteValue (((FieldInfo) p_data.Info).GetValue (obj), + writer, writer_is_private, depth + 1); + } + else { + PropertyInfo p_info = (PropertyInfo) p_data.Info; + + if (p_info.CanRead) { + writer.WritePropertyName (p_data.Info.Name); + WriteValue (p_info.GetValue (obj, null), + writer, writer_is_private, depth + 1); + } + } + } + writer.WriteObjectEnd (); + } + #endregion + + + public static string ToJson (object obj) + { + lock (static_writer_lock) { + static_writer.Reset (); + + WriteValue (obj, static_writer, true, 0); + + return static_writer.ToString (); + } + } + + public static void ToJson (object obj, JsonWriter writer) + { + WriteValue (obj, writer, false, 0); + } + + public static JsonData ToObject (JsonReader reader) + { + return (JsonData) ToWrapper ( + delegate { return new JsonData (); }, reader); + } + + public static JsonData ToObject (TextReader reader) + { + JsonReader json_reader = new JsonReader (reader); + + return (JsonData) ToWrapper ( + delegate { return new JsonData (); }, json_reader); + } + + public static JsonData ToObject (string json) + { + return (JsonData) ToWrapper ( + delegate { return new JsonData (); }, json); + } + + public static T ToObject (JsonReader reader) + { + return (T) ReadValue (typeof (T), reader); + } + + public static T ToObject (TextReader reader) + { + JsonReader json_reader = new JsonReader (reader); + + return (T) ReadValue (typeof (T), json_reader); + } + + public static T ToObject (string json) + { + JsonReader reader = new JsonReader (json); + + return (T) ReadValue (typeof (T), reader); + } + + public static object ToObject(string json, Type ConvertType ) + { + JsonReader reader = new JsonReader(json); + + return ReadValue(ConvertType, reader); + } + + public static IJsonWrapper ToWrapper (WrapperFactory factory, + JsonReader reader) + { + return ReadValue (factory, reader); + } + + public static IJsonWrapper ToWrapper (WrapperFactory factory, + string json) + { + JsonReader reader = new JsonReader (json); + + return ReadValue (factory, reader); + } + + public static void RegisterExporter (ExporterFunc exporter) + { + ExporterFunc exporter_wrapper = + delegate (object obj, JsonWriter writer) { + exporter ((T) obj, writer); + }; + + custom_exporters_table[typeof (T)] = exporter_wrapper; + } + + public static void RegisterImporter ( + ImporterFunc importer) + { + ImporterFunc importer_wrapper = + delegate (object input) { + return importer ((TJson) input); + }; + + RegisterImporter (custom_importers_table, typeof (TJson), + typeof (TValue), importer_wrapper); + } + + public static void UnregisterExporters () + { + custom_exporters_table.Clear (); + } + + public static void UnregisterImporters () + { + custom_importers_table.Clear (); + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMapper.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMapper.cs.meta new file mode 100644 index 0000000..b569a8a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2e63e0f11bef8d6429a261ce53a94f70 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMockWrapper.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMockWrapper.cs new file mode 100644 index 0000000..dfe7adb --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMockWrapper.cs @@ -0,0 +1,105 @@ +#region Header +/** + * JsonMockWrapper.cs + * Mock object implementing IJsonWrapper, to facilitate actions like + * skipping data more efficiently. + * + * The authors disclaim copyright to this source code. For more details, see + * the COPYING file included with this distribution. + **/ +#endregion + + +using System; +using System.Collections; +using System.Collections.Specialized; + + +namespace LitJson +{ + public class JsonMockWrapper : IJsonWrapper + { + public bool IsArray { get { return false; } } + public bool IsBoolean { get { return false; } } + public bool IsDouble { get { return false; } } + public bool IsInt { get { return false; } } + public bool IsLong { get { return false; } } + public bool IsObject { get { return false; } } + public bool IsString { get { return false; } } + + public bool GetBoolean () { return false; } + public double GetDouble () { return 0.0; } + public int GetInt () { return 0; } + public JsonType GetJsonType () { return JsonType.None; } + public long GetLong () { return 0L; } + public string GetString () { return ""; } + + public void SetBoolean (bool val) {} + public void SetDouble (double val) {} + public void SetInt (int val) {} + public void SetJsonType (JsonType type) {} + public void SetLong (long val) {} + public void SetString (string val) {} + + public string ToJson () { return ""; } + public void ToJson (JsonWriter writer) {} + + + bool IList.IsFixedSize { get { return true; } } + bool IList.IsReadOnly { get { return true; } } + + object IList.this[int index] { + get { return null; } + set {} + } + + int IList.Add (object value) { return 0; } + void IList.Clear () {} + bool IList.Contains (object value) { return false; } + int IList.IndexOf (object value) { return -1; } + void IList.Insert (int i, object v) {} + void IList.Remove (object value) {} + void IList.RemoveAt (int index) {} + + + int ICollection.Count { get { return 0; } } + bool ICollection.IsSynchronized { get { return false; } } + object ICollection.SyncRoot { get { return null; } } + + void ICollection.CopyTo (Array array, int index) {} + + + IEnumerator IEnumerable.GetEnumerator () { return null; } + + + bool IDictionary.IsFixedSize { get { return true; } } + bool IDictionary.IsReadOnly { get { return true; } } + + ICollection IDictionary.Keys { get { return null; } } + ICollection IDictionary.Values { get { return null; } } + + object IDictionary.this[object key] { + get { return null; } + set {} + } + + void IDictionary.Add (object k, object v) {} + void IDictionary.Clear () {} + bool IDictionary.Contains (object key) { return false; } + void IDictionary.Remove (object key) {} + + IDictionaryEnumerator IDictionary.GetEnumerator () { return null; } + + + object IOrderedDictionary.this[int idx] { + get { return null; } + set {} + } + + IDictionaryEnumerator IOrderedDictionary.GetEnumerator () { + return null; + } + void IOrderedDictionary.Insert (int i, object k, object v) {} + void IOrderedDictionary.RemoveAt (int i) {} + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMockWrapper.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMockWrapper.cs.meta new file mode 100644 index 0000000..2b67513 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonMockWrapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eccf65801d671bc41b6df3f29c184857 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonReader.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonReader.cs new file mode 100644 index 0000000..e47eabc --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonReader.cs @@ -0,0 +1,478 @@ +#region Header +/** + * JsonReader.cs + * Stream-like access to JSON text. + * + * The authors disclaim copyright to this source code. For more details, see + * the COPYING file included with this distribution. + **/ +#endregion + + +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Text; + + +namespace LitJson +{ + public enum JsonToken + { + None, + + ObjectStart, + PropertyName, + ObjectEnd, + + ArrayStart, + ArrayEnd, + + Int, + Long, + Double, + + String, + + Boolean, + Null + } + + + public class JsonReader + { + #region Fields + private static readonly IDictionary> parse_table; + + private Stack automaton_stack; + private int current_input; + private int current_symbol; + private bool end_of_json; + private bool end_of_input; + private Lexer lexer; + private bool parser_in_string; + private bool parser_return; + private bool read_started; + private TextReader reader; + private bool reader_is_owned; + private bool skip_non_members; + private object token_value; + private JsonToken token; + #endregion + + + #region Public Properties + public bool AllowComments { + get { return lexer.AllowComments; } + set { lexer.AllowComments = value; } + } + + public bool AllowSingleQuotedStrings { + get { return lexer.AllowSingleQuotedStrings; } + set { lexer.AllowSingleQuotedStrings = value; } + } + + public bool SkipNonMembers { + get { return skip_non_members; } + set { skip_non_members = value; } + } + + public bool EndOfInput { + get { return end_of_input; } + } + + public bool EndOfJson { + get { return end_of_json; } + } + + public JsonToken Token { + get { return token; } + } + + public object Value { + get { return token_value; } + } + #endregion + + + #region Constructors + static JsonReader () + { + parse_table = PopulateParseTable (); + } + + public JsonReader (string json_text) : + this (new StringReader (json_text), true) + { + } + + public JsonReader (TextReader reader) : + this (reader, false) + { + } + + private JsonReader (TextReader reader, bool owned) + { + if (reader == null) + throw new ArgumentNullException ("reader"); + + parser_in_string = false; + parser_return = false; + + read_started = false; + automaton_stack = new Stack (); + automaton_stack.Push ((int) ParserToken.End); + automaton_stack.Push ((int) ParserToken.Text); + + lexer = new Lexer (reader); + + end_of_input = false; + end_of_json = false; + + skip_non_members = true; + + this.reader = reader; + reader_is_owned = owned; + } + #endregion + + + #region Static Methods + private static IDictionary> PopulateParseTable () + { + // See section A.2. of the manual for details + IDictionary> parse_table = new Dictionary> (); + + TableAddRow (parse_table, ParserToken.Array); + TableAddCol (parse_table, ParserToken.Array, '[', + '[', + (int) ParserToken.ArrayPrime); + + TableAddRow (parse_table, ParserToken.ArrayPrime); + TableAddCol (parse_table, ParserToken.ArrayPrime, '"', + (int) ParserToken.Value, + + (int) ParserToken.ValueRest, + ']'); + TableAddCol (parse_table, ParserToken.ArrayPrime, '[', + (int) ParserToken.Value, + (int) ParserToken.ValueRest, + ']'); + TableAddCol (parse_table, ParserToken.ArrayPrime, ']', + ']'); + TableAddCol (parse_table, ParserToken.ArrayPrime, '{', + (int) ParserToken.Value, + (int) ParserToken.ValueRest, + ']'); + TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.Number, + (int) ParserToken.Value, + (int) ParserToken.ValueRest, + ']'); + TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.True, + (int) ParserToken.Value, + (int) ParserToken.ValueRest, + ']'); + TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.False, + (int) ParserToken.Value, + (int) ParserToken.ValueRest, + ']'); + TableAddCol (parse_table, ParserToken.ArrayPrime, (int) ParserToken.Null, + (int) ParserToken.Value, + (int) ParserToken.ValueRest, + ']'); + + TableAddRow (parse_table, ParserToken.Object); + TableAddCol (parse_table, ParserToken.Object, '{', + '{', + (int) ParserToken.ObjectPrime); + + TableAddRow (parse_table, ParserToken.ObjectPrime); + TableAddCol (parse_table, ParserToken.ObjectPrime, '"', + (int) ParserToken.Pair, + (int) ParserToken.PairRest, + '}'); + TableAddCol (parse_table, ParserToken.ObjectPrime, '}', + '}'); + + TableAddRow (parse_table, ParserToken.Pair); + TableAddCol (parse_table, ParserToken.Pair, '"', + (int) ParserToken.String, + ':', + (int) ParserToken.Value); + + TableAddRow (parse_table, ParserToken.PairRest); + TableAddCol (parse_table, ParserToken.PairRest, ',', + ',', + (int) ParserToken.Pair, + (int) ParserToken.PairRest); + TableAddCol (parse_table, ParserToken.PairRest, '}', + (int) ParserToken.Epsilon); + + TableAddRow (parse_table, ParserToken.String); + TableAddCol (parse_table, ParserToken.String, '"', + '"', + (int) ParserToken.CharSeq, + '"'); + + TableAddRow (parse_table, ParserToken.Text); + TableAddCol (parse_table, ParserToken.Text, '[', + (int) ParserToken.Array); + TableAddCol (parse_table, ParserToken.Text, '{', + (int) ParserToken.Object); + + TableAddRow (parse_table, ParserToken.Value); + TableAddCol (parse_table, ParserToken.Value, '"', + (int) ParserToken.String); + TableAddCol (parse_table, ParserToken.Value, '[', + (int) ParserToken.Array); + TableAddCol (parse_table, ParserToken.Value, '{', + (int) ParserToken.Object); + TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.Number, + (int) ParserToken.Number); + TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.True, + (int) ParserToken.True); + TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.False, + (int) ParserToken.False); + TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.Null, + (int) ParserToken.Null); + + TableAddRow (parse_table, ParserToken.ValueRest); + TableAddCol (parse_table, ParserToken.ValueRest, ',', + ',', + (int) ParserToken.Value, + (int) ParserToken.ValueRest); + TableAddCol (parse_table, ParserToken.ValueRest, ']', + (int) ParserToken.Epsilon); + + return parse_table; + } + + private static void TableAddCol (IDictionary> parse_table, ParserToken row, int col, + params int[] symbols) + { + parse_table[(int) row].Add (col, symbols); + } + + private static void TableAddRow (IDictionary> parse_table, ParserToken rule) + { + parse_table.Add ((int) rule, new Dictionary ()); + } + #endregion + + + #region Private Methods + private void ProcessNumber (string number) + { + if (number.IndexOf ('.') != -1 || + number.IndexOf ('e') != -1 || + number.IndexOf ('E') != -1) { + + double n_double; + if (double.TryParse (number, NumberStyles.Any, CultureInfo.InvariantCulture, out n_double)) { + token = JsonToken.Double; + token_value = n_double; + + return; + } + } + + int n_int32; + if (int.TryParse (number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_int32)) { + token = JsonToken.Int; + token_value = n_int32; + + return; + } + + long n_int64; + if (long.TryParse (number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_int64)) { + token = JsonToken.Long; + token_value = n_int64; + + return; + } + + ulong n_uint64; + if (ulong.TryParse(number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_uint64)) + { + token = JsonToken.Long; + token_value = n_uint64; + + return; + } + + // Shouldn't happen, but just in case, return something + token = JsonToken.Int; + token_value = 0; + } + + private void ProcessSymbol () + { + if (current_symbol == '[') { + token = JsonToken.ArrayStart; + parser_return = true; + + } else if (current_symbol == ']') { + token = JsonToken.ArrayEnd; + parser_return = true; + + } else if (current_symbol == '{') { + token = JsonToken.ObjectStart; + parser_return = true; + + } else if (current_symbol == '}') { + token = JsonToken.ObjectEnd; + parser_return = true; + + } else if (current_symbol == '"') { + if (parser_in_string) { + parser_in_string = false; + + parser_return = true; + + } else { + if (token == JsonToken.None) + token = JsonToken.String; + + parser_in_string = true; + } + + } else if (current_symbol == (int) ParserToken.CharSeq) { + token_value = lexer.StringValue; + + } else if (current_symbol == (int) ParserToken.False) { + token = JsonToken.Boolean; + token_value = false; + parser_return = true; + + } else if (current_symbol == (int) ParserToken.Null) { + token = JsonToken.Null; + parser_return = true; + + } else if (current_symbol == (int) ParserToken.Number) { + ProcessNumber (lexer.StringValue); + + parser_return = true; + + } else if (current_symbol == (int) ParserToken.Pair) { + token = JsonToken.PropertyName; + + } else if (current_symbol == (int) ParserToken.True) { + token = JsonToken.Boolean; + token_value = true; + parser_return = true; + + } + } + + private bool ReadToken () + { + if (end_of_input) + return false; + + lexer.NextToken (); + + if (lexer.EndOfInput) { + Close (); + + return false; + } + + current_input = lexer.Token; + + return true; + } + #endregion + + + public void Close () + { + if (end_of_input) + return; + + end_of_input = true; + end_of_json = true; + + if (reader_is_owned) + { + using(reader){} + } + + reader = null; + } + + public bool Read () + { + if (end_of_input) + return false; + + if (end_of_json) { + end_of_json = false; + automaton_stack.Clear (); + automaton_stack.Push ((int) ParserToken.End); + automaton_stack.Push ((int) ParserToken.Text); + } + + parser_in_string = false; + parser_return = false; + + token = JsonToken.None; + token_value = null; + + if (! read_started) { + read_started = true; + + if (! ReadToken ()) + return false; + } + + + int[] entry_symbols; + + while (true) { + if (parser_return) { + if (automaton_stack.Peek () == (int) ParserToken.End) + end_of_json = true; + + return true; + } + + current_symbol = automaton_stack.Pop (); + + ProcessSymbol (); + + if (current_symbol == current_input) { + if (! ReadToken ()) { + if (automaton_stack.Peek () != (int) ParserToken.End) + throw new JsonException ( + "Input doesn't evaluate to proper JSON text"); + + if (parser_return) + return true; + + return false; + } + + continue; + } + + try { + + entry_symbols = + parse_table[current_symbol][current_input]; + + } catch (KeyNotFoundException e) { + throw new JsonException ((ParserToken) current_input, e); + } + + if (entry_symbols[0] == (int) ParserToken.Epsilon) + continue; + + for (int i = entry_symbols.Length - 1; i >= 0; i--) + automaton_stack.Push (entry_symbols[i]); + } + } + + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonReader.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonReader.cs.meta new file mode 100644 index 0000000..8899898 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonReader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a9e68f25477380e49b9cc15cf5aeabe4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonWriter.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonWriter.cs new file mode 100644 index 0000000..4bfaaac --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonWriter.cs @@ -0,0 +1,484 @@ +#region Header +/** + * JsonWriter.cs + * Stream-like facility to output JSON text. + * + * The authors disclaim copyright to this source code. For more details, see + * the COPYING file included with this distribution. + **/ +#endregion + + +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Text; + + +namespace LitJson +{ + internal enum Condition + { + InArray, + InObject, + NotAProperty, + Property, + Value + } + + internal class WriterContext + { + public int Count; + public bool InArray; + public bool InObject; + public bool ExpectingValue; + public int Padding; + } + + public class JsonWriter + { + #region Fields + private static readonly NumberFormatInfo number_format; + + private WriterContext context; + private Stack ctx_stack; + private bool has_reached_end; + private char[] hex_seq; + private int indentation; + private int indent_value; + private StringBuilder inst_string_builder; + private bool pretty_print; + private bool validate; + private bool lower_case_properties; + private TextWriter writer; + #endregion + + + #region Properties + public int IndentValue { + get { return indent_value; } + set { + indentation = (indentation / indent_value) * value; + indent_value = value; + } + } + + public bool PrettyPrint { + get { return pretty_print; } + set { pretty_print = value; } + } + + public TextWriter TextWriter { + get { return writer; } + } + + public bool Validate { + get { return validate; } + set { validate = value; } + } + + public bool LowerCaseProperties { + get { return lower_case_properties; } + set { lower_case_properties = value; } + } + #endregion + + + #region Constructors + static JsonWriter () + { + number_format = NumberFormatInfo.InvariantInfo; + } + + public JsonWriter () + { + inst_string_builder = new StringBuilder (); + writer = new StringWriter (inst_string_builder); + + Init (); + } + + public JsonWriter (StringBuilder sb) : + this (new StringWriter (sb)) + { + } + + public JsonWriter (TextWriter writer) + { + if (writer == null) + throw new ArgumentNullException ("writer"); + + this.writer = writer; + + Init (); + } + #endregion + + + #region Private Methods + private void DoValidation (Condition cond) + { + if (! context.ExpectingValue) + context.Count++; + + if (! validate) + return; + + if (has_reached_end) + throw new JsonException ( + "A complete JSON symbol has already been written"); + + switch (cond) { + case Condition.InArray: + if (! context.InArray) + throw new JsonException ( + "Can't close an array here"); + break; + + case Condition.InObject: + if (! context.InObject || context.ExpectingValue) + throw new JsonException ( + "Can't close an object here"); + break; + + case Condition.NotAProperty: + if (context.InObject && ! context.ExpectingValue) + throw new JsonException ( + "Expected a property"); + break; + + case Condition.Property: + if (! context.InObject || context.ExpectingValue) + throw new JsonException ( + "Can't add a property here"); + break; + + case Condition.Value: + if (! context.InArray && + (! context.InObject || ! context.ExpectingValue)) + throw new JsonException ( + "Can't add a value here"); + + break; + } + } + + private void Init () + { + has_reached_end = false; + hex_seq = new char[4]; + indentation = 0; + indent_value = 4; + pretty_print = false; + validate = true; + lower_case_properties = false; + + ctx_stack = new Stack (); + context = new WriterContext (); + ctx_stack.Push (context); + } + + private static void IntToHex (int n, char[] hex) + { + int num; + + for (int i = 0; i < 4; i++) { + num = n % 16; + + if (num < 10) + hex[3 - i] = (char) ('0' + num); + else + hex[3 - i] = (char) ('A' + (num - 10)); + + n >>= 4; + } + } + + private void Indent () + { + if (pretty_print) + indentation += indent_value; + } + + + private void Put (string str) + { + if (pretty_print && ! context.ExpectingValue) + for (int i = 0; i < indentation; i++) + writer.Write (' '); + + writer.Write (str); + } + + private void PutNewline () + { + PutNewline (true); + } + + private void PutNewline (bool add_comma) + { + if (add_comma && ! context.ExpectingValue && + context.Count > 1) + writer.Write (','); + + if (pretty_print && ! context.ExpectingValue) + writer.Write (Environment.NewLine); + } + + private void PutString (string str) + { + Put (String.Empty); + + writer.Write ('"'); + + int n = str.Length; + for (int i = 0; i < n; i++) { + switch (str[i]) { + case '\n': + writer.Write ("\\n"); + continue; + + case '\r': + writer.Write ("\\r"); + continue; + + case '\t': + writer.Write ("\\t"); + continue; + + case '"': + case '\\': + writer.Write ('\\'); + writer.Write (str[i]); + continue; + + case '\f': + writer.Write ("\\f"); + continue; + + case '\b': + writer.Write ("\\b"); + continue; + } + + if ((int) str[i] >= 32 && (int) str[i] <= 126) { + writer.Write (str[i]); + continue; + } + + // Default, turn into a \uXXXX sequence + IntToHex ((int) str[i], hex_seq); + writer.Write ("\\u"); + writer.Write (hex_seq); + } + + writer.Write ('"'); + } + + private void Unindent () + { + if (pretty_print) + indentation -= indent_value; + } + #endregion + + + public override string ToString () + { + if (inst_string_builder == null) + return String.Empty; + + return inst_string_builder.ToString (); + } + + public void Reset () + { + has_reached_end = false; + + ctx_stack.Clear (); + context = new WriterContext (); + ctx_stack.Push (context); + + if (inst_string_builder != null) + inst_string_builder.Remove (0, inst_string_builder.Length); + } + + public void Write (bool boolean) + { + DoValidation (Condition.Value); + PutNewline (); + + Put (boolean ? "true" : "false"); + + context.ExpectingValue = false; + } + + public void Write (decimal number) + { + DoValidation (Condition.Value); + PutNewline (); + + Put (Convert.ToString (number, number_format)); + + context.ExpectingValue = false; + } + + public void Write (double number) + { + DoValidation (Condition.Value); + PutNewline (); + + string str = Convert.ToString (number, number_format); + Put (str); + + if (str.IndexOf ('.') == -1 && + str.IndexOf ('E') == -1) + writer.Write (".0"); + + context.ExpectingValue = false; + } + + public void Write(float number) + { + DoValidation(Condition.Value); + PutNewline(); + + string str = Convert.ToString(number, number_format); + Put(str); + + context.ExpectingValue = false; + } + + public void Write (int number) + { + DoValidation (Condition.Value); + PutNewline (); + + Put (Convert.ToString (number, number_format)); + + context.ExpectingValue = false; + } + + public void Write (long number) + { + DoValidation (Condition.Value); + PutNewline (); + + Put (Convert.ToString (number, number_format)); + + context.ExpectingValue = false; + } + + public void Write (string str) + { + DoValidation (Condition.Value); + PutNewline (); + + if (str == null) + Put ("null"); + else + PutString (str); + + context.ExpectingValue = false; + } + + [CLSCompliant(false)] + public void Write (ulong number) + { + DoValidation (Condition.Value); + PutNewline (); + + Put (Convert.ToString (number, number_format)); + + context.ExpectingValue = false; + } + + public void WriteArrayEnd () + { + DoValidation (Condition.InArray); + PutNewline (false); + + ctx_stack.Pop (); + if (ctx_stack.Count == 1) + has_reached_end = true; + else { + context = ctx_stack.Peek (); + context.ExpectingValue = false; + } + + Unindent (); + Put ("]"); + } + + public void WriteArrayStart () + { + DoValidation (Condition.NotAProperty); + PutNewline (); + + Put ("["); + + context = new WriterContext (); + context.InArray = true; + ctx_stack.Push (context); + + Indent (); + } + + public void WriteObjectEnd () + { + DoValidation (Condition.InObject); + PutNewline (false); + + ctx_stack.Pop (); + if (ctx_stack.Count == 1) + has_reached_end = true; + else { + context = ctx_stack.Peek (); + context.ExpectingValue = false; + } + + Unindent (); + Put ("}"); + } + + public void WriteObjectStart () + { + DoValidation (Condition.NotAProperty); + PutNewline (); + + Put ("{"); + + context = new WriterContext (); + context.InObject = true; + ctx_stack.Push (context); + + Indent (); + } + + public void WritePropertyName (string property_name) + { + DoValidation (Condition.Property); + PutNewline (); + string propertyName = (property_name == null || !lower_case_properties) + ? property_name + : property_name.ToLowerInvariant(); + + PutString (propertyName); + + if (pretty_print) { + if (propertyName.Length > context.Padding) + context.Padding = propertyName.Length; + + for (int i = context.Padding - propertyName.Length; + i >= 0; i--) + writer.Write (' '); + + writer.Write (": "); + } else + writer.Write (':'); + + context.ExpectingValue = true; + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonWriter.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonWriter.cs.meta new file mode 100644 index 0000000..0d25795 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/JsonWriter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a4dd365314ca7114282641abfb814cdb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Lexer.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Lexer.cs new file mode 100644 index 0000000..cb62d55 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Lexer.cs @@ -0,0 +1,912 @@ +#region Header +/** + * Lexer.cs + * JSON lexer implementation based on a finite state machine. + * + * The authors disclaim copyright to this source code. For more details, see + * the COPYING file included with this distribution. + **/ +#endregion + + +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + + +namespace LitJson +{ + internal class FsmContext + { + public bool Return; + public int NextState; + public Lexer L; + public int StateStack; + } + + + internal class Lexer + { + #region Fields + private delegate bool StateHandler (FsmContext ctx); + + private static readonly int[] fsm_return_table; + private static readonly StateHandler[] fsm_handler_table; + + private bool allow_comments; + private bool allow_single_quoted_strings; + private bool end_of_input; + private FsmContext fsm_context; + private int input_buffer; + private int input_char; + private TextReader reader; + private int state; + private StringBuilder string_buffer; + private string string_value; + private int token; + private int unichar; + #endregion + + + #region Properties + public bool AllowComments { + get { return allow_comments; } + set { allow_comments = value; } + } + + public bool AllowSingleQuotedStrings { + get { return allow_single_quoted_strings; } + set { allow_single_quoted_strings = value; } + } + + public bool EndOfInput { + get { return end_of_input; } + } + + public int Token { + get { return token; } + } + + public string StringValue { + get { return string_value; } + } + #endregion + + + #region Constructors + static Lexer () + { + PopulateFsmTables (out fsm_handler_table, out fsm_return_table); + } + + public Lexer (TextReader reader) + { + allow_comments = true; + allow_single_quoted_strings = true; + + input_buffer = 0; + string_buffer = new StringBuilder (128); + state = 1; + end_of_input = false; + this.reader = reader; + + fsm_context = new FsmContext (); + fsm_context.L = this; + } + #endregion + + + #region Static Methods + private static int HexValue (int digit) + { + switch (digit) { + case 'a': + case 'A': + return 10; + + case 'b': + case 'B': + return 11; + + case 'c': + case 'C': + return 12; + + case 'd': + case 'D': + return 13; + + case 'e': + case 'E': + return 14; + + case 'f': + case 'F': + return 15; + + default: + return digit - '0'; + } + } + + private static void PopulateFsmTables (out StateHandler[] fsm_handler_table, out int[] fsm_return_table) + { + // See section A.1. of the manual for details of the finite + // state machine. + fsm_handler_table = new StateHandler[28] { + State1, + State2, + State3, + State4, + State5, + State6, + State7, + State8, + State9, + State10, + State11, + State12, + State13, + State14, + State15, + State16, + State17, + State18, + State19, + State20, + State21, + State22, + State23, + State24, + State25, + State26, + State27, + State28 + }; + + fsm_return_table = new int[28] { + (int) ParserToken.Char, + 0, + (int) ParserToken.Number, + (int) ParserToken.Number, + 0, + (int) ParserToken.Number, + 0, + (int) ParserToken.Number, + 0, + 0, + (int) ParserToken.True, + 0, + 0, + 0, + (int) ParserToken.False, + 0, + 0, + (int) ParserToken.Null, + (int) ParserToken.CharSeq, + (int) ParserToken.Char, + 0, + 0, + (int) ParserToken.CharSeq, + (int) ParserToken.Char, + 0, + 0, + 0, + 0 + }; + } + + private static char ProcessEscChar (int esc_char) + { + switch (esc_char) { + case '"': + case '\'': + case '\\': + case '/': + return Convert.ToChar (esc_char); + + case 'n': + return '\n'; + + case 't': + return '\t'; + + case 'r': + return '\r'; + + case 'b': + return '\b'; + + case 'f': + return '\f'; + + default: + // Unreachable + return '?'; + } + } + + private static bool State1 (FsmContext ctx) + { + while (ctx.L.GetChar ()) { + if (ctx.L.input_char == ' ' || + ctx.L.input_char >= '\t' && ctx.L.input_char <= '\r') + continue; + + if (ctx.L.input_char >= '1' && ctx.L.input_char <= '9') { + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 3; + return true; + } + + switch (ctx.L.input_char) { + case '"': + ctx.NextState = 19; + ctx.Return = true; + return true; + + case ',': + case ':': + case '[': + case ']': + case '{': + case '}': + ctx.NextState = 1; + ctx.Return = true; + return true; + + case '-': + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 2; + return true; + + case '0': + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 4; + return true; + + case 'f': + ctx.NextState = 12; + return true; + + case 'n': + ctx.NextState = 16; + return true; + + case 't': + ctx.NextState = 9; + return true; + + case '\'': + if (! ctx.L.allow_single_quoted_strings) + return false; + + ctx.L.input_char = '"'; + ctx.NextState = 23; + ctx.Return = true; + return true; + + case '/': + if (! ctx.L.allow_comments) + return false; + + ctx.NextState = 25; + return true; + + default: + return false; + } + } + + return true; + } + + private static bool State2 (FsmContext ctx) + { + ctx.L.GetChar (); + + if (ctx.L.input_char >= '1' && ctx.L.input_char<= '9') { + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 3; + return true; + } + + switch (ctx.L.input_char) { + case '0': + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 4; + return true; + + default: + return false; + } + } + + private static bool State3 (FsmContext ctx) + { + while (ctx.L.GetChar ()) { + if (ctx.L.input_char >= '0' && ctx.L.input_char <= '9') { + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + continue; + } + + if (ctx.L.input_char == ' ' || + ctx.L.input_char >= '\t' && ctx.L.input_char <= '\r') { + ctx.Return = true; + ctx.NextState = 1; + return true; + } + + switch (ctx.L.input_char) { + case ',': + case ']': + case '}': + ctx.L.UngetChar (); + ctx.Return = true; + ctx.NextState = 1; + return true; + + case '.': + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 5; + return true; + + case 'e': + case 'E': + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 7; + return true; + + default: + return false; + } + } + return true; + } + + private static bool State4 (FsmContext ctx) + { + ctx.L.GetChar (); + + if (ctx.L.input_char == ' ' || + ctx.L.input_char >= '\t' && ctx.L.input_char <= '\r') { + ctx.Return = true; + ctx.NextState = 1; + return true; + } + + switch (ctx.L.input_char) { + case ',': + case ']': + case '}': + ctx.L.UngetChar (); + ctx.Return = true; + ctx.NextState = 1; + return true; + + case '.': + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 5; + return true; + + case 'e': + case 'E': + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 7; + return true; + + default: + return false; + } + } + + private static bool State5 (FsmContext ctx) + { + ctx.L.GetChar (); + + if (ctx.L.input_char >= '0' && ctx.L.input_char <= '9') { + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 6; + return true; + } + + return false; + } + + private static bool State6 (FsmContext ctx) + { + while (ctx.L.GetChar ()) { + if (ctx.L.input_char >= '0' && ctx.L.input_char <= '9') { + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + continue; + } + + if (ctx.L.input_char == ' ' || + ctx.L.input_char >= '\t' && ctx.L.input_char <= '\r') { + ctx.Return = true; + ctx.NextState = 1; + return true; + } + + switch (ctx.L.input_char) { + case ',': + case ']': + case '}': + ctx.L.UngetChar (); + ctx.Return = true; + ctx.NextState = 1; + return true; + + case 'e': + case 'E': + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 7; + return true; + + default: + return false; + } + } + + return true; + } + + private static bool State7 (FsmContext ctx) + { + ctx.L.GetChar (); + + if (ctx.L.input_char >= '0' && ctx.L.input_char<= '9') { + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 8; + return true; + } + + switch (ctx.L.input_char) { + case '+': + case '-': + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + ctx.NextState = 8; + return true; + + default: + return false; + } + } + + private static bool State8 (FsmContext ctx) + { + while (ctx.L.GetChar ()) { + if (ctx.L.input_char >= '0' && ctx.L.input_char<= '9') { + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + continue; + } + + if (ctx.L.input_char == ' ' || + ctx.L.input_char >= '\t' && ctx.L.input_char<= '\r') { + ctx.Return = true; + ctx.NextState = 1; + return true; + } + + switch (ctx.L.input_char) { + case ',': + case ']': + case '}': + ctx.L.UngetChar (); + ctx.Return = true; + ctx.NextState = 1; + return true; + + default: + return false; + } + } + + return true; + } + + private static bool State9 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 'r': + ctx.NextState = 10; + return true; + + default: + return false; + } + } + + private static bool State10 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 'u': + ctx.NextState = 11; + return true; + + default: + return false; + } + } + + private static bool State11 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 'e': + ctx.Return = true; + ctx.NextState = 1; + return true; + + default: + return false; + } + } + + private static bool State12 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 'a': + ctx.NextState = 13; + return true; + + default: + return false; + } + } + + private static bool State13 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 'l': + ctx.NextState = 14; + return true; + + default: + return false; + } + } + + private static bool State14 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 's': + ctx.NextState = 15; + return true; + + default: + return false; + } + } + + private static bool State15 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 'e': + ctx.Return = true; + ctx.NextState = 1; + return true; + + default: + return false; + } + } + + private static bool State16 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 'u': + ctx.NextState = 17; + return true; + + default: + return false; + } + } + + private static bool State17 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 'l': + ctx.NextState = 18; + return true; + + default: + return false; + } + } + + private static bool State18 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 'l': + ctx.Return = true; + ctx.NextState = 1; + return true; + + default: + return false; + } + } + + private static bool State19 (FsmContext ctx) + { + while (ctx.L.GetChar ()) { + switch (ctx.L.input_char) { + case '"': + ctx.L.UngetChar (); + ctx.Return = true; + ctx.NextState = 20; + return true; + + case '\\': + ctx.StateStack = 19; + ctx.NextState = 21; + return true; + + default: + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + continue; + } + } + + return true; + } + + private static bool State20 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case '"': + ctx.Return = true; + ctx.NextState = 1; + return true; + + default: + return false; + } + } + + private static bool State21 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case 'u': + ctx.NextState = 22; + return true; + + case '"': + case '\'': + case '/': + case '\\': + case 'b': + case 'f': + case 'n': + case 'r': + case 't': + ctx.L.string_buffer.Append ( + ProcessEscChar (ctx.L.input_char)); + ctx.NextState = ctx.StateStack; + return true; + + default: + return false; + } + } + + private static bool State22 (FsmContext ctx) + { + int counter = 0; + int mult = 4096; + + ctx.L.unichar = 0; + + while (ctx.L.GetChar ()) { + + if (ctx.L.input_char >= '0' && ctx.L.input_char <= '9' || + ctx.L.input_char >= 'A' && ctx.L.input_char <= 'F' || + ctx.L.input_char >= 'a' && ctx.L.input_char <= 'f') { + + ctx.L.unichar += HexValue (ctx.L.input_char) * mult; + + counter++; + mult /= 16; + + if (counter == 4) { + ctx.L.string_buffer.Append ( + Convert.ToChar (ctx.L.unichar)); + ctx.NextState = ctx.StateStack; + return true; + } + + continue; + } + + return false; + } + + return true; + } + + private static bool State23 (FsmContext ctx) + { + while (ctx.L.GetChar ()) { + switch (ctx.L.input_char) { + case '\'': + ctx.L.UngetChar (); + ctx.Return = true; + ctx.NextState = 24; + return true; + + case '\\': + ctx.StateStack = 23; + ctx.NextState = 21; + return true; + + default: + ctx.L.string_buffer.Append ((char) ctx.L.input_char); + continue; + } + } + + return true; + } + + private static bool State24 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case '\'': + ctx.L.input_char = '"'; + ctx.Return = true; + ctx.NextState = 1; + return true; + + default: + return false; + } + } + + private static bool State25 (FsmContext ctx) + { + ctx.L.GetChar (); + + switch (ctx.L.input_char) { + case '*': + ctx.NextState = 27; + return true; + + case '/': + ctx.NextState = 26; + return true; + + default: + return false; + } + } + + private static bool State26 (FsmContext ctx) + { + while (ctx.L.GetChar ()) { + if (ctx.L.input_char == '\n') { + ctx.NextState = 1; + return true; + } + } + + return true; + } + + private static bool State27 (FsmContext ctx) + { + while (ctx.L.GetChar ()) { + if (ctx.L.input_char == '*') { + ctx.NextState = 28; + return true; + } + } + + return true; + } + + private static bool State28 (FsmContext ctx) + { + while (ctx.L.GetChar ()) { + if (ctx.L.input_char == '*') + continue; + + if (ctx.L.input_char == '/') { + ctx.NextState = 1; + return true; + } + + ctx.NextState = 27; + return true; + } + + return true; + } + #endregion + + + private bool GetChar () + { + if ((input_char = NextChar ()) != -1) + return true; + + end_of_input = true; + return false; + } + + private int NextChar () + { + if (input_buffer != 0) { + int tmp = input_buffer; + input_buffer = 0; + + return tmp; + } + + return reader.Read (); + } + + public bool NextToken () + { + StateHandler handler; + fsm_context.Return = false; + + while (true) { + handler = fsm_handler_table[state - 1]; + + if (! handler (fsm_context)) + throw new JsonException (input_char); + + if (end_of_input) + return false; + + if (fsm_context.Return) { + string_value = string_buffer.ToString (); + string_buffer.Remove (0, string_buffer.Length); + token = fsm_return_table[state - 1]; + + if (token == (int) ParserToken.Char) + token = input_char; + + state = fsm_context.NextState; + + return true; + } + + state = fsm_context.NextState; + } + } + + private void UngetChar () + { + input_buffer = input_char; + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Lexer.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Lexer.cs.meta new file mode 100644 index 0000000..4d4061b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Lexer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: aadd9cba7eae43a42b4cc217ba457e54 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Netstandard15Polyfill.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Netstandard15Polyfill.cs new file mode 100644 index 0000000..55b02a2 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Netstandard15Polyfill.cs @@ -0,0 +1,24 @@ +#if NETSTANDARD1_5 +using System; +using System.Reflection; +namespace LitJson +{ + internal static class Netstandard15Polyfill + { + internal static Type GetInterface(this Type type, string name) + { + return type.GetTypeInfo().GetInterface(name); + } + + internal static bool IsClass(this Type type) + { + return type.GetTypeInfo().IsClass; + } + + internal static bool IsEnum(this Type type) + { + return type.GetTypeInfo().IsEnum; + } + } +} +#endif \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Netstandard15Polyfill.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Netstandard15Polyfill.cs.meta new file mode 100644 index 0000000..4b57541 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/Netstandard15Polyfill.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dd46d201658351647a556d32b2cd1edb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/ParserToken.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/ParserToken.cs new file mode 100644 index 0000000..e23d477 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/ParserToken.cs @@ -0,0 +1,44 @@ +#region Header +/** + * ParserToken.cs + * Internal representation of the tokens used by the lexer and the parser. + * + * The authors disclaim copyright to this source code. For more details, see + * the COPYING file included with this distribution. + **/ +#endregion + + +namespace LitJson +{ + internal enum ParserToken + { + // Lexer tokens (see section A.1.1. of the manual) + None = System.Char.MaxValue + 1, + Number, + True, + False, + Null, + CharSeq, + // Single char + Char, + + // Parser Rules (see section A.2.1 of the manual) + Text, + Object, + ObjectPrime, + Pair, + PairRest, + Array, + ArrayPrime, + Value, + ValueRest, + String, + + // End of input + End, + + // The empty rule + Epsilon + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/ParserToken.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/ParserToken.cs.meta new file mode 100644 index 0000000..c828c62 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/LitJson/ParserToken.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e84bd194d881f84e81d978238a310ea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRFeatureBase.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRFeatureBase.cs new file mode 100644 index 0000000..aa46047 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRFeatureBase.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public abstract class OpenXRFeatureBase : OpenXRFeature + { + protected static ulong xrInstance = 0ul; + protected static ulong xrSession = 0ul; + protected string extensionUrl = ""; + protected bool _isExtensionEnable = false; + + protected override bool OnInstanceCreate(ulong instance) + { + extensionUrl = GetExtensionString(); + _isExtensionEnable = isExtensionEnabled(); + if (!_isExtensionEnable) + { + return false; + } + + xrInstance = instance; + xrSession = 0ul; + + Initialize(xrGetInstanceProcAddr); + return true; + } + +#if UNITY_EDITOR + protected override void GetValidationChecks(List rules, BuildTargetGroup targetGroup) + { + var settings = OpenXRSettings.GetSettingsForBuildTargetGroup(targetGroup); + rules.Add(new ValidationRule(this) + { + message = "No PICO OpenXR Features selected.", + checkPredicate = () => + { + if (null == settings) + return false; + + foreach (var feature in settings.GetFeatures()) + { + if (feature is OpenXRExtensions) + { + return feature.enabled; + } + } + + return false; + }, + fixIt = () => + { + if (null == settings) + return ; + var openXRExtensions = settings.GetFeature(); + if (openXRExtensions != null) + { + openXRExtensions.enabled = true; + } + }, + error = true + }); + } +#endif + + public bool isExtensionEnabled() + { + string[] exts = extensionUrl.Split(' '); + if (exts.Length>0) + { + foreach (var _ext in exts) + { + if (!string.IsNullOrEmpty(_ext) && !OpenXRRuntime.IsExtensionEnabled(_ext)) + { + PLog.e(_ext + " is not enabled"); + return false; + } + } + } + else + { + if (!string.IsNullOrEmpty(extensionUrl) && !OpenXRRuntime.IsExtensionEnabled(extensionUrl)) + { + PLog.e(extensionUrl + " is not enabled"); + return false; + } + + } + return true; + } + + protected override void OnSessionCreate(ulong xrSessionId) + { + xrSession = xrSessionId; + base.OnSessionCreate(xrSession); + SessionCreate(); + } + + protected override void OnInstanceDestroy(ulong xrInstance) + { + base.OnInstanceDestroy(xrInstance); + xrInstance = 0ul; + } + + protected override void OnSessionDestroy(ulong xrSessionId) + { + base.OnSessionDestroy(xrSessionId); + xrSession = 0ul; + } + + public virtual void Initialize(IntPtr intPtr) + { + } + + public abstract string GetExtensionString(); + + public virtual void SessionCreate() + { + } + public static bool IsSuccess(XrResult result) => result == 0; + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRFeatureBase.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRFeatureBase.cs.meta new file mode 100644 index 0000000..057cf39 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRFeatureBase.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 350057506ea44d55a5e042ce07f9f3b7 +timeCreated: 1687328246 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRNativeTypes.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRNativeTypes.cs new file mode 100644 index 0000000..6d54b06 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRNativeTypes.cs @@ -0,0 +1,755 @@ +using System; +using System.Runtime.InteropServices; +using UnityEngine; + + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public enum XrResult + { + Success = 0, + TimeoutExpored = 1, + LossPending = 3, + EventUnavailable = 4, + SpaceBoundsUnavailable = 7, + SessionNotFocused = 8, + FrameDiscarded = 9, + ValidationFailure = -1, + RuntimeFailure = -2, + OutOfMemory = -3, + ApiVersionUnsupported = -4, + InitializationFailed = -6, + FunctionUnsupported = -7, + FeatureUnsupported = -8, + ExtensionNotPresent = -9, + LimitReached = -10, + SizeInsufficient = -11, + HandleInvalid = -12, + InstanceLOst = -13, + SessionRunning = -14, + SessionNotRunning = -16, + SessionLost = -17, + SystemInvalid = -18, + PathInvalid = -19, + PathCountExceeded = -20, + PathFormatInvalid = -21, + PathUnsupported = -22, + LayerInvalid = -23, + LayerLimitExceeded = -24, + SpwachainRectInvalid = -25, + SwapchainFormatUnsupported = -26, + ActionTypeMismatch = -27, + SessionNotReady = -28, + SessionNotStopping = -29, + TimeInvalid = -30, + ReferenceSpaceUnsupported = -31, + FileAccessError = -32, + FileContentsInvalid = -33, + FormFactorUnsupported = -34, + FormFactorUnavailable = -35, + ApiLayerNotPresent = -36, + CallOrderInvalid = -37, + GraphicsDeviceInvalid = -38, + PoseInvalid = -39, + IndexOutOfRange = -40, + ViewConfigurationTypeUnsupported = -41, + EnvironmentBlendModeUnsupported = -42, + NameDuplicated = -44, + NameInvalid = -45, + ActionsetNotAttached = -46, + ActionsetsAlreadyAttached = -47, + LocalizedNameDuplicated = -48, + LocalizedNameInvalid = -49, + AndroidThreadSettingsIdInvalidKHR = -1000003000, + AndroidThreadSettingsdFailureKHR = -1000003001, + CreateSpatialAnchorFailedMSFT = -1000039001, + SecondaryViewConfigurationTypeNotEnabledMSFT = -1000053000, + MaxResult = 0x7FFFFFFF + } + + public struct XrExtent2Df + { + public float width; + public float height; + + public XrExtent2Df(float x, float y) + { + this.width = x; + this.height = y; + } + + public XrExtent2Df(Vector2 value) + { + width = value.x; + height = value.y; + } + + public Vector2 ToVector2() + { + return new Vector2() { x = width, y = height }; + } + public override string ToString() + { + return $"{nameof(width)}: {width}, {nameof(height)}: {height}"; + } + }; + + // [Flags] + public enum XrReferenceSpaceType + { + View = 1, + Local = 2, + Stage = 3, + UnboundedMsft = 1000038000, + CombinedEyeVarjo = 1000121000, + LocalizationMap = 1000139000, + LocalFloor = 1000426000, + MAX_ENUM = 0x7FFFFFFF + + } + + public enum XrBodyJointSetBD + { + XR_BODY_JOINT_SET_DEFAULT_BD = 0, //default joint set XR_BODY_JOINT_SET_BODY_STAR_WITHOUT_ARM_BD + XR_BODY_JOINT_SET_BODY_STAR_WITHOUT_ARM_BD = 1, + XR_BODY_JOINT_SET_BODY_FULL_STAR_BD = 2 + } + + public struct xrPose + { + public double PosX; // position of x + public double PosY; // position of y + public double PosZ; // position of z + public double RotQx; // x components of Quaternion + public double RotQy; // y components of Quaternion + public double RotQz; // z components of Quaternion + public double RotQw; // w components of Quaternion + } + + public struct BodyTrackerResult + { + public bool IsActive; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)] + public FPICOBodyState[] trackingdata; + } + + public struct FPICOBodyState + { + public bool bIsValid; + public xrPose pose; + } + + public enum SecureContentFlag + { + SECURE_CONTENT_OFF = 0, + SECURE_CONTENT_EXCLUDE_LAYER = 1, + SECURE_CONTENT_REPLACE_LAYER = 2 + } + + public enum XrFaceTrackingModeBD + { + DEFAULT_BD = 0, // face + COMBINED_AUDIO_BD = 1, // combined bs + COMBINED_AUDIO_WITH_LIP_BD = 2, // combined vis + ONLY_AUDIO_WITH_LIP_BD = 3, // lip sync + } + + /// + /// Enum values that identify the face action units affecting the expression on the face. + /// + /// Each action unit corresponds to a facial feature that can move. A coefficient of zero for the + /// feature represents the neutral position, while a coefficient of one represents the fully articulated + /// position. + /// + public enum BlendShapeLocation + { + /// + /// The coefficient describing closure of the eyelids over the left eye. + /// + EyeBlinkLeft = 0, + + /// + /// The coefficient describing movement of the left eyelids consistent with a downward gaze. + /// + EyeLookDownLeft = 1, + + /// + /// The coefficient describing movement of the left eyelids consistent with a rightward gaze. + /// + EyeLookInLeft = 2, + + /// + /// The coefficient describing movement of the left eyelids consistent with a leftward gaze. + /// + EyeLookOutLeft = 3, + + /// + /// The coefficient describing movement of the left eyelids consistent with an upward gaze. + /// + EyeLookUpLeft = 4, + + /// + /// The coefficient describing contraction of the face around the left eye. + /// + EyeSquintLeft = 5, + + /// + /// The coefficient describing a widening of the eyelids around the left eye. + /// + EyeWideLeft = 6, + + /// + /// The coefficient describing closure of the eyelids over the right eye. + /// + EyeBlinkRight = 7, + + /// + /// The coefficient describing movement of the right eyelids consistent with a downward gaze. + /// + EyeLookDownRight = 8, + + /// + /// The coefficient describing movement of the right eyelids consistent with a leftward gaze. + /// + EyeLookInRight = 9, + + /// + /// The coefficient describing movement of the right eyelids consistent with a rightward gaze. + /// + EyeLookOutRight = 10, + + /// + /// The coefficient describing movement of the right eyelids consistent with an upward gaze. + /// + EyeLookUpRight = 11, + + /// + /// The coefficient describing contraction of the face around the right eye. + /// + EyeSquintRight = 12, + + /// + /// The coefficient describing a widening of the eyelids around the right eye. + /// + EyeWideRight = 13, + + /// + /// The coefficient describing forward movement of the lower jaw. + /// + JawForward = 14, + + /// + /// The coefficient describing leftward movement of the lower jaw. + /// + JawLeft = 15, + + /// + /// The coefficient describing rightward movement of the lower jaw. + /// + JawRight = 16, + + /// + /// The coefficient describing an opening of the lower jaw. + /// + JawOpen = 17, + + /// + /// The coefficient describing closure of the lips independent of jaw position. + /// + MouthClose = 18, + + /// + /// The coefficient describing contraction of both lips into an open shape. + /// + MouthFunnel = 19, + + /// + /// The coefficient describing contraction and compression of both closed lips. + /// + MouthPucker = 20, + + /// + /// The coefficient describing leftward movement of both lips together. + /// + MouthLeft = 21, + + /// + /// The coefficient describing rightward movement of both lips together. + /// + MouthRight = 22, + + /// + /// The coefficient describing upward movement of the left corner of the mouth. + /// + MouthSmileLeft = 23, + + /// + /// The coefficient describing upward movement of the right corner of the mouth. + /// + MouthSmileRight = 24, + + /// + /// The coefficient describing downward movement of the left corner of the mouth. + /// + MouthFrownLeft = 25, + + /// + /// The coefficient describing downward movement of the right corner of the mouth. + /// + MouthFrownRight = 26, + + /// + /// The coefficient describing backward movement of the left corner of the mouth. + /// + MouthDimpleLeft = 27, + + /// + /// The coefficient describing backward movement of the right corner of the mouth. + /// + MouthDimpleRight = 28, + + /// + /// The coefficient describing leftward movement of the left corner of the mouth. + /// + MouthStretchLeft = 29, + + /// + /// The coefficient describing rightward movement of the left corner of the mouth. + /// + MouthStretchRight = 30, + + /// + /// The coefficient describing movement of the lower lip toward the inside of the mouth. + /// + MouthRollLower = 31, + + /// + /// The coefficient describing movement of the upper lip toward the inside of the mouth. + /// + MouthRollUpper = 32, + + /// + /// The coefficient describing outward movement of the lower lip. + /// + MouthShrugLower = 33, + + /// + /// The coefficient describing outward movement of the upper lip. + /// + MouthShrugUpper = 34, + + /// + /// The coefficient describing upward compression of the lower lip on the left side. + /// + MouthPressLeft = 35, + + /// + /// The coefficient describing upward compression of the lower lip on the right side. + /// + MouthPressRight = 36, + + /// + /// The coefficient describing downward movement of the lower lip on the left side. + /// + MouthLowerDownLeft = 37, + + /// + /// The coefficient describing downward movement of the lower lip on the right side. + /// + MouthLowerDownRight = 38, + + /// + /// The coefficient describing upward movement of the upper lip on the left side. + /// + MouthUpperUpLeft = 39, + + /// + /// The coefficient describing upward movement of the upper lip on the right side. + /// + MouthUpperUpRight = 40, + + /// + /// The coefficient describing downward movement of the outer portion of the left eyebrow. + /// + BrowDownLeft = 41, + + /// + /// The coefficient describing downward movement of the outer portion of the right eyebrow. + /// + BrowDownRight = 42, + + /// + /// The coefficient describing upward movement of the inner portion of both eyebrows. + /// + BrowInnerUp = 43, + + /// + /// The coefficient describing upward movement of the outer portion of the left eyebrow. + /// + BrowOuterUpLeft = 44, + + /// + /// The coefficient describing upward movement of the outer portion of the right eyebrow. + /// + BrowOuterUpRight = 45, + + /// + /// The coefficient describing outward movement of both cheeks. + /// + CheekPuff = 46, + + /// + /// The coefficient describing upward movement of the cheek around and below the left eye. + /// + CheekSquintLeft = 47, + + /// + /// The coefficient describing upward movement of the cheek around and below the right eye. + /// + CheekSquintRight = 48, + + /// + /// The coefficient describing a raising of the left side of the nose around the nostril. + /// + NoseSneerLeft = 49, + + /// + /// The coefficient describing a raising of the right side of the nose around the nostril. + /// + NoseSneerRight = 50, + + /// + /// The coefficient describing extension of the tongue. + /// + TongueOut = 51 + } + + [StructLayout(LayoutKind.Sequential)] + public unsafe struct PxrFaceTrackingInfo + { + public Int64 timestamp; // + public fixed float faceExpressionWeights[52]; // + public fixed float lipsyncExpressionWeights[20]; // + public bool isUpperFaceDataValid; // + public bool isLowerFaceDataValid; // + }; + + public enum ConfigsEXT + { + RENDER_TEXTURE_WIDTH = 0, + RENDER_TEXTURE_HEIGHT, + SHOW_FPS, + RUNTIME_LOG_LEVEL, + PXRPLUGIN_LOG_LEVEL, + UNITY_LOG_LEVEL, + UNREAL_LOG_LEVEL, + NATIVE_LOG_LEVEL, + TARGET_FRAME_RATE, + NECK_MODEL_X, + NECK_MODEL_Y, + NECK_MODEL_Z, + DISPLAY_REFRESH_RATE, + ENABLE_6DOF, + CONTROLLER_TYPE, + PHYSICAL_IPD, + TO_DELTA_SENSOR_Y, + GET_DISPLAY_RATE, + FOVEATION_SUBSAMPLED_ENABLED = 18, + TRACKING_ORIGIN_HEIGHT = 19, + RENDER_FPS = 20, + MRC_POSITION_Y_OFFSET, + GET_SINGLEPASS = 22, + GET_FOVLEVEL, + SDK_TRACE_ENABLE, + SDK_SEETHROUGH_DELAY_LOG_ENABLE = 25, + GET_SEETHROUGH_STATE = 26, + EYEORIENTATAION_LEFT_X = 27, + EYEORIENTATAION_LEFT_Y = 28, + EYEORIENTATAION_LEFT_Z = 29, + EYEORIENTATAION_LEFT_W = 30, + EYEORIENTATAION_RIGHT_X = 31, + EYEORIENTATAION_RIGHT_Y = 32, + EYEORIENTATAION_RIGHT_Z = 33, + EYEORIENTATAION_RIGHT_W = 34, + SDK_SEETHROUGH_DELAY_DATA_REPORT = 35, + }; + + public struct PxrRecti + { + public int x; + public int y; + public int width; + public int height; + }; + + public enum PxrBlendFactor + { + Zero = 0, + One = 1, + SrcAlpha = 2, + OneMinusSrcAlpha = 3, + DstAlpha = 4, + OneMinusDstAlpha = 5 + }; + + [StructLayout(LayoutKind.Sequential)] + public struct PxrLayerParam + { + public int layerId; + public CompositeLayerFeature.OverlayShape layerShape; + public CompositeLayerFeature.OverlayType layerType; + public CompositeLayerFeature.LayerLayout layerLayout; + public UInt64 format; + public UInt32 width; + public UInt32 height; + public UInt32 sampleCount; + public UInt32 faceCount; + public UInt32 arraySize; + public UInt32 mipmapCount; + public UInt32 layerFlags; + public UInt32 externalImageCount; + public IntPtr leftExternalImages; + public IntPtr rightExternalImages; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct PxrVector4f + { + public float x; + public float y; + public float z; + public float w; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct PxrVector3f + { + public float x; + public float y; + public float z; + }; + [StructLayout(LayoutKind.Sequential)] + public struct XrExtent3Df + { + public float width; + public float height; + public float depth; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct PxrPosef + { + public PxrVector4f orientation; + public PxrVector3f position; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct PxrLayerBlend + { + public PxrBlendFactor srcColor; + public PxrBlendFactor dstColor; + public PxrBlendFactor srcAlpha; + public PxrBlendFactor dstAlpha; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct PxrLayerHeader2 + { + public int layerId; + public UInt32 layerFlags; + public float colorScaleX; + public float colorScaleY; + public float colorScaleZ; + public float colorScaleW; + public float colorBiasX; + public float colorBiasY; + public float colorBiasZ; + public float colorBiasW; + public int compositionDepth; + public int sensorFrameIndex; + public int imageIndex; + public PxrPosef headPose; + public CompositeLayerFeature.OverlayShape layerShape; + public UInt32 useLayerBlend; + public PxrLayerBlend layerBlend; + public UInt32 useImageRect; + public PxrRecti imageRectLeft; + public PxrRecti imageRectRight; + public UInt64 reserved0; + public UInt64 reserved1; + public UInt64 reserved2; + public UInt64 reserved3; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct PxrVector2f + { + public float x; + public float y; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct PxrLayerQuad + { + public PxrLayerHeader2 header; + public PxrPosef poseLeft; + public PxrPosef poseRight; + public PxrVector2f sizeLeft; + public PxrVector2f sizeRight; + }; + + [StructLayout(LayoutKind.Sequential)] + public unsafe struct PxrLayerCylinder + { + public PxrLayerHeader2 header; + public PxrPosef poseLeft; + public PxrPosef poseRight; + public float radiusLeft; + public float radiusRight; + public float centralAngleLeft; + public float centralAngleRight; + public float heightLeft; + public float heightRight; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct PxrLayerEquirect + { + public PxrLayerHeader2 header; + public PxrPosef poseLeft; + public PxrPosef poseRight; + public float radiusLeft; + public float radiusRight; + public float centralHorizontalAngleLeft; + public float centralHorizontalAngleRight; + public float upperVerticalAngleLeft; + public float upperVerticalAngleRight; + public float lowerVerticalAngleLeft; + public float lowerVerticalAngleRight; + }; + + [StructLayout(LayoutKind.Sequential)] + public struct PxrLayerCube + { + public PxrLayerHeader2 header; + public PxrPosef poseLeft; + public PxrPosef poseRight; + }; + + public enum PxrLayerSubmitFlags + { + PxrLayerFlagNoCompositionDepthTesting = 1 << 3, + PxrLayerFlagUseExternalHeadPose = 1 << 5, + PxrLayerFlagLayerPoseNotInTrackingSpace = 1 << 6, + PxrLayerFlagHeadLocked = 1 << 7, + PxrLayerFlagUseExternalImageIndex = 1 << 8, + } + + public enum PxrLayerCreateFlags + { + PxrLayerFlagAndroidSurface = 1 << 0, + PxrLayerFlagProtectedContent = 1 << 1, + PxrLayerFlagStaticImage = 1 << 2, + PxrLayerFlagUseExternalImages = 1 << 4, + PxrLayerFlag3DLeftRightSurface = 1 << 5, + PxrLayerFlag3DTopBottomSurface = 1 << 6, + PxrLayerFlagEnableFrameExtrapolation = 1 << 7, + PxrLayerFlagEnableSubsampled = 1 << 8, + PxrLayerFlagEnableFrameExtrapolationPTW = 1 << 9, + PxrLayerFlagSharedImagesBetweenLayers = 1 << 10, + } + + public enum EyeType + { + EyeLeft, + EyeRight, + EyeBoth + }; + + /// + /// Information about PICO Motion Tracker's connection state. + /// + [StructLayout(LayoutKind.Sequential)] + public unsafe struct PxrFitnessBandConnectState + { + /// + /// + /// + public Byte num; + /// + /// + /// + public fixed Byte trackerID[12]; + } + + public enum PassthroughColorMapType + { + None = 0, + MonoToRgba = 1, + MonoToMono = 2, + BrightnessContrastSaturation = 3 + } + + [StructLayout(LayoutKind.Sequential)] + public struct Colorf + { + public float r; + public float g; + public float b; + public float a; + + public override string ToString() + { + return string.Format(System.Globalization.CultureInfo.InvariantCulture, + "R:{0:F3} G:{1:F3} B:{2:F3} A:{3:F3}", r, g, b, a); + } + } + + [StructLayout(LayoutKind.Sequential)] + public struct _PassthroughStyle + { + public uint enableEdgeColor; + public uint enableColorMap; + public float TextureOpacityFactor; + public Colorf EdgeColor; + public PassthroughColorMapType TextureColorMapType; + public uint TextureColorMapDataSize; + public IntPtr TextureColorMapData; + } + public struct PassthroughStyle + { + public bool enableEdgeColor; + public bool enableColorMap; + public float TextureOpacityFactor; + public Color EdgeColor; + public PassthroughColorMapType TextureColorMapType; + public uint TextureColorMapDataSize; + public IntPtr TextureColorMapData; + } + [StructLayout(LayoutKind.Sequential)] + public struct GeometryInstanceTransform + { + public PxrPosef pose; + public PxrVector3f scale; + + public override string ToString() + { + return string.Format(System.Globalization.CultureInfo.InvariantCulture, + "Rotation:({0:F3},{1:F3},{2:F3},{3:F3}) Position:({4:F3},{5:F3},{6:F3}) scale:({7},{8},{9})", pose.orientation.x, + pose.orientation.y, pose.orientation.z, pose.orientation.w, pose.position.x, pose.position.y, + pose.position.z,scale.x,scale.y,scale.z); + } + }; + [StructLayout(LayoutKind.Sequential)] + public struct PxrSensorState2 + { + public int status; + public PxrPosef pose; + public PxrPosef globalPose; + public PxrVector3f angularVelocity; + public PxrVector3f linearVelocity; + public PxrVector3f angularAcceleration; + public PxrVector3f linearAcceleration; + public UInt64 poseTimeStampNs; + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRNativeTypes.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRNativeTypes.cs.meta new file mode 100644 index 0000000..0cf5b2c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/OpenXRNativeTypes.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 70222e482e03417ab1388191c49f1c23 +timeCreated: 1686552171 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PLog.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PLog.cs new file mode 100644 index 0000000..9f5af0a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PLog.cs @@ -0,0 +1,104 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained hererin are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +#if UNITY_ANDROID && !UNITY_EDITOR +using System.Runtime.InteropServices; +#endif +using UnityEngine; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public class PLog + { + public static string TAG = "[PoxrUnity] "; + // 7--all print, 4--info to fatal, 3--warning to fatal, + // 2--error to fatal, 1--only fatal print + public static LogLevel logLevel = LogLevel.LogInfo; + + public enum LogLevel + { + LogFatal = 1, + LogError = 2, + LogWarn = 3, + LogInfo = 4, + LogDebug = 5, + LogVerbose, + } + + public static void v(string message) + { + v(TAG,message); + } + + public static void d(string message) + { + d(TAG,message); + } + + public static void i(string message) + { + i(TAG,message); + } + + public static void w(string message) + { + w(TAG,message); + } + + public static void e(string message) + { + e(TAG,message); + } + + public static void f(string message) + { + f(TAG,message); + } + + + public static void v(string tag,string message) + { + if (LogLevel.LogVerbose <= logLevel) + Debug.Log(string.Format("{0} FrameID={1}>>>>>>{2}", TAG, Time.frameCount, message)); + } + + public static void d(string tag,string message) + { + if (LogLevel.LogDebug <= logLevel) + Debug.Log(string.Format("{0} FrameID={1}>>>>>>{2}", TAG, Time.frameCount, message)); + } + + public static void i(string tag,string message) + { + if (LogLevel.LogInfo <= logLevel) + Debug.Log(string.Format("{0} FrameID={1}>>>>>>{2}", TAG, Time.frameCount, message)); + } + + public static void w(string tag,string message) + { + if (LogLevel.LogWarn <= logLevel) + Debug.LogWarning(string.Format("{0} FrameID={1}>>>>>>{2}", TAG, Time.frameCount, message)); + } + + public static void e(string tag,string message) + { + if (LogLevel.LogError <= logLevel) + Debug.LogError(string.Format("{0} FrameID={1}>>>>>>{2}", TAG, Time.frameCount, message)); + } + + public static void f(string tag,string message) + { + if (LogLevel.LogFatal <= logLevel) + Debug.LogError(string.Format("{0} FrameID={1}>>>>>>{2}", TAG, Time.frameCount, message)); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PLog.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PLog.cs.meta new file mode 100644 index 0000000..5cb68c6 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PLog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: df58f5069538b8c4ba1ccb810f392606 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_PermissionRequest.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_PermissionRequest.cs new file mode 100644 index 0000000..56c0790 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_PermissionRequest.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Android; + +public class PXR_PermissionRequest : MonoBehaviour +{ + public bool requestMR=false; + + + private List _permissions = new List(); + private const string _permissionMr = "com.picovr.permission.SPATIAL_DATA"; + + private void Awake() + { + if (requestMR) + { + _permissions.Add(_permissionMr); + } + RequestUserPermissionAll(); + + } + + // Update is called once per frame + void Update() + { + + } + + public void RequestUserPermissionAll() + { + var callbacks = new PermissionCallbacks(); + callbacks.PermissionDenied += PermissionCallbacks_PermissionDenied; + callbacks.PermissionGranted += PermissionCallbacks_PermissionGranted; + callbacks.PermissionDeniedAndDontAskAgain += PermissionCallbacks_PermissionDeniedAndDontAskAgain; + Debug.Log("HHHH Permission.Camera Request"); + Permission.RequestUserPermissions(_permissions.ToArray(), callbacks); + } + + internal void PermissionCallbacks_PermissionDeniedAndDontAskAgain(string permissionName) + { + Debug.Log($"HHHH {permissionName} PermissionDeniedAndDontAskAgain"); + } + + internal void PermissionCallbacks_PermissionGranted(string permissionName) + { + Debug.Log($"HHHH {permissionName} PermissionCallbacks_PermissionGranted"); + } + + internal void PermissionCallbacks_PermissionDenied(string permissionName) + { + Debug.Log($"HHHH {permissionName} PermissionCallbacks_PermissionDenied"); + } + + + public static void RequestUserPermissionMR(Action _PermissionDenied=null,Action _PermissionGranted=null,Action _PermissionDeniedAndDontAskAgain=null) + { + if (Permission.HasUserAuthorizedPermission(_permissionMr)) + { + if (_PermissionGranted != null) + { + _PermissionGranted(_permissionMr); + } + } + else + { + var callbacks = new PermissionCallbacks(); + callbacks.PermissionDenied += _PermissionDenied; + callbacks.PermissionGranted += _PermissionGranted; + callbacks.PermissionDeniedAndDontAskAgain += _PermissionDeniedAndDontAskAgain; + Permission.RequestUserPermission(_permissionMr,callbacks); + } + } + + public static void RequestUserPermissionMR(Action _PermissionGranted) + { + if (Permission.HasUserAuthorizedPermission(_permissionMr)) + { + if (_PermissionGranted != null) + { + _PermissionGranted(_permissionMr); + } + } + else + { + var callbacks = new PermissionCallbacks(); + callbacks.PermissionGranted += _PermissionGranted; + Permission.RequestUserPermission(_permissionMr,callbacks); + } + } + +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_PermissionRequest.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_PermissionRequest.cs.meta new file mode 100644 index 0000000..89be546 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_PermissionRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: abf8973c00047e14e86e0c66151edeaf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Plugin.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Plugin.cs new file mode 100644 index 0000000..83bcf41 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Plugin.cs @@ -0,0 +1,251 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using Unity.XR.OpenXR.Features.PICOSupport; +using UnityEngine; +using UnityEngine.XR; + +namespace Unity.XR.PXR +{ + public delegate void XrEventDataBufferCallBack(ref XrEventDataBuffer dataBuffer); + [StructLayout(LayoutKind.Sequential)] + public struct XrEventDataBuffer + { + public XrStructureType type; + public IntPtr next; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4000)] + public byte[] data; + }; + public enum PxrSenseDataProviderState + { + Initialized, + Running, + Stopped + } + public enum PxrFutureState + { + Pending = 1, + Ready = 2 + } + public enum PxrSemanticLabel + { + Unknown = 0, + Floor, + Ceiling, + Wall, + Door, + Window, + Opening, + Table, + Sofa, + Chair, + Human = 10, + VirtualWall = 18, + } + public enum PxrSceneComponentType + { + Location = 0, + Semantic, + Box2D, + Polygon, + Box3D, + TriangleMesh = 5, + } + + public enum PxrSenseDataProviderType + { + SpatialAnchor, + SceneCapture, + } + [StructLayout(LayoutKind.Sequential)] + public struct PxrSceneBox2D + { + public Vector2 offset; + public XrExtent2Df extent; + } + [StructLayout(LayoutKind.Sequential)] + public struct PxrScenePolygon + { + public Vector2[] vertices; + } + [StructLayout(LayoutKind.Sequential)] + public struct PxrSceneBox3D + { + public Vector3 position; + public Quaternion rotation; + public Vector3 extent; + } + public struct PxrSceneComponentData + { + public Guid uuid; + public Vector3 position; + public Quaternion rotation; + public PxrSemanticLabel label; + public PxrSceneComponentType[] types; + public PxrSceneBox3D box3D; + public PxrSceneBox2D box2D; + public PxrScenePolygon polygon; + } + public enum PxrMeshLod + { + Low, + Medium, + High + } + [StructLayout(LayoutKind.Sequential)] + public struct PxrSpatialMeshInfo + { + public Guid uuid; + public MeshChangeState state; + public Vector3 position; + public Quaternion rotation; + public ushort[] indices; + public Vector3[] vertices; + public PxrSemanticLabel[] labels; + } + [StructLayout(LayoutKind.Sequential)] + public struct PxrEventSenseDataProviderStateChanged + { + public ulong providerHandle; + public PxrSenseDataProviderState newState; + } + public enum PxrResult + { + SUCCESS = 0, + TIMEOUT_EXPIRED = 1, + SESSION_LOSS_PENDING = 3, + EVENT_UNAVAILABLE = 4, + SPACE_BOUNDS_UNAVAILABLE = 7, + SESSION_NOT_FOCUSED = 8, + FRAME_DISCARDED = 9, + ERROR_VALIDATION_FAILURE = -1, + ERROR_RUNTIME_FAILURE = -2, + ERROR_OUT_OF_MEMORY = -3, + ERROR_API_VERSION_UNSUPPORTED = -4, + ERROR_INITIALIZATION_FAILED = -6, + ERROR_FUNCTION_UNSUPPORTED = -7, + ERROR_FEATURE_UNSUPPORTED = -8, + ERROR_EXTENSION_NOT_PRESENT = -9, + ERROR_LIMIT_REACHED = -10, + ERROR_SIZE_INSUFFICIENT = -11, + ERROR_HANDLE_INVALID = -12, + ERROR_INSTANCE_LOST = -13, + ERROR_SESSION_RUNNING = -14, + ERROR_SESSION_NOT_RUNNING = -16, + ERROR_SESSION_LOST = -17, + ERROR_SYSTEM_INVALID = -18, + ERROR_PATH_INVALID = -19, + ERROR_PATH_COUNT_EXCEEDED = -20, + ERROR_PATH_FORMAT_INVALID = -21, + ERROR_PATH_UNSUPPORTED = -22, + ERROR_LAYER_INVALID = -23, + ERROR_LAYER_LIMIT_EXCEEDED = -24, + ERROR_SWAPCHAIN_RECT_INVALID = -25, + ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED = -26, + ERROR_ACTION_TYPE_MISMATCH = -27, + ERROR_SESSION_NOT_READY = -28, + ERROR_SESSION_NOT_STOPPING = -29, + ERROR_TIME_INVALID = -30, + ERROR_REFERENCE_SPACE_UNSUPPORTED = -31, + ERROR_FILE_ACCESS_ERROR = -32, + ERROR_FILE_CONTENTS_INVALID = -33, + ERROR_FORM_FACTOR_UNSUPPORTED = -34, + ERROR_FORM_FACTOR_UNAVAILABLE = -35, + ERROR_API_LAYER_NOT_PRESENT = -36, + ERROR_CALL_ORDER_INVALID = -37, + ERROR_GRAPHICS_DEVICE_INVALID = -38, + ERROR_POSE_INVALID = -39, + ERROR_INDEX_OUT_OF_RANGE = -40, + ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED = -41, + ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED = -42, + ERROR_NAME_DUPLICATED = -44, + ERROR_NAME_INVALID = -45, + ERROR_ACTIONSET_NOT_ATTACHED = -46, + ERROR_ACTIONSETS_ALREADY_ATTACHED = -47, + ERROR_LOCALIZED_NAME_DUPLICATED = -48, + ERROR_LOCALIZED_NAME_INVALID = -49, + ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING = -50, + ERROR_RUNTIME_UNAVAILABLE = -51, + ERROR_EXTENSION_NOT_ENABLED = -800, + + ERROR_SPATIAL_LOCALIZATION_RUNNING = -1000, + ERROR_SPATIAL_LOCALIZATION_NOT_RUNNING = -1001, + ERROR_SPATIAL_MAP_CREATED = -1002, + ERROR_SPATIAL_MAP_NOT_CREATED = -1003, + ERROR_COMPONENT_NOT_SUPPORTED = -501, + ERROR_COMPONENT_CONFLICT = -502, + ERROR_COMPONENT_NOT_ADDED = -503, + ERROR_COMPONENT_ADDED = -504, + ERROR_ANCHOR_ENTITY_NOT_FOUND = -505, + ERROR_TRACKING_STATE_INVALID = -506, + + ERROR_ANCHOR_SHARING_NETWORK_TIMEOUT = -601, + ERROR_ANCHOR_SHARING_AUTHENTICATION_FAILURE = -602, + ERROR_ANCHOR_SHARING_NETWORK_FAILURE = -603, + ERROR_ANCHOR_SHARING_LOCALIZATION_FAIL = -604, + ERROR_ANCHOR_SHARING_MAP_INSUFFICIENT = -605, + + + ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED = -1000710001, + ERROR_PERMISSION_INSUFFICIENT = -1000710000, + ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR = -1000003000, + ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR = -1000003001, + ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT = -1000039001, + ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT = -1000053000, + ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT = -1000055000, + ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT = -1000066000, + ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT = -1000097000, + ERROR_SCENE_COMPONENT_ID_INVALID_MSFT = -1000097001, + ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT = -1000097002, + ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT = -1000097003, + ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT = -1000097004, + ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT = -1000097005, + ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB = -1000101000, + ERROR_COLOR_SPACE_UNSUPPORTED_FB = -1000108000, + ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB = -1000113000, + ERROR_SPACE_COMPONENT_NOT_ENABLED_FB = -1000113001, + ERROR_SPACE_COMPONENT_STATUS_PENDING_FB = -1000113002, + ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB = -1000113003, + ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB = -1000118000, + ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB = -1000118001, + ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB = -1000118002, + ERROR_NOT_PERMITTED_PASSTHROUGH_FB = -1000118003, + ERROR_INSUFFICIENT_RESOURCES_PASSTHROUGH_FB = -1000118004, + ERROR_UNKNOWN_PASSTHROUGH_FB = -1000118050, + ERROR_RENDER_MODEL_KEY_INVALID_FB = -1000119000, + RENDER_MODEL_UNAVAILABLE_FB = 1000119020, + ERROR_MARKER_NOT_TRACKED_VARJO = -1000124000, + ERROR_MARKER_ID_INVALID_VARJO = -1000124001, + ERROR_MARKER_DETECTOR_PERMISSION_DENIED_ML = -1000138000, + ERROR_MARKER_DETECTOR_LOCATE_FAILED_ML = -1000138001, + ERROR_MARKER_DETECTOR_INVALID_DATA_QUERY_ML = -1000138002, + ERROR_MARKER_DETECTOR_INVALID_CREATE_INFO_ML = -1000138003, + ERROR_MARKER_INVALID_ML = -1000138004, + ERROR_LOCALIZATION_MAP_INCOMPATIBLE_ML = -1000139000, + ERROR_LOCALIZATION_MAP_UNAVAILABLE_ML = -1000139001, + ERROR_LOCALIZATION_MAP_FAIL_ML = -1000139002, + ERROR_LOCALIZATION_MAP_IMPORT_EXPORT_PERMISSION_DENIED_ML = -1000139003, + ERROR_LOCALIZATION_MAP_PERMISSION_DENIED_ML = -1000139004, + ERROR_LOCALIZATION_MAP_ALREADY_EXISTS_ML = -1000139005, + ERROR_LOCALIZATION_MAP_CANNOT_EXPORT_CLOUD_MAP_ML = -1000139006, + ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT = -1000142001, + ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT = -1000142002, + SCENE_MARKER_DATA_NOT_STRING_MSFT = 1000147000, + ERROR_SPACE_MAPPING_INSUFFICIENT_FB = -1000169000, + ERROR_SPACE_LOCALIZATION_FAILED_FB = -1000169001, + ERROR_SPACE_NETWORK_TIMEOUT_FB = -1000169002, + ERROR_SPACE_NETWORK_REQUEST_FAILED_FB = -1000169003, + ERROR_SPACE_CLOUD_STORAGE_DISABLED_FB = -1000169004, + ERROR_PASSTHROUGH_COLOR_LUT_BUFFER_SIZE_MISMATCH_META = -1000266000, + ENVIRONMENT_DEPTH_NOT_AVAILABLE_META = 1000291000, + ERROR_HINT_ALREADY_SET_QCOM = -1000306000, + ERROR_NOT_AN_ANCHOR_HTC = -1000319000, + ERROR_SPACE_NOT_LOCATABLE_EXT = -1000429000, + ERROR_PLANE_DETECTION_PERMISSION_DENIED_EXT = -1000429001, + ERROR_FUTURE_PENDING_EXT = -1000469001, + ERROR_FUTURE_INVALID_EXT = -1000469002, + ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED_KHR = ERROR_EXTENSION_DEPENDENCY_NOT_ENABLED, + ERROR_PERMISSION_INSUFFICIENT_KHR = ERROR_PERMISSION_INSUFFICIENT, + } + +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Plugin.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Plugin.cs.meta new file mode 100644 index 0000000..d073e02 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Plugin.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 52865e17ab434793a960c1936684f6ec +timeCreated: 1721813797 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Type.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Type.cs new file mode 100644 index 0000000..0ee5d0a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Type.cs @@ -0,0 +1,711 @@ +using System; +using System.Runtime.InteropServices; +using Unity.XR.OpenXR.Features.PICOSupport; + +namespace Unity.XR.PXR +{ + + [StructLayout(LayoutKind.Sequential)] + public struct XrFuturePollInfoEXT + { + public XrStructureType type; + public IntPtr next; + public ulong future; + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrFuturePollResultEXT + { + public XrStructureType type; + public IntPtr next; + public PxrFutureState state; + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSenseDataProviderCreateInfoBaseHeader + { + public XrStructureType type; + public IntPtr next; + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSenseDataProviderStartCompletion + { + public XrStructureType type; + public IntPtr next; + public PxrResult futureResult; + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSenseDataQueryCompletion + { + public XrStructureType type; + public IntPtr next; + public PxrResult futureResult; + public ulong snapshotHandle; + } + + public struct PxrUuid + { + public ulong value0; + public ulong value1; + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialAnchorCompletion + { + public XrStructureType type; + public IntPtr next; + public PxrResult futureResult; + public ulong anchorHandle; + public PxrUuid uuid; + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialAnchorPersistInfo + { + public XrStructureType type; + public IntPtr next; + public PxrPersistenceLocation location; + public ulong anchorHandle; + } + + public enum PxrPersistenceLocation + { + Local = 0, + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrSenseDataQueryInfo + { + public XrStructureType type; + public IntPtr next; + public IntPtr filter; //PxrSenseDataQueryFilterBaseHeader + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSenseDataFilterUuid + { + public XrStructureType type; + public IntPtr next; + public uint uuidCount; + public IntPtr uuidList; //=>PxrUuid[] + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSenseDataFilterSemantic + { + public XrStructureType type; + public IntPtr next; + public uint semanticCount; + public IntPtr semantics; //=>PxrSemanticLabel[] + } + [StructLayout(LayoutKind.Sequential)] + public struct XrQueriedSenseDataGetInfo + { + public XrStructureType type; + public IntPtr next; + public ulong snapshotHandle; + } + [StructLayout(LayoutKind.Sequential)] + public struct XrQueriedSenseData + { + public XrStructureType type; + public IntPtr next; + public uint queriedSpatialEntityCapacityInput; + public uint queriedSpatialEntityCountOutput; + public IntPtr queriedSpatialEntities;//PxrQueriedSpatialEntityInfo[] + } + + [StructLayout(LayoutKind.Sequential)] + public struct PxrQueriedSpatialEntityInfo + { + public XrStructureType type; + public IntPtr next; + public ulong spatialEntity; + public ulong time; + public PxrUuid uuid; + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialEntityAnchorRetrieveInfo + { + public XrStructureType type; + public IntPtr next; + public ulong spatialEntity; + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrSpaceLocation + { + public XrStructureType type; + public IntPtr next; + public ulong locationFlags; //PxrSpaceLocationFlags + public PxrPosef pose; + } + public enum PxrSpaceLocationFlags + { + OrientationValid = 0x00000001, + PositionValidBit = 0x00000002, + OrientationTracked = 0x00000004, + PositionTracked = 0x00000008 + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialAnchorUnpersistInfo + { + public XrStructureType type; + public IntPtr next; + public PxrPersistenceLocation location; + public ulong anchorHandle; + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrSceneCaptureStartCompletion + { + public XrStructureType type; + public IntPtr next; + public PxrResult futureResult; + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialEntityComponentGetInfoBaseHeader + { + public XrStructureType type; + public IntPtr next; + public ulong entity; + public PxrSceneComponentType componentType; + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialEntityComponentDataBaseHeader + { + public XrStructureType type; + public IntPtr next; + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialEntityGetInfo + { + public XrStructureType type; + public IntPtr next; + public ulong entity; + public PxrSceneComponentType componentType; + } + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialEntitySemanticData + { + public XrStructureType type; + public IntPtr next; + public uint semanticCapacityInput; + public uint semanticCountOutput; + public IntPtr semanticLabels;//PxrSemanticLabel[] + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialEntityLocationGetInfo + { + public XrStructureType type; + public IntPtr next; + public ulong entity; + public PxrSceneComponentType componentType; + public ulong baseSpace; + public ulong time; + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrSpaceLocationData + { + public ulong locationFlags; + public PxrPosef pose; + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialEntityLocationData + { + public XrStructureType type; + public IntPtr next; + public XrSpaceLocationData location; + } + + + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialEntityBoundingBox3DData + { + public XrStructureType type; + public IntPtr next; + public PxrBoxf box3D; + } + [StructLayout(LayoutKind.Sequential)] + public struct PxrBoxf + { + public PxrPosef center; + public XrExtent3Df extents; + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialEntityBoundingBox2DData + { + public XrStructureType type; + public IntPtr next; + public PxrSceneBox2D box2D; + } + + [StructLayout(LayoutKind.Sequential)] + public struct XrSpatialEntityPolygonData + { + public XrStructureType type; + public IntPtr next; + public uint polygonCapacityInput; + public uint polygonCountOutput; + public IntPtr vertices; //PxrVector2f[] + } + [StructLayout(LayoutKind.Sequential)] + public struct PxrTriangleMeshInfo + { + public XrStructureType type; + public IntPtr next; + public uint vertexCapacityInput; + public uint vertexCountOutput; + public IntPtr vertices;//PxrVector3f[]; + public uint indexCapacityInput; + public uint indexCountOutput; + public IntPtr indices;// uint16_t[] + } + public enum XrStructureType + { + XR_TYPE_UNKNOWN = 0, + XR_TYPE_API_LAYER_PROPERTIES = 1, + XR_TYPE_EXTENSION_PROPERTIES = 2, + XR_TYPE_INSTANCE_CREATE_INFO = 3, + XR_TYPE_SYSTEM_GET_INFO = 4, + XR_TYPE_SYSTEM_PROPERTIES = 5, + XR_TYPE_VIEW_LOCATE_INFO = 6, + XR_TYPE_VIEW = 7, + XR_TYPE_SESSION_CREATE_INFO = 8, + XR_TYPE_SWAPCHAIN_CREATE_INFO = 9, + XR_TYPE_SESSION_BEGIN_INFO = 10, + XR_TYPE_VIEW_STATE = 11, + XR_TYPE_FRAME_END_INFO = 12, + XR_TYPE_HAPTIC_VIBRATION = 13, + XR_TYPE_EVENT_DATA_BUFFER = 16, + XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING = 17, + XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED = 18, + XR_TYPE_ACTION_STATE_BOOLEAN = 23, + XR_TYPE_ACTION_STATE_FLOAT = 24, + XR_TYPE_ACTION_STATE_VECTOR2F = 25, + XR_TYPE_ACTION_STATE_POSE = 27, + XR_TYPE_ACTION_SET_CREATE_INFO = 28, + XR_TYPE_ACTION_CREATE_INFO = 29, + XR_TYPE_INSTANCE_PROPERTIES = 32, + XR_TYPE_FRAME_WAIT_INFO = 33, + XR_TYPE_COMPOSITION_LAYER_PROJECTION = 35, + XR_TYPE_COMPOSITION_LAYER_QUAD = 36, + XR_TYPE_REFERENCE_SPACE_CREATE_INFO = 37, + XR_TYPE_ACTION_SPACE_CREATE_INFO = 38, + XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING = 40, + XR_TYPE_VIEW_CONFIGURATION_VIEW = 41, + XR_TYPE_SPACE_LOCATION = 42, + XR_TYPE_SPACE_VELOCITY = 43, + XR_TYPE_FRAME_STATE = 44, + XR_TYPE_VIEW_CONFIGURATION_PROPERTIES = 45, + XR_TYPE_FRAME_BEGIN_INFO = 46, + XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW = 48, + XR_TYPE_EVENT_DATA_EVENTS_LOST = 49, + XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING = 51, + XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED = 52, + XR_TYPE_INTERACTION_PROFILE_STATE = 53, + XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO = 55, + XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO = 56, + XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO = 57, + XR_TYPE_ACTION_STATE_GET_INFO = 58, + XR_TYPE_HAPTIC_ACTION_INFO = 59, + XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO = 60, + XR_TYPE_ACTIONS_SYNC_INFO = 61, + XR_TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO = 62, + XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO = 63, + XR_TYPE_SPACES_LOCATE_INFO = 1000471000, + XR_TYPE_SPACE_LOCATIONS = 1000471001, + XR_TYPE_SPACE_VELOCITIES = 1000471002, + XR_TYPE_COMPOSITION_LAYER_CUBE_KHR = 1000006000, + XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR = 1000008000, + XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR = 1000010000, + XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR = 1000014000, + XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT = 1000015000, + XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR = 1000017000, + XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR = 1000018000, + XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000019000, + XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000019001, + XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000019002, + XR_TYPE_DEBUG_UTILS_LABEL_EXT = 1000019003, + XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR = 1000023000, + XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR = 1000023001, + XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR = 1000023002, + XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR = 1000023003, + XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR = 1000023004, + XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR = 1000023005, + XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR = 1000024001, + XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR = 1000024002, + XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR = 1000024003, + XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR = 1000025000, + XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR = 1000025001, + XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR = 1000025002, + XR_TYPE_GRAPHICS_BINDING_D3D11_KHR = 1000027000, + XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR = 1000027001, + XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR = 1000027002, + XR_TYPE_GRAPHICS_BINDING_D3D12_KHR = 1000028000, + XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR = 1000028001, + XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR = 1000028002, + XR_TYPE_SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT = 1000030000, + XR_TYPE_EYE_GAZE_SAMPLE_TIME_EXT = 1000030001, + XR_TYPE_VISIBILITY_MASK_KHR = 1000031000, + XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR = 1000031001, + XR_TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX = 1000033000, + XR_TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX = 1000033003, + XR_TYPE_COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR = 1000034000, + XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT = 1000039000, + XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT = 1000039001, + XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB = 1000040000, + XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB = 1000041001, + XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT = 1000046000, + XR_TYPE_GRAPHICS_BINDING_EGL_MNDX = 1000048004, + XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT = 1000049000, + XR_TYPE_SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT = 1000049001, + XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT = 1000049002, + XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT = 1000049003, + XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT = 1000051000, + XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT = 1000051001, + XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT = 1000051002, + XR_TYPE_HAND_JOINT_LOCATIONS_EXT = 1000051003, + XR_TYPE_HAND_JOINT_VELOCITIES_EXT = 1000051004, + XR_TYPE_SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT = 1000052000, + XR_TYPE_HAND_MESH_SPACE_CREATE_INFO_MSFT = 1000052001, + XR_TYPE_HAND_MESH_UPDATE_INFO_MSFT = 1000052002, + XR_TYPE_HAND_MESH_MSFT = 1000052003, + XR_TYPE_HAND_POSE_TYPE_INFO_MSFT = 1000052004, + XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT = 1000053000, + XR_TYPE_SECONDARY_VIEW_CONFIGURATION_STATE_MSFT = 1000053001, + XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT = 1000053002, + XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT = 1000053003, + XR_TYPE_SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT = 1000053004, + XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT = 1000053005, + XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT = 1000055000, + XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT = 1000055001, + XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT = 1000055002, + XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT = 1000055003, + XR_TYPE_CONTROLLER_MODEL_STATE_MSFT = 1000055004, + XR_TYPE_VIEW_CONFIGURATION_VIEW_FOV_EPIC = 1000059000, + XR_TYPE_HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT = 1000063000, + XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT = 1000066000, + XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT = 1000066001, + XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB = 1000070000, + XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB = 1000072000, + XR_TYPE_BODY_TRACKER_CREATE_INFO_FB = 1000076001, + XR_TYPE_BODY_JOINTS_LOCATE_INFO_FB = 1000076002, + XR_TYPE_SYSTEM_BODY_TRACKING_PROPERTIES_FB = 1000076004, + XR_TYPE_BODY_JOINT_LOCATIONS_FB = 1000076005, + XR_TYPE_BODY_SKELETON_FB = 1000076006, + XR_TYPE_INTERACTION_PROFILE_DPAD_BINDING_EXT = 1000078000, + XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE = 1000079000, + XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT = 1000080000, + XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR = 1000089000, + XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR = 1000090000, + XR_TYPE_VULKAN_DEVICE_CREATE_INFO_KHR = 1000090001, + XR_TYPE_VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR = 1000090003, + XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR = 1000091000, + XR_TYPE_SCENE_OBSERVER_CREATE_INFO_MSFT = 1000097000, + XR_TYPE_SCENE_CREATE_INFO_MSFT = 1000097001, + XR_TYPE_NEW_SCENE_COMPUTE_INFO_MSFT = 1000097002, + XR_TYPE_VISUAL_MESH_COMPUTE_LOD_INFO_MSFT = 1000097003, + XR_TYPE_SCENE_COMPONENTS_MSFT = 1000097004, + XR_TYPE_SCENE_COMPONENTS_GET_INFO_MSFT = 1000097005, + XR_TYPE_SCENE_COMPONENT_LOCATIONS_MSFT = 1000097006, + XR_TYPE_SCENE_COMPONENTS_LOCATE_INFO_MSFT = 1000097007, + XR_TYPE_SCENE_OBJECTS_MSFT = 1000097008, + XR_TYPE_SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT = 1000097009, + XR_TYPE_SCENE_OBJECT_TYPES_FILTER_INFO_MSFT = 1000097010, + XR_TYPE_SCENE_PLANES_MSFT = 1000097011, + XR_TYPE_SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT = 1000097012, + XR_TYPE_SCENE_MESHES_MSFT = 1000097013, + XR_TYPE_SCENE_MESH_BUFFERS_GET_INFO_MSFT = 1000097014, + XR_TYPE_SCENE_MESH_BUFFERS_MSFT = 1000097015, + XR_TYPE_SCENE_MESH_VERTEX_BUFFER_MSFT = 1000097016, + XR_TYPE_SCENE_MESH_INDICES_UINT32_MSFT = 1000097017, + XR_TYPE_SCENE_MESH_INDICES_UINT16_MSFT = 1000097018, + XR_TYPE_SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT = 1000098000, + XR_TYPE_SCENE_DESERIALIZE_INFO_MSFT = 1000098001, + XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB = 1000101000, + XR_TYPE_VIVE_TRACKER_PATHS_HTCX = 1000103000, + XR_TYPE_EVENT_DATA_VIVE_TRACKER_CONNECTED_HTCX = 1000103001, + XR_TYPE_SYSTEM_FACIAL_TRACKING_PROPERTIES_HTC = 1000104000, + XR_TYPE_FACIAL_TRACKER_CREATE_INFO_HTC = 1000104001, + XR_TYPE_FACIAL_EXPRESSIONS_HTC = 1000104002, + XR_TYPE_SYSTEM_COLOR_SPACE_PROPERTIES_FB = 1000108000, + XR_TYPE_HAND_TRACKING_MESH_FB = 1000110001, + XR_TYPE_HAND_TRACKING_SCALE_FB = 1000110003, + XR_TYPE_HAND_TRACKING_AIM_STATE_FB = 1000111001, + XR_TYPE_HAND_TRACKING_CAPSULES_STATE_FB = 1000112000, + XR_TYPE_SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB = 1000113004, + XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_FB = 1000113003, + XR_TYPE_SPACE_COMPONENT_STATUS_SET_INFO_FB = 1000113007, + XR_TYPE_SPACE_COMPONENT_STATUS_FB = 1000113001, + XR_TYPE_EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB = 1000113005, + XR_TYPE_EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB = 1000113006, + XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB = 1000114000, + XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB = 1000114001, + XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB = 1000114002, + XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB = 1000115000, + XR_TYPE_KEYBOARD_SPACE_CREATE_INFO_FB = 1000116009, + XR_TYPE_KEYBOARD_TRACKING_QUERY_FB = 1000116004, + XR_TYPE_SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB = 1000116002, + XR_TYPE_TRIANGLE_MESH_CREATE_INFO_FB = 1000117001, + XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES_FB = 1000118000, + XR_TYPE_PASSTHROUGH_CREATE_INFO_FB = 1000118001, + XR_TYPE_PASSTHROUGH_LAYER_CREATE_INFO_FB = 1000118002, + XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_FB = 1000118003, + XR_TYPE_GEOMETRY_INSTANCE_CREATE_INFO_FB = 1000118004, + XR_TYPE_GEOMETRY_INSTANCE_TRANSFORM_FB = 1000118005, + XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES2_FB = 1000118006, + XR_TYPE_PASSTHROUGH_STYLE_FB = 1000118020, + XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB = 1000118021, + XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB = 1000118022, + XR_TYPE_PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB = 1000118023, + XR_TYPE_EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB = 1000118030, + XR_TYPE_RENDER_MODEL_PATH_INFO_FB = 1000119000, + XR_TYPE_RENDER_MODEL_PROPERTIES_FB = 1000119001, + XR_TYPE_RENDER_MODEL_BUFFER_FB = 1000119002, + XR_TYPE_RENDER_MODEL_LOAD_INFO_FB = 1000119003, + XR_TYPE_SYSTEM_RENDER_MODEL_PROPERTIES_FB = 1000119004, + XR_TYPE_RENDER_MODEL_CAPABILITIES_REQUEST_FB = 1000119005, + XR_TYPE_BINDING_MODIFICATIONS_KHR = 1000120000, + XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO = 1000121000, + XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO = 1000121001, + XR_TYPE_SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO = 1000121002, + XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO = 1000122000, + XR_TYPE_SYSTEM_MARKER_TRACKING_PROPERTIES_VARJO = 1000124000, + XR_TYPE_EVENT_DATA_MARKER_TRACKING_UPDATE_VARJO = 1000124001, + XR_TYPE_MARKER_SPACE_CREATE_INFO_VARJO = 1000124002, + XR_TYPE_FRAME_END_INFO_ML = 1000135000, + XR_TYPE_GLOBAL_DIMMER_FRAME_END_INFO_ML = 1000136000, + XR_TYPE_COORDINATE_SPACE_CREATE_INFO_ML = 1000137000, + XR_TYPE_SYSTEM_MARKER_UNDERSTANDING_PROPERTIES_ML = 1000138000, + XR_TYPE_MARKER_DETECTOR_CREATE_INFO_ML = 1000138001, + XR_TYPE_MARKER_DETECTOR_ARUCO_INFO_ML = 1000138002, + XR_TYPE_MARKER_DETECTOR_SIZE_INFO_ML = 1000138003, + XR_TYPE_MARKER_DETECTOR_APRIL_TAG_INFO_ML = 1000138004, + XR_TYPE_MARKER_DETECTOR_CUSTOM_PROFILE_INFO_ML = 1000138005, + XR_TYPE_MARKER_DETECTOR_SNAPSHOT_INFO_ML = 1000138006, + XR_TYPE_MARKER_DETECTOR_STATE_ML = 1000138007, + XR_TYPE_MARKER_SPACE_CREATE_INFO_ML = 1000138008, + XR_TYPE_LOCALIZATION_MAP_ML = 1000139000, + XR_TYPE_EVENT_DATA_LOCALIZATION_CHANGED_ML = 1000139001, + XR_TYPE_MAP_LOCALIZATION_REQUEST_INFO_ML = 1000139002, + XR_TYPE_LOCALIZATION_MAP_IMPORT_INFO_ML = 1000139003, + XR_TYPE_LOCALIZATION_ENABLE_EVENTS_INFO_ML = 1000139004, + XR_TYPE_EVENT_DATA_HEADSET_FIT_CHANGED_ML = 1000472000, + XR_TYPE_EVENT_DATA_EYE_CALIBRATION_CHANGED_ML = 1000472001, + XR_TYPE_USER_CALIBRATION_ENABLE_EVENTS_INFO_ML = 1000472002, + XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT = 1000142000, + XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT = 1000142001, + XR_TYPE_SCENE_MARKERS_MSFT = 1000147000, + XR_TYPE_SCENE_MARKER_TYPE_FILTER_MSFT = 1000147001, + XR_TYPE_SCENE_MARKER_QR_CODES_MSFT = 1000147002, + XR_TYPE_SPACE_QUERY_INFO_FB = 1000156001, + XR_TYPE_SPACE_QUERY_RESULTS_FB = 1000156002, + XR_TYPE_SPACE_STORAGE_LOCATION_FILTER_INFO_FB = 1000156003, + XR_TYPE_SPACE_UUID_FILTER_INFO_FB = 1000156054, + XR_TYPE_SPACE_COMPONENT_FILTER_INFO_FB = 1000156052, + XR_TYPE_EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB = 1000156103, + XR_TYPE_EVENT_DATA_SPACE_QUERY_COMPLETE_FB = 1000156104, + XR_TYPE_SPACE_SAVE_INFO_FB = 1000158000, + XR_TYPE_SPACE_ERASE_INFO_FB = 1000158001, + XR_TYPE_EVENT_DATA_SPACE_SAVE_COMPLETE_FB = 1000158106, + XR_TYPE_EVENT_DATA_SPACE_ERASE_COMPLETE_FB = 1000158107, + XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB = 1000160000, + XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB = 1000161000, + XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB = 1000162000, + XR_TYPE_SWAPCHAIN_STATE_SAMPLER_VULKAN_FB = 1000163000, + XR_TYPE_SPACE_SHARE_INFO_FB = 1000169001, + XR_TYPE_EVENT_DATA_SPACE_SHARE_COMPLETE_FB = 1000169002, + XR_TYPE_COMPOSITION_LAYER_SPACE_WARP_INFO_FB = 1000171000, + XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB = 1000171001, + XR_TYPE_HAPTIC_AMPLITUDE_ENVELOPE_VIBRATION_FB = 1000173001, + XR_TYPE_SEMANTIC_LABELS_FB = 1000175000, + XR_TYPE_ROOM_LAYOUT_FB = 1000175001, + XR_TYPE_BOUNDARY_2D_FB = 1000175002, + XR_TYPE_SEMANTIC_LABELS_SUPPORT_INFO_FB = 1000175010, + XR_TYPE_DIGITAL_LENS_CONTROL_ALMALENCE = 1000196000, + XR_TYPE_EVENT_DATA_SCENE_CAPTURE_COMPLETE_FB = 1000198001, + XR_TYPE_SCENE_CAPTURE_REQUEST_INFO_FB = 1000198050, + XR_TYPE_SPACE_CONTAINER_FB = 1000199000, + XR_TYPE_FOVEATION_EYE_TRACKED_PROFILE_CREATE_INFO_META = 1000200000, + XR_TYPE_FOVEATION_EYE_TRACKED_STATE_META = 1000200001, + XR_TYPE_SYSTEM_FOVEATION_EYE_TRACKED_PROPERTIES_META = 1000200002, + XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES_FB = 1000201004, + XR_TYPE_FACE_TRACKER_CREATE_INFO_FB = 1000201005, + XR_TYPE_FACE_EXPRESSION_INFO_FB = 1000201002, + XR_TYPE_FACE_EXPRESSION_WEIGHTS_FB = 1000201006, + XR_TYPE_EYE_TRACKER_CREATE_INFO_FB = 1000202001, + XR_TYPE_EYE_GAZES_INFO_FB = 1000202002, + XR_TYPE_EYE_GAZES_FB = 1000202003, + XR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_FB = 1000202004, + XR_TYPE_PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB = 1000203002, + XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB = 1000204000, + XR_TYPE_HAPTIC_PCM_VIBRATION_FB = 1000209001, + XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB = 1000209002, + XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_FB = 1000212000, + XR_TYPE_LOCAL_DIMMING_FRAME_END_INFO_META = 1000216000, + XR_TYPE_PASSTHROUGH_PREFERENCES_META = 1000217000, + XR_TYPE_SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META = 1000219001, + XR_TYPE_VIRTUAL_KEYBOARD_CREATE_INFO_META = 1000219002, + XR_TYPE_VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META = 1000219003, + XR_TYPE_VIRTUAL_KEYBOARD_LOCATION_INFO_META = 1000219004, + XR_TYPE_VIRTUAL_KEYBOARD_MODEL_VISIBILITY_SET_INFO_META = 1000219005, + XR_TYPE_VIRTUAL_KEYBOARD_ANIMATION_STATE_META = 1000219006, + XR_TYPE_VIRTUAL_KEYBOARD_MODEL_ANIMATION_STATES_META = 1000219007, + XR_TYPE_VIRTUAL_KEYBOARD_TEXTURE_DATA_META = 1000219009, + XR_TYPE_VIRTUAL_KEYBOARD_INPUT_INFO_META = 1000219010, + XR_TYPE_VIRTUAL_KEYBOARD_TEXT_CONTEXT_CHANGE_INFO_META = 1000219011, + XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_COMMIT_TEXT_META = 1000219014, + XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_BACKSPACE_META = 1000219015, + XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_ENTER_META = 1000219016, + XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_SHOWN_META = 1000219017, + XR_TYPE_EVENT_DATA_VIRTUAL_KEYBOARD_HIDDEN_META = 1000219018, + XR_TYPE_EXTERNAL_CAMERA_OCULUS = 1000226000, + XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META = 1000227000, + XR_TYPE_PERFORMANCE_METRICS_STATE_META = 1000232001, + XR_TYPE_PERFORMANCE_METRICS_COUNTER_META = 1000232002, + XR_TYPE_SPACE_LIST_SAVE_INFO_FB = 1000238000, + XR_TYPE_EVENT_DATA_SPACE_LIST_SAVE_COMPLETE_FB = 1000238001, + XR_TYPE_SPACE_USER_CREATE_INFO_FB = 1000241001, + XR_TYPE_SYSTEM_HEADSET_ID_PROPERTIES_META = 1000245000, + XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_META = 1000254000, + XR_TYPE_RECOMMENDED_LAYER_RESOLUTION_GET_INFO_META = 1000254001, + XR_TYPE_SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META = 1000266000, + XR_TYPE_PASSTHROUGH_COLOR_LUT_CREATE_INFO_META = 1000266001, + XR_TYPE_PASSTHROUGH_COLOR_LUT_UPDATE_INFO_META = 1000266002, + XR_TYPE_PASSTHROUGH_COLOR_MAP_LUT_META = 1000266100, + XR_TYPE_PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META = 1000266101, + XR_TYPE_SPACE_TRIANGLE_MESH_GET_INFO_META = 1000269001, + XR_TYPE_SPACE_TRIANGLE_MESH_META = 1000269002, + XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES2_FB = 1000287013, + XR_TYPE_FACE_TRACKER_CREATE_INFO2_FB = 1000287014, + XR_TYPE_FACE_EXPRESSION_INFO2_FB = 1000287015, + XR_TYPE_FACE_EXPRESSION_WEIGHTS2_FB = 1000287016, + XR_TYPE_ENVIRONMENT_DEPTH_PROVIDER_CREATE_INFO_META = 1000291000, + XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_CREATE_INFO_META = 1000291001, + XR_TYPE_ENVIRONMENT_DEPTH_SWAPCHAIN_STATE_META = 1000291002, + XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META = 1000291003, + XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_VIEW_META = 1000291004, + XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_META = 1000291005, + XR_TYPE_ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META = 1000291006, + XR_TYPE_SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META = 1000291007, + XR_TYPE_PASSTHROUGH_CREATE_INFO_HTC = 1000317001, + XR_TYPE_PASSTHROUGH_COLOR_HTC = 1000317002, + XR_TYPE_PASSTHROUGH_MESH_TRANSFORM_INFO_HTC = 1000317003, + XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC = 1000317004, + XR_TYPE_FOVEATION_APPLY_INFO_HTC = 1000318000, + XR_TYPE_FOVEATION_DYNAMIC_MODE_INFO_HTC = 1000318001, + XR_TYPE_FOVEATION_CUSTOM_MODE_INFO_HTC = 1000318002, + XR_TYPE_SYSTEM_ANCHOR_PROPERTIES_HTC = 1000319000, + XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_HTC = 1000319001, + XR_TYPE_ACTIVE_ACTION_SET_PRIORITIES_EXT = 1000373000, + XR_TYPE_SYSTEM_FORCE_FEEDBACK_CURL_PROPERTIES_MNDX = 1000375000, + XR_TYPE_FORCE_FEEDBACK_CURL_APPLY_LOCATIONS_MNDX = 1000375001, + XR_TYPE_HAND_TRACKING_DATA_SOURCE_INFO_EXT = 1000428000, + XR_TYPE_HAND_TRACKING_DATA_SOURCE_STATE_EXT = 1000428001, + XR_TYPE_PLANE_DETECTOR_CREATE_INFO_EXT = 1000429001, + XR_TYPE_PLANE_DETECTOR_BEGIN_INFO_EXT = 1000429002, + XR_TYPE_PLANE_DETECTOR_GET_INFO_EXT = 1000429003, + XR_TYPE_PLANE_DETECTOR_LOCATIONS_EXT = 1000429004, + XR_TYPE_PLANE_DETECTOR_LOCATION_EXT = 1000429005, + XR_TYPE_PLANE_DETECTOR_POLYGON_BUFFER_EXT = 1000429006, + XR_TYPE_SYSTEM_PLANE_DETECTION_PROPERTIES_EXT = 1000429007, + XR_TYPE_FUTURE_CANCEL_INFO_EXT = 1000469000, + XR_TYPE_FUTURE_POLL_INFO_EXT = 1000469001, + XR_TYPE_FUTURE_COMPLETION_EXT = 1000469002, + XR_TYPE_FUTURE_POLL_RESULT_EXT = 1000469003, + XR_TYPE_EVENT_DATA_USER_PRESENCE_CHANGED_EXT = 1000470000, + XR_TYPE_SYSTEM_USER_PRESENCE_PROPERTIES_EXT = 1000470001, + XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR = XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR, + XR_TYPE_SWAPCHAIN_IMAGE_VULKAN2_KHR = XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR, + XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR = XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR, + XR_TYPE_DEVICE_PCM_SAMPLE_RATE_GET_INFO_FB = XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB, + XR_TYPE_SPACES_LOCATE_INFO_KHR = XR_TYPE_SPACES_LOCATE_INFO, + XR_TYPE_SPACE_LOCATIONS_KHR = XR_TYPE_SPACE_LOCATIONS, + XR_TYPE_SPACE_VELOCITIES_KHR = XR_TYPE_SPACE_VELOCITIES, + + //pico system + XR_TYPE_EVENT_CONTROLLER_STATE_CHANGED_PICO = 1200006064, + XR_TYPE_EVENT_SEETHROUGH_STATE_CHANGED = 1200006065, + XR_TYPE_EVENT_KEY_EVENT = 1200006067, + XR_TYPE_EVENT_MRC_STATUS_CHANGED = 1200006072, + XR_TYPE_EVENT_LOG_LEVEL_CHANGE = 1200006086, + + //motiontracking + XR_TYPE_EVENT_MOTION_TRACKING_MDOE_CHANGED_EVENT_BD = 1200006403, + XR_TYPE_EVENT_MOTION_TRACKER_KEY_EVENT_BD = 1200006404, + XR_TYPE_EVENT_EXT_DEV_CONNECT_STATE_EVENT_BD = 1200006405, + XR_TYPE_EVENT_EXT_DEV_BATTERY_STATE_EVENT_BD = 1200006406, + XR_TYPE_EVENT_EXT_DEV_PASS_DATA_EVENT_BD = 1200006407, + + //MR + XR_TYPE_SPATIAL_ENTITY_LOCATION_GET_INFO = 1200389002, + XR_TYPE_SPATIAL_ENTITY_LOCATION_DATA = 1200389003, + XR_TYPE_SPATIAL_ENTITY_SEMANTIC_GET_INFO = 1200389004, + XR_TYPE_SPATIAL_ENTITY_SEMANTIC_DATA = 1200389005, + XR_TYPE_SPATIAL_ENTITY_BOUNDING_BOX_2D_GET_INFO = 1200389006, + XR_TYPE_SPATIAL_ENTITY_BOUNDING_BOX_2D_DATA = 1200389007, + XR_TYPE_SPATIAL_ENTITY_POLYGON_GET_INFO = 1200389008, + XR_TYPE_SPATIAL_ENTITY_POLYGON_DATA = 1200389009, + XR_TYPE_SPATIAL_ENTITY_BOUNDING_BOX_3D_GET_INFO = 1200389010, + XR_TYPE_SPATIAL_ENTITY_BOUNDING_BOX_3D_DATA = 1200389011, + XR_TYPE_SPATIAL_ENTITY_TRIANGLE_MESH_GET_INFO = 1200389012, + XR_TYPE_SPATIAL_ENTITY_TRIANGLE_MESH_DATA = 1200389013, + XR_TYPE_SENSE_DATA_PROVIDER_START_COMPLETION = 1200389014, + XR_TYPE_EVENT_DATA_SENSE_DATA_PROVIDER_STATE_CHANGED = 1200389015, + XR_TYPE_SENSE_DATA_FILTER_UUID = 1200389016, + XR_TYPE_SENSE_DATA_FILTER_SEMANTIC = 1200389017, + XR_TYPE_SENSE_DATA_QUERY_INFO = 1200389018, + XR_TYPE_SENSE_DATA_QUERY_COMPLETION = 1200389019, + XR_TYPE_QUERIED_SENSE_DATA_GET_INFO = 1200389020, + XR_TYPE_EVENT_DATA_SENSE_DATA_UPDATED = 1200389023, + XR_TYPE_SPATIAL_ENTITY_ANCHOR_RETRIEVE_INFO = 1200389025, + XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_ANCHOR = 1200390001, + XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO = 1200390002, + XR_TYPE_SPATIAL_ANCHOR_CREATE_COMPLETION = 1200390003, + XR_TYPE_SPATIAL_ANCHOR_PERSIST_INFO = 1200390004, + XR_TYPE_SPATIAL_ANCHOR_PERSIST_COMPLETION = 1200390005, + XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_INFO = 1200390006, + XR_TYPE_SPATIAL_ANCHOR_UNPERSIST_COMPLETION = 1200390007, + XR_TYPE_SCENE_CAPTURE_START_COMPLETION = 1200392002, + XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SCENE_CAPTURE = 1200392003, + XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_MESH = 1200393001, + XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_AUTO_SCENE_CAPTURE = 1200394001, + XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SEMI_AUTO_SCENE_CAPTURE = 1200395001, + + + XR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF + } + + public enum XrDeviceEventType + { + XR_DEVICE_CONNECTCHANGED = 0, + XR_DEVICE_MAIN_CHANGED = 1, + XR_DEVICE_VERSION = 2, + XR_DEVICE_SN = 3, + XR_DEVICE_BIND_STATUS = 4, + XR_STATION_STATUS = 5, + XR_DEVICE_IOBUSY = 6, + XR_DEVICE_OTASTAUS = 7, + XR_DEVICE_ID = 8, + XR_DEVICE_OTASATAION_PROGRESS = 9, + XR_DEVICE_OTASATAION_CODE = 10, + XR_DEVICE_OTACONTROLLER_PROGRESS = 11, + XR_DEVICE_OTACONTROLLER_CODE = 12, + XR_DEVICE_OTA_SUCCESS = 13, + XR_DEVICE_BLEMAC = 14, + XR_DEVICE_HANDNESS_CHANGED = 15, + XR_DEVICE_CHANNEL = 16, + XR_DEVICE_LOSSRATE = 17, + XR_DEVICE_THREAD_STARTED = 18, + XR_DEVICE_MENUPRESSED_STATE =19, + XR_DEVICE_HANDTRACKING_SETTING = 20, + XR_DEVICE_INPUTDEVICE_CHANGED = 21, + XR_DEVICE_SYSTEMGESTURE_STATE = 22, + XR_DEVICE_FITNESSBAND_STATE = 23, + XR_DEVICE_FITNESSBAND_BATTERY = 24, + XR_DEVICE_BODYTRACKING_STATE_ERROR_CODE = 25, + XR_DEVICE_BODYTRACKING_ACTION = 26 + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Type.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Type.cs.meta new file mode 100644 index 0000000..6f6ee8c --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Features/Utils/PXR_Type.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b4027bcf9e134f978996e95208fbfdf1 +timeCreated: 1721811878 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions.meta new file mode 100644 index 0000000..b08745d --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6d463d97699ebcb448ccf069a88807c8 +timeCreated: 1606858557 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4ControllerProfile.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4ControllerProfile.cs new file mode 100644 index 0000000..3e0f1e7 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4ControllerProfile.cs @@ -0,0 +1,736 @@ +using System.Collections.Generic; +using UnityEngine.Scripting; +using UnityEngine.XR.OpenXR.Input; +using UnityEngine.InputSystem.Layouts; +using UnityEngine.InputSystem.Controls; +using UnityEngine.InputSystem.XR; + +#if UNITY_EDITOR +using UnityEditor; +#endif +#if USE_INPUT_SYSTEM_POSE_CONTROL +using PoseControl = UnityEngine.InputSystem.XR.PoseControl; +#else +using PoseControl = UnityEngine.XR.OpenXR.Input.PoseControl; +#endif + +namespace UnityEngine.XR.OpenXR.Features.Interactions +{ + /// + /// This enables the use of PICO TouchControllers interaction profiles in OpenXR. + /// +#if UNITY_EDITOR + [UnityEditor.XR.OpenXR.Features.OpenXRFeature(UiName = "PICO4 Touch Controller Profile", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + Company = "PICO", + Desc = "Allows for mapping input to the PICO4 Touch Controller interaction profile.", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + Category = UnityEditor.XR.OpenXR.Features.FeatureCategory.Interaction, + FeatureId = featureId + )] +#endif + public class PICO4ControllerProfile : OpenXRInteractionFeature + { + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "com.unity.openxr.feature.input.PICO4touch"; + + /// + /// An Input System device based on the hand interaction profile in the PICO Touch Controller. + /// + [Preserve, InputControlLayout(displayName = "PICO4 Touch Controller (OpenXR)", commonUsages = new[] { "LeftHand", "RightHand" })] + public class PICO4TouchController : XRControllerWithRumble + { + /// + /// A [Vector2Control](xref:UnityEngine.InputSystem.Controls.Vector2Control) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "Primary2DAxis", "Joystick" }, usage = "Primary2DAxis")] + public Vector2Control thumbstick { get; private set; } + + /// + /// A [AxisControl](xref:UnityEngine.InputSystem.Controls.AxisControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "GripAxis", "squeeze" }, usage = "Grip")] + public AxisControl grip { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "GripButton", "squeezeClicked" }, usage = "GripButton")] + public ButtonControl gripPressed { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings. + /// + [Preserve, InputControl(aliases = new[] { "Primary", "menuButton" }, usage = "Menu")] + public ButtonControl menu { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings. + /// + [Preserve, InputControl(aliases = new[] { "systemButton" }, usage = "system")] + public ButtonControl system { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "A", "X", "buttonA", "buttonX" }, usage = "PrimaryButton")] + public ButtonControl primaryButton { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "ATouched", "XTouched", "ATouch", "XTouch", "buttonATouched", "buttonXTouched" }, usage = "PrimaryTouch")] + public ButtonControl primaryTouched { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "B", "Y", "buttonB", "buttonY" }, usage = "SecondaryButton")] + public ButtonControl secondaryButton { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "BTouched", "YTouched", "BTouch", "YTouch", "buttonBTouched", "buttonYTouched" }, usage = "SecondaryTouch")] + public ButtonControl secondaryTouched { get; private set; } + + /// + /// A [AxisControl](xref:UnityEngine.InputSystem.Controls.AxisControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(usage = "Trigger")] + public AxisControl trigger { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "indexButton", "indexTouched", "triggerbutton" }, usage = "TriggerButton")] + public ButtonControl triggerPressed { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "indexTouch", "indexNearTouched" }, usage = "TriggerTouch")] + public ButtonControl triggerTouched { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "JoystickOrPadPressed", "thumbstickClick", "joystickClicked" }, usage = "Primary2DAxisClick")] + public ButtonControl thumbstickClicked { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "JoystickOrPadTouched", "thumbstickTouch", "joystickTouched" }, usage = "Primary2DAxisTouch")] + public ButtonControl thumbstickTouched { get; private set; } + /// + /// A that represents the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, aliases = new[] { "device", "gripPose" }, usage = "Device")] + public PoseControl devicePose { get; private set; } + + /// + /// A that represents the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, alias = "aimPose", usage = "Pointer")] + public PoseControl pointer { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) required for backwards compatibility with the XRSDK layouts. This represents the overall tracking state of the device. This value is equivalent to mapping devicePose/isTracked. + /// + [Preserve, InputControl(offset = 28, usage = "IsTracked")] + new public ButtonControl isTracked { get; private set; } + + /// + /// A [IntegerControl](xref:UnityEngine.InputSystem.Controls.IntegerControl) required for backwards compatibility with the XRSDK layouts. This represents the bit flag set to indicate what data is valid. This value is equivalent to mapping devicePose/trackingState. + /// + [Preserve, InputControl(offset = 32, usage = "TrackingState")] + new public IntegerControl trackingState { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the device position. For the PICO Touch device, this is both the grip and the pointer position. This value is equivalent to mapping devicePose/position. + /// + [Preserve, InputControl(offset = 36, noisy = true, alias = "gripPosition")] + new public Vector3Control devicePosition { get; private set; } + + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the device orientation. For the PICO Touch device, this is both the grip and the pointer rotation. This value is equivalent to mapping devicePose/rotation. + /// + [Preserve, InputControl(offset = 48, noisy = true, alias = "gripOrientation")] + new public QuaternionControl deviceRotation { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for back compatibility with the XRSDK layouts. This is the pointer position. This value is equivalent to mapping pointerPose/position. + /// + [Preserve, InputControl(offset = 96)] + public Vector3Control pointerPosition { get; private set; } + + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the pointer rotation. This value is equivalent to mapping pointerPose/rotation. + /// + [Preserve, InputControl(offset = 108, alias = "pointerOrientation")] + public QuaternionControl pointerRotation { get; private set; } + + /// + /// A that represents the binding. + /// + [Preserve, InputControl(usage = "Haptic")] + public HapticControl haptic { get; private set; } + + [Preserve, InputControl(usage = "BatteryLevel")] + public AxisControl batteryLevel { get; private set; } + + /// + /// Internal call used to assign controls to the the correct element. + /// + protected override void FinishSetup() + { + base.FinishSetup(); + thumbstick = GetChildControl("thumbstick"); + trigger = GetChildControl("trigger"); + triggerPressed = GetChildControl("triggerPressed"); + triggerTouched = GetChildControl("triggerTouched"); + grip = GetChildControl("grip"); + gripPressed = GetChildControl("gripPressed"); + menu = GetChildControl("menu"); + primaryButton = GetChildControl("primaryButton"); + primaryTouched = GetChildControl("primaryTouched"); + secondaryButton = GetChildControl("secondaryButton"); + secondaryTouched = GetChildControl("secondaryTouched"); + thumbstickClicked = GetChildControl("thumbstickClicked"); + thumbstickTouched = GetChildControl("thumbstickTouched"); + + devicePose = GetChildControl("devicePose"); + pointer = GetChildControl("pointer"); + + isTracked = GetChildControl("isTracked"); + trackingState = GetChildControl("trackingState"); + devicePosition = GetChildControl("devicePosition"); + deviceRotation = GetChildControl("deviceRotation"); + pointerPosition = GetChildControl("pointerPosition"); + pointerRotation = GetChildControl("pointerRotation"); + + haptic = GetChildControl("haptic"); + batteryLevel = GetChildControl("BatteryLevel"); + } + } + + public const string profile = "/interaction_profiles/bytedance/pico4_controller"; + + // Available Bindings + // Left Hand Only + /// + /// Constant for a boolean interaction binding '.../input/x/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonX = "/input/x/click"; + /// + /// Constant for a boolean interaction binding '.../input/x/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonXTouch = "/input/x/touch"; + /// + /// Constant for a boolean interaction binding '.../input/y/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonY = "/input/y/click"; + /// + /// Constant for a boolean interaction binding '.../input/y/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonYTouch = "/input/y/touch"; + + // Right Hand Only + /// + /// Constant for a boolean interaction binding '.../input/a/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonA = "/input/a/click"; + /// + /// Constant for a boolean interaction binding '.../input/a/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonATouch = "/input/a/touch"; + /// + /// Constant for a boolean interaction binding '..."/input/b/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonB = "/input/b/click"; + /// + /// Constant for a boolean interaction binding '.../input/b/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonBTouch = "/input/b/touch"; + + // Both Hands + /// + /// Constant for a boolean interaction binding '.../input/menu/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string menu = "/input/menu/click"; + /// + /// Constant for a boolean interaction binding '.../input/system/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs.(may not be available for application use) + /// + public const string system = "/input/system/click"; + /// + /// Constant for a float interaction binding '.../input/trigger/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string triggerClick = "/input/trigger/click"; + /// + /// Constant for a float interaction binding '.../input/trigger/value' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string trigger = "/input/trigger/value"; + /// + /// Constant for a boolean interaction binding '.../input/trigger/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string triggerTouch = "/input/trigger/touch"; + /// + /// Constant for a Vector2 interaction binding '.../input/thumbstick' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstick = "/input/thumbstick"; + /// + /// Constant for a boolean interaction binding '.../input/thumbstick/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstickClick = "/input/thumbstick/click"; + /// + /// Constant for a boolean interaction binding '.../input/thumbstick/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstickTouch = "/input/thumbstick/touch"; + /// + /// Constant for a float interaction binding '.../input/squeeze/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string squeezeClick = "/input/squeeze/click"; + /// + /// Constant for a float interaction binding '.../input/squeeze/value' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string squeezeValue = "/input/squeeze/value"; + /// + /// Constant for a pose interaction binding '.../input/grip/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string grip = "/input/grip/pose"; + /// + /// Constant for a pose interaction binding '.../input/aim/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string aim = "/input/aim/pose"; + /// + /// Constant for a haptic interaction binding '.../output/haptic' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string haptic = "/output/haptic"; + + public const string batteryLevel = "/input/battery/value"; + + private const string kDeviceLocalizedName = "PICO4 Touch Controller OpenXR"; + + /// + /// The OpenXR Extension string. This extension defines the interaction profile for PICO Neo3 and PICO 4 Controllers. + /// /// + public const string extensionString = "XR_BD_controller_interaction"; + + /// + protected override void RegisterDeviceLayout() + { + InputSystem.InputSystem.RegisterLayout(typeof(PICO4TouchController), + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(kDeviceLocalizedName)); + } + + /// + protected override void UnregisterDeviceLayout() + { + InputSystem.InputSystem.RemoveLayout(nameof(PICO4TouchController)); + } + + /// + protected override void RegisterActionMapsWithRuntime() + { + ActionMapConfig actionMap = new ActionMapConfig() + { + name = "PICO4TouchController", + localizedName = kDeviceLocalizedName, + desiredInteractionProfile = profile, + manufacturer = "PICO", + serialNumber = "", + deviceInfos = new List() + { + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics)(InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Left), + userPath = UserPaths.leftHand + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics)(InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Right), + userPath = UserPaths.rightHand + } + }, + actions = new List() + { + // Grip + new ActionConfig() + { + name = "grip", + localizedName = "Grip", + type = ActionType.Axis1D, + usages = new List() + { + "Grip" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = squeezeValue, + interactionProfileName = profile, + } + } + }, + // Grip Pressed + new ActionConfig() + { + name = "gripPressed", + localizedName = "Grip Pressed", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = squeezeClick, + interactionProfileName = profile, + } + } + }, + //A / X Press + new ActionConfig() + { + name = "primaryButton", + localizedName = "Primary Button", + type = ActionType.Binary, + usages = new List() + { + "PrimaryButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonX, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonA, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + //A / X Touch + new ActionConfig() + { + name = "primaryTouched", + localizedName = "Primary Touched", + type = ActionType.Binary, + usages = new List() + { + "PrimaryTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonXTouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonATouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + //B / Y Press + new ActionConfig() + { + name = "secondaryButton", + localizedName = "Secondary Button", + type = ActionType.Binary, + usages = new List() + { + "SecondaryButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonY, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonB, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + //B / Y Touch + new ActionConfig() + { + name = "secondaryTouched", + localizedName = "Secondary Touched", + type = ActionType.Binary, + usages = new List() + { + "SecondaryTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonYTouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonBTouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "Menu" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "system", + type = ActionType.Binary, + usages = new List() + { + "System" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + } + } + }, + // Trigger + new ActionConfig() + { + name = "trigger", + localizedName = "Trigger", + type = ActionType.Axis1D, + usages = new List() + { + "Trigger" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trigger, + interactionProfileName = profile, + } + } + }, + // Trigger Pressed + new ActionConfig() + { + name = "triggerPressed", + localizedName = "Trigger Pressed", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + //Trigger Touch + new ActionConfig() + { + name = "triggerTouched", + localizedName = "Trigger Touched", + type = ActionType.Binary, + usages = new List() + { + "TriggerTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerTouch, + interactionProfileName = profile, + } + } + }, + // Joystick + new ActionConfig() + { + name = "thumbstick", + localizedName = "Thumbstick", + type = ActionType.Axis2D, + usages = new List() + { + "Primary2DAxis" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstick, + interactionProfileName = profile, + } + } + }, + //Thumbstick Clicked + new ActionConfig() + { + name = "thumbstickClicked", + localizedName = "Thumbstick Clicked", + type = ActionType.Binary, + usages = new List() + { + "Primary2DAxisClick" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstickClick, + interactionProfileName = profile, + } + } + }, + //Thumbstick Touched + new ActionConfig() + { + name = "thumbstickTouched", + localizedName = "Thumbstick Touched", + type = ActionType.Binary, + usages = new List() + { + "Primary2DAxisTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstickTouch, + interactionProfileName = profile, + } + } + }, + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Device Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = grip, + interactionProfileName = profile, + } + } + }, + // Pointer Pose + new ActionConfig() + { + name = "pointer", + localizedName = "Pointer Pose", + type = ActionType.Pose, + usages = new List() + { + "Pointer" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = aim, + interactionProfileName = profile, + } + } + }, + new ActionConfig() + { + name = "batteryLevel", + localizedName = "BatteryLevel", + type = ActionType.Axis1D, + usages = new List() + { + "BatteryLevel" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = batteryLevel, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } + }; + + AddActionMap(actionMap); + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4ControllerProfile.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4ControllerProfile.cs.meta new file mode 100644 index 0000000..1874ae9 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4ControllerProfile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e2a7d8f73c864e74eb753124087176f4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4UltraControllerProfile.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4UltraControllerProfile.cs new file mode 100644 index 0000000..596a48e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4UltraControllerProfile.cs @@ -0,0 +1,737 @@ +using System.Collections.Generic; +using UnityEngine.Scripting; +using UnityEngine.XR.OpenXR.Input; +using UnityEngine.InputSystem.Layouts; +using UnityEngine.InputSystem.Controls; +using UnityEngine.InputSystem.XR; + +#if UNITY_EDITOR +using UnityEditor; +#endif +#if USE_INPUT_SYSTEM_POSE_CONTROL +using PoseControl = UnityEngine.InputSystem.XR.PoseControl; +#else +using PoseControl = UnityEngine.XR.OpenXR.Input.PoseControl; +#endif + +namespace UnityEngine.XR.OpenXR.Features.Interactions +{ + /// + /// This enables the use of PICO TouchControllers interaction profiles in OpenXR. + /// +#if UNITY_EDITOR + [UnityEditor.XR.OpenXR.Features.OpenXRFeature(UiName = "PICO4 Ultra Touch Controller Profile", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + Company = "PICO", + Desc = "Allows for mapping input to the PICO4 Ultra Touch Controller interaction profile.", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + Category = UnityEditor.XR.OpenXR.Features.FeatureCategory.Interaction, + FeatureId = featureId + )] +#endif + public class PICO4UltraControllerProfile : OpenXRInteractionFeature + { + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "com.unity.openxr.feature.input.PICO4Ultratouch"; + + /// + /// An Input System device based on the hand interaction profile in the PICO Touch Controller. + /// + [Preserve, InputControlLayout(displayName = "PICO4 Ultra Touch Controller (OpenXR)", commonUsages = new[] { "LeftHand", "RightHand" })] + public class PICO4UltraController : XRControllerWithRumble + { + /// + /// A [Vector2Control](xref:UnityEngine.InputSystem.Controls.Vector2Control) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "Primary2DAxis", "Joystick" }, usage = "Primary2DAxis")] + public Vector2Control thumbstick { get; private set; } + + /// + /// A [AxisControl](xref:UnityEngine.InputSystem.Controls.AxisControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "GripAxis", "squeeze" }, usage = "Grip")] + public AxisControl grip { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "GripButton", "squeezeClicked" }, usage = "GripButton")] + public ButtonControl gripPressed { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings. + /// + [Preserve, InputControl(aliases = new[] { "Primary", "menuButton" }, usage = "Menu")] + public ButtonControl menu { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings. + /// + [Preserve, InputControl(aliases = new[] { "systemButton" }, usage = "system")] + public ButtonControl system { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "A", "X", "buttonA", "buttonX" }, usage = "PrimaryButton")] + public ButtonControl primaryButton { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "ATouched", "XTouched", "ATouch", "XTouch", "buttonATouched", "buttonXTouched" }, usage = "PrimaryTouch")] + public ButtonControl primaryTouched { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "B", "Y", "buttonB", "buttonY" }, usage = "SecondaryButton")] + public ButtonControl secondaryButton { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "BTouched", "YTouched", "BTouch", "YTouch", "buttonBTouched", "buttonYTouched" }, usage = "SecondaryTouch")] + public ButtonControl secondaryTouched { get; private set; } + + /// + /// A [AxisControl](xref:UnityEngine.InputSystem.Controls.AxisControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(usage = "Trigger")] + public AxisControl trigger { get; private set; } + + [Preserve, InputControl(usage = "BatteryLevel")] + public AxisControl batteryLevel { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "indexButton", "indexTouched", "triggerbutton" }, usage = "TriggerButton")] + public ButtonControl triggerPressed { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "indexTouch", "indexNearTouched" }, usage = "TriggerTouch")] + public ButtonControl triggerTouched { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "JoystickOrPadPressed", "thumbstickClick", "joystickClicked" }, usage = "Primary2DAxisClick")] + public ButtonControl thumbstickClicked { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "JoystickOrPadTouched", "thumbstickTouch", "joystickTouched" }, usage = "Primary2DAxisTouch")] + public ButtonControl thumbstickTouched { get; private set; } + /// + /// A that represents the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, aliases = new[] { "device", "gripPose" }, usage = "Device")] + public PoseControl devicePose { get; private set; } + + /// + /// A that represents the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, alias = "aimPose", usage = "Pointer")] + public PoseControl pointer { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) required for backwards compatibility with the XRSDK layouts. This represents the overall tracking state of the device. This value is equivalent to mapping devicePose/isTracked. + /// + [Preserve, InputControl(offset = 28, usage = "IsTracked")] + new public ButtonControl isTracked { get; private set; } + + /// + /// A [IntegerControl](xref:UnityEngine.InputSystem.Controls.IntegerControl) required for backwards compatibility with the XRSDK layouts. This represents the bit flag set to indicate what data is valid. This value is equivalent to mapping devicePose/trackingState. + /// + [Preserve, InputControl(offset = 32, usage = "TrackingState")] + new public IntegerControl trackingState { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the device position. For the PICO Touch device, this is both the grip and the pointer position. This value is equivalent to mapping devicePose/position. + /// + [Preserve, InputControl(offset = 36, noisy = true, alias = "gripPosition")] + new public Vector3Control devicePosition { get; private set; } + + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the device orientation. For the PICO Touch device, this is both the grip and the pointer rotation. This value is equivalent to mapping devicePose/rotation. + /// + [Preserve, InputControl(offset = 48, noisy = true, alias = "gripOrientation")] + new public QuaternionControl deviceRotation { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for back compatibility with the XRSDK layouts. This is the pointer position. This value is equivalent to mapping pointerPose/position. + /// + [Preserve, InputControl(offset = 96)] + public Vector3Control pointerPosition { get; private set; } + + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the pointer rotation. This value is equivalent to mapping pointerPose/rotation. + /// + [Preserve, InputControl(offset = 108, alias = "pointerOrientation")] + public QuaternionControl pointerRotation { get; private set; } + + /// + /// A that represents the binding. + /// + [Preserve, InputControl(usage = "Haptic")] + public HapticControl haptic { get; private set; } + + /// + /// Internal call used to assign controls to the the correct element. + /// + protected override void FinishSetup() + { + base.FinishSetup(); + thumbstick = GetChildControl("thumbstick"); + trigger = GetChildControl("trigger"); + triggerPressed = GetChildControl("triggerPressed"); + triggerTouched = GetChildControl("triggerTouched"); + batteryLevel = GetChildControl("BatteryLevel"); + grip = GetChildControl("grip"); + gripPressed = GetChildControl("gripPressed"); + menu = GetChildControl("menu"); + primaryButton = GetChildControl("primaryButton"); + primaryTouched = GetChildControl("primaryTouched"); + secondaryButton = GetChildControl("secondaryButton"); + secondaryTouched = GetChildControl("secondaryTouched"); + thumbstickClicked = GetChildControl("thumbstickClicked"); + thumbstickTouched = GetChildControl("thumbstickTouched"); + + devicePose = GetChildControl("devicePose"); + pointer = GetChildControl("pointer"); + + isTracked = GetChildControl("isTracked"); + trackingState = GetChildControl("trackingState"); + devicePosition = GetChildControl("devicePosition"); + deviceRotation = GetChildControl("deviceRotation"); + pointerPosition = GetChildControl("pointerPosition"); + pointerRotation = GetChildControl("pointerRotation"); + + haptic = GetChildControl("haptic"); + } + } + + public const string profile = "/interaction_profiles/bytedance/pico4s_controller"; + + // Available Bindings + // Left Hand Only + /// + /// Constant for a boolean interaction binding '.../input/x/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonX = "/input/x/click"; + /// + /// Constant for a boolean interaction binding '.../input/x/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonXTouch = "/input/x/touch"; + /// + /// Constant for a boolean interaction binding '.../input/y/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonY = "/input/y/click"; + /// + /// Constant for a boolean interaction binding '.../input/y/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonYTouch = "/input/y/touch"; + + // Right Hand Only + /// + /// Constant for a boolean interaction binding '.../input/a/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonA = "/input/a/click"; + /// + /// Constant for a boolean interaction binding '.../input/a/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonATouch = "/input/a/touch"; + /// + /// Constant for a boolean interaction binding '..."/input/b/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonB = "/input/b/click"; + /// + /// Constant for a boolean interaction binding '.../input/b/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonBTouch = "/input/b/touch"; + + // Both Hands + /// + /// Constant for a boolean interaction binding '.../input/menu/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string menu = "/input/menu/click"; + /// + /// Constant for a boolean interaction binding '.../input/system/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs.(may not be available for application use) + /// + public const string system = "/input/system/click"; + /// + /// Constant for a float interaction binding '.../input/trigger/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string triggerClick = "/input/trigger/click"; + /// + /// Constant for a float interaction binding '.../input/trigger/value' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string trigger = "/input/trigger/value"; + /// + /// Constant for a boolean interaction binding '.../input/trigger/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string triggerTouch = "/input/trigger/touch"; + /// + /// Constant for a Vector2 interaction binding '.../input/thumbstick' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstick = "/input/thumbstick"; + /// + /// Constant for a boolean interaction binding '.../input/thumbstick/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstickClick = "/input/thumbstick/click"; + /// + /// Constant for a boolean interaction binding '.../input/thumbstick/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstickTouch = "/input/thumbstick/touch"; + /// + /// Constant for a float interaction binding '.../input/squeeze/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string squeezeClick = "/input/squeeze/click"; + /// + /// Constant for a float interaction binding '.../input/squeeze/value' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string squeezeValue = "/input/squeeze/value"; + /// + /// Constant for a pose interaction binding '.../input/grip/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string grip = "/input/grip/pose"; + /// + /// Constant for a pose interaction binding '.../input/aim/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string aim = "/input/aim/pose"; + /// + /// Constant for a haptic interaction binding '.../output/haptic' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string haptic = "/output/haptic"; + + public const string batteryLevel = "/input/battery/value"; + + private const string kDeviceLocalizedName = "PICO4 Ultra Touch Controller OpenXR"; + + /// + /// The OpenXR Extension string. This extension defines the interaction profile for PICO Neo3 and PICO 4 Controllers. + /// /// + public const string extensionString = "XR_BD_controller_interaction"; + + /// + protected override void RegisterDeviceLayout() + { + InputSystem.InputSystem.RegisterLayout(typeof(PICO4UltraController), + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(kDeviceLocalizedName)); + } + + /// + protected override void UnregisterDeviceLayout() + { + InputSystem.InputSystem.RemoveLayout(nameof(PICO4UltraController)); + } + + /// + protected override void RegisterActionMapsWithRuntime() + { + ActionMapConfig actionMap = new ActionMapConfig() + { + name = "PICO4UltraController", + localizedName = kDeviceLocalizedName, + desiredInteractionProfile = profile, + manufacturer = "PICO", + serialNumber = "", + deviceInfos = new List() + { + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics)(InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Left), + userPath = UserPaths.leftHand + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics)(InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Right), + userPath = UserPaths.rightHand + } + }, + actions = new List() + { + // Grip + new ActionConfig() + { + name = "grip", + localizedName = "Grip", + type = ActionType.Axis1D, + usages = new List() + { + "Grip" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = squeezeValue, + interactionProfileName = profile, + } + } + }, + // Grip Pressed + new ActionConfig() + { + name = "gripPressed", + localizedName = "Grip Pressed", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = squeezeClick, + interactionProfileName = profile, + } + } + }, + //A / X Press + new ActionConfig() + { + name = "primaryButton", + localizedName = "Primary Button", + type = ActionType.Binary, + usages = new List() + { + "PrimaryButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonX, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonA, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + //A / X Touch + new ActionConfig() + { + name = "primaryTouched", + localizedName = "Primary Touched", + type = ActionType.Binary, + usages = new List() + { + "PrimaryTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonXTouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonATouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + //B / Y Press + new ActionConfig() + { + name = "secondaryButton", + localizedName = "Secondary Button", + type = ActionType.Binary, + usages = new List() + { + "SecondaryButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonY, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonB, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + //B / Y Touch + new ActionConfig() + { + name = "secondaryTouched", + localizedName = "Secondary Touched", + type = ActionType.Binary, + usages = new List() + { + "SecondaryTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonYTouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonBTouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "Menu" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "system", + type = ActionType.Binary, + usages = new List() + { + "System" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + } + } + }, + // Trigger + new ActionConfig() + { + name = "trigger", + localizedName = "Trigger", + type = ActionType.Axis1D, + usages = new List() + { + "Trigger" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trigger, + interactionProfileName = profile, + } + } + }, + // Trigger Pressed + new ActionConfig() + { + name = "triggerPressed", + localizedName = "Trigger Pressed", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + //Trigger Touch + new ActionConfig() + { + name = "triggerTouched", + localizedName = "Trigger Touched", + type = ActionType.Binary, + usages = new List() + { + "TriggerTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerTouch, + interactionProfileName = profile, + } + } + }, + // Joystick + new ActionConfig() + { + name = "thumbstick", + localizedName = "Thumbstick", + type = ActionType.Axis2D, + usages = new List() + { + "Primary2DAxis" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstick, + interactionProfileName = profile, + } + } + }, + //Thumbstick Clicked + new ActionConfig() + { + name = "thumbstickClicked", + localizedName = "Thumbstick Clicked", + type = ActionType.Binary, + usages = new List() + { + "Primary2DAxisClick" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstickClick, + interactionProfileName = profile, + } + } + }, + //Thumbstick Touched + new ActionConfig() + { + name = "thumbstickTouched", + localizedName = "Thumbstick Touched", + type = ActionType.Binary, + usages = new List() + { + "Primary2DAxisTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstickTouch, + interactionProfileName = profile, + } + } + }, + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Device Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = grip, + interactionProfileName = profile, + } + } + }, + // Pointer Pose + new ActionConfig() + { + name = "pointer", + localizedName = "Pointer Pose", + type = ActionType.Pose, + usages = new List() + { + "Pointer" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = aim, + interactionProfileName = profile, + } + } + }, + // Trigger + new ActionConfig() + { + name = "batteryLevel", + localizedName = "BatteryLevel", + type = ActionType.Axis1D, + usages = new List() + { + "BatteryLevel" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = batteryLevel, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } + }; + + AddActionMap(actionMap); + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4UltraControllerProfile.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4UltraControllerProfile.cs.meta new file mode 100644 index 0000000..034fbea --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICO4UltraControllerProfile.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f528fb360066460c862f7a0ce1d8ad4c +timeCreated: 1712037227 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICOG3ControllerProfile.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICOG3ControllerProfile.cs new file mode 100644 index 0000000..8b765ab --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICOG3ControllerProfile.cs @@ -0,0 +1,490 @@ +using System.Collections.Generic; +using UnityEngine.Scripting; +using UnityEngine.XR.OpenXR.Input; +using UnityEngine.InputSystem.Layouts; +using UnityEngine.InputSystem.Controls; +using UnityEngine.InputSystem.XR; + +#if UNITY_EDITOR +using UnityEditor; +#endif +#if USE_INPUT_SYSTEM_POSE_CONTROL +using PoseControl = UnityEngine.InputSystem.XR.PoseControl; + +#else +using PoseControl = UnityEngine.XR.OpenXR.Input.PoseControl; +#endif + +namespace UnityEngine.XR.OpenXR.Features.Interactions +{ + /// + /// This enables the use of PICO TouchControllers interaction profiles in OpenXR. + /// +#if UNITY_EDITOR + [UnityEditor.XR.OpenXR.Features.OpenXRFeature(UiName = "PICOG3 Touch Controller Profile", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + Company = "PICO", + Desc = "Allows for mapping input to the PICOG3 Touch Controller interaction profile.", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + Category = UnityEditor.XR.OpenXR.Features.FeatureCategory.Interaction, + FeatureId = featureId + )] +#endif + public class PICOG3ControllerProfile : OpenXRInteractionFeature + { + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "com.unity.openxr.feature.input.PICOG3touch"; + + /// + /// An Input System device based on the hand interaction profile in the PICO Touch Controller. + /// + [Preserve, + InputControlLayout(displayName = "PICOG3 Touch Controller (OpenXR)", commonUsages = new[] { "LeftHand", "RightHand" })] + public class PICOG3TouchController : XRControllerWithRumble + { + /// + /// A [Vector2Control](xref:UnityEngine.InputSystem.Controls.Vector2Control) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "Primary2DAxis", "Joystick" }, usage = "Primary2DAxis")] + public Vector2Control thumbstick { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings. + /// + [Preserve, InputControl(aliases = new[] { "Primary", "menuButton" }, usage = "Menu")] + public ButtonControl menu { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings. + /// + [Preserve, InputControl(aliases = new[] { "systemButton" }, usage = "system")] + public ButtonControl system { get; private set; } + + /// + /// A [AxisControl](xref:UnityEngine.InputSystem.Controls.AxisControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(usage = "Trigger")] + public AxisControl trigger { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, + InputControl(aliases = new[] { "indexButton", "indexTouched", "triggerbutton" }, usage = "TriggerButton")] + public ButtonControl triggerPressed { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, + InputControl(aliases = new[] { "JoystickOrPadPressed", "thumbstickClick", "joystickClicked" }, + usage = "Primary2DAxisClick")] + public ButtonControl thumbstickClicked { get; private set; } + + /// + /// A [Vector2Control](xref:UnityEngine.InputSystem.Controls.Vector2Control) that represents information from the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "Primary2DAxis", "touchpadaxes", "touchpad" }, usage = "Primary2DAxis")] + public Vector2Control trackpad { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents information from the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "joystickorpadpressed", "touchpadpressed" }, usage = "Primary2DAxisClick")] + public ButtonControl trackpadClicked { get; private set; } + + /// + /// A that represents the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, aliases = new[] { "device", "gripPose" }, usage = "Device")] + public PoseControl devicePose { get; private set; } + + /// + /// A that represents the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, alias = "aimPose", usage = "Pointer")] + public PoseControl pointer { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) required for backwards compatibility with the XRSDK layouts. This represents the overall tracking state of the device. This value is equivalent to mapping devicePose/isTracked. + /// + [Preserve, InputControl(offset = 28, usage = "IsTracked")] + new public ButtonControl isTracked { get; private set; } + + /// + /// A [IntegerControl](xref:UnityEngine.InputSystem.Controls.IntegerControl) required for backwards compatibility with the XRSDK layouts. This represents the bit flag set to indicate what data is valid. This value is equivalent to mapping devicePose/trackingState. + /// + [Preserve, InputControl(offset = 32, usage = "TrackingState")] + new public IntegerControl trackingState { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the device position. For the PICO Touch device, this is both the grip and the pointer position. This value is equivalent to mapping devicePose/position. + /// + [Preserve, InputControl(offset = 36, noisy = true, alias = "gripPosition")] + new public Vector3Control devicePosition { get; private set; } + + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the device orientation. For the PICO Touch device, this is both the grip and the pointer rotation. This value is equivalent to mapping devicePose/rotation. + /// + [Preserve, InputControl(offset = 48, noisy = true, alias = "gripOrientation")] + new public QuaternionControl deviceRotation { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for back compatibility with the XRSDK layouts. This is the pointer position. This value is equivalent to mapping pointerPose/position. + /// + [Preserve, InputControl(offset = 96)] + public Vector3Control pointerPosition { get; private set; } + + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the pointer rotation. This value is equivalent to mapping pointerPose/rotation. + /// + [Preserve, InputControl(offset = 108, alias = "pointerOrientation")] + public QuaternionControl pointerRotation { get; private set; } + + [Preserve, InputControl(usage = "BatteryLevel")] + public AxisControl batteryLevel { get; private set; } + + /// + /// Internal call used to assign controls to the the correct element. + /// + protected override void FinishSetup() + { + base.FinishSetup(); + thumbstick = GetChildControl("thumbstick"); + // trigger = GetChildControl("trigger"); + trigger = GetChildControl("trigger"); + triggerPressed = GetChildControl("triggerPressed"); + trackpad = GetChildControl("trackpad"); + trackpadClicked = GetChildControl("trackpadClicked"); + menu = GetChildControl("menu"); + thumbstickClicked = GetChildControl("thumbstickClicked"); + + devicePose = GetChildControl("devicePose"); + pointer = GetChildControl("pointer"); + isTracked = GetChildControl("isTracked"); + trackingState = GetChildControl("trackingState"); + devicePosition = GetChildControl("devicePosition"); + deviceRotation = GetChildControl("deviceRotation"); + pointerPosition = GetChildControl("pointerPosition"); + pointerRotation = GetChildControl("pointerRotation"); + batteryLevel = GetChildControl("BatteryLevel"); + } + } + + public const string profile = "/interaction_profiles/bytedance/pico_g3_controller"; + + // Available Bindings + /// + /// Constant for a boolean interaction binding '.../input/thumbstick/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstickClick = "/input/thumbstick/click"; + + /// + /// Constant for a Vector2 interaction binding '.../input/thumbstick' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstick = "/input/thumbstick"; + + /// + /// Constant for a float interaction binding '.../input/trigger/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string triggerClick = "/input/trigger/click"; + + /// + /// Constant for a float interaction binding '.../input/trigger/value' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string trigger = "/input/trigger/value"; + + /// + /// Constant for a pose interaction binding '.../input/aim/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string aim = "/input/aim/pose"; + + /// + /// Constant for a boolean interaction binding '.../input/menu/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string menu = "/input/menu/click"; + + /// + /// Constant for a boolean interaction binding '.../input/system/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs.(may not be available for application use) + /// + public const string system = "/input/system/click"; + + /// + /// Constant for a Vector2 interaction binding '.../input/trackpad' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string trackpad = "/input/trackpad"; + /// + /// Constant for a boolean interaction binding '.../input/trackpad/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string trackpadClick = "/input/trackpad/click"; + + + /// + /// Constant for a pose interaction binding '.../input/grip/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string grip = "/input/grip/pose"; + + public const string batteryLevel = "/input/battery/value"; + + private const string kDeviceLocalizedName = "PICOG3 Touch Controller OpenXR"; + + /// + /// The OpenXR Extension string. This extension defines the interaction profile for PICO Neo3 and PICO 4 Controllers. + /// /// + public const string extensionString = "XR_BD_controller_interaction"; + + /// + protected override void RegisterDeviceLayout() + { + InputSystem.InputSystem.RegisterLayout(typeof(PICOG3TouchController), + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(kDeviceLocalizedName)); + } + + /// + protected override void UnregisterDeviceLayout() + { + InputSystem.InputSystem.RemoveLayout(nameof(PICOG3TouchController)); + } + + /// + protected override void RegisterActionMapsWithRuntime() + { + ActionMapConfig actionMap = new ActionMapConfig() + { + name = "PICOG3TouchController", + localizedName = kDeviceLocalizedName, + desiredInteractionProfile = profile, + manufacturer = "PICO", + serialNumber = "", + deviceInfos = new List() + { + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics)(InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Left), + userPath = UserPaths.leftHand + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics)(InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Right), + userPath = UserPaths.rightHand + } + }, + actions = new List() + { + new ActionConfig() + { + name = "trigger", + localizedName = "Trigger", + type = ActionType.Axis1D, + usages = new List() + { + "Trigger" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trigger, + interactionProfileName = profile, + } + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "Menu" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "system", + type = ActionType.Binary, + usages = new List() + { + "System" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + } + } + }, + // Trigger Pressed + new ActionConfig() + { + name = "triggerPressed", + localizedName = "Trigger Pressed", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + // Joystick + new ActionConfig() + { + name = "thumbstick", + localizedName = "Thumbstick", + type = ActionType.Axis2D, + usages = new List() + { + "Primary2DAxis" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstick, + interactionProfileName = profile, + } + } + }, + //Thumbstick Clicked + new ActionConfig() + { + name = "thumbstickClicked", + localizedName = "Thumbstick Clicked", + type = ActionType.Binary, + usages = new List() + { + "Primary2DAxisClick" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstickClick, + interactionProfileName = profile, + } + } + }, + new ActionConfig() + { + name = "trackpad", + localizedName = "Trackpad", + type = ActionType.Axis2D, + usages = new List() + { + "Primary2DAxis" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpad, + interactionProfileName = profile, + } + } + }, + new ActionConfig() + { + name = "trackpadClicked", + localizedName = "Trackpad Clicked", + type = ActionType.Binary, + usages = new List() + { + "Primary2DAxisClick" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trackpadClick, + interactionProfileName = profile, + } + } + }, + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Device Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = grip, + interactionProfileName = profile, + } + } + }, + new ActionConfig() + { + name = "batteryLevel", + localizedName = "BatteryLevel", + type = ActionType.Axis1D, + usages = new List() + { + "BatteryLevel" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = batteryLevel, + interactionProfileName = profile, + } + } + }, + // Pointer Pose + new ActionConfig() + { + name = "pointer", + localizedName = "Pointer Pose", + type = ActionType.Pose, + usages = new List() + { + "Pointer" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = aim, + interactionProfileName = profile, + } + } + }, + } + }; + + AddActionMap(actionMap); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICOG3ControllerProfile.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICOG3ControllerProfile.cs.meta new file mode 100644 index 0000000..807db9f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICOG3ControllerProfile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 21ea647c7f744df897be6365cbf559b7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICONeo3ControllerProfile.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICONeo3ControllerProfile.cs new file mode 100644 index 0000000..a8aee30 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICONeo3ControllerProfile.cs @@ -0,0 +1,732 @@ +using System.Collections.Generic; +using UnityEngine.Scripting; +using UnityEngine.XR.OpenXR.Input; +using UnityEngine.InputSystem.Layouts; +using UnityEngine.InputSystem.Controls; +using UnityEngine.InputSystem.XR; + +#if UNITY_EDITOR +using UnityEditor; +#endif +#if USE_INPUT_SYSTEM_POSE_CONTROL +using PoseControl = UnityEngine.InputSystem.XR.PoseControl; +#else +using PoseControl = UnityEngine.XR.OpenXR.Input.PoseControl; +#endif + +namespace UnityEngine.XR.OpenXR.Features.Interactions +{ + /// + /// This enables the use of PICO TouchControllers interaction profiles in OpenXR. + /// +#if UNITY_EDITOR + [UnityEditor.XR.OpenXR.Features.OpenXRFeature(UiName = "PICO Neo3 Touch Controller Profile", + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + Company = "PICO", + Desc = "Allows for mapping input to the PICO Neo3 Touch Controller interaction profile.", + OpenxrExtensionStrings = extensionString, + Version = "1.0.0", + Category = UnityEditor.XR.OpenXR.Features.FeatureCategory.Interaction, + FeatureId = featureId + )] +#endif + public class PICONeo3ControllerProfile : OpenXRInteractionFeature + { + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "com.unity.openxr.feature.input.PICONeo3touch"; + + /// + /// An Input System device based on the hand interaction profile in the PICO Touch Controller. + /// + [Preserve, InputControlLayout(displayName = "PICO Neo3 Touch Controller (OpenXR)", commonUsages = new[] { "LeftHand", "RightHand" })] + public class PICONeo3Controller : XRControllerWithRumble + { + /// + /// A [Vector2Control](xref:UnityEngine.InputSystem.Controls.Vector2Control) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "Primary2DAxis", "Joystick" }, usage = "Primary2DAxis")] + public Vector2Control thumbstick { get; private set; } + + /// + /// A [AxisControl](xref:UnityEngine.InputSystem.Controls.AxisControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "GripAxis", "squeeze" }, usage = "Grip")] + public AxisControl grip { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "GripButton", "squeezeClicked" }, usage = "GripButton")] + public ButtonControl gripPressed { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings. + /// + [Preserve, InputControl(aliases = new[] { "Primary", "menuButton" }, usage = "Menu")] + public ButtonControl menu { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings. + /// + [Preserve, InputControl(aliases = new[] { "systemButton" }, usage = "system")] + public ButtonControl system { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "A", "X", "buttonA", "buttonX" }, usage = "PrimaryButton")] + public ButtonControl primaryButton { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "ATouched", "XTouched", "ATouch", "XTouch", "buttonATouched", "buttonXTouched" }, usage = "PrimaryTouch")] + public ButtonControl primaryTouched { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "B", "Y", "buttonB", "buttonY" }, usage = "SecondaryButton")] + public ButtonControl secondaryButton { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR bindings, depending on handedness. + /// + [Preserve, InputControl(aliases = new[] { "BTouched", "YTouched", "BTouch", "YTouch", "buttonBTouched", "buttonYTouched" }, usage = "SecondaryTouch")] + public ButtonControl secondaryTouched { get; private set; } + + /// + /// A [AxisControl](xref:UnityEngine.InputSystem.Controls.AxisControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(usage = "Trigger")] + public AxisControl trigger { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "indexButton", "indexTouched", "triggerbutton" }, usage = "TriggerButton")] + public ButtonControl triggerPressed { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "indexTouch", "indexNearTouched" }, usage = "TriggerTouch")] + public ButtonControl triggerTouched { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "JoystickOrPadPressed", "thumbstickClick", "joystickClicked" }, usage = "Primary2DAxisClick")] + public ButtonControl thumbstickClicked { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) that represents the OpenXR binding. + /// + [Preserve, InputControl(aliases = new[] { "JoystickOrPadTouched", "thumbstickTouch", "joystickTouched" }, usage = "Primary2DAxisTouch")] + public ButtonControl thumbstickTouched { get; private set; } + /// + /// A that represents the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, aliases = new[] { "device", "gripPose" }, usage = "Device")] + public PoseControl devicePose { get; private set; } + + /// + /// A that represents the OpenXR binding. + /// + [Preserve, InputControl(offset = 0, alias = "aimPose", usage = "Pointer")] + public PoseControl pointer { get; private set; } + + /// + /// A [ButtonControl](xref:UnityEngine.InputSystem.Controls.ButtonControl) required for backwards compatibility with the XRSDK layouts. This represents the overall tracking state of the device. This value is equivalent to mapping devicePose/isTracked. + /// + [Preserve, InputControl(offset = 28, usage = "IsTracked")] + new public ButtonControl isTracked { get; private set; } + + /// + /// A [IntegerControl](xref:UnityEngine.InputSystem.Controls.IntegerControl) required for backwards compatibility with the XRSDK layouts. This represents the bit flag set to indicate what data is valid. This value is equivalent to mapping devicePose/trackingState. + /// + [Preserve, InputControl(offset = 32, usage = "TrackingState")] + new public IntegerControl trackingState { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for backwards compatibility with the XRSDK layouts. This is the device position. For the PICO Touch device, this is both the grip and the pointer position. This value is equivalent to mapping devicePose/position. + /// + [Preserve, InputControl(offset = 36, noisy = true, alias = "gripPosition")] + new public Vector3Control devicePosition { get; private set; } + + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the device orientation. For the PICO Touch device, this is both the grip and the pointer rotation. This value is equivalent to mapping devicePose/rotation. + /// + [Preserve, InputControl(offset = 48, noisy = true, alias = "gripOrientation")] + new public QuaternionControl deviceRotation { get; private set; } + + /// + /// A [Vector3Control](xref:UnityEngine.InputSystem.Controls.Vector3Control) required for back compatibility with the XRSDK layouts. This is the pointer position. This value is equivalent to mapping pointerPose/position. + /// + [Preserve, InputControl(offset = 96)] + public Vector3Control pointerPosition { get; private set; } + + /// + /// A [QuaternionControl](xref:UnityEngine.InputSystem.Controls.QuaternionControl) required for backwards compatibility with the XRSDK layouts. This is the pointer rotation. This value is equivalent to mapping pointerPose/rotation. + /// + [Preserve, InputControl(offset = 108, alias = "pointerOrientation")] + public QuaternionControl pointerRotation { get; private set; } + + /// + /// A that represents the binding. + /// + [Preserve, InputControl(usage = "Haptic")] + public HapticControl haptic { get; private set; } + [Preserve, InputControl(usage = "BatteryLevel")] + public AxisControl batteryLevel { get; private set; } + + /// + /// Internal call used to assign controls to the the correct element. + /// + protected override void FinishSetup() + { + base.FinishSetup(); + thumbstick = GetChildControl("thumbstick"); + trigger = GetChildControl("trigger"); + triggerPressed = GetChildControl("triggerPressed"); + triggerTouched = GetChildControl("triggerTouched"); + grip = GetChildControl("grip"); + gripPressed = GetChildControl("gripPressed"); + menu = GetChildControl("menu"); + primaryButton = GetChildControl("primaryButton"); + primaryTouched = GetChildControl("primaryTouched"); + secondaryButton = GetChildControl("secondaryButton"); + secondaryTouched = GetChildControl("secondaryTouched"); + thumbstickClicked = GetChildControl("thumbstickClicked"); + thumbstickTouched = GetChildControl("thumbstickTouched"); + + devicePose = GetChildControl("devicePose"); + pointer = GetChildControl("pointer"); + + isTracked = GetChildControl("isTracked"); + trackingState = GetChildControl("trackingState"); + devicePosition = GetChildControl("devicePosition"); + deviceRotation = GetChildControl("deviceRotation"); + pointerPosition = GetChildControl("pointerPosition"); + pointerRotation = GetChildControl("pointerRotation"); + batteryLevel = GetChildControl("BatteryLevel"); + haptic = GetChildControl("haptic"); + } + } + + public const string profile = "/interaction_profiles/bytedance/pico_neo3_controller"; + + // Available Bindings + // Left Hand Only + /// + /// Constant for a boolean interaction binding '.../input/x/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonX = "/input/x/click"; + /// + /// Constant for a boolean interaction binding '.../input/x/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonXTouch = "/input/x/touch"; + /// + /// Constant for a boolean interaction binding '.../input/y/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonY = "/input/y/click"; + /// + /// Constant for a boolean interaction binding '.../input/y/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonYTouch = "/input/y/touch"; + + // Right Hand Only + /// + /// Constant for a boolean interaction binding '.../input/a/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonA = "/input/a/click"; + /// + /// Constant for a boolean interaction binding '.../input/a/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonATouch = "/input/a/touch"; + /// + /// Constant for a boolean interaction binding '..."/input/b/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonB = "/input/b/click"; + /// + /// Constant for a boolean interaction binding '.../input/b/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. This binding is only available for the user path. + /// + public const string buttonBTouch = "/input/b/touch"; + + // Both Hands + /// + /// Constant for a boolean interaction binding '.../input/menu/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string menu = "/input/menu/click"; + /// + /// Constant for a boolean interaction binding '.../input/system/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs.(may not be available for application use) + /// + public const string system = "/input/system/click"; + /// + /// Constant for a float interaction binding '.../input/trigger/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string triggerClick = "/input/trigger/click"; + /// + /// Constant for a float interaction binding '.../input/trigger/value' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string trigger = "/input/trigger/value"; + /// + /// Constant for a boolean interaction binding '.../input/trigger/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string triggerTouch = "/input/trigger/touch"; + /// + /// Constant for a Vector2 interaction binding '.../input/thumbstick' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstick = "/input/thumbstick"; + /// + /// Constant for a boolean interaction binding '.../input/thumbstick/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstickClick = "/input/thumbstick/click"; + /// + /// Constant for a boolean interaction binding '.../input/thumbstick/touch' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string thumbstickTouch = "/input/thumbstick/touch"; + /// + /// Constant for a float interaction binding '.../input/squeeze/click' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string squeezeClick = "/input/squeeze/click"; + /// + /// Constant for a float interaction binding '.../input/squeeze/value' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string squeezeValue = "/input/squeeze/value"; + /// + /// Constant for a pose interaction binding '.../input/grip/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string grip = "/input/grip/pose"; + /// + /// Constant for a pose interaction binding '.../input/aim/pose' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string aim = "/input/aim/pose"; + /// + /// Constant for a haptic interaction binding '.../output/haptic' OpenXR Input Binding. Used by input subsystem to bind actions to physical inputs. + /// + public const string haptic = "/output/haptic"; + public const string batteryLevel = "/input/battery/value"; + + private const string kDeviceLocalizedName = "PICO Neo3 Touch Controller OpenXR"; + + /// + /// The OpenXR Extension string. This extension defines the interaction profile for PICO Neo3 and PICO 4 Controllers. + /// /// + public const string extensionString = "XR_BD_controller_interaction"; + + /// + protected override void RegisterDeviceLayout() + { + InputSystem.InputSystem.RegisterLayout(typeof(PICONeo3Controller), + matches: new InputDeviceMatcher() + .WithInterface(XRUtilities.InterfaceMatchAnyVersion) + .WithProduct(kDeviceLocalizedName)); + } + + /// + protected override void UnregisterDeviceLayout() + { + InputSystem.InputSystem.RemoveLayout(nameof(PICONeo3Controller)); + } + + /// + protected override void RegisterActionMapsWithRuntime() + { + ActionMapConfig actionMap = new ActionMapConfig() + { + name = "PICONeo3controller", + localizedName = kDeviceLocalizedName, + desiredInteractionProfile = profile, + manufacturer = "PICO", + serialNumber = "", + deviceInfos = new List() + { + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics)(InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Left), + userPath = UserPaths.leftHand + }, + new DeviceConfig() + { + characteristics = (InputDeviceCharacteristics)(InputDeviceCharacteristics.HeldInHand | InputDeviceCharacteristics.TrackedDevice | InputDeviceCharacteristics.Controller | InputDeviceCharacteristics.Right), + userPath = UserPaths.rightHand + } + }, + actions = new List() + { + // Grip + new ActionConfig() + { + name = "grip", + localizedName = "Grip", + type = ActionType.Axis1D, + usages = new List() + { + "Grip" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = squeezeValue, + interactionProfileName = profile, + } + } + }, + // Grip Pressed + new ActionConfig() + { + name = "gripPressed", + localizedName = "Grip Pressed", + type = ActionType.Binary, + usages = new List() + { + "GripButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = squeezeClick, + interactionProfileName = profile, + } + } + }, + //A / X Press + new ActionConfig() + { + name = "primaryButton", + localizedName = "Primary Button", + type = ActionType.Binary, + usages = new List() + { + "PrimaryButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonX, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonA, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + //A / X Touch + new ActionConfig() + { + name = "primaryTouched", + localizedName = "Primary Touched", + type = ActionType.Binary, + usages = new List() + { + "PrimaryTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonXTouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonATouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + //B / Y Press + new ActionConfig() + { + name = "secondaryButton", + localizedName = "Secondary Button", + type = ActionType.Binary, + usages = new List() + { + "SecondaryButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonY, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonB, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + //B / Y Touch + new ActionConfig() + { + name = "secondaryTouched", + localizedName = "Secondary Touched", + type = ActionType.Binary, + usages = new List() + { + "SecondaryTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = buttonYTouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.leftHand } + }, + new ActionBinding() + { + interactionPath = buttonBTouch, + interactionProfileName = profile, + userPaths = new List() { UserPaths.rightHand } + }, + } + }, + // Menu + new ActionConfig() + { + name = "menu", + localizedName = "Menu", + type = ActionType.Binary, + usages = new List() + { + "Menu" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = menu, + interactionProfileName = profile, + } + } + }, + // System + new ActionConfig() + { + name = "system", + localizedName = "system", + type = ActionType.Binary, + usages = new List() + { + "System" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = system, + interactionProfileName = profile, + } + } + }, + // Trigger + new ActionConfig() + { + name = "trigger", + localizedName = "Trigger", + type = ActionType.Axis1D, + usages = new List() + { + "Trigger" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = trigger, + interactionProfileName = profile, + } + } + }, + // Trigger Pressed + new ActionConfig() + { + name = "triggerPressed", + localizedName = "Trigger Pressed", + type = ActionType.Binary, + usages = new List() + { + "TriggerButton" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerClick, + interactionProfileName = profile, + } + } + }, + //Trigger Touch + new ActionConfig() + { + name = "triggerTouched", + localizedName = "Trigger Touched", + type = ActionType.Binary, + usages = new List() + { + "TriggerTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = triggerTouch, + interactionProfileName = profile, + } + } + }, + // Joystick + new ActionConfig() + { + name = "thumbstick", + localizedName = "Thumbstick", + type = ActionType.Axis2D, + usages = new List() + { + "Primary2DAxis" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstick, + interactionProfileName = profile, + } + } + }, + //Thumbstick Clicked + new ActionConfig() + { + name = "thumbstickClicked", + localizedName = "Thumbstick Clicked", + type = ActionType.Binary, + usages = new List() + { + "Primary2DAxisClick" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstickClick, + interactionProfileName = profile, + } + } + }, + //Thumbstick Touched + new ActionConfig() + { + name = "thumbstickTouched", + localizedName = "Thumbstick Touched", + type = ActionType.Binary, + usages = new List() + { + "Primary2DAxisTouch" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = thumbstickTouch, + interactionProfileName = profile, + } + } + }, + // Device Pose + new ActionConfig() + { + name = "devicePose", + localizedName = "Device Pose", + type = ActionType.Pose, + usages = new List() + { + "Device" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = grip, + interactionProfileName = profile, + } + } + }, + // Pointer Pose + new ActionConfig() + { + name = "pointer", + localizedName = "Pointer Pose", + type = ActionType.Pose, + usages = new List() + { + "Pointer" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = aim, + interactionProfileName = profile, + } + } + }, + new ActionConfig() + { + name = "batteryLevel", + localizedName = "BatteryLevel", + type = ActionType.Axis1D, + usages = new List() + { + "BatteryLevel" + }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = batteryLevel, + interactionProfileName = profile, + } + } + }, + // Haptics + new ActionConfig() + { + name = "haptic", + localizedName = "Haptic Output", + type = ActionType.Vibrate, + usages = new List() { "Haptic" }, + bindings = new List() + { + new ActionBinding() + { + interactionPath = haptic, + interactionProfileName = profile, + } + } + } + } + }; + + AddActionMap(actionMap); + } + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICONeo3ControllerProfile.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICONeo3ControllerProfile.cs.meta new file mode 100644 index 0000000..f2a7094 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/PICONeo3ControllerProfile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2b8a6d03de5f8f34383932f29d464a21 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/Unity.XR.OpenXRPICO.asmdef b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/Unity.XR.OpenXRPICO.asmdef new file mode 100644 index 0000000..f67aa23 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/Unity.XR.OpenXRPICO.asmdef @@ -0,0 +1,28 @@ +{ + "name": "Unity.XR.OpenXRPico", + "rootNamespace": "", + "references": [ + "GUID:75469ad4d38634e559750d17036d5f7c", + "GUID:4847341ff46394e83bb78fbd0652937e" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": true, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.inputsystem", + "expression": "", + "define": "" + }, + { + "name": "com.unity.modules.unityanalytics", + "expression": "1.0.0", + "define": "UNITY_ANALYTICS" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/Unity.XR.OpenXRPICO.asmdef.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/Unity.XR.OpenXRPICO.asmdef.meta new file mode 100644 index 0000000..c6dd7db --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Interactions/Unity.XR.OpenXRPICO.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d535f87539094c419e506375c5b07c2 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOFeature.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOFeature.cs new file mode 100644 index 0000000..f61247e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOFeature.cs @@ -0,0 +1,153 @@ +using System.Collections.Generic; +using UnityEngine.XR.OpenXR; +using UnityEngine.XR.OpenXR.Features; +using Object = System.Object; +using UnityEngine.XR.OpenXR.Features.Interactions; +using System; +using System.Runtime.InteropServices; +using UnityEngine; +using AOT; +using Unity.XR.PXR; + + +#if UNITY_EDITOR +using UnityEditor.PackageManager; +using UnityEditor.PackageManager.Requests; +using UnityEditor; +using UnityEditor.XR.OpenXR.Features; +#endif + +#if AR_FOUNDATION +using UnityEngine.XR.ARSubsystems; +#endif + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + /// + /// Enables the PICO mobile OpenXR Loader for Android, and modifies the AndroidManifest to be compatible with Neo3. + /// +#if UNITY_EDITOR + [OpenXRFeature(UiName = "PICO Support", + Desc = "Necessary to deploy an PICO compatible app.", + Company = "PICO", + Version = SDKVersion, + BuildTargetGroups = new[] { BuildTargetGroup.Android }, + CustomRuntimeLoaderBuildTargets = new[] { BuildTarget.Android }, + OpenxrExtensionStrings = PicoExtensionList, + FeatureId = featureId + )] +#endif + + [System.Serializable] + public class PICOFeature : OpenXRFeature + { + public const string PicoExtensionList = ""; + public const string SDKVersion = "1.3.3"; + public static Action onAppFocusedAction; + public bool isPicoSupport = false; + + + + /// + /// The feature id string. This is used to give the feature a well known id for reference. + /// + public const string featureId = "com.unity.openxr.feature.pico"; + +#if UNITY_EDITOR + static AddRequest request; + protected override void GetValidationChecks(List rules, BuildTargetGroup targetGroup) + { + OpenXRSettings settings = OpenXRSettings.GetSettingsForBuildTargetGroup(BuildTargetGroup.Android); + + + var AdditionalRules = new ValidationRule[] + { + new ValidationRule(this) + { + message = "Only the PICO Touch Interaction Profile is supported right now.", + checkPredicate = () => + { + if (null == settings) + return false; + + bool touchFeatureEnabled = false; + bool otherInteractionFeatureEnabled = false; + + foreach (var feature in settings.GetFeatures()) + { + if (feature.enabled) + { + if ((feature is PICONeo3ControllerProfile) || + (feature is PICO4UltraControllerProfile) || (feature is PICO4ControllerProfile) || + (feature is KHRSimpleControllerProfile) || (feature is EyeGazeInteraction) || + (feature is HandInteractionProfile) || (feature is PalmPoseInteraction) || + (feature is PICOG3ControllerProfile)) + touchFeatureEnabled = true; + else + otherInteractionFeatureEnabled = true; + } + } + + return touchFeatureEnabled && !otherInteractionFeatureEnabled; + }, + fixIt = () => + { + if (null == settings) + return; + + foreach (var feature in settings.GetFeatures()) + { + feature.enabled = ((feature is PICONeo3ControllerProfile) || (feature is PICO4ControllerProfile)); + } + }, + error = true, + } + }; + + rules.AddRange(AdditionalRules); + } + + static void Progress() + { + if (request != null && request.IsCompleted) + { + if (request.Status == StatusCode.Success) + Debug.Log("Installed: " + request.Result.packageId); + else if (request.Status >= StatusCode.Failure) + Debug.Log(request.Error.message); + EditorApplication.update -= Progress; + request = null; + } + } + + internal class PICOFeatureEditorWindow : EditorWindow + { + private Object feature; + private Editor featureEditor; + + public static EditorWindow Create(Object feature) + { + var window = EditorWindow.GetWindow(true, "PICO Feature Configuration", true); + window.feature = feature; + window.featureEditor = Editor.CreateEditor((UnityEngine.Object)feature); + return window; + } + + private void OnGUI() + { + featureEditor.OnInspectorGUI(); + } + } + +#endif + + + + + + + + + + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOFeature.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOFeature.cs.meta new file mode 100644 index 0000000..0302a25 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOFeature.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: baa5b568c4324bd4faad2da2e7ee7e84 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOManager.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOManager.cs new file mode 100644 index 0000000..3da6f9b --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOManager.cs @@ -0,0 +1,229 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Serialization; +using Unity.XR.CoreUtils; +using UnityEngine.XR; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public class PICOManager : MonoBehaviour + { + private const string TAG = "[PICOManager]"; + private static PICOManager instance = null; + private Camera[] eyeCamera; + private XROrigin _xrOrigin; + private XROrigin _xrOriginT; + static List s_InputSubsystems = new List(); + private float cameraYOffset; + private float cameraY; + private bool isTrackingOriginMode = false; + private TrackingOriginModeFlags currentTrackingOriginMode = TrackingOriginModeFlags.Unknown; + private Vector3 _xrOriginPos = Vector3.zero; + private Vector3 _xrOriginTPos = Vector3.zero; + private Quaternion _xrOriginRot = Quaternion.identity; + private Quaternion _xrOriginTRot = Quaternion.identity; + private static GameObject local = null; + + + private Vector3 lastOriginPos = Vector3.zero; + private Quaternion lastOriginRot = Quaternion.identity; + + private Vector3 lastOriginTPos = Vector3.zero; + private Quaternion lastOriginTRot = Quaternion.identity; + + + public static PICOManager Instance + { + get + { + if (instance == null) + { + instance = FindObjectOfType(); + if (instance == null) + { + XROrigin origin = Camera.main.transform.GetComponentInParent(); + if (origin != null) + { + instance = origin.gameObject.AddComponent(); + } + else + { + GameObject go = new GameObject("[PICOManager]"); + DontDestroyOnLoad(go); + instance = go.AddComponent(); + } + + } + } + + return instance; + } + } + + void Awake() + { + eyeCamera = new Camera[3]; + Camera[] cam = gameObject.GetComponentsInChildren(); + + for (int i = 0; i < cam.Length; i++) + { + if (cam[i].stereoTargetEye == StereoTargetEyeMask.Both && cam[i] == Camera.main) + { + eyeCamera[0] = cam[i]; + } + else if (cam[i].stereoTargetEye == StereoTargetEyeMask.Left) + { + eyeCamera[1] = cam[i]; + } + else if (cam[i].stereoTargetEye == StereoTargetEyeMask.Right) + { + eyeCamera[2] = cam[i]; + } + } + + _xrOrigin = gameObject.GetComponent(); + + if (_xrOrigin != null) + { + _xrOriginPos = new Vector3(Camera.main.transform.position.x, _xrOrigin.transform.position.y, Camera.main.transform.position.z); + cameraYOffset = _xrOrigin.CameraYOffset; + } + _xrOriginRot = Camera.main.transform.parent.rotation; + cameraY = this.transform.position.y; + + if (local == null) + { + local = new GameObject(); + } + } + + public float getCameraYOffset() + { + if (currentTrackingOriginMode == TrackingOriginModeFlags.Floor) + { + return cameraY; + } + + return cameraY + cameraYOffset; + } + + private void Update() + { + if (!isTrackingOriginMode) + { + XRInputSubsystem subsystem = null; + SubsystemManager.GetInstances(s_InputSubsystems); + if (s_InputSubsystems.Count > 0) + { + subsystem = s_InputSubsystems[0]; + } + + var mCurrentTrackingOriginMode = subsystem?.GetTrackingOriginMode(); + if (mCurrentTrackingOriginMode != null) + { + isTrackingOriginMode = true; + currentTrackingOriginMode = (TrackingOriginModeFlags)mCurrentTrackingOriginMode; + } + } + } + + private void OnEnable() + { + if (Camera.main.gameObject.GetComponent() == null) + { + Camera.main.gameObject.AddComponent(); + } + + foreach (var layer in CompositeLayerFeature.Instances) + { + if (eyeCamera[0] != null && eyeCamera[0].enabled) + { + layer.RefreshCamera(eyeCamera[0], eyeCamera[0]); + } + else if (eyeCamera[1] != null && eyeCamera[1].enabled) + { + layer.RefreshCamera(eyeCamera[1], eyeCamera[2]); + } + } + } + + public Camera[] GetEyeCamera() + { + return eyeCamera; + } + + public float GetOriginY() + { + return _xrOrigin.transform.position.y; + } + + public bool GetOrigin(ref Vector3 pos, ref Quaternion rotation, ref Transform origin) + { + Transform transform = local.GetComponent(); + transform.rotation = Quaternion.identity; + origin = transform; + XROrigin xrOrigin = FindObjectOfType(); + + if (!xrOrigin) + { + PLog.e(TAG + $" xrOrigin is false!"); + pos = Vector3.zero; + rotation = Quaternion.identity; + return false; + } + + if (xrOrigin == _xrOrigin) + { + if (xrOrigin.transform.position != lastOriginPos || xrOrigin.transform.rotation != lastOriginRot) + { + _xrOriginPos.x = Camera.main.transform.position.x; + _xrOriginPos.y = xrOrigin.transform.position.y; + _xrOriginPos.z = Camera.main.transform.position.z; + _xrOriginRot = Camera.main.transform.parent.rotation; + lastOriginPos = xrOrigin.transform.position; + lastOriginRot = xrOrigin.transform.rotation; + } + + pos = _xrOriginPos; + rotation = _xrOriginRot; + return true; + } + else if (xrOrigin == _xrOriginT) + { + if (xrOrigin.transform.position != lastOriginTPos || xrOrigin.transform.rotation != lastOriginTRot) + { + _xrOriginTPos.x = Camera.main.transform.position.x; + _xrOriginTPos.y = xrOrigin.transform.position.y; + _xrOriginTPos.z = Camera.main.transform.position.z; + _xrOriginTRot = Camera.main.transform.parent.rotation; + lastOriginTPos = xrOrigin.transform.position; + lastOriginTRot = xrOrigin.transform.rotation; + } + pos = _xrOriginTPos; + rotation = _xrOriginTRot; + return true; + } + + _xrOriginT = xrOrigin; + _xrOriginTPos = new Vector3(Camera.main.transform.parent.position.x, xrOrigin.transform.position.y, Camera.main.transform.parent.position.z); + _xrOriginTRot = Camera.main.transform.parent.rotation; + pos = _xrOriginTPos; + rotation = _xrOriginTRot; + return true; + } + public float GetRefreshRate() + { + float i = -1; + DisplayRefreshRateFeature.GetDisplayRefreshRate(ref i); + return i; + } + + public XrExtent2Df GetReferenceSpaceBoundsRect() + { + XrExtent2Df extent2D = new XrExtent2Df(); + OpenXRExtensions.GetReferenceSpaceBoundsRect(XrReferenceSpaceType.Stage, ref extent2D); + return extent2D; + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOManager.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOManager.cs.meta new file mode 100644 index 0000000..81eb7d8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9ec797a80375463e9a82f82a3336c730 +timeCreated: 1687327226 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOProjectSetting.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOProjectSetting.cs new file mode 100644 index 0000000..69c20d8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOProjectSetting.cs @@ -0,0 +1,100 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained herein are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System.IO; +using Unity.XR.PXR; +using UnityEditor; +using UnityEngine; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + [System.Serializable] + public class PICOProjectSetting: ScriptableObject + { + public bool useContentProtect; + public bool isEyeTracking; + public bool MRSafeguard; + public bool isHandTracking; + public bool isEyeTrackingCalibration; + public SystemDisplayFrequency displayFrequency; + public SecureContentFlag contentProtectFlags ; + public bool foveationEnable; + public FoveationFeature.FoveatedRenderingMode foveatedRenderingMode; + public FoveationFeature.FoveatedRenderingLevel foveatedRenderingLevel; + public bool isSubsampledEnabled; + + [SerializeField, Tooltip("Set the system splash screen picture in PNG format.")] + public Texture2D systemSplashScreen; + private string splashPath = string.Empty; + + public static PICOProjectSetting GetProjectConfig() + { + PICOProjectSetting projectConfig = Resources.Load("PICOProjectSetting"); +#if UNITY_EDITOR + if (projectConfig == null) + { + projectConfig = CreateInstance(); + projectConfig.useContentProtect = false; + projectConfig.contentProtectFlags = SecureContentFlag.SECURE_CONTENT_OFF; + projectConfig.isEyeTracking = false; + projectConfig.isEyeTrackingCalibration = false; + projectConfig.isHandTracking = false; + projectConfig.MRSafeguard = false; + projectConfig.displayFrequency = SystemDisplayFrequency.Default; + projectConfig.foveationEnable = false; + projectConfig.foveatedRenderingMode = FoveationFeature.FoveatedRenderingMode.FixedFoveatedRendering; + projectConfig.foveatedRenderingLevel = FoveationFeature.FoveatedRenderingLevel.Off; + projectConfig.isSubsampledEnabled = false; + string path = Application.dataPath + "/Resources"; + if (!Directory.Exists(path)) + { + UnityEditor.AssetDatabase.CreateFolder("Assets", "Resources"); + UnityEditor.AssetDatabase.CreateAsset(projectConfig, "Assets/Resources/PICOProjectSetting.asset"); + } + else + { + UnityEditor.AssetDatabase.CreateAsset(projectConfig, "Assets/Resources/PICOProjectSetting.asset"); + } + } +#endif + return projectConfig; + } + +#if UNITY_EDITOR + private void OnValidate() + { + if (systemSplashScreen != null) + { + splashPath = AssetDatabase.GetAssetPath(systemSplashScreen); + if (Path.GetExtension(splashPath).ToLower() != ".png") + { + systemSplashScreen = null; + Debug.LogError("Invalid file format of System Splash Screen, only PNG format is supported. The asset path: " + splashPath); + splashPath = string.Empty; + } + } + } + + public string GetSystemSplashScreen(string path) + { + if (systemSplashScreen == null || splashPath == string.Empty) + { + return "0"; + } + + string targetPath = Path.Combine(path, "src/main/assets/pico_splash.png"); + FileUtil.ReplaceFile(splashPath, targetPath); + return "1"; + } +#endif + } +} diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOProjectSetting.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOProjectSetting.cs.meta new file mode 100644 index 0000000..cc58b3a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOProjectSetting.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 89a60a618e414e42a47a5948037b63ab +timeCreated: 1687332959 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOScreenFade.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOScreenFade.cs new file mode 100644 index 0000000..1687add --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOScreenFade.cs @@ -0,0 +1,214 @@ +/******************************************************************************* +Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved. + +NOTICE:All information contained herein is, and remains the property of +PICO Technology Co., Ltd. The intellectual and technical concepts +contained hererin are proprietary to PICO Technology Co., Ltd. and may be +covered by patents, patents in process, and are protected by trade secret or +copyright law. Dissemination of this information or reproduction of this +material is strictly forbidden unless prior written permission is obtained from +PICO Technology Co., Ltd. +*******************************************************************************/ + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public class PICOScreenFade : MonoBehaviour + { + [Tooltip("The gradient of time.")] + public float gradientTime = 5.0f; + [Tooltip("Basic color.")] + public Color fadeColor = new Color(0.0f, 0.0f, 0.0f, 1.0f); + [Tooltip("The default value is 4000.")] + private int renderQueue = 4000; + private MeshRenderer gradientMeshRenderer; + private MeshFilter gradientMeshFilter; + private Material gradientMaterial = null; + private bool isGradient = false; + private float currentAlpha; + private float nowFadeAlpha; + private List verts; + private List indices; + private int N = 5; + + void Awake() + { + CreateFadeMesh(); + SetCurrentAlpha(0); + } + void OnEnable() + { + StartCoroutine(ScreenFade()); + } + void OnDestroy() + { + DestoryGradientMesh(); + } + + private void CreateFadeMesh() + { + verts = new List(); + indices = new List(); + gradientMaterial = new Material(Shader.Find("PXR_SDK/PXR_Fade")); + gradientMeshFilter = gameObject.AddComponent(); + gradientMeshRenderer = gameObject.AddComponent(); + + CreateModel(); + } + + + + public void SetCurrentAlpha(float alpha) + { + currentAlpha = alpha; + SetAlpha(); + } + + IEnumerator ScreenFade() + { + float nowTime = 0.0f; + while (nowTime < gradientTime) + { + nowTime += Time.deltaTime; + nowFadeAlpha = Mathf.Lerp(1.0f, 0, Mathf.Clamp01(nowTime / gradientTime)); + SetAlpha(); + yield return new WaitForEndOfFrame(); + } + } + + private void SetAlpha() + { + Color color = fadeColor; + color.a = Mathf.Max(currentAlpha, nowFadeAlpha); + isGradient = color.a > 0; + if (gradientMaterial != null) + { + gradientMaterial.color = color; + gradientMaterial.renderQueue = renderQueue; + gradientMeshRenderer.material = gradientMaterial; + gradientMeshRenderer.enabled = isGradient; + } + } + + void CreateModel() + { + for (float i = -N / 2f; i <= N / 2f; i++) + { + for (float j = -N / 2f; j <= N / 2f; j++) + { + verts.Add(new Vector3(i, j, -N / 2f)); + } + } + for (float i = -N / 2f; i <= N / 2f; i++) + { + for (float j = -N / 2f; j <= N / 2f; j++) + { + verts.Add(new Vector3(N / 2f, j, i)); + } + } + for (float i = -N / 2f; i <= N / 2f; i++) + { + for (float j = -N / 2f; j <= N / 2f; j++) + { + verts.Add(new Vector3(i, N / 2f, j)); + } + } + for (float i = -N / 2f; i <= N / 2f; i++) + { + for (float j = -N / 2f; j <= N / 2f; j++) + { + verts.Add(new Vector3(-N / 2f, j, i)); + } + } + for (float i = -N / 2f; i <= N / 2f; i++) + { + for (float j = -N / 2f; j <= N / 2f; j++) + { + verts.Add(new Vector3(i, j, N / 2f)); + } + } + for (float i = -N / 2f; i <= N / 2f; i++) + { + for (float j = -N / 2f; j <= N / 2f; j++) + { + verts.Add(new Vector3(i, -N / 2f, j)); + } + } + + for (int i = 0; i < verts.Count; i++) + { + verts[i] = verts[i].normalized * 0.7f; + } + + CreateMakePos(0); + CreateMakePos(1); + CreateMakePos(2); + OtherMakePos(3); + OtherMakePos(4); + OtherMakePos(5); + Mesh mesh = new Mesh(); + mesh.vertices = verts.ToArray(); + mesh.triangles = indices.ToArray(); + mesh.RecalculateNormals(); + mesh.RecalculateBounds(); + Vector3[] normals = mesh.normals; + for (int i = 0; i < normals.Length; i++) + { + normals[i] = -normals[i]; + } + mesh.normals = normals; + int[] triangles = mesh.triangles; + for (int i = 0; i < triangles.Length; i += 3) + { + int t = triangles[i]; + triangles[i] = triangles[i + 2]; + triangles[i + 2] = t; + } + mesh.triangles = triangles; + gradientMeshFilter.mesh = mesh; + } + public void CreateMakePos(int num) + { + for (int i = 0; i < N; i++) + { + for (int j = 0; j < N; j++) + { + int index = j * (N + 1) + (N + 1) * (N + 1) * num + i; + int up = (j + 1) * (N + 1) + (N + 1) * (N + 1) * num + i; + indices.AddRange(new int[] { index, index + 1, up + 1 }); + indices.AddRange(new int[] { index, up + 1, up }); + } + } + } + public void OtherMakePos(int num) + { + for (int i = 0; i < N + 1; i++) + { + for (int j = 0; j < N + 1; j++) + { + if (i != N && j != N) + { + int index = j * (N + 1) + (N + 1) * (N + 1) * num + i; + int up = (j + 1) * (N + 1) + (N + 1) * (N + 1) * num + i; + indices.AddRange(new int[] { index, up + 1, index + 1 }); + indices.AddRange(new int[] { index, up, up + 1 }); + } + } + } + } + private void DestoryGradientMesh() + { + if (gradientMeshRenderer != null) + Destroy(gradientMeshRenderer); + + if (gradientMaterial != null) + Destroy(gradientMaterial); + + if (gradientMeshFilter != null) + Destroy(gradientMeshFilter); + } + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOScreenFade.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOScreenFade.cs.meta new file mode 100644 index 0000000..b826aa8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/PICOScreenFade.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ae53b0fa39b974c4baa34ac3a2c235c9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem.meta new file mode 100644 index 0000000..070db1e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 191be929ace1ecf4cab70c030e1a0409 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOAnchorSubsystem.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOAnchorSubsystem.cs new file mode 100644 index 0000000..76c422a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOAnchorSubsystem.cs @@ -0,0 +1,165 @@ +#if AR_FOUNDATION +using System; +using System.Collections; +using System.Collections.Generic; +using System.Threading.Tasks; +using Unity.Collections; +using UnityEngine; +using UnityEngine.XR.ARSubsystems; + +namespace Unity.XR.PXR +{ + public class PICOAnchorSubsystem : XRAnchorSubsystem + { + internal const string k_SubsystemId = "PICOAnchorSubsystem"; + + class AnchorProvider : Provider + { + private Dictionary trackableIdToHandleMap; + private Dictionary handleToXRAnchorMap; + private HashSet managedAnchorHandles; + private Dictionary lastAnchorToTime; + private bool isInit = false; + + public override void Start() + { + StartSpatialAnchorProvider(); + } + + private async void StartSpatialAnchorProvider() + { + var result = await PXR_MixedReality.StartSenseDataProvider(PxrSenseDataProviderType.SpatialAnchor); + if (result == PxrResult.SUCCESS) + { + if (!isInit) + { + trackableIdToHandleMap = new Dictionary(); + handleToXRAnchorMap = new Dictionary(); + managedAnchorHandles = new HashSet(); + isInit = true; + } + } + else + { + Debug.LogError("Spatial Anchor Provider Start Failed:" + result); + } + } + + public override void Stop() + { + var result = PXR_MixedReality.StopSenseDataProvider(PxrSenseDataProviderType.SpatialAnchor); + if (result == PxrResult.SUCCESS) + { + + } + else + { + Debug.LogError("Spatial Anchor Provider Stop Failed:" + result); + } + } + + public override void Destroy() + { + + } + + public override TrackableChanges GetChanges(XRAnchor defaultAnchor, Allocator allocator) + { + return new TrackableChanges(); + } + + public override bool TryAddAnchor(Pose pose, out XRAnchor anchor) + { + var tcs = new TaskCompletionSource<(PxrResult result, ulong anchorHandle, Guid uuid)>(); + var tcs2 = new TaskCompletionSource(); + Task.Run(() => + { + var (pxrResult, handle, guid) = PXR_MixedReality.CreateSpatialAnchorAsync(pose.position, pose.rotation).Result; + + tcs.SetResult((pxrResult, handle, guid)); + }); + var (result, anchorHandle, uuid) = tcs.Task.Result; + if (result == PxrResult.SUCCESS) + { + Task.Run(() => + { + var pxrResult = PXR_MixedReality.PersistSpatialAnchorAsync(anchorHandle).Result; + + tcs2.SetResult(pxrResult); + }); + + var result2 = tcs2.Task.Result; + if (result2 == PxrResult.SUCCESS) + { + var bytes = uuid.ToByteArray(); + var trackabledId = new TrackableId(BitConverter.ToUInt64(bytes, 0), BitConverter.ToUInt64(bytes, 8)); + var nativePtr = new IntPtr((long)anchorHandle); + anchor = new XRAnchor(trackabledId, pose, TrackingState.Tracking, nativePtr); + trackableIdToHandleMap[trackabledId] = anchorHandle; + handleToXRAnchorMap[anchorHandle] = anchor; + return true; + } + else + { + anchor = XRAnchor.defaultValue; + return false; + } + } + else + { + anchor = XRAnchor.defaultValue; + return false; + } + } + + public async Task QuerySpatialAnchors() + { + return false; + } + + public override bool TryRemoveAnchor(TrackableId anchorId) + { + var anchorHandle = trackableIdToHandleMap[anchorId]; + var result = PXR_MixedReality.DestroyAnchor(anchorHandle); + if (result == PxrResult.SUCCESS) + { + var tcs = new TaskCompletionSource(); + Task.Run(() => + { + var pxrResult = PXR_MixedReality.UnPersistSpatialAnchorAsync(anchorHandle).Result; + + tcs.SetResult(pxrResult); + }); + var result1 = tcs.Task.Result; + if (result1 == PxrResult.SUCCESS) + { + return true; + } + else + { + return false; + } + } + else + { + return false; + } + } + + } + + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + static void RegisterDescriptor() + { + var cInfo = new XRAnchorSubsystemDescriptor.Cinfo() + { + id = k_SubsystemId, + providerType = typeof(AnchorProvider), + subsystemTypeOverride = typeof(PICOAnchorSubsystem), + supportsTrackableAttachments = false + }; + XRAnchorSubsystemDescriptor.Create(cInfo); + } + } +} +#endif diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOAnchorSubsystem.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOAnchorSubsystem.cs.meta new file mode 100644 index 0000000..54e0ca3 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOAnchorSubsystem.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3fc1ceb510674152beda5a7148d8a52d +timeCreated: 1723083100 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOCameraSubsystem.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOCameraSubsystem.cs new file mode 100644 index 0000000..95f4654 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOCameraSubsystem.cs @@ -0,0 +1,70 @@ +#if AR_FOUNDATION +using UnityEngine; +using UnityEngine.XR.ARSubsystems; + +namespace Unity.XR.OpenXR.Features.PICOSupport +{ + public class PICOCameraSubsystem: XRCameraSubsystem + { + internal const string k_SubsystemId = "PICOCameraSubsystem"; + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + static void RegisterDescriptor() + { + var cameraSubsystemCinfo = new XRCameraSubsystemCinfo + { + id = k_SubsystemId, + providerType = typeof(PICOOpenXRProvider), + subsystemTypeOverride = typeof(PICOCameraSubsystem), + supportsAverageBrightness = false, + supportsAverageColorTemperature = false, + supportsColorCorrection = false, + supportsDisplayMatrix = false, + supportsProjectionMatrix = false, + supportsTimestamp = false, + supportsCameraConfigurations = false, + supportsCameraImage = false, + supportsAverageIntensityInLumens = false, + supportsFocusModes = false, + supportsFaceTrackingAmbientIntensityLightEstimation = false, + supportsFaceTrackingHDRLightEstimation = false, + supportsWorldTrackingAmbientIntensityLightEstimation = false, + supportsWorldTrackingHDRLightEstimation = false, + supportsCameraGrain = false, + }; + + if (!XRCameraSubsystem.Register(cameraSubsystemCinfo)) + { + PLog.e($"Failed to register the {k_SubsystemId} subsystem."); + } + } + + class PICOOpenXRProvider : Provider + { + /// + /// Construct the camera functionality provider for Meta. + /// + public PICOOpenXRProvider() + { + } + + /// + /// Start the camera functionality. + /// + public override void Start() => PassthroughFeature.EnableSeeThroughManual(true); + + /// + /// Stop the camera functionality. + /// + public override void Stop() => PassthroughFeature.EnableSeeThroughManual(false); + + /// + /// Destroy any resources required for the camera functionality. + /// + public override void Destroy() => PassthroughFeature.Destroy(); + + + } + + } +} +#endif \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOCameraSubsystem.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOCameraSubsystem.cs.meta new file mode 100644 index 0000000..6f9baa8 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOCameraSubsystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 871b6ba16680eb74d9d891e95cf83bdc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOSessionSubsystem.cs b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOSessionSubsystem.cs new file mode 100644 index 0000000..918a950 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOSessionSubsystem.cs @@ -0,0 +1,114 @@ +#if AR_FOUNDATION +using Unity.XR.OpenXR.Features.PICOSupport; +using Unity.XR.PXR; +using UnityEngine; +using UnityEngine.XR.ARSubsystems; + +public class PICOSessionSubsystem : XRSessionSubsystem +{ + internal const string k_SubsystemId = "PICOSessionSubsystem"; + + internal static PICOSessionSubsystem instance { get; private set; } + + /// + /// Do not call this directly. Call create on a valid instead. + /// + public PICOSessionSubsystem() + { + instance = this; + } + + internal void OnSessionStateChange(int newState) + => ((SessionProvider)provider).OnSessionStateChange(newState); + + class SessionProvider : Provider + { + XrSessionState m_SessionState; + + /// + public override TrackingState trackingState + { + get + { + switch (m_SessionState) + { + case XrSessionState.Idle: + case XrSessionState.Ready: + case XrSessionState.Synchronized: + return TrackingState.Limited; + + case XrSessionState.Visible: + case XrSessionState.Focused: + return TrackingState.Tracking; + + case XrSessionState.Unknown: + case XrSessionState.Stopping: + case XrSessionState.LossPending: + case XrSessionState.Exiting: + default: + return TrackingState.None; + } + } + } + + /// + public override NotTrackingReason notTrackingReason + { + get + { + switch (m_SessionState) + { + case XrSessionState.Idle: + case XrSessionState.Ready: + case XrSessionState.Synchronized: + return NotTrackingReason.Initializing; + + case XrSessionState.Visible: + case XrSessionState.Focused: + return NotTrackingReason.None; + + case XrSessionState.Unknown: + case XrSessionState.Stopping: + case XrSessionState.LossPending: + case XrSessionState.Exiting: + default: + return NotTrackingReason.Unsupported; + } + } + } + + public void OnSessionStateChange(int newState) + { + m_SessionState = (XrSessionState)newState; + PLog.i(k_SubsystemId, $" OnSessionStateChange m_SessionState:{m_SessionState}"); + } + } + + enum XrSessionState + { + Unknown = 0, + Idle = 1, + Ready = 2, + Synchronized = 3, + Visible = 4, + Focused = 5, + Stopping = 6, + LossPending = 7, + Exiting = 8, + } + + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + static void RegisterDescriptor() + { + XRSessionSubsystemDescriptor.RegisterDescriptor(new XRSessionSubsystemDescriptor.Cinfo + { + id = k_SubsystemId, + providerType = typeof(SessionProvider), + subsystemTypeOverride = typeof(PICOSessionSubsystem), + supportsInstall = false, + supportsMatchFrameRate = false + }); + } + +} +#endif \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOSessionSubsystem.cs.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOSessionSubsystem.cs.meta new file mode 100644 index 0000000..b5f64be --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Subsystem/PICOSessionSubsystem.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 98b3f31743cc4f1bb07a6c05b82dcd10 +timeCreated: 1723083167 \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Unity.XR.OpenXR.Features.PICOSupport.asmdef b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Unity.XR.OpenXR.Features.PICOSupport.asmdef new file mode 100644 index 0000000..13f2211 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Unity.XR.OpenXR.Features.PICOSupport.asmdef @@ -0,0 +1,26 @@ +{ + "name": "Unity.XR.OpenXR.Features.PICOSupport", + "rootNamespace": "", + "references": [ + "GUID:92703082f92b41ba80f0d6912de66115", + "GUID:4847341ff46394e83bb78fbd0652937e", + "GUID:2d535f87539094c419e506375c5b07c2", + "GUID:dc960734dc080426fa6612f1c5fe95f3", + "GUID:75469ad4d38634e559750d17036d5f7c" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": true, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.xr.arfoundation", + "expression": "5.1.2", + "define": "AR_FOUNDATION" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Unity.XR.OpenXR.Features.PICOSupport.asmdef.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Unity.XR.OpenXR.Features.PICOSupport.asmdef.meta new file mode 100644 index 0000000..df9e0a0 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/Unity.XR.OpenXR.Features.PICOSupport.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d1451cc2aec4ed743adcac8be3b46381 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/UnitySubsystemsManifest.json b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/UnitySubsystemsManifest.json new file mode 100644 index 0000000..c29157e --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/UnitySubsystemsManifest.json @@ -0,0 +1,10 @@ +{ + "name": "pico_openxr", + "version": "1.3.3", + "libraryName": "openxr_pico", + "meshings": [ + { + "id": "PICO Mesh" + } + ] +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/UnitySubsystemsManifest.json.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/UnitySubsystemsManifest.json.meta new file mode 100644 index 0000000..040011f --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/Runtime/UnitySubsystemsManifest.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fc0a9a1cf44b30244b4843fd2db9905b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/package.json b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/package.json new file mode 100644 index 0000000..3f2b59a --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/package.json @@ -0,0 +1,18 @@ +{ + "name": "com.unity.xr.openxr.picoxr", + "displayName": "PICO OpenXR Plugin", + "version": "1.3.3", + "unity": "2021.3", + "description": "Provides display and input support for PICO devices.", + "keywords": [ + "picoxr", + "openxr", + "xr", + "reality", + "xreditorsubsystem" + ], + "dependencies": { + "com.unity.xr.core-utils": "2.2.0", + "com.unity.xr.openxr": "1.8.2" + } +} \ No newline at end of file diff --git a/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/package.json.meta b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/package.json.meta new file mode 100644 index 0000000..ddd88f4 --- /dev/null +++ b/Packages/PICO Unity OpenXR Integration SDK-1.3.0-20241011/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8bcb0c00dcb11f9498998922f49d8a15 +PackageManifestImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 362dde7..d2954c5 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -267,6 +267,15 @@ }, "url": "https://packages.unity.com" }, + "com.unity.xr.openxr.picoxr": { + "version": "file:PICO Unity OpenXR Integration SDK-1.3.0-20241011", + "depth": 0, + "source": "embedded", + "dependencies": { + "com.unity.xr.core-utils": "2.2.0", + "com.unity.xr.openxr": "1.8.2" + } + }, "com.unity.modules.ai": { "version": "1.0.0", "depth": 0,