diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eff7b033af..0e4da88de5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -180,25 +180,13 @@ jobs: fail-fast: false matrix: flavors: ${{ fromJson(needs.configuration.outputs.flavors) }} - name: [Windows OpenXR, Windows Pimax, Windows Rift, Linux, MacOS, Android OpenXR, Oculus Quest (1), Oculus Quest (2+), Android Pico, Android Pico (CN), iOS Zapbox] # These will all be overwritten, but because we have the flavors matrix as well, we can't just add configurations via include; they'll overwrite each other. This way ensures that we get each one + name: [Windows OpenXR, Linux, MacOS, Android OpenXR, Android Quest, iOS Zapbox] # These will all be overwritten, but because we have the flavors matrix as well, we can't just add configurations via include; they'll overwrite each other. This way ensures that we get each one include: - name: Windows OpenXR targetPlatform: StandaloneWindows64 vrsdk: OpenXR cache: Windows - - name: Windows Pimax - targetPlatform: StandaloneWindows64 - vrsdk: OpenXR - cache: Windows - extra_defines: PIMAX_SUPPORTED - - - name: Windows Rift - targetPlatform: StandaloneWindows64 - vrsdk: Oculus - cache: Windows - extra_defines: OCULUS_SUPPORTED - - name: Linux targetPlatform: StandaloneLinux64 vrsdk: Monoscopic # All builds include monoscopic, but this one has no additional XrSdk, so we'll keep the name monoscopic @@ -208,7 +196,6 @@ jobs: targetPlatform: StandaloneOSX vrsdk: Monoscopic cache: MacOS - packages_to_remove: com.meta.xr.sdk.core - name: Android OpenXR targetPlatform: Android @@ -217,39 +204,13 @@ jobs: extraoptions: -btb-il2cpp versionSuffix: 0 - - name: Oculus Quest (1) + - name: Android Quest targetPlatform: Android vrsdk: OpenXR cache: Android_Vulkan extraoptions: -btb-il2cpp versionSuffix: 0 - extra_defines: USE_QUEST_PACKAGE_NAME FORCE_QUEST_SUPPORT_DEVICE FORCE_FOCUSAWARE FORCE_HEADTRACKING - packages_to_remove: com.meta.xr.sdk.platform com.meta.xr.sdk.utilities - - - name: Oculus Quest (2+) - targetPlatform: Android - vrsdk: Oculus - cache: Android_Vulkan - extraoptions: -btb-il2cpp - versionSuffix: 1 - extra_defines: OCULUS_SUPPORTED USE_QUEST_PACKAGE_NAME - - - name: Android Pico - targetPlatform: Android - vrsdk: Pico - cache: Android_GLES - extraoptions: -btb-il2cpp - versionSuffix: 0 - extra_defines: PICO_SUPPORTED - - - name: Android Pico (CN) - targetPlatform: Android - vrsdk: Pico - cache: Android_GLES - # Pico requested Chinese build that doesn't have google/sketchfab login. - extraoptions: -btb-il2cpp -btb-disableAccountLogins - versionSuffix: 1 - extra_defines: PICO_SUPPORTED + extra_defines: USE_QUEST_PACKAGE_NAME # :( - name: iOS Zapbox targetPlatform: iOS @@ -292,38 +253,6 @@ jobs: with: lfs: true # We don't use LFS, but it adds no time, and leave it here in case we do at some point later - - name: Install Pimax unity package - if: startsWith(matrix.name, 'Windows Pimax') - run: | - # version 0.6.3 - # Same as above, but adapted to work for Pimax instead. - wget -q https://dl.appstore.pimax.com/sdk/Pimax_Platform_Unity_SDK_v0.6.3.zip -O package.zip - unzip package.zip - mkdir tmp - tar -C tmp -xzf PimaxPlatform_v0.6.3.unitypackage - find tmp -type f | xargs chmod a-x - for pn in tmp/*/pathname; do - id=${pn%/*} - id=${id#*/} - p=$(head -1 $pn) - d=${p%/*} - mkdir -p "tmp/$d" - [ -f "tmp/$id/asset" ] && cp -v "tmp/$id/asset" "tmp/$p" - cp "tmp/$id/asset.meta" "tmp/${p}.meta" - done - cp -R tmp/Assets/Pimax Assets/ - rm -rf tmp package.zip PimaxPlatform_v0.6.3.unitypackage Tools - - - name: Install Pico unity package - if: matrix.vrsdk == 'Pico' - run: | - # version 2.1.1 - mkdir Packages/com.unity.xr.picoxr - wget -q https://sdk.picovr.com/developer-platform/sdk/PICO%20Unity%20Integration%20SDK%20v211.zip -O package.zip - unzip package.zip -d Packages/com.unity.xr.picoxr - # Pico has a GUID conflict because they copied code from Oculus. Delete the offending .meta file from our mutable Pico SDK. - rm Packages/com.unity.xr.picoxr/Platform/Scripts/Models/Common.cs.meta - - name: Install TextMesh Pro package run: | # version 3.0.6; must be updated if the version changes @@ -750,30 +679,12 @@ jobs: name: Windows OpenXR path: build_windows_openxr - - name: Download Build Artifacts (Windows Rift) - uses: actions/download-artifact@v4 - with: - name: Windows Rift - path: build_windows_rift - - name: Download Build Artifacts (Android OpenXR) uses: actions/download-artifact@v4 with: name: Android OpenXR path: build_android_openxr - - name: Download Build Artifacts (Oculus Quest 2+) - uses: actions/download-artifact@v4 - with: - name: Oculus Quest (2+) - path: build_oculus_quest - - - name: Download Build Artifacts (Pico) - uses: actions/download-artifact@v4 - with: - name: Android Pico - path: build_android_pico - - name: Download Build Artifacts (Linux) uses: actions/download-artifact@v4 with: @@ -791,18 +702,13 @@ jobs: VERSION: ${{ needs.configuration.outputs.version }} run: | mkdir releases - mv build_oculus_quest/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Quest_$VERSION.apk - mv build_android_openxr/*/com.Icosa.OpenBrush*apk releases/OpenBrush_OpenXR_$VERSION.apk - mv build_android_pico/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Pico_$VERSION.apk + mv build_android_openxr/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Android_$VERSION.apk mv build_windows_openxr/StandaloneWindows64/ releases/OpenBrush_Desktop_$VERSION/ - mv build_windows_rift/StandaloneWindows64/ releases/OpenBrush_Rift_$VERSION/ mv build_macos/*.dmg releases/OpenBrush_Mac_$VERSION.dmg mv build_linux/StandaloneLinux64/ releases/OpenBrush_Linux_$VERSION/ cd releases zip -r OpenBrush_Desktop_$VERSION.zip OpenBrush_Desktop_$VERSION/ rm -rf OpenBrush_Desktop_$VERSION - zip -r OpenBrush_Rift_$VERSION.zip OpenBrush_Rift_$VERSION/ - rm -rf OpenBrush_Rift_$VERSION zip -r OpenBrush_Linux_$VERSION.zip OpenBrush_Linux_$VERSION/ - name: Publish @@ -1048,16 +954,16 @@ jobs: name: Windows OpenXR path: build_windows_openxr - - name: Download Build Artifacts (Oculus Quest 2+) + - name: Download Build Artifacts (Android OpenXR) uses: actions/download-artifact@v4 with: - name: Oculus Quest (2+) - path: build_oculus_quest + name: Android OpenXR + path: build_android_openxr - name: Package Artifacts for release run: | mkdir releases - mv build_oculus_quest/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Quest_$VERSION.apk + mv build_android_openxr/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Android_$VERSION.apk mv build_windows_openxr/StandaloneWindows64/ releases/OpenBrush_Desktop_$VERSION/ - name: Publish Windows uses: josephbmanley/butler-publish-itchio-action@master @@ -1068,10 +974,10 @@ jobs: uses: josephbmanley/butler-publish-itchio-action@master env: CHANNEL: android-quest-${{ env.ITCH_SUBCHANNEL_NAME }} - PACKAGE: releases/OpenBrush_Quest_${{ needs.configuration.outputs.version }}.apk + PACKAGE: releases/OpenBrush_Android_${{ needs.configuration.outputs.version }}.apk publish_oculus_quest: - name: Publish Oculus Quest 2+ Release + name: Publish Android Quest Release needs: [configuration, build] runs-on: macos-latest # the ovr-platform-util tool is only available for Mac and Windows if: | @@ -1080,11 +986,11 @@ jobs: (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v')) steps: - - name: Download Build Artifacts (Oculus Quest 2+) + - name: Download Build Artifacts (Android Quest) uses: actions/download-artifact@v4 with: - name: Oculus Quest (2+) - path: build_oculus_quest + name: Android Quest + path: build_android_quest - name: Publish Oculus Builds env: VERSION: ${{ needs.configuration.outputs.version }} @@ -1094,8 +1000,8 @@ jobs: OCULUS_QUEST_APP_SECRET: ${{ secrets.OCULUS_QUEST_APP_SECRET }} run: | mkdir releases - mv build_oculus_quest/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Quest_$VERSION.apk - mv build_oculus_quest/*/com.Icosa.OpenBrush*.symbols.zip releases/symbols.zip + mv build_android_quest/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Quest_$VERSION.apk + mv build_android_quest/*/com.Icosa.OpenBrush*.symbols.zip releases/symbols.zip cd releases unzip symbols.zip @@ -1104,50 +1010,10 @@ jobs: if [ "$PRERELEASE" == "false" ] then - ./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest_$VERSION.apk --channel LIVE:quest2+ --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --age-group MIXED_AGES - else - CHANGELOG="${RAW_CHANGELOG}" - ./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest_$VERSION.apk --channel Beta:quest2+ --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --notes "${CHANGELOG}" --age-group MIXED_AGES - fi - - publish_oculus_quest1: - name: Publish Oculus Quest 1 Release - needs: [configuration, build] - runs-on: macos-latest # the ovr-platform-util tool is only available for Mac and Windows - if: | - github.event_name == 'push' && - github.repository == 'icosa-foundation/open-brush' && - (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v')) - - steps: - - name: Download Build Artifacts (Oculus Quest 1) - uses: actions/download-artifact@v4 - with: - name: Oculus Quest (1) - path: build_oculus_quest1 - - name: Publish Oculus Builds - env: - VERSION: ${{ needs.configuration.outputs.version }} - PRERELEASE: ${{ needs.configuration.outputs.prerelease }} - RAW_CHANGELOG: ${{ needs.configuration.outputs.rawchangelog }} - OCULUS_QUEST_APP_ID: ${{ vars.OCULUS_QUEST_APP_ID }} - OCULUS_QUEST_APP_SECRET: ${{ secrets.OCULUS_QUEST_APP_SECRET }} - run: | - mkdir releases1 - mv build_oculus_quest1/*/com.Icosa.OpenBrush*apk releases1/OpenBrush_Quest1_$VERSION.apk - mv build_oculus_quest1/*/com.Icosa.OpenBrush*.symbols.zip releases1/symbols.zip - - cd releases1 - unzip symbols.zip - curl -L 'https://www.oculus.com/download_app/?id=1462426033810370' -o ovr-platform-util - chmod 755 ovr-platform-util - - if [ "$PRERELEASE" == "false" ] - then - ./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest1_$VERSION.apk --channel LIVE:quest1only --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --age-group MIXED_AGES + ./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest_$VERSION.apk --channel LIVE --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --age-group MIXED_AGES else CHANGELOG="${RAW_CHANGELOG}" - ./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest1_$VERSION.apk --channel Beta:quest1only --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --notes "${CHANGELOG}" --age-group MIXED_AGES + ./ovr-platform-util upload-quest-build --app-id ${OCULUS_QUEST_APP_ID} --app-secret ${OCULUS_QUEST_APP_SECRET} --apk OpenBrush_Quest_$VERSION.apk --channel Beta --debug_symbols_dir ./arm64-v8a/ --debug-symbols-pattern '*.so' --notes "${CHANGELOG}" --age-group MIXED_AGES fi publish_oculus_rift: @@ -1160,11 +1026,11 @@ jobs: (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v')) steps: - - name: Download Build Artifacts (Windows Rift) + - name: Download Build Artifacts (Windows OpenXR) uses: actions/download-artifact@v4 with: - name: Windows Rift - path: build_windows_rift + name: Windows OpenXR + path: build_windows_openxr - name: Publish Oculus Builds env: VERSION: ${{ needs.configuration.outputs.version }} @@ -1174,7 +1040,7 @@ jobs: OCULUS_RIFT_APP_SECRET: ${{ secrets.OCULUS_RIFT_APP_SECRET }} run: | mkdir releases - mv build_windows_rift/StandaloneWindows64/ releases/OpenBrush_Rift_$VERSION/ + mv build_windows_openxr/StandaloneWindows64/ releases/OpenBrush_Rift_$VERSION/ cd releases zip -r OpenBrush_Rift_$VERSION.zip OpenBrush_Rift_$VERSION/ curl -L 'https://www.oculus.com/download_app/?id=1462426033810370' -o ovr-platform-util @@ -1198,16 +1064,11 @@ jobs: (github.ref == 'refs/heads/main' || contains(github.ref, 'refs/tags/v')) steps: - - name: Download Build Artifacts (Android Pico) - uses: actions/download-artifact@v4 - with: - name: Android Pico - path: build_android_pico - - name: Download Build Artifacts (Android Pico CN) + - name: Download Build Artifacts (Android OpenXR) uses: actions/download-artifact@v4 with: - name: Android Pico (CN) - path: build_android_pico_cn + name: Android OpenXR + path: build_android_openxr - name: Publish Pico Builds env: VERSION: ${{ needs.configuration.outputs.version }} @@ -1217,8 +1078,7 @@ jobs: PICO_APP_SECRET: ${{ secrets.PICO_APP_SECRET }} run: | mkdir releases - mv build_android_pico/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Pico_$VERSION.apk - mv build_android_pico_cn/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Pico_CN_$VERSION.apk + mv build_android_openxr/*/com.Icosa.OpenBrush*apk releases/OpenBrush_Pico_$VERSION.apk cd releases # pico-cli v1.0.3 @@ -1227,9 +1087,8 @@ jobs: if [ "$PRERELEASE" == "false" ] then - # The order here matters, because the Chinese build has a slightly higher version code due to the suffix of 1 vs 0 ./pico-cli upload-build --app-id $PICO_APP_ID --app-secret $PICO_APP_SECRET --region noncn --apk OpenBrush_Pico_$VERSION.apk --channel 2 --notes-en "Version $VERSION" --device 'PICO Neo3,PICO Neo3 Pro,PICO Neo3 Eye,PICO 4' - ./pico-cli upload-build --app-id $PICO_APP_ID --app-secret $PICO_APP_SECRET --region noncn --apk OpenBrush_Pico_CN_$VERSION.apk --channel 1 --notes-en "Version $VERSION" --device 'PICO Neo3,PICO Neo3 Pro,PICO Neo3 Eye,PICO 4' + ./pico-cli upload-build --app-id $PICO_APP_ID --app-secret $PICO_APP_SECRET --region cn --apk OpenBrush_Pico_$VERSION.apk --channel 1 --notes-en "Version $VERSION" --device 'PICO Neo3,PICO Neo3 Pro,PICO Neo3 Eye,PICO 4' else # For Pico, Beta channels can only get one build, not a separate China / non-China build ./pico-cli upload-build --app-id $PICO_APP_ID --app-secret $PICO_APP_SECRET --region noncn --apk OpenBrush_Pico_$VERSION.apk --channel 3 --notes-en "Version $VERSION" --device 'PICO Neo3,PICO Neo3 Pro,PICO Neo3 Eye,PICO 4' diff --git a/.gitignore b/.gitignore index 495b2bc0c2..4fbcae46ea 100644 --- a/.gitignore +++ b/.gitignore @@ -65,14 +65,6 @@ # This seems to be generated by SteamVR, and it contains absolute paths to things # eg, "action_manifest_path": "C:\\src\\tbq2\\actions.json", /unityProject.vrmanifest - -# This seems to contain user-specific configuration data like: -# androidSDKPath: C:\Users\pld\AppData\Local\Android\Sdk -# and doesn't contain any general configuration data, so I think it doesn't go in the repo -/Assets/Resources/OVRBuildConfig.asset* -# Oculus Unitypackage 23.1 (or something in between 1.41 and 23.1) added this as a local file -/Assets/Resources/OVRPlatformToolSettings.asset* - # m_DebugWebRequest creates this /Requests @@ -84,24 +76,6 @@ /Assets/StreamingAssets/ /Assets/StreamingAssets.meta -# Google process -.gitbugtraq - -# Oculus Integration -/Assets/Oculus/** -/Assets/Oculus.meta -!/Assets/Oculus/OculusProjectConfig.asset* - -# In CI, this symlink is created to allow the updater to run. It should never go into source control -/Assets/Editor/OVRPluginUpdater.cs - -# Pimax Integration -/Assets/Pimax -/Assets/Pimax.meta - -# Pico Integration -Packages/com.unity.xr.picoxr - # Photon Integration /Assets/Photon/** /Assets/Photon.meta diff --git a/Assets/Prefabs/VrSystems/VrControllers/UnityXR/OculusXRQuestControls.prefab.meta b/Assets/CompositionLayers.meta similarity index 57% rename from Assets/Prefabs/VrSystems/VrControllers/UnityXR/OculusXRQuestControls.prefab.meta rename to Assets/CompositionLayers.meta index 489eaa4d78..5ab91a6f7e 100644 --- a/Assets/Prefabs/VrSystems/VrControllers/UnityXR/OculusXRQuestControls.prefab.meta +++ b/Assets/CompositionLayers.meta @@ -1,6 +1,7 @@ fileFormatVersion: 2 -guid: 6fb051841cd1bcb4dbc6c246b98d97c8 -PrefabImporter: +guid: 85baa9c298d13eb47bef3587e9c26776 +folderAsset: yes +DefaultImporter: externalObjects: {} userData: assetBundleName: diff --git a/Assets/Oculus/OculusProjectConfig.asset.meta b/Assets/CompositionLayers/UserSettings.meta similarity index 54% rename from Assets/Oculus/OculusProjectConfig.asset.meta rename to Assets/CompositionLayers/UserSettings.meta index 5b9c3ad51e..88341b42ae 100644 --- a/Assets/Oculus/OculusProjectConfig.asset.meta +++ b/Assets/CompositionLayers/UserSettings.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: 99c0d806eb5cbe24da5e78ee5659c393 -NativeFormatImporter: +guid: ca1afaf18f3b7aa4eb96fedc0f3efbdb +folderAsset: yes +DefaultImporter: externalObjects: {} - mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Resources/ONSPSettings.asset b/Assets/CompositionLayers/UserSettings/CompositionLayersPreferences.asset similarity index 60% rename from Assets/Resources/ONSPSettings.asset rename to Assets/CompositionLayers/UserSettings/CompositionLayersPreferences.asset index e09d86951b..cd029dc82e 100644 --- a/Assets/Resources/ONSPSettings.asset +++ b/Assets/CompositionLayers/UserSettings/CompositionLayersPreferences.asset @@ -9,7 +9,9 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ad074644ff568a14187a3690cfbd7534, type: 3} - m_Name: ONSPSettings + m_Script: {fileID: 11500000, guid: c66150246d824833a8257ecb5aaa1d11, type: 3} + m_Name: CompositionLayersPreferences m_EditorClassIdentifier: - voiceLimit: 64 + m_DisplayAnglesAs: 0 + m_EmulationInScene: 1 + m_EmulationInPlayMode: 1 diff --git a/Assets/Resources/ImmersiveDebuggerSettings.asset.meta b/Assets/CompositionLayers/UserSettings/CompositionLayersPreferences.asset.meta similarity index 79% rename from Assets/Resources/ImmersiveDebuggerSettings.asset.meta rename to Assets/CompositionLayers/UserSettings/CompositionLayersPreferences.asset.meta index c4369a5c1f..6c481385fa 100644 --- a/Assets/Resources/ImmersiveDebuggerSettings.asset.meta +++ b/Assets/CompositionLayers/UserSettings/CompositionLayersPreferences.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: fe1e377f71ef6c54ba04c979771ecd67 +guid: 47a7c39e3d997e44381f0dd3fe0a531f NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/CompositionLayers/UserSettings/Resources.meta b/Assets/CompositionLayers/UserSettings/Resources.meta new file mode 100644 index 0000000000..21e2b209fc --- /dev/null +++ b/Assets/CompositionLayers/UserSettings/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c175a6796aeb23e48a63306b91f44455 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/CompositionLayers/UserSettings/Resources/CompositionLayersRuntimeSettings.asset b/Assets/CompositionLayers/UserSettings/Resources/CompositionLayersRuntimeSettings.asset new file mode 100644 index 0000000000..38ac9d9bcb --- /dev/null +++ b/Assets/CompositionLayers/UserSettings/Resources/CompositionLayersRuntimeSettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +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: b95e00e48ede4f8c896318a0e47ea88a, type: 3} + m_Name: CompositionLayersRuntimeSettings + m_EditorClassIdentifier: + m_EmulationInStandalone: 0 + m_EnableSplashScreen: 0 + m_SplashImage: {fileID: 0} + m_BackgroundColor: {r: 0.1372549, g: 0.1215686, b: 0.1254902, a: 1} + m_SplashDuration: 3 + m_FadeInDuration: 2 + m_FadeOutDuration: 1 + m_FollowSpeed: 2 + m_FollowDistance: 2 + m_LockToHorizon: 1 + m_LayerType: 0 + m_QuadLayerData: + m_BlendType: 0 + m_Size: {x: 1, y: 1} + m_ApplyTransformScale: 1 + m_CylinderLayerData: + m_BlendType: 0 + m_CentralAngle: 1.5707964 + m_Radius: 0.6366198 + m_AspectRatio: 1 + m_ApplyTransformScale: 1 diff --git a/Assets/XR/Loaders/Oculus Loader.asset.meta b/Assets/CompositionLayers/UserSettings/Resources/CompositionLayersRuntimeSettings.asset.meta similarity index 79% rename from Assets/XR/Loaders/Oculus Loader.asset.meta rename to Assets/CompositionLayers/UserSettings/Resources/CompositionLayersRuntimeSettings.asset.meta index 6fb3d43848..ef76319b8b 100644 --- a/Assets/XR/Loaders/Oculus Loader.asset.meta +++ b/Assets/CompositionLayers/UserSettings/Resources/CompositionLayersRuntimeSettings.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: df02db4506fe02b4892b2f1dab25abe6 +guid: 874c8eb0dedf7fb41b8fc968b253bc02 NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/Editor/BuildTiltBrush.cs b/Assets/Editor/BuildTiltBrush.cs index a63f6ed928..256c81d9dd 100644 --- a/Assets/Editor/BuildTiltBrush.cs +++ b/Assets/Editor/BuildTiltBrush.cs @@ -28,17 +28,9 @@ using UnityEditor.SceneManagement; using UnityEditor.XR.Management; using UnityEngine; -using UnityEngine.XR; using UnityEngine.XR.Management; using Environment = System.Environment; -//---------------------------------------------------------------------------------------- -// Notes on build flags which can be added to Player Settings. -// -// - OCULUS_SUPPORTED -// - Oculus is an optional target. Define this flag to add Oculus targets. -// -//---------------------------------------------------------------------------------------- // All output from this class is prefixed with "_btb_" to facilitate extracting // it from Unity's very noisy and spammy Editor.log file. @@ -75,7 +67,6 @@ public class TiltBuildOptions public string Stamp; public BuildOptions UnityOptions; public string Description; - public bool disableAccountLogins; } [Serializable()] @@ -92,14 +83,13 @@ public BuildFailedException(string message) const string kMenuPluginPref = "Open Brush/Build/Plugin"; const string kMenuPluginMono = "Open Brush/Build/Plugin: Mono"; const string kMenuPluginOpenXr = "Open Brush/Build/Plugin: OpenXR"; - const string kMenuPluginOculus = "Open Brush/Build/Plugin: Oculus"; - const string kMenuPluginWave = "Open Brush/Build/Plugin: Wave"; - const string kMenuPluginPico = "Open Brush/Build/Plugin: Pico"; + const string kMenuPluginZapbox = "Open Brush/Build/Plugin: Zapbox"; const string kMenuPlatformPref = "Open Brush/Build/Platform"; const string kMenuPlatformWindows = "Open Brush/Build/Platform: Windows"; const string kMenuPlatformLinux = "Open Brush/Build/Platform: Linux"; const string kMenuPlatformOsx = "Open Brush/Build/Platform: OSX"; const string kMenuPlatformAndroid = "Open Brush/Build/Platform: Android"; + const string kMenuPlatformIos = "Open Brush/Build/Platform: iOS"; const string kMenuDevelopment = "Open Brush/Build/Development"; const string kMenuMono = "Open Brush/Build/Runtime: Mono"; const string kMenuIl2cpp = "Open Brush/Build/Runtime: IL2CPP"; @@ -111,24 +101,15 @@ public BuildFailedException(string message) private static readonly List> kValidSdkTargets = new List>() { + // Monoscopic + new KeyValuePair(XrSdkMode.Monoscopic, BuildTarget.StandaloneWindows64), + // OpenXR new KeyValuePair(XrSdkMode.OpenXR, BuildTarget.StandaloneWindows64), new KeyValuePair(XrSdkMode.OpenXR, BuildTarget.Android), // Zapbox new KeyValuePair(XrSdkMode.Zapbox, BuildTarget.iOS), - -#if OCULUS_SUPPORTED - // Oculus - new KeyValuePair(XrSdkMode.Oculus, BuildTarget.StandaloneWindows64), - new KeyValuePair(XrSdkMode.Oculus, BuildTarget.Android), -#endif // OCULUS_SUPPORTED - // Wave - new KeyValuePair(XrSdkMode.Wave, BuildTarget.Android), -#if PICO_SUPPORTED - // Pico - new KeyValuePair(XrSdkMode.Pico, BuildTarget.Android), -#endif // PICO_SUPPORTED }; static readonly List kToCopy = new List @@ -201,12 +182,9 @@ public static XrSdkMode GuiSelectedSdk set { EditorPrefs.SetString(kMenuPluginPref, value.ToString()); + Menu.SetChecked(kMenuPluginMono, value == XrSdkMode.Monoscopic); Menu.SetChecked(kMenuPluginOpenXr, value == XrSdkMode.OpenXR); -#if OCULUS_SUPPORTED - Menu.SetChecked(kMenuPluginOculus, value == XrSdkMode.Oculus); -#endif // OCULUS_SUPPORTED - Menu.SetChecked(kMenuPluginWave, value == XrSdkMode.Wave); - Menu.SetChecked(kMenuPluginPico, value == XrSdkMode.Pico); + Menu.SetChecked(kMenuPluginZapbox, value == XrSdkMode.Zapbox); if (!BuildTargetSupported(value, GuiSelectedBuildTarget)) { @@ -229,6 +207,7 @@ public static BuildTarget GuiSelectedBuildTarget Menu.SetChecked(kMenuPlatformLinux, value == BuildTarget.StandaloneLinux64); Menu.SetChecked(kMenuPlatformOsx, value == BuildTarget.StandaloneOSX); Menu.SetChecked(kMenuPlatformAndroid, value == BuildTarget.Android); + Menu.SetChecked(kMenuPlatformIos, value == BuildTarget.iOS); } } @@ -387,67 +366,45 @@ static bool MenuItem_BackgroundBuild_Validate() } //======= SDKs ======= - - [MenuItem(kMenuPluginOpenXr, isValidateFunction: false, priority: 110)] - static void MenuItem_Plugin_OpenXr() + [MenuItem(kMenuPluginMono, isValidateFunction: false, priority: 110)] + static void MenuItem_Plugin_Mono() { - GuiSelectedSdk = XrSdkMode.OpenXR; + GuiSelectedSdk = XrSdkMode.Monoscopic; } - [MenuItem(kMenuPluginOpenXr, isValidateFunction: true)] - static bool MenuItem_Plugin_OpenXr_Validate() + [MenuItem(kMenuPluginMono, isValidateFunction: true)] + static bool MenuItem_Plugin_Mono_Validate() { - Menu.SetChecked(kMenuPluginOpenXr, GuiSelectedSdk == XrSdkMode.OpenXR); + Menu.SetChecked(kMenuPluginMono, GuiSelectedSdk == XrSdkMode.Monoscopic); return true; } - [MenuItem(kMenuPluginOculus, isValidateFunction: false, priority: 105)] - static void MenuItem_Plugin_Oculus() + [MenuItem(kMenuPluginOpenXr, isValidateFunction: false, priority: 111)] + static void MenuItem_Plugin_OpenXr() { - GuiSelectedSdk = XrSdkMode.Oculus; + GuiSelectedSdk = XrSdkMode.OpenXR; } - [MenuItem(kMenuPluginOculus, isValidateFunction: true)] - static bool MenuItem_Plugin_Oculus_Validate() + [MenuItem(kMenuPluginOpenXr, isValidateFunction: true)] + static bool MenuItem_Plugin_OpenXr_Validate() { -#if OCULUS_SUPPORTED - Menu.SetChecked(kMenuPluginOculus, GuiSelectedSdk == XrSdkMode.Oculus); + Menu.SetChecked(kMenuPluginOpenXr, GuiSelectedSdk == XrSdkMode.OpenXR); return true; -#else - return false; -#endif } - [MenuItem(kMenuPluginWave, isValidateFunction: false, priority: 115)] - static void MenuItem_Plugin_Wave() + [MenuItem(kMenuPluginZapbox, isValidateFunction: false, priority: 112)] + static void MenuItem_Plugin_Zapbox() { - GuiSelectedSdk = XrSdkMode.Wave; + GuiSelectedSdk = XrSdkMode.Zapbox; } - [MenuItem(kMenuPluginWave, isValidateFunction: true)] - static bool MenuItem_Plugin_Wave_Validate() + [MenuItem(kMenuPluginZapbox, isValidateFunction: true)] + static bool MenuItem_Plugin_Zapbox_Validate() { - Menu.SetChecked(kMenuPluginWave, GuiSelectedSdk == XrSdkMode.Wave); + Menu.SetChecked(kMenuPluginZapbox, GuiSelectedSdk == XrSdkMode.Zapbox); return true; } - [MenuItem(kMenuPluginPico, isValidateFunction: false, priority: 125)] - static void MenuItem_Plugin_Pico() - { - GuiSelectedSdk = XrSdkMode.Pico; - } - - [MenuItem(kMenuPluginPico, isValidateFunction: true)] - static bool MenuItem_Plugin_Pico_Validate() - { -#if PICO_SUPPORTED - Menu.SetChecked(kMenuPluginPico, GuiSelectedSdk == XrSdkMode.Pico); - return true; -#else - return false; -#endif - } - //======= Platforms ======= [MenuItem(kMenuPlatformWindows, isValidateFunction: false, priority: 200)] @@ -464,7 +421,7 @@ static bool MenuItem_Platform_Windows_Validate() return BuildTargetSupported(GuiSelectedSdk, BuildTarget.StandaloneWindows64); } - // [MenuItem(kMenuPlatformLinux, isValidateFunction: false, priority: 202)] + // [MenuItem(kMenuPlatformLinux, isValidateFunction: false, priority: 201)] // static void MenuItem_Platform_Linux() // { // GuiSelectedBuildTarget = BuildTarget.StandaloneLinux64; @@ -477,7 +434,7 @@ static bool MenuItem_Platform_Windows_Validate() // return BuildTargetSupported(GuiSelectedSdk, BuildTarget.StandaloneLinux64); // } - [MenuItem(kMenuPlatformOsx, isValidateFunction: false, priority: 205)] + [MenuItem(kMenuPlatformOsx, isValidateFunction: false, priority: 202)] static void MenuItem_Platform_Osx() { GuiSelectedBuildTarget = BuildTarget.StandaloneOSX; @@ -490,7 +447,7 @@ static bool MenuItem_Platform_Osx_Validate() return BuildTargetSupported(GuiSelectedSdk, BuildTarget.StandaloneOSX); } - [MenuItem(kMenuPlatformAndroid, isValidateFunction: false, priority: 210)] + [MenuItem(kMenuPlatformAndroid, isValidateFunction: false, priority: 203)] static void MenuItem_Platform_Android() { GuiSelectedBuildTarget = BuildTarget.Android; @@ -503,6 +460,18 @@ static bool MenuItem_Platform_Android_Validate() return BuildTargetSupported(GuiSelectedSdk, BuildTarget.Android); } + [MenuItem(kMenuPlatformIos, isValidateFunction: false, priority: 204)] + static void MenuItem_Platform_Ios() + { + GuiSelectedBuildTarget = BuildTarget.iOS; + } + + [MenuItem(kMenuPlatformIos, isValidateFunction: true)] + static bool MenuItem_Platform_Ios_Validate() + { + Menu.SetChecked(kMenuPlatformIos, GuiSelectedBuildTarget == BuildTarget.iOS); + return BuildTargetSupported(GuiSelectedSdk, BuildTarget.iOS); + } //======= Runtimes ======= [MenuItem(kMenuMono, isValidateFunction: false, priority: 300)] @@ -692,14 +661,6 @@ static void CommandLine() string keystorePass = Environment.GetEnvironmentVariable("BTB_KEYSTORE_PASS"); string keyaliasPass = Environment.GetEnvironmentVariable("BTB_KEYALIAS_PASS"); -#if OCULUS_SUPPORTED - // Call these once to create the files. Normally (i.e., in a GUI build), they're created with - // [UnityEditor.InitializeOnLoad], but in case they're missing, like in CI, make sure they're - // there! - OVRProjectConfig defaultOculusProjectConfig = OVRProjectConfig.CachedProjectConfig; - string useless_app_id = Assets.Oculus.VR.Editor.OVRPlatformToolSettings.AppID; -#endif - { string[] args = Environment.GetCommandLineArgs(); int i = 0; @@ -813,10 +774,6 @@ static void CommandLine() { i++; } - else if (args[i] == "-btb-disableAccountLogins") - { - tiltOptions.disableAccountLogins = true; - } else if (args[i] == "-androidExportType") { // Not supported in Open Brush (added to game-ci in v3) @@ -1023,7 +980,7 @@ public TempSetAppNames(BuildTarget target, string Description) break; } -#if OCULUS_SUPPORTED || USE_QUEST_PACKAGE_NAME +#if USE_QUEST_PACKAGE_NAME //Can't change Quest identifier new_identifier = "com.Icosa.OpenBrush"; #elif ZAPBOX_SUPPORTED @@ -1070,13 +1027,7 @@ public TempSetOpenXrFeatureGroup(TiltBuildOptions tiltOptions) switch (tiltOptions.XrSdk) { - case XrSdkMode.Oculus: - // requiredFeatureStrings.Add("com.oculus.openxr.feature.oculusxr"); - // if (m_targetGroup == BuildTargetGroup.Android) - // { - // requiredFeatureStrings.Add("com.unity.openxr.feature.oculusquest"); - // } - break; + } if (requiredFeatureStrings.Count == 0) @@ -1160,15 +1111,9 @@ public TempSetXrPlugin(TiltBuildOptions tiltOptions) switch (tiltOptions.XrSdk) { - case XrSdkMode.Oculus: - targetXrPluginsRequired = new string[] { "Unity.XR.Oculus.OculusLoader" }; - break; case XrSdkMode.OpenXR: targetXrPluginsRequired = new string[] { "UnityEngine.XR.OpenXR.OpenXRLoader" }; break; - case XrSdkMode.Pico: - targetXrPluginsRequired = new string[] { "Unity.XR.PXR.PXR_Loader" }; - break; case XrSdkMode.Zapbox: targetXrPluginsRequired = new string[] { "Zappar.XR.ZapboxLoader" }; break; @@ -1242,10 +1187,6 @@ public TempSetGraphicsApis(TiltBuildOptions tiltOptions) switch (tiltOptions.XrSdk) { - case XrSdkMode.Pico: - case XrSdkMode.Wave: - targetGraphicsApisRequired = new UnityEngine.Rendering.GraphicsDeviceType[] { UnityEngine.Rendering.GraphicsDeviceType.OpenGLES3 }; - break; default: targetGraphicsApisRequired = m_graphicsApis; break; @@ -1531,7 +1472,7 @@ public static void DoBuild(TiltBuildOptions tiltOptions) config.m_AutoProfile = tiltOptions.AutoProfile; config.m_BuildStamp = stamp; //config.OnValidate(xrSdk, TargetToGroup(target)); - config.DoBuildTimeConfiguration(target, tiltOptions.disableAccountLogins); + config.DoBuildTimeConfiguration(target); EditorUtility.SetDirty(config); if (GuiSelectedBuildTarget == BuildTarget.Android) @@ -1609,23 +1550,6 @@ public static void DoBuild(TiltBuildOptions tiltOptions) string.Format("Build sanity checks failed:\n{0}", string.Join("\n", errors.ToArray()))); } - // b/139746720 - { - foreach (var asset in new[] - { - "Assets/ThirdParty/Oculus/LipSync/Scripts/OVRLipSyncMicInput.cs", - "Assets/ThirdParty/Oculus/Platform/Scripts/MicrophoneInput.cs", - }) - { - // For some reason AssetPathToGUID() still returns a guid even after the - // files are deleted :-P. So use the filesystem I guess? - if (File.Exists(asset)) - { - throw new BuildFailedException( - string.Format("{0} not allowed in build", asset)); - } - } - } } var supportBrushTexturesRequests = new GlTFEditorExporter.ExportRequests(); @@ -1786,7 +1710,6 @@ private static string FormatBuildReport(BuildReport report) return "Errors:\n" + string.Join("\n", steps.ToArray()); } - // Disables the Oculus resolution-setting override for non-Oculus builds. // Copies loose-file app data. [UnityEditor.Callbacks.PostProcessBuildAttribute(2)] public static void OnPostProcessBuild(BuildTarget target, string path) diff --git a/Assets/Editor/BuildTiltBrushPostProcess.cs b/Assets/Editor/BuildTiltBrushPostProcess.cs index 780f0c2dad..ae8740fbb9 100644 --- a/Assets/Editor/BuildTiltBrushPostProcess.cs +++ b/Assets/Editor/BuildTiltBrushPostProcess.cs @@ -41,60 +41,7 @@ public void OnPostGenerateGradleAndroidProject(string path) XmlElement element = (XmlElement)doc.SelectSingleNode("/manifest"); var androidNamespaceURI = element.GetAttribute("xmlns:android"); - - -#if FORCE_QUEST_SUPPORT_DEVICE - UnityEngine.Debug.Log("Add quest as a supported devices"); - AddOrRemoveTag(doc, - androidNamespaceURI, - "/manifest/application", - "meta-data", - "com.oculus.supportedDevices", - true, - true, - "value", "quest" - ); -#endif - -#if FORCE_FOCUSAWARE - UnityEngine.Debug.Log("Add com.oculus.vr.focusaware"); - AddOrRemoveTag(doc, - androidNamespaceURI, - "/manifest/application/activity", - "meta-data", - "com.oculus.vr.focusaware", - true, - true, - "value", "true" - ); -#endif - -#if ENABLE_CONTEXTUAL_BOUNDARYLESS_APP - UnityEngine.Debug.Log("Add com.oculus.feature.CONTEXTUAL_BOUNDARYLESS_APP"); - AddOrRemoveTag(doc, - androidNamespaceURI, - "/manifest", - "uses-feature", - "com.oculus.feature.CONTEXTUAL_BOUNDARYLESS_APP", - true, - true, - "required", "true" - ); -#endif - -#if FORCE_HEADTRACKING - UnityEngine.Debug.Log("Add android.hardware.vr.headtracking"); - AddOrRemoveTag(doc, - androidNamespaceURI, - "/manifest", - "uses-feature", - "android.hardware.vr.headtracking", - true, - true, - "version", "1", - "required", "true" - ); -#endif + // Currently nothing to modify! doc.Save(file); } diff --git a/Assets/Oculus/OculusProjectConfig.asset b/Assets/Oculus/OculusProjectConfig.asset deleted file mode 100644 index 20354b8411..0000000000 --- a/Assets/Oculus/OculusProjectConfig.asset +++ /dev/null @@ -1,45 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -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: 05d394ae2a81edd4cbc3c51917e766e3, type: 3} - m_Name: OculusProjectConfig - m_EditorClassIdentifier: - targetDeviceTypes: 01000000020000000300000004000000 - allowOptional3DofHeadTracking: 0 - handTrackingSupport: 0 - handTrackingFrequency: 0 - handTrackingVersion: 0 - anchorSupport: 1 - sharedAnchorSupport: 1 - renderModelSupport: 0 - trackedKeyboardSupport: 0 - bodyTrackingSupport: 0 - faceTrackingSupport: 0 - eyeTrackingSupport: 0 - virtualKeyboardSupport: 0 - sceneSupport: 1 - boundaryVisibilitySupport: 0 - disableBackups: 0 - enableNSCConfig: 0 - securityXmlPath: - skipUnneededShaders: 0 - enableIL2CPPLTO: 0 - focusAware: 1 - requiresSystemKeyboard: 0 - experimentalFeaturesEnabled: 0 - insightPassthroughEnabled: 0 - _insightPassthroughSupport: 1 - _processorFavor: 0 - systemSplashScreen: {fileID: 0} - systemSplashScreenType: 0 - _systemLoadingScreenBackground: 0 - ovrPluginMd5Win64: d72fb658f3d9064293fb2241e55259057f9ac34a260fafcf32f36c4a3005911c - ovrPluginMd5Android: 5ef6da3aad630673da6447f50e1b2d8ae14dbda69fd9877bc13b87ed87f3752b diff --git a/Assets/Plugins/Android/AndroidManifest.xml b/Assets/Plugins/Android/AndroidManifest.xml index b50dec3524..e7a72b1558 100644 --- a/Assets/Plugins/Android/AndroidManifest.xml +++ b/Assets/Plugins/Android/AndroidManifest.xml @@ -12,14 +12,15 @@ - - + + - - + + + diff --git a/Assets/Prefabs/NoPeekingCamera.prefab b/Assets/Prefabs/NoPeekingCamera.prefab index 57d4efac12..29b56d1571 100644 --- a/Assets/Prefabs/NoPeekingCamera.prefab +++ b/Assets/Prefabs/NoPeekingCamera.prefab @@ -10,8 +10,6 @@ GameObject: m_Component: - component: {fileID: 443338} - component: {fileID: 2022414} - - component: {fileID: 6492638988032190719} - - component: {fileID: 4366673980723059407} - component: {fileID: 6241333446037012601} m_Layer: 5 m_Name: NoPeekingCamera @@ -27,6 +25,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 115488} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 2.788, z: -0.135} m_LocalScale: {x: 1, y: 1, z: 1} @@ -38,7 +37,6 @@ Transform: - {fileID: 413530} - {fileID: 8410171649586590716} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!20 &2022414 Camera: @@ -54,9 +52,17 @@ Camera: m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -83,62 +89,6 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 ---- !u!114 &6492638988032190719 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115488} - 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!114 &4366673980723059407 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 115488} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} - m_Name: - m_EditorClassIdentifier: - m_SendPointerHoverToParent: 1 - m_MoveRepeatDelay: 0.5 - m_MoveRepeatRate: 0.1 - m_XRTrackingOrigin: {fileID: 0} - m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, - type: 3} - m_DeselectOnBackgroundClick: 1 - m_PointerBehavior: 0 - m_CursorLockBehavior: 0 --- !u!114 &6241333446037012601 MonoBehaviour: m_ObjectHideFlags: 0 @@ -179,13 +129,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 140238} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0.097, y: 0.154, z: 0.13} m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 443338} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &3371228 MeshFilter: @@ -262,13 +212,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 155226} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.15} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 443338} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &3381284 MeshFilter: @@ -345,13 +295,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 164546} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -0.064, y: 0.27000022, z: 0.10699999} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 443338} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &2364274 MeshRenderer: @@ -450,7 +400,6 @@ RectTransform: m_Children: - {fileID: 3116164079771605471} m_Father: {fileID: 102712877867131431} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -544,7 +493,6 @@ RectTransform: - {fileID: 4894785073544231431} - {fileID: 4875555268988913917} m_Father: {fileID: 443338} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -568,7 +516,9 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 25 + m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 @@ -643,7 +593,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 6449318793323638539} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -778,7 +727,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 904834551594540007} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -915,7 +863,6 @@ RectTransform: m_Children: - {fileID: 2638111108600025223} m_Father: {fileID: 8410171649586590716} - 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} @@ -1049,7 +996,6 @@ RectTransform: m_Children: - {fileID: 904834551594540007} m_Father: {fileID: 8410171649586590716} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1084,7 +1030,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: 'More info on using Open Brush without VR:' + m_text: More info on using Open Brush without VR m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} @@ -1226,7 +1172,6 @@ RectTransform: - {fileID: 8023065207140017517} - {fileID: 2697015570847389550} m_Father: {fileID: 3116164079771605471} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} @@ -1316,7 +1261,6 @@ RectTransform: - {fileID: 8467908165221074957} - {fileID: 102712877867131431} m_Father: {fileID: 8410171649586590716} - 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} @@ -1449,7 +1393,6 @@ RectTransform: - {fileID: 2657996401036598236} - {fileID: 588423579390810819} m_Father: {fileID: 5689798638485741962} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 0} @@ -1557,7 +1500,6 @@ RectTransform: m_Children: - {fileID: 2151790082496267364} m_Father: {fileID: 102712877867131431} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -1682,7 +1624,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5689798638485741962} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} @@ -1758,7 +1699,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 6449318793323638539} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} @@ -1833,7 +1773,6 @@ RectTransform: m_Children: - {fileID: 7063341143212780120} m_Father: {fileID: 588423579390810819} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -1870,7 +1809,6 @@ RectTransform: m_Children: - {fileID: 6449318793323638539} m_Father: {fileID: 2657996401036598236} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} @@ -1908,7 +1846,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5689798638485741962} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2043,7 +1980,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 6449318793323638539} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2121,7 +2057,6 @@ RectTransform: m_Children: - {fileID: 7721906838142688869} m_Father: {fileID: 4875555268988913917} - 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} @@ -2254,7 +2189,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 443338} - 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} @@ -2323,7 +2257,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Failed to detect VR + m_text: Failed to Detect VR m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} @@ -2466,7 +2400,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4894785073544231431} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -2601,7 +2534,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2151790082496267364} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 0.2} @@ -2678,7 +2610,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 8410171649586590716} - 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} @@ -2716,7 +2647,7 @@ MonoBehaviour: m_text: "You can continue without a VR headset. Choose a sketch below to enter Viewing Mode with the following controls:\n\nMouse: look around (press I to invert up/down) \nW,A,S,D: move forward/back/left/right\nQ,E: move up/down\nHold shift - to move faster" + to move faster\n" m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} m_sharedMaterial: {fileID: 2133298, guid: fce54057bad3d2d4cb3c36ee394be518, type: 2} diff --git a/Assets/Prefabs/VrSystems/VrControllers/UnityXR/OculusXRQuestControls.prefab b/Assets/Prefabs/VrSystems/VrControllers/UnityXR/OculusXRQuestControls.prefab deleted file mode 100644 index b1e53ecd19..0000000000 --- a/Assets/Prefabs/VrSystems/VrControllers/UnityXR/OculusXRQuestControls.prefab +++ /dev/null @@ -1,109 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1001 &2303402404295029011 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 1000010438099326, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_Name - value: OculusXRQuestControls - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4000011949354466, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 114000010919708240, guid: dc370ed6d37f7c141bf13df38965130b, - type: 3} - propertyPath: m_GeometryOffset.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 114000010919708240, guid: dc370ed6d37f7c141bf13df38965130b, - type: 3} - propertyPath: m_GeometryOffset.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 114000010919708240, guid: dc370ed6d37f7c141bf13df38965130b, - type: 3} - propertyPath: m_GeometryOffset.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 114000010919708240, guid: dc370ed6d37f7c141bf13df38965130b, - type: 3} - propertyPath: m_GeometryRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 114000010919708240, guid: dc370ed6d37f7c141bf13df38965130b, - type: 3} - propertyPath: m_GeometryRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 114000013332822508, guid: dc370ed6d37f7c141bf13df38965130b, - type: 3} - propertyPath: m_GeometryOffset.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 114000013332822508, guid: dc370ed6d37f7c141bf13df38965130b, - type: 3} - propertyPath: m_GeometryOffset.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 114000013332822508, guid: dc370ed6d37f7c141bf13df38965130b, - type: 3} - propertyPath: m_GeometryOffset.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 114000013332822508, guid: dc370ed6d37f7c141bf13df38965130b, - type: 3} - propertyPath: m_GeometryRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 114000013332822508, guid: dc370ed6d37f7c141bf13df38965130b, - type: 3} - propertyPath: m_GeometryRotation.x - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: dc370ed6d37f7c141bf13df38965130b, type: 3} diff --git a/Assets/Prefabs/VrSystems/VrControllers/UnityXR/UnityXRPicoNeo3Controls.prefab b/Assets/Prefabs/VrSystems/VrControllers/UnityXR/UnityXRPicoNeo3Controls.prefab index a3f8189290..9d5a9887f3 100644 --- a/Assets/Prefabs/VrSystems/VrControllers/UnityXR/UnityXRPicoNeo3Controls.prefab +++ b/Assets/Prefabs/VrSystems/VrControllers/UnityXR/UnityXRPicoNeo3Controls.prefab @@ -24,6 +24,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000010438099326} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 10, y: 10, z: 10} @@ -32,7 +33,6 @@ Transform: - {fileID: 4000010267600154} - {fileID: 4000010915250370} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &114000011240657384 MonoBehaviour: @@ -53,10 +53,7 @@ MonoBehaviour: - {fileID: 114000013332822508} m_HapticsDurationScale: 0.02 m_HapticAmplitudeScale: 0.04 - m_TriggerActivationRange: {x: 0.15, y: 0.8} - m_GripActivationRange: {x: 0.15, y: 0.8} m_TouchpadActivationRange: {x: -0.8, y: 0.8} - m_LogitechPenActivationRange: {x: 0, y: 1} m_WandRotateJoystickPercent: 0.7 --- !u!1 &1000012863469616 GameObject: @@ -84,13 +81,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000012863469616} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4000011949354466} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &114000013332822508 MonoBehaviour: @@ -107,8 +104,8 @@ MonoBehaviour: m_ControllerName: 1 m_ControllerGeometryPrefab: {fileID: 114000012796927648, guid: 698438851fab863449a0a8f3e209a21a, type: 3} - m_GeometryOffset: {x: 0, y: 0, z: 0} - m_GeometryRotation: {x: 0, y: 0, z: 0, w: 1} + m_GeometryOffset: {x: -0.03, y: -0.182, z: 0.379} + m_GeometryRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254} --- !u!114 &114000013512061632 MonoBehaviour: m_ObjectHideFlags: 0 @@ -171,13 +168,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000013186975256} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4000011949354466} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &114000010919708240 MonoBehaviour: @@ -194,8 +191,8 @@ MonoBehaviour: m_ControllerName: 0 m_ControllerGeometryPrefab: {fileID: 114346084812737864, guid: 47142ccbb734c0a4f9c3ca74fdd28286, type: 3} - m_GeometryOffset: {x: 0, y: 0, z: 0} - m_GeometryRotation: {x: 0, y: 0, z: 0, w: 1} + m_GeometryOffset: {x: 0.03, y: -0.182, z: 0.379} + m_GeometryRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254} --- !u!114 &114000011013631904 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/VrSystems/VrControllers/UnityXR/UnityXRPicoPhoenixControls.prefab b/Assets/Prefabs/VrSystems/VrControllers/UnityXR/UnityXRPicoPhoenixControls.prefab index 955f6717f5..7aeec08296 100644 --- a/Assets/Prefabs/VrSystems/VrControllers/UnityXR/UnityXRPicoPhoenixControls.prefab +++ b/Assets/Prefabs/VrSystems/VrControllers/UnityXR/UnityXRPicoPhoenixControls.prefab @@ -24,6 +24,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000010438099326} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 10, y: 10, z: 10} @@ -32,7 +33,6 @@ Transform: - {fileID: 4000010267600154} - {fileID: 4000010915250370} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &114000011240657384 MonoBehaviour: @@ -81,13 +81,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000012863469616} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4000011949354466} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &114000013332822508 MonoBehaviour: @@ -104,8 +104,8 @@ MonoBehaviour: m_ControllerName: 1 m_ControllerGeometryPrefab: {fileID: 114000012796927648, guid: de3f5b2b0d9487942af000f3125db17b, type: 3} - m_GeometryOffset: {x: 0, y: 0, z: 0} - m_GeometryRotation: {x: 0, y: 0, z: 0, w: 1} + m_GeometryOffset: {x: -0.03, y: -0.182, z: 0.379} + m_GeometryRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254} --- !u!114 &114000013512061632 MonoBehaviour: m_ObjectHideFlags: 0 @@ -168,13 +168,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1000013186975256} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4000011949354466} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &114000010919708240 MonoBehaviour: @@ -191,8 +191,8 @@ MonoBehaviour: m_ControllerName: 0 m_ControllerGeometryPrefab: {fileID: 114346084812737864, guid: ce18acd3ad627464c92e7352344232df, type: 3} - m_GeometryOffset: {x: 0, y: 0, z: 0} - m_GeometryRotation: {x: 0, y: 0, z: 0, w: 1} + m_GeometryOffset: {x: 0.03, y: -0.182, z: 0.379} + m_GeometryRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254} --- !u!114 &114000011013631904 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/VrSystems/XRRig.prefab b/Assets/Prefabs/VrSystems/XRRig.prefab index 828d395bf6..acd970b693 100644 --- a/Assets/Prefabs/VrSystems/XRRig.prefab +++ b/Assets/Prefabs/VrSystems/XRRig.prefab @@ -761,6 +761,7 @@ Transform: m_Children: - {fileID: 4173200421728563766} - {fileID: 4000011324248280} + - {fileID: 3650279410832179794} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &6299537005687282328 @@ -840,3 +841,76 @@ Transform: - {fileID: 4000011853176074} m_Father: {fileID: 4000013585580318} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3861166644986922815 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3650279410832179794} + - component: {fileID: 2660275246018177056} + - component: {fileID: 2511339224309827107} + m_Layer: 0 + m_Name: Default Scene Layer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3650279410832179794 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3861166644986922815} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4000013585580318} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2660275246018177056 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3861166644986922815} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3adf0bb75a444c61bde2e7841591bf41, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UICanvas: {fileID: 0} + m_UIMirrorComponent: {fileID: 0} + m_LayerOutline: {fileID: 2511339224309827107} + m_Order: 0 + m_LayerData: + rid: 681864465657364491 + m_PlatformLayerDataKeys: [] + m_PlatformLayerDataTexts: [] + m_PlatformLayerDataBinary: + references: + version: 2 + RefIds: + - rid: 681864465657364491 + type: {class: DefaultLayerData, ns: Unity.XR.CompositionLayers.Layers, asm: Unity.XR.CompositionLayers} + data: + m_BlendType: 1 +--- !u!114 &2511339224309827107 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3861166644986922815} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c239b33ee5aee77488aadc51463c91de, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/EnvironmentPrefabs/Passthrough.prefab b/Assets/Resources/EnvironmentPrefabs/Passthrough.prefab index c84e4cc353..8c3c23e159 100644 --- a/Assets/Resources/EnvironmentPrefabs/Passthrough.prefab +++ b/Assets/Resources/EnvironmentPrefabs/Passthrough.prefab @@ -10,6 +10,8 @@ GameObject: m_Component: - component: {fileID: 413308} - component: {fileID: 2894341405841368711} + - component: {fileID: 671514100984563759} + - component: {fileID: 2200318192125775268} m_Layer: 0 m_Name: Passthrough m_TagString: Untagged @@ -24,13 +26,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 118944} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &2894341405841368711 MonoBehaviour: @@ -44,3 +46,45 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d3974c6c53f3f8942b147e7e86cb0e75, type: 3} m_Name: m_EditorClassIdentifier: + m_PassthroughLayer: {fileID: 671514100984563759} +--- !u!114 &671514100984563759 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118944} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3adf0bb75a444c61bde2e7841591bf41, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UICanvas: {fileID: 0} + m_UIMirrorComponent: {fileID: 0} + m_LayerOutline: {fileID: 2200318192125775268} + m_Order: -1 + m_LayerData: + rid: 681864465657364485 + m_PlatformLayerDataKeys: [] + m_PlatformLayerDataTexts: [] + m_PlatformLayerDataBinary: + references: + version: 2 + RefIds: + - rid: 681864465657364485 + type: {class: FBPassthroughLayerData, ns: OpenXR.Extensions, asm: OpenXR.Extensions} + data: + m_BlendType: 0 + m_SubmitDepth: 0 +--- !u!114 &2200318192125775268 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 118944} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c239b33ee5aee77488aadc51463c91de, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/ImmersiveDebuggerSettings.asset b/Assets/Resources/ImmersiveDebuggerSettings.asset deleted file mode 100644 index db2346a4b1..0000000000 --- a/Assets/Resources/ImmersiveDebuggerSettings.asset +++ /dev/null @@ -1,37 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -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: a7d75bea1662418ab5f9e0c22110bc09, type: 3} - m_Name: ImmersiveDebuggerSettings - m_EditorClassIdentifier: - debugTypes: [] - immersiveDebuggerEnabled: 0 - immersiveDebuggerDisplayAtStartup: 0 - immersiveDebuggerToggleDisplayButton: 2 - showInspectors: 0 - showConsole: 0 - followOverride: 1 - rotateOverride: 0 - showInfoLog: 0 - showWarningLog: 1 - showErrorLog: 1 - collapsedIdenticalLogEntries: 0 - maximumNumberOfLogEntries: 1000 - panelDistance: 1 - createEventSystem: 1 - automaticLayerCullingUpdate: 1 - panelLayer: 20 - meshRendererLayer: 21 - overlayDepth: 10 - inspectedDataEnabled: - inspectedDataAssets: [] - useCustomIntegrationConfig: 0 - customIntegrationConfigClassName: diff --git a/Assets/Resources/OculusPlatformSettings.asset b/Assets/Resources/OculusPlatformSettings.asset index ae4e24895e..d6892970e0 100644 --- a/Assets/Resources/OculusPlatformSettings.asset +++ b/Assets/Resources/OculusPlatformSettings.asset @@ -9,9 +9,10 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3d881e962d099f4a8eb492ef7e9a8c0, type: 3} + m_Script: {fileID: 0} m_Name: OculusPlatformSettings - m_EditorClassIdentifier: + m_EditorClassIdentifier: Oculus.Platform:Oculus.Platform:PlatformSettings ovrAppID: 5227489953989768 ovrMobileAppID: 3600360710032222 + ovrUseMobileAppIDInEditor: 0 ovrUseStandalonePlatform: 0 diff --git a/Assets/Resources/OculusRuntimeSettings.asset b/Assets/Resources/OculusRuntimeSettings.asset deleted file mode 100644 index c3170b5cf6..0000000000 --- a/Assets/Resources/OculusRuntimeSettings.asset +++ /dev/null @@ -1,23 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -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: 3863570e7e6387a40ae4f323d83291e5, type: 3} - m_Name: OculusRuntimeSettings - m_EditorClassIdentifier: - colorSpace: 7 - requestsVisualFaceTracking: 0 - requestsAudioFaceTracking: 0 - hasSentConsentEvent: 1 - hasSetTelemetryEnabled: 1 - telemetryEnabled: 0 - telemetryProjectGuid: d2819a94-2022-4c64-af65-82f34c4eb115 - bodyTrackingFidelity: 1 - bodyTrackingJointSet: 0 diff --git a/Assets/Resources/OculusRuntimeSettings.asset.meta b/Assets/Resources/OculusRuntimeSettings.asset.meta deleted file mode 100644 index 42c680cacf..0000000000 --- a/Assets/Resources/OculusRuntimeSettings.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 19081a626c84bff4385d3962a9daff0f -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 54e73264c9..facd783bf4 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -19748,10 +19748,6 @@ MonoBehaviour: type: 3} m_UnityXRZapboxControlsPrefab: {fileID: 1000010438099326, guid: 97b4cb6f2999a4844b837b3883d42ced, type: 3} - m_OculusRiftControlsPrefab: {fileID: 2302704768686387309, guid: 6fb051841cd1bcb4dbc6c246b98d97c8, - type: 3} - m_OculusQuestControlsPrefab: {fileID: 2302704768686387309, guid: 6fb051841cd1bcb4dbc6c246b98d97c8, - type: 3} m_GvrPointerControlsPrefab: {fileID: 1118433077968626, guid: 5afb9e0174eb44346ad642958130e294, type: 3} m_NonVrControlsPrefab: {fileID: 1000011856084730, guid: 9d7a5b25efc95cd429ec738e0ccd19df, diff --git a/Assets/Scripts/App.cs b/Assets/Scripts/App.cs index 74eb7f7381..ab6265f266 100644 --- a/Assets/Scripts/App.cs +++ b/Assets/Scripts/App.cs @@ -297,6 +297,8 @@ private AppState m_DesiredAppState private DriveSync m_DriveSync; private GoogleUserSettings m_GoogleUserSettings; + public bool AccountLoginsDisabled { get; private set; } + // ------------------------------------------------------------ // Properties // ------------------------------------------------------------ @@ -508,7 +510,11 @@ void Awake() Log($"SdkMode: {App.Config.m_SdkMode}."); // Begone, physics! You were using 0.3 - 1.3ms per frame on Quest! - Physics.autoSimulation = false; + Physics.simulationMode = SimulationMode.Script; + +#if UNITY_ANDROID + AccountLoginsDisabled = AndroidUtils.IsGreatFirewalled(); +#endif // UNITY_ANDROID // See if this is the first time HasPlayedBefore = PlayerPrefs.GetInt(kPlayerPrefHasPlayedBefore, 0) == 1; diff --git a/Assets/Scripts/BrushCatalog.cs b/Assets/Scripts/BrushCatalog.cs index 13bdfe354a..072535e86b 100644 --- a/Assets/Scripts/BrushCatalog.cs +++ b/Assets/Scripts/BrushCatalog.cs @@ -12,10 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -#if OCULUS_SUPPORTED || ZAPBOX_SUPPORTED -#define PASSTHROUGH_SUPPORTED -#endif - using System; using System.Collections.Generic; using System.Linq; @@ -211,9 +207,10 @@ public Brush[] GetTagFilteredBrushList() Debug.LogError("There will be no brushes because there are no 'include' tags."); } -#if !PASSTHROUGH_SUPPORTED - excludeTags.Add("passthrough"); -#endif + if (App.VrSdk.PassthroughMode == PassthroughMode.None) + { + excludeTags.Add("passthrough"); + } // Filter m_GuiBrushList down to those that are both 'included' and not 'excluded' Brush[] filteredList = m_GuiBrushList.Where((brush) => diff --git a/Assets/Scripts/Config.cs b/Assets/Scripts/Config.cs index 567540f5f5..7b29ae29c8 100644 --- a/Assets/Scripts/Config.cs +++ b/Assets/Scripts/Config.cs @@ -32,25 +32,16 @@ using System.Reflection; using UnityEngine; -#if OCULUS_SUPPORTED -using Unity.XR.Oculus; -#endif - namespace TiltBrush { public enum XrSdkMode { Monoscopic = -1, OpenXR = 0, - Oculus, - Wave, - Pico, Zapbox, } // The sdk mode indicates which SDK that we're using to drive the display. - // - These names are used in our analytics, so they must be protected from obfuscation. - // Do not change the names of any of them, unless they've never been released. [Serializable] public enum SdkMode { @@ -60,6 +51,15 @@ public enum SdkMode Ods, // Video rendering } + [Serializable] + public enum PassthroughMode + { + None, + OpenXREnvionmentBlendMode, + FBPassthrough, + Zapbox, + } + /// These are not used in analytics. They indicate the type of tool tip description that will appear /// on a UI component. public enum DescriptionType @@ -131,8 +131,6 @@ private class UserConfigChange public SecretsConfig.ServiceAuthData PhotonFusionSecrets => Secrets[SecretsConfig.Service.PhotonFusion]; public SecretsConfig.ServiceAuthData PhotonVoiceSecrets => Secrets[SecretsConfig.Service.PhotonVoice]; - public bool DisableAccountLogins; - /// Return a value kinda sorta half-way between "building for Android" and "running on Android" /// In order of increasing strictness, here are the in-Editor semantics of various methods /// of querying the platform. All of these methods return true when running on-device. @@ -517,10 +515,6 @@ public bool GeometryShaderSuppported { get { -#if OCULUS_SUPPORTED - SystemHeadset headset = Unity.XR.Oculus.Utils.GetSystemHeadsetType(); - return headset != SystemHeadset.Oculus_Quest; -#endif // OCULUS_SUPPORTED #if ZAPBOX_SUPPORTED return false; #endif @@ -661,10 +655,9 @@ public void ApplyUserConfigOverrides(UserConfig userConfig) #if UNITY_EDITOR /// Called at build time, just before this Config instance is saved to Main.unity - public void DoBuildTimeConfiguration(UnityEditor.BuildTarget target, bool disableAccountLogins = false) + public void DoBuildTimeConfiguration(UnityEditor.BuildTarget target) { m_PlatformConfig = EditTimeAssetReferences.Instance.GetConfigForBuildTarget(target); - DisableAccountLogins = disableAccountLogins; } #endif } diff --git a/Assets/Scripts/FrameTimingInfo.cs b/Assets/Scripts/FrameTimingInfo.cs index a15014553f..02c8bde087 100644 --- a/Assets/Scripts/FrameTimingInfo.cs +++ b/Assets/Scripts/FrameTimingInfo.cs @@ -66,13 +66,6 @@ void Update() OnDroppedFrames(); } } - - // Oculus only computes cumulative frames dropped, so we reset the perf stats - // each frame after recording. -#if OCULUS_SUPPORTED - // TODO: Currently not supported on Oculus OpenXR backend. - // OVRPlugin.ResetAppPerfStats(); -#endif // OCULUS_SUPPORTED } public event Action OnDroppedFrames = delegate { }; diff --git a/Assets/Scripts/GUI/LightingPopUpWindow.cs b/Assets/Scripts/GUI/LightingPopUpWindow.cs index 28abbc2d4f..e0681c3d2d 100644 --- a/Assets/Scripts/GUI/LightingPopUpWindow.cs +++ b/Assets/Scripts/GUI/LightingPopUpWindow.cs @@ -15,9 +15,6 @@ // TODO: Better way to detect Passthrough support. // Extra: Passthrough should be *per* envrionment really! // See https://github.com/icosa-foundation/open-brush/issues/456 -#if OCULUS_SUPPORTED || ZAPBOX_SUPPORTED -#define PASSTHROUGH_SUPPORTED -#endif using System; using UnityEngine; @@ -63,12 +60,14 @@ override public void Init(GameObject rParent, string sText) m_Environments = EnvironmentCatalog.m_Instance.AllEnvironments.ToList(); // Remove passthrough scene for devices that don't support it -#if !PASSTHROUGH_SUPPORTED - RemovePassthrough(); -#else // PASSTHROUGH_SUPPORTED + if (App.VrSdk.PassthroughMode == PassthroughMode.None) + { + RemovePassthrough(); + } + // Remove passthrough if multiplayer connected if (MultiplayerManager.m_Instance.State == ConnectionState.IN_ROOM) RemovePassthrough(); -#endif + //find the active lighting preset TiltBrush.Environment rCurrentPreset = SceneSettings.m_Instance.GetDesiredPreset(); if (rCurrentPreset != null) diff --git a/Assets/Scripts/GUI/ProfilePopUpWindow.cs b/Assets/Scripts/GUI/ProfilePopUpWindow.cs index 7ee55dec97..f9cf20ea27 100644 --- a/Assets/Scripts/GUI/ProfilePopUpWindow.cs +++ b/Assets/Scripts/GUI/ProfilePopUpWindow.cs @@ -82,7 +82,7 @@ override public void Init(GameObject rParent, string sText) App.DriveAccess.RefreshFreeSpaceAsync().AsAsyncVoid(); // TODO: Make configurable by secrets/login data available at runtime. - if (App.Config.DisableAccountLogins) + if (App.Instance.AccountLoginsDisabled) { UpdateMode(Mode.Unavailable); } diff --git a/Assets/Scripts/Multiplayer/MultiplayerManager.cs b/Assets/Scripts/Multiplayer/MultiplayerManager.cs index 2293913e0a..958d264218 100644 --- a/Assets/Scripts/Multiplayer/MultiplayerManager.cs +++ b/Assets/Scripts/Multiplayer/MultiplayerManager.cs @@ -17,12 +17,7 @@ using System.Linq; using System.Threading.Tasks; using UnityEngine; - - - -#if OCULUS_SUPPORTED using OVRPlatform = Oculus.Platform; -#endif using TiltBrush; namespace OpenBrush.Multiplayer @@ -117,8 +112,9 @@ void Awake() void Start() { + #if OCULUS_SUPPORTED - OVRPlatform.Users.GetLoggedInUser().OnComplete((msg) => { + OVRPlatform.Users.GetLoggedInUser()?.OnComplete((msg) => { if (!msg.IsError) { myOculusUserId = msg.GetUser().ID; diff --git a/Assets/Scripts/PassthroughManager.cs b/Assets/Scripts/PassthroughManager.cs index ca61695e0e..b6f95afdc7 100644 --- a/Assets/Scripts/PassthroughManager.cs +++ b/Assets/Scripts/PassthroughManager.cs @@ -13,25 +13,25 @@ // limitations under the License. using UnityEngine; +using OpenXR.Extensions; +using Unity.XR.CompositionLayers; namespace TiltBrush { public class PassthroughManager : MonoBehaviour { - void Start() - { -#if OCULUS_SUPPORTED - var passthrough = gameObject.AddComponent(); - passthrough.overlayType = OVROverlay.OverlayType.Underlay; - App.VrSdk.m_OvrManager.shouldBoundaryVisibilityBeSuppressed = true; -#endif // OCULUS_SUPPORTED - } + [SerializeField] CompositionLayer m_PassthroughLayer; - void OnDestroy() + void Start() { -#if OCULUS_SUPPORTED - App.VrSdk.m_OvrManager.shouldBoundaryVisibilityBeSuppressed = false; -#endif + if (App.VrSdk.PassthroughMode == PassthroughMode.FBPassthrough) + { + m_PassthroughLayer.enabled = true; + if (METABoundaryVisibility.FeatureEnabled) + { + METABoundaryVisibility.SuppressBoundaryVisibility(false); + } + } } } } diff --git a/Assets/Scripts/Util/AndroidUtils.cs b/Assets/Scripts/Util/AndroidUtils.cs index 26932de850..a374a3d898 100644 --- a/Assets/Scripts/Util/AndroidUtils.cs +++ b/Assets/Scripts/Util/AndroidUtils.cs @@ -15,61 +15,114 @@ using UnityEngine; #if UNITY_ANDROID -static class AndroidUtils { - public static AndroidJavaObject GetContext() { - if (Application.platform != RuntimePlatform.Android) { - return null; +static class AndroidUtils +{ + public static AndroidJavaObject GetContext() + { + if (Application.platform != RuntimePlatform.Android) + { + return null; + } + + // Unity doesn't document UnityPlayer.currentActivity (or UnityPlayer at all), but it + // does mention it in passing on these two pages: + // https://docs.unity3d.com/2017.3/Documentation/ScriptReference/AndroidJavaRunnable.html + // https://docs.unity3d.com/2017.3/Documentation/ScriptReference/AndroidJavaProxy.html + AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); + AndroidJavaObject context = unityPlayer.GetStatic("currentActivity"); + return context; } - // Unity doesn't document UnityPlayer.currentActivity (or UnityPlayer at all), but it - // does mention it in passing on these two pages: - // https://docs.unity3d.com/2017.3/Documentation/ScriptReference/AndroidJavaRunnable.html - // https://docs.unity3d.com/2017.3/Documentation/ScriptReference/AndroidJavaProxy.html - AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); - AndroidJavaObject context = unityPlayer.GetStatic("currentActivity"); - return context; - } + /// Returns versionCode from AndroidManifest.xml. + public static int GetVersionCode() + { + if (Application.platform != RuntimePlatform.Android) + { + return 29; // just some placeholder + } - /// Returns versionCode from AndroidManifest.xml. - public static int GetVersionCode() { - if (Application.platform != RuntimePlatform.Android) { - return 13; // just some placeholder + var context = GetContext(); + string packageName = context.Call("getPackageName"); + var packageMgr = context.Call("getPackageManager"); + var packageInfo = packageMgr.Call("getPackageInfo", packageName, 0); + return packageInfo.Get("versionCode"); } - - var context = GetContext(); - string packageName = context.Call("getPackageName"); - var packageMgr = context.Call("getPackageManager"); - var packageInfo = packageMgr.Call("getPackageInfo", packageName, 0); - return packageInfo.Get("versionCode"); - } - /// Returns versionName from AndroidManifest.xml. - /// - /// Unity fills in Manifest.versionName from PlayerSettings.bundleVersion. - /// BuildTiltBrush fills in PlayerSettings.bundleVersion from Config.m_VersionNumber - /// and m_BuildStamp. - /// This should therefore have the same info as you'd find in Config. - /// Sample return values: "19.0b-(menuitem)", "18.3-d8239842" - public static string GetVersionName() { - if (Application.platform != RuntimePlatform.Android) { - return "versionNamePlaceholder"; + /// Returns versionName from AndroidManifest.xml. + /// + /// Unity fills in Manifest.versionName from PlayerSettings.bundleVersion. + /// BuildTiltBrush fills in PlayerSettings.bundleVersion from Config.m_VersionNumber + /// and m_BuildStamp. + /// This should therefore have the same info as you'd find in Config. + /// Sample return values: "19.0b-(menuitem)", "18.3-d8239842" + public static string GetVersionName() + { + if (Application.platform != RuntimePlatform.Android) + { + return "versionNamePlaceholder"; + } + + var context = GetContext(); + string packageName = context.Call("getPackageName"); + var packageMgr = context.Call("getPackageManager"); + var packageInfo = packageMgr.Call("getPackageInfo", packageName, 0); + return packageInfo.Get("versionName"); } - var context = GetContext(); - string packageName = context.Call("getPackageName"); - var packageMgr = context.Call("getPackageManager"); - var packageInfo = packageMgr.Call("getPackageInfo", packageName, 0); - return packageInfo.Get("versionName"); - } + /// Returns package name. + public static string GetPackageName() + { + if (Application.platform != RuntimePlatform.Android) + { + return "com.placeholder.packagename"; + } + + var context = GetContext(); + return context.Call("getPackageName"); + } + + public static bool IsPackageInstalled(string packageName) + { + if (Application.platform != RuntimePlatform.Android) + { + return false; + } + + var context = GetContext(); + var packageMgr = context.Call("getPackageManager"); - /// Returns package name. - public static string GetPackageName() { - if (Application.platform != RuntimePlatform.Android) { - return "com.placeholder.packagename"; + try + { + packageMgr.Call("getPackageInfo", packageName, 0); + return true; + } catch (AndroidJavaException) + { + return false; + } } - var context = GetContext(); - return context.Call("getPackageName"); - } + public static string GetProp(string propName) + { + var obj = new AndroidJavaClass("android.os.SystemProperties"); + return obj.CallStatic("get", propName); + } + + public static bool IsPicoDevice() + { + return GetProp("ro.product.brand").Trim().ToLower().Equals("pico"); + } + + public static bool IsGreatFirewalled() + { + if (IsPicoDevice()) + { + // https://developer.picoxr.com/document/unreal/check-pico-rom-version/ + var overseasFlagPresent = GetProp("ro.pvr.product.global").Trim().ToLower().Equals("overseas"); + return !overseasFlagPresent; + } + + return false; + + } } -#endif +#endif // UNITY_ANDROID diff --git a/Assets/Scripts/VrSdk.cs b/Assets/Scripts/VrSdk.cs index 16953fe571..d413b5b576 100644 --- a/Assets/Scripts/VrSdk.cs +++ b/Assets/Scripts/VrSdk.cs @@ -12,23 +12,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -#if OCULUS_SUPPORTED || ZAPBOX_SUPPORTED -#define PASSTHROUGH_SUPPORTED -#endif - using System; using System.Collections.Generic; using System.Linq; +using OpenXR.Extensions; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.XR; using UnityEngine.XR.Management; using InputDevice = UnityEngine.XR.InputDevice; -#if PICO_SUPPORTED -using PicoInput = Unity.XR.PXR.PXR_Input; -#endif - namespace TiltBrush { // If these names are used in analytics etc, they must be protected from obfuscation. @@ -77,10 +70,6 @@ public class VrSdk : MonoBehaviour [SerializeField] private GameObject m_UnityXRNeo3ControlsPrefab; [SerializeField] private GameObject m_UnityXRPhoenixControlsPrefab; [SerializeField] private GameObject m_UnityXRZapboxControlsPrefab; - // Prefab for the old-style Touch controllers, used only for Rift - [SerializeField] private GameObject m_OculusRiftControlsPrefab; - // Prefab for the new-style Touch controllers, used for Rift-S and Quest - [SerializeField] private GameObject m_OculusQuestControlsPrefab; [SerializeField] private GameObject m_GvrPointerControlsPrefab; [SerializeField] private GameObject m_NonVrControlsPrefab; @@ -93,11 +82,10 @@ public class VrSdk : MonoBehaviour // out of date for a frame when controllers change. private VrControllers m_VrControls; public VrControllers VrControls { get { return m_VrControls; } } -#if OCULUS_SUPPORTED - [NonSerialized] public OVRManager m_OvrManager; -#endif private bool m_HasVrFocus = true; + public PassthroughMode PassthroughMode { get; private set; } = PassthroughMode.None; + private Bounds? m_RoomBoundsAabbCached; private Action[] m_OldOnPoseApplied; @@ -151,7 +139,16 @@ void Awake() { // We no longer initialize XR SDKs automatically // so we need to do it manually - Initialize(); + + // Null checks are for Linux view mode + // TODO: Need to investigate exactly why Linux hits an NRE here + // When other platforms don't + XRGeneralSettings.Instance?.Manager?.InitializeLoaderSync(); + + if (XRGeneralSettings.Instance?.Manager?.activeLoader != null) + { + XRGeneralSettings.Instance?.Manager?.StartSubsystems(); + } } if (App.Config.m_SdkMode == SdkMode.UnityXR) @@ -177,6 +174,8 @@ void Awake() { SetUnityXRControllerStyle(tryGetUnityXRController); } + + SetPassthroughStrategy(); } else if (App.Config.m_SdkMode == SdkMode.Monoscopic) { @@ -202,47 +201,30 @@ void Awake() // Skip the rest of the VR setup if we're not using XR if (App.UserConfig.Flags.DisableXrMode || App.UserConfig.Flags.EnableMonoscopicMode) return; -#if OCULUS_SUPPORTED - // ---------------------------------------------------------------------------------------- // - // OculusVR - // ---------------------------------------------------------------------------------------- // - m_OvrManager = gameObject.AddComponent(); - m_OvrManager.trackingOriginType = OVRManager.TrackingOrigin.Stage; - m_OvrManager.useRecommendedMSAALevel = false; - m_OvrManager.isInsightPassthroughEnabled = true; - - // adding components to the VR Camera needed for fading view and getting controller poses. - m_VrCamera.gameObject.AddComponent(); - - //Add an OVRCameraRig to the VrSystem for Mixed Reality Capture. - var cameraRig = m_VrSystem.AddComponent(); - //Disable the OVRCameraRig's eye cameras, since Open Brush already has its own. - cameraRig.disableEyeAnchorCameras = true; + UnityEngine.XR.OpenXR.OpenXRSettings.SetAllowRecentering(false); + // Let it fail on non-oculus platforms //Get Oculus ID - var appId = App.Config.OculusSecrets.ClientId; + var oculusAppId = App.Config.OculusSecrets.ClientId; + bool packagePresent = true; #if UNITY_ANDROID - appId = App.Config.OculusMobileSecrets.ClientId; + oculusAppId = App.Config.OculusMobileSecrets.ClientId; + // Initialize() will crash android if the required system packages are not present. + // This is the earliest in the chain. + packagePresent = AndroidUtils.IsPackageInstalled("com.oculus.platformsdkruntime"); #endif - - if (Unity.XR.Oculus.Utils.GetSystemHeadsetType() != Unity.XR.Oculus.SystemHeadset.Oculus_Quest) + if (packagePresent) { - Oculus.Platform.Core.Initialize(appId); - Oculus.Platform.UserAgeCategory.Get().OnComplete((msg) => { - var unused = msg.Data.AgeCategory; - }); - } - -#endif // OCULUS_SUPPORTED + Oculus.Platform.Core.Initialize(oculusAppId); -#if PIMAX_SUPPORTED - // Pimax currently requires initialising their Platform SDK. - if(ulong.TryParse(App.Config.PimaxSecrets?.ClientId, out var pimaxClientId)) - { - Pimax.Platform.PvrPlatform.init(); - Pimax.Platform.PvrConnectToDLL.pvr_PlatformInit(pimaxClientId); + Oculus.Platform.UserAgeCategory.Get()?.OnComplete((msg) => + { + if (!msg.IsError) + { + var unused = msg.Data.AgeCategory; + } + }); } -#endif // PIMAX_SUPPORTED } void Start() @@ -252,11 +234,12 @@ void Start() Application.onBeforeRender += OnNewPoses; } -#if OCULUS_SUPPORTED - // We shouldn't call this frequently, hence the local cache and callbacks. - OVRManager.VrFocusAcquired += () => { OnInputFocus(true); }; - OVRManager.VrFocusLost += () => { OnInputFocus(false); }; -#endif // OCULUS_SUPPORTED + var displaySubsystem = XRGeneralSettings.Instance?.Manager?.activeLoader?.GetLoadedSubsystem(); + + if (displaySubsystem != null) + { + displaySubsystem.displayFocusChanged += OnInputFocus; + } if (m_NeedsToAttachConsoleScript && m_VrControls != null) { @@ -280,8 +263,11 @@ void OnDestroy() Application.onBeforeRender -= OnNewPoses; InputDevices.deviceConnected -= OnUnityXRDeviceConnected; InputDevices.deviceDisconnected -= OnUnityXRDeviceDisconnected; - XRGeneralSettings.Instance?.Manager?.StopSubsystems(); - XRGeneralSettings.Instance?.Manager?.DeinitializeLoader(); + if (XRGeneralSettings.Instance?.Manager?.activeLoader != null) + { + XRGeneralSettings.Instance?.Manager?.StopSubsystems(); + XRGeneralSettings.Instance?.Manager?.DeinitializeLoader(); + } } } @@ -289,12 +275,11 @@ void OnDestroy() // Private VR SDK-Related Events // -------------------------------------------------------------------------------------------- // - private void OnInputFocus(params object[] args) + private void OnInputFocus(bool focused) { - bool value = (bool)args[0]; - App.Log($"VrSdk.OnInputFocus -> {value}"); - InputManager.m_Instance.AllowVrControllers = value; - m_HasVrFocus = value; + App.Log($"VrSdk.OnInputFocus -> {focused}"); + InputManager.m_Instance.AllowVrControllers = focused; + m_HasVrFocus = focused; } private void OnNewPoses() @@ -318,6 +303,26 @@ public Camera GetVrCamera() return m_VrCamera; } + // -------------------------------------------------------------------------------------------- // + // Feature Methods + // -------------------------------------------------------------------------------------------- // + + private void SetPassthroughStrategy() + { + if (FBPassthrough.FeatureEnabled) + { + PassthroughMode = PassthroughMode.FBPassthrough; + return; + } + +#if ZAPBOX_SUPPORTED + PassthroughMode = PassthroughMode.Zapbox; + return; +#endif // ZAPBOX_SUPPORTED + + PassthroughMode = PassthroughMode.None; + } + // -------------------------------------------------------------------------------------------- // // Profiling / VR Utility Methods // -------------------------------------------------------------------------------------------- // @@ -325,17 +330,13 @@ public Camera GetVrCamera() // Returns the time of the most recent number of dropped frames, null on failure. public int? GetDroppedFrames() { -#if OCULUS_SUPPORTED - // TODO: Currently not supported on Oculus OpenXR backend. - // OVRPlugin.AppPerfStats perfStats = OVRPlugin.GetAppPerfStats(); - // if (perfStats.FrameStatsCount > 0) - // { - // return perfStats.FrameStats[0].AppDroppedFrameCount; - // } - return 0; -#else // OCULUS_SUPPORTED + var displaySubsystem = XRGeneralSettings.Instance?.Manager?.activeLoader?.GetLoadedSubsystem(); + if (displaySubsystem != null && displaySubsystem.TryGetDroppedFrameCount(out var droppedFrames)) + { + return droppedFrames; + } + return null; -#endif // OCULUS_SUPPORTED } // -------------------------------------------------------------------------------------------- // @@ -381,7 +382,7 @@ private void RefreshRoomBoundsCache() #else // OCULUS_SUPPORTED // if (App.Config.m_SdkMode == SdkMode.SteamVR) // { - // // TODO - Setting OpenVR Chaperone bounds. Does XR have the equivalent generic? + // // TODO:Mikesky - Setting OpenVR Chaperone bounds. Does XR have the equivalent generic? // // var chaperone = OpenVR.Chaperone; // // if (chaperone != null) // // { @@ -539,23 +540,10 @@ public void SetControllerStyle(ControllerStyle style) break; case ControllerStyle.OculusTouch: { - // TODO:Mikesky - comment below is correct, this won't work! - // Need a new way to detect between the different headsets. - // Note that other controllers that match the touch controller profile - // register as OculusTouch, so will fall into the same loop here. - - // This will probably not work once new headsets are released. - // Maybe something like this instead? - // isQuest = (UnityEngine.XR.XRDevice.model != "Oculus Rift CV1"); - // bool isQuestController = (XRDevice.refreshRate < 81f) || - // (App.Config.VrHardware == VrHardware.Quest); + // TODO:Mikesky - there's new input profiles for the legacy hardware we can check against + // https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#_additional_openxr_1_1_changes bool isQuestController = App.Config.IsMobileHardware; controlsPrefab = isQuestController ? m_UnityXRQuestControlsPrefab : m_UnityXRRiftControlsPrefab; -#if OCULUS_SUPPORTED - // If we're using Oculus' own plugin rather than OpenXR, the controller pose is different. - // Therefore, we need to set a different prefab. - controlsPrefab = isQuestController ? m_OculusQuestControlsPrefab : m_OculusRiftControlsPrefab; -#endif // OCULUS_SUPPORTED break; } case ControllerStyle.Wmr: @@ -745,24 +733,13 @@ private void SetUnityXRControllerStyle(InputDevice device) { SetControllerStyle(ControllerStyle.Wmr); } - else if (device.name.Contains("PICO Controller")) + else if (device.name.Contains("PICO")) { + // TODO:Mikesky - OpenXR controller profiles for each type of pico, it's now available // Controller name isn't specified in Pico's device layout // so we have to run some additional checks if available. // Default to Pico 4 as newest. -#if !PICO_SUPPORTED SetControllerStyle(ControllerStyle.Phoenix); -#else - switch(PicoInput.GetControllerDeviceType()) - { - case PicoInput.ControllerDevice.Neo3: - SetControllerStyle(ControllerStyle.Neo3); - break; - default: - SetControllerStyle(ControllerStyle.Phoenix); - break; - } -#endif } else if (device.name.StartsWith("Zapbox")) { @@ -933,14 +910,5 @@ public void SetGpuClockLevel(int level) } #endif // OCULUS_SUPPORTED } - - public void Initialize() - { - // Null checks are for Linux view mode - // TODO: Need to investigate exactly why Linux hits an NRE here - // When other platforms don't - XRGeneralSettings.Instance?.Manager?.InitializeLoaderSync(); - XRGeneralSettings.Instance?.Manager?.StartSubsystems(); - } } } diff --git a/Assets/ThirdParty/Pico.meta b/Assets/ThirdParty/Pico.meta new file mode 100644 index 0000000000..bcf0e0bbde --- /dev/null +++ b/Assets/ThirdParty/Pico.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 744cdd79274edbf4ea040e74691ead34 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThirdParty/Pico/PICO4ControllerProfile.cs b/Assets/ThirdParty/Pico/PICO4ControllerProfile.cs new file mode 100644 index 0000000000..3e0f1e7463 --- /dev/null +++ b/Assets/ThirdParty/Pico/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/Assets/ThirdParty/Pico/PICO4ControllerProfile.cs.meta b/Assets/ThirdParty/Pico/PICO4ControllerProfile.cs.meta new file mode 100644 index 0000000000..26f1e4c25f --- /dev/null +++ b/Assets/ThirdParty/Pico/PICO4ControllerProfile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ad194dcf6c734fa438fad0f4269ec5ad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/XR/Loaders/Oculus Loader.asset b/Assets/XR/Loaders/Oculus Loader.asset deleted file mode 100644 index 0f89c61d46..0000000000 --- a/Assets/XR/Loaders/Oculus Loader.asset +++ /dev/null @@ -1,14 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -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: 03bc68f14d65e7747a59d5ff74bd199b, type: 3} - m_Name: Oculus Loader - m_EditorClassIdentifier: diff --git a/Assets/XR/Loaders/PXR Loader.asset b/Assets/XR/Loaders/PXR Loader.asset deleted file mode 100644 index 895cc69ba2..0000000000 --- a/Assets/XR/Loaders/PXR Loader.asset +++ /dev/null @@ -1,14 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -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: 563682312a45bbe4bbd8d243e5e14608, type: 3} - m_Name: PXR Loader - m_EditorClassIdentifier: diff --git a/Assets/XR/Loaders/PXR Loader.asset.meta b/Assets/XR/Loaders/PXR Loader.asset.meta deleted file mode 100644 index a1876717a4..0000000000 --- a/Assets/XR/Loaders/PXR Loader.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 0a282171c2d929145bddaab96a6cac9d -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/XR/Settings/Oculus Settings.asset b/Assets/XR/Settings/Oculus Settings.asset deleted file mode 100644 index f69e30bf5a..0000000000 --- a/Assets/XR/Settings/Oculus Settings.asset +++ /dev/null @@ -1,33 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -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: c353a8f1e58cf884584123914fe63cd5, type: 3} - m_Name: Oculus Settings - m_EditorClassIdentifier: - m_StereoRenderingModeDesktop: 0 - m_StereoRenderingModeAndroid: 0 - SharedDepthBuffer: 1 - DepthSubmission: 1 - DashSupport: 1 - LowOverheadMode: 0 - OptimizeBufferDiscards: 1 - PhaseSync: 1 - SymmetricProjection: 0 - SubsampledLayout: 0 - FoveatedRenderingMethod: 0 - LateLatching: 0 - LateLatchingDebug: 0 - EnableTrackingOriginStageMode: 0 - SpaceWarp: 0 - TargetQuest2: 1 - TargetQuestPro: 1 - TargetQuest3: 1 - SystemSplashScreen: {fileID: 0} diff --git a/Assets/XR/Settings/Oculus Settings.asset.meta b/Assets/XR/Settings/Oculus Settings.asset.meta deleted file mode 100644 index a11afa17ab..0000000000 --- a/Assets/XR/Settings/Oculus Settings.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 71fe6cc6ea2fd8841ab44d5442834cc6 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/XR/Settings/Open XR Package Settings.asset.meta b/Assets/XR/Settings/Open XR Package Settings.asset.meta deleted file mode 100644 index d7c0dedc19..0000000000 --- a/Assets/XR/Settings/Open XR Package Settings.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: f1ebaba0fe484c1469e1bc54ab8d82e1 -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/XR/Settings/OpenXR Editor Settings.asset b/Assets/XR/Settings/OpenXR Editor Settings.asset index eb45bb42b6..c2917a2446 100644 --- a/Assets/XR/Settings/OpenXR Editor Settings.asset +++ b/Assets/XR/Settings/OpenXR Editor Settings.asset @@ -12,8 +12,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 975057b4fdcfb8142b3080d19a5cc712, type: 3} m_Name: OpenXR Editor Settings m_EditorClassIdentifier: - Keys: 0100000007000000 - Values: - - featureSets: [] - - featureSets: [] + Keys: + Values: [] m_vulkanAdditionalGraphicsQueue: 0 diff --git a/Assets/XR/Settings/Open XR Package Settings.asset b/Assets/XR/Settings/OpenXRPackageSettings.asset similarity index 60% rename from Assets/XR/Settings/Open XR Package Settings.asset rename to Assets/XR/Settings/OpenXRPackageSettings.asset index c2b549ff67..77ecbf14b4 100644 --- a/Assets/XR/Settings/Open XR Package Settings.asset +++ b/Assets/XR/Settings/OpenXRPackageSettings.asset @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!114 &-9060494924153373858 +--- !u!114 &-9167655682760007885 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -9,31 +9,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9c5b5af5107e35a43818d5411328bfc3, type: 3} - m_Name: DPadInteraction Android + m_Script: {fileID: 11500000, guid: 0f6bfdbcb316ed242b30a8798c9eb853, type: 3} + m_Name: KHRSimpleControllerProfile Standalone m_EditorClassIdentifier: m_enabled: 0 - nameUi: D-Pad Binding + nameUi: Khronos Simple Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.dpadinteraction - openxrExtensionStrings: XR_KHR_binding_modification XR_EXT_dpad_binding + featureIdInternal: com.unity.openxr.feature.input.khrsimpleprofile + openxrExtensionStrings: company: Unity priority: 0 required: 0 - forceThresholdLeft: 0.5 - forceThresholdReleaseLeft: 0.4 - centerRegionLeft: 0.5 - wedgeAngleLeft: 1.5707964 - isStickyLeft: 0 - forceThresholdRight: 0.5 - forceThresholdReleaseRight: 0.4 - centerRegionRight: 0.5 - wedgeAngleRight: 1.5707964 - isStickyRight: 0 - extensionStrings: - - XR_KHR_binding_modification - - XR_EXT_dpad_binding ---- !u!114 &-8850364997158714336 +--- !u!114 &-9141739992184167668 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -42,18 +29,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0d6ccd3d0ef0f1d458e69421dccbdae1, type: 3} - m_Name: ValveIndexControllerProfile WSA + m_Script: {fileID: 11500000, guid: 486b5e28864f9a94b979b9620ce5006d, type: 3} + m_Name: ConformanceAutomationFeature Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: Valve Index Controller Profile + nameUi: Conformance Automation version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.valveindex - openxrExtensionStrings: + featureIdInternal: com.unity.openxr.feature.conformance + openxrExtensionStrings: XR_EXT_conformance_automation company: Unity priority: 0 required: 0 ---- !u!114 &-8632917095941882487 +--- !u!114 &-8634935931032454399 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -62,29 +49,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1927c045052a06d49a9b21fdcaa26db6, type: 3} - m_Name: OculusXRFeature Standalone + m_Script: {fileID: 11500000, guid: 2a24be4b5ebfe5f4d8ed1de9b25cb7aa, type: 3} + m_Name: HandCommonPosesInteraction Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: OculusXR Feature + nameUi: Hand Interaction Poses version: 0.0.1 - featureIdInternal: com.oculus.openxr.feature.oculusxr - openxrExtensionStrings: 'XR_KHR_vulkan_enable XR_KHR_D3D11_enable XR_OCULUS_common_reference_spaces - XR_FB_display_refresh_rate XR_EXT_performance_settings XR_FB_composition_layer_image_layout - XR_KHR_android_surface_swapchain XR_FB_android_surface_swapchain_create XR_KHR_composition_layer_color_scale_bias - XR_FB_color_space XR_EXT_hand_tracking XR_FB_swapchain_update_state XR_FB_swapchain_update_state_opengl_es - XR_FB_swapchain_update_state_vulkan XR_FB_foveation XR_FB_foveation_configuration - XR_FB_foveation_vulkan XR_FB_composition_layer_alpha_blend XR_KHR_composition_layer_depth - XR_KHR_composition_layer_cylinder XR_KHR_composition_layer_cube XR_KHR_composition_layer_equirect2 - XR_KHR_convert_timespec_time XR_KHR_visibility_mask XR_FB_render_model XR_FB_spatial_entity - XR_FB_spatial_entity_query XR_FB_spatial_entity_storage XR_META_performance_metrics - XR_FB_keyboard_tracking XR_FB_passthrough XR_FB_triangle_mesh XR_FB_passthrough_keyboard_hands - XR_OCULUS_audio_device_guid XR_FB_common_events XR_FB_space_warp XR_FB_hand_tracking_capsules - XR_FB_hand_tracking_mesh XR_FB_hand_tracking_aim ' - company: Oculus + featureIdInternal: com.unity.openxr.feature.input.handinteractionposes + openxrExtensionStrings: XR_EXT_hand_interaction + company: Unity priority: 0 required: 0 ---- !u!114 &-8049897441354217187 +--- !u!114 &-8570461368887029806 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -93,18 +69,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5019471fb2174e5c852ecd4047163007, type: 3} - m_Name: HandInteractionProfile Android + m_Script: {fileID: 11500000, guid: 486b5e28864f9a94b979b9620ce5006d, type: 3} + m_Name: ConformanceAutomationFeature Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Hand Interaction Profile + nameUi: Conformance Automation version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.handinteraction - openxrExtensionStrings: XR_EXT_hand_interaction + featureIdInternal: com.unity.openxr.feature.conformance + openxrExtensionStrings: XR_EXT_conformance_automation company: Unity priority: 0 required: 0 ---- !u!114 &-7871932882014305355 +--- !u!114 &-8242694009530368604 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -113,18 +89,64 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3d28f705476c80d47acb3dfade3d3142, type: 3} - m_Name: MetaXRFoveationFeature Android + m_Script: {fileID: 11500000, guid: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3} + m_Name: Standalone m_EditorClassIdentifier: - m_enabled: 1 - nameUi: Meta XR Foveation - version: 1.0.0 - featureIdInternal: com.meta.openxr.feature.foveation - openxrExtensionStrings: 'XR_FB_foveation XR_FB_foveation_configuration XR_FB_foveation_vulkan ' - company: Meta + features: + - {fileID: 1992953916463732779} + - {fileID: -3118044521348213728} + - {fileID: -2963101927486946481} + - {fileID: 8438378100653883613} + - {fileID: -6589386481559243088} + - {fileID: 3749097899685189551} + - {fileID: -1070531637361003129} + - {fileID: 2745045609796079843} + - {fileID: -6419690286220786590} + - {fileID: 6658636873894591354} + - {fileID: -651732358992884020} + - {fileID: -7040160384368205513} + - {fileID: 3113865298154173063} + - {fileID: -9167655682760007885} + - {fileID: 5188879257186700139} + - {fileID: -4519343219118859912} + - {fileID: 4581812087518958971} + - {fileID: 3212712622174654143} + - {fileID: -5390212098595779255} + - {fileID: -5450014341275443851} + - {fileID: 1774246631368584256} + - {fileID: 4856277442140917248} + - {fileID: 2235076403440218077} + - {fileID: 5142876501055731027} + - {fileID: -2741483306923065349} + m_renderMode: 0 + m_autoColorSubmissionMode: 1 + m_colorSubmissionModes: + m_List: 00000000 + m_depthSubmissionMode: 2 + m_spacewarpMotionVectorTextureFormat: 0 + m_optimizeBufferDiscards: 0 + m_symmetricProjection: 0 +--- !u!114 &-7719526113015731334 +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: e5315f812f023cf4ebf26f7e5d2d70f2, type: 3} + m_Name: HPReverbG2ControllerProfile Metro + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: HP Reverb G2 Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.hpreverb + openxrExtensionStrings: XR_EXT_hp_mixed_reality_controller + company: Unity priority: 0 required: 0 ---- !u!114 &-7635896756621915544 +--- !u!114 &-7426584533051045112 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -133,20 +155,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 056125dd64c0ed540b40a4af74f7b495, type: 3} - m_Name: RuntimeDebuggerOpenXRFeature Standalone + m_Script: {fileID: 11500000, guid: b213d3e3c7f3109449eb46a4c8ee42f0, type: 3} + m_Name: XrPerformanceSettingsFeature Metro m_EditorClassIdentifier: - m_enabled: 1 - nameUi: Runtime Debugger - version: 1 - featureIdInternal: com.unity.openxr.features.runtimedebugger - openxrExtensionStrings: + m_enabled: 0 + nameUi: XR Performance Settings + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.extension.performance_settings + openxrExtensionStrings: XR_EXT_performance_settings company: Unity priority: 0 required: 0 - cacheSize: 1048576 - perThreadCacheSize: 51200 ---- !u!114 &-7457498403352615917 +--- !u!114 &-7094326163286396934 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -156,7 +176,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 9c5b5af5107e35a43818d5411328bfc3, type: 3} - m_Name: DPadInteraction Standalone + m_Name: DPadInteraction Metro m_EditorClassIdentifier: m_enabled: 0 nameUi: D-Pad Binding @@ -179,7 +199,7 @@ MonoBehaviour: extensionStrings: - XR_KHR_binding_modification - XR_EXT_dpad_binding ---- !u!114 &-6553496117388817208 +--- !u!114 &-7040160384368205513 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -188,18 +208,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 761fdd4502cb7a84e9ec7a2b24f33f37, type: 3} - m_Name: MicrosoftMotionControllerProfile Standalone + m_Script: {fileID: 11500000, guid: e5315f812f023cf4ebf26f7e5d2d70f2, type: 3} + m_Name: HPReverbG2ControllerProfile Standalone m_EditorClassIdentifier: m_enabled: 1 - nameUi: Microsoft Motion Controller Profile + nameUi: HP Reverb G2 Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.microsoftmotioncontroller - openxrExtensionStrings: + featureIdInternal: com.unity.openxr.feature.input.hpreverb + openxrExtensionStrings: XR_EXT_hp_mixed_reality_controller company: Unity priority: 0 required: 0 ---- !u!114 &-6490217007365981742 +--- !u!114 &-6991857693337309066 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -208,18 +228,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f928d0d73a35f294fbe357ca17aa3547, type: 3} - m_Name: MicrosoftHandInteraction Standalone + m_Script: {fileID: 11500000, guid: feeef8d85de8db242bdda70cc7ff5acd, type: 3} + m_Name: OculusTouchControllerProfile Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Microsoft Hand Interaction Profile + nameUi: Oculus Touch Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.handtracking - openxrExtensionStrings: XR_MSFT_hand_interaction + featureIdInternal: com.unity.openxr.feature.input.oculustouch + openxrExtensionStrings: company: Unity priority: 0 required: 0 ---- !u!114 &-6452589779438814163 +--- !u!114 &-6589386481559243088 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -228,18 +248,31 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3cf79659a011bd419c7a2a30eb74e9a, type: 3} - m_Name: EyeGazeInteraction WSA + m_Script: {fileID: 11500000, guid: 9c5b5af5107e35a43818d5411328bfc3, type: 3} + m_Name: DPadInteraction Standalone m_EditorClassIdentifier: m_enabled: 0 - nameUi: Eye Gaze Interaction Profile + nameUi: D-Pad Binding version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.eyetracking - openxrExtensionStrings: XR_EXT_eye_gaze_interaction + featureIdInternal: com.unity.openxr.feature.input.dpadinteraction + openxrExtensionStrings: XR_KHR_binding_modification XR_EXT_dpad_binding company: Unity priority: 0 required: 0 ---- !u!114 &-6188679329620277984 + forceThresholdLeft: 0.5 + forceThresholdReleaseLeft: 0.4 + centerRegionLeft: 0.5 + wedgeAngleLeft: 1.5707964 + isStickyLeft: 0 + forceThresholdRight: 0.5 + forceThresholdReleaseRight: 0.4 + centerRegionRight: 0.5 + wedgeAngleRight: 1.5707964 + isStickyRight: 0 + extensionStrings: + - XR_KHR_binding_modification + - XR_EXT_dpad_binding +--- !u!114 &-6419690286220786590 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -248,18 +281,20 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 81954520b8bbd2f458104fe69f5a7680, type: 3} - m_Name: MetaXRSpaceWarp Android + m_Script: {fileID: 11500000, guid: e0487890a3eee83449ce94b951042ace, type: 3} + m_Name: FBPassthrough Standalone m_EditorClassIdentifier: - m_enabled: 0 - nameUi: Meta XR Space Warp - version: 1.0.0 - featureIdInternal: com.meta.openxr.feature.spacewarp - openxrExtensionStrings: XR_FB_space_warp - company: Meta + m_enabled: 1 + nameUi: FB Passthrough + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbpassthrough + openxrExtensionStrings: XR_FB_passthrough + company: Mikesky priority: 0 required: 0 ---- !u!114 &-5585190116095795567 + RequiredFeature: 0 + StartEnabled: 0 +--- !u!114 &-6348344434547897155 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -268,18 +303,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4710975c7840e7d499bbb3757c22b0a5, type: 3} - m_Name: MetaXRSubsampledLayout Standalone + m_Script: {fileID: 11500000, guid: b213d3e3c7f3109449eb46a4c8ee42f0, type: 3} + m_Name: XrPerformanceSettingsFeature WebGL m_EditorClassIdentifier: m_enabled: 0 - nameUi: Meta XR Subsampled Layout - version: 0.0.1 - featureIdInternal: com.meta.openxr.feature.subsampledLayout - openxrExtensionStrings: XR_META_vulkan_swapchain_create_info - company: Meta + nameUi: XR Performance Settings + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.extension.performance_settings + openxrExtensionStrings: XR_EXT_performance_settings + company: Unity priority: 0 required: 0 ---- !u!114 &-5453487588099642660 +--- !u!114 &-6004883224111681166 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -288,29 +323,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1927c045052a06d49a9b21fdcaa26db6, type: 3} - m_Name: OculusXRFeature Standalone + m_Script: {fileID: 11500000, guid: b3cf79659a011bd419c7a2a30eb74e9a, type: 3} + m_Name: EyeGazeInteraction Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: OculusXR Feature + nameUi: Eye Gaze Interaction Profile version: 0.0.1 - featureIdInternal: com.oculus.openxr.feature.oculusxr - openxrExtensionStrings: 'XR_KHR_vulkan_enable XR_KHR_D3D11_enable XR_OCULUS_common_reference_spaces - XR_FB_display_refresh_rate XR_EXT_performance_settings XR_FB_composition_layer_image_layout - XR_KHR_android_surface_swapchain XR_FB_android_surface_swapchain_create XR_KHR_composition_layer_color_scale_bias - XR_FB_color_space XR_EXT_hand_tracking XR_FB_swapchain_update_state XR_FB_swapchain_update_state_opengl_es - XR_FB_swapchain_update_state_vulkan XR_FB_foveation XR_FB_foveation_configuration - XR_FB_foveation_vulkan XR_FB_composition_layer_alpha_blend XR_KHR_composition_layer_depth - XR_KHR_composition_layer_cylinder XR_KHR_composition_layer_cube XR_KHR_composition_layer_equirect2 - XR_KHR_convert_timespec_time XR_KHR_visibility_mask XR_FB_render_model XR_FB_spatial_entity - XR_FB_spatial_entity_query XR_FB_spatial_entity_storage XR_META_performance_metrics - XR_FB_keyboard_tracking XR_FB_passthrough XR_FB_triangle_mesh XR_FB_passthrough_keyboard_hands - XR_OCULUS_audio_device_guid XR_FB_common_events XR_FB_space_warp XR_FB_hand_tracking_capsules - XR_FB_hand_tracking_mesh XR_FB_hand_tracking_aim ' - company: Oculus + featureIdInternal: com.unity.openxr.feature.input.eyetracking + openxrExtensionStrings: XR_EXT_eye_gaze_interaction + company: Unity priority: 0 required: 0 ---- !u!114 &-5369529246399082918 +--- !u!114 &-5791431774203327737 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -319,20 +343,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 056125dd64c0ed540b40a4af74f7b495, type: 3} - m_Name: RuntimeDebuggerOpenXRFeature WSA + m_Script: {fileID: 11500000, guid: 2b7365b139f7aec43b23d26b7a48b5a6, type: 3} + m_Name: MetaQuestTouchPlusControllerProfile Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: Runtime Debugger - version: 1 - featureIdInternal: com.unity.openxr.features.runtimedebugger - openxrExtensionStrings: + nameUi: Meta Quest Touch Plus Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.metaquestplus + openxrExtensionStrings: XR_META_touch_controller_plus company: Unity priority: 0 required: 0 - cacheSize: 1048576 - perThreadCacheSize: 51200 ---- !u!114 &-5283878353087867321 +--- !u!114 &-5539927416901328295 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -341,29 +363,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1927c045052a06d49a9b21fdcaa26db6, type: 3} - m_Name: OculusXRFeature Android + m_Script: {fileID: 11500000, guid: cc9d97d3e118e10498b22af44f652f5c, type: 3} + m_Name: FBCompositionLayerDepthTest Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: OculusXR Feature - version: 0.0.1 - featureIdInternal: com.oculus.openxr.feature.oculusxr - openxrExtensionStrings: 'XR_KHR_vulkan_enable XR_KHR_D3D11_enable XR_OCULUS_common_reference_spaces - XR_FB_display_refresh_rate XR_EXT_performance_settings XR_FB_composition_layer_image_layout - XR_KHR_android_surface_swapchain XR_FB_android_surface_swapchain_create XR_KHR_composition_layer_color_scale_bias - XR_FB_color_space XR_EXT_hand_tracking XR_FB_swapchain_update_state XR_FB_swapchain_update_state_opengl_es - XR_FB_swapchain_update_state_vulkan XR_FB_foveation XR_FB_foveation_configuration - XR_FB_foveation_vulkan XR_FB_composition_layer_alpha_blend XR_KHR_composition_layer_depth - XR_KHR_composition_layer_cylinder XR_KHR_composition_layer_cube XR_KHR_composition_layer_equirect2 - XR_KHR_convert_timespec_time XR_KHR_visibility_mask XR_FB_render_model XR_FB_spatial_entity - XR_FB_spatial_entity_query XR_FB_spatial_entity_storage XR_META_performance_metrics - XR_FB_keyboard_tracking XR_FB_passthrough XR_FB_triangle_mesh XR_FB_passthrough_keyboard_hands - XR_OCULUS_audio_device_guid XR_FB_common_events XR_FB_space_warp XR_FB_hand_tracking_capsules - XR_FB_hand_tracking_mesh XR_FB_hand_tracking_aim ' - company: Oculus + nameUi: FB Composition Layer Depth Test + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbcompositionlayeralphablend + openxrExtensionStrings: XR_FB_composition_layer_depth_test + company: Mikesky priority: 0 required: 0 ---- !u!114 &-5086588257097655960 +--- !u!114 &-5450014341275443851 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -372,31 +383,19 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9c5b5af5107e35a43818d5411328bfc3, type: 3} - m_Name: DPadInteraction WSA + m_Script: {fileID: 11500000, guid: 7de993716e042c6499d0c18eed3a773c, type: 3} + m_Name: MockRuntime Standalone m_EditorClassIdentifier: m_enabled: 0 - nameUi: D-Pad Binding - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.dpadinteraction - openxrExtensionStrings: XR_KHR_binding_modification XR_EXT_dpad_binding + nameUi: Mock Runtime + version: 0.0.2 + featureIdInternal: com.unity.openxr.feature.mockruntime + openxrExtensionStrings: XR_UNITY_null_gfx XR_UNITY_android_present company: Unity priority: 0 required: 0 - forceThresholdLeft: 0.5 - forceThresholdReleaseLeft: 0.4 - centerRegionLeft: 0.5 - wedgeAngleLeft: 1.5707964 - isStickyLeft: 0 - forceThresholdRight: 0.5 - forceThresholdReleaseRight: 0.4 - centerRegionRight: 0.5 - wedgeAngleRight: 1.5707964 - isStickyRight: 0 - extensionStrings: - - XR_KHR_binding_modification - - XR_EXT_dpad_binding ---- !u!114 &-4971751487047288188 + ignoreValidationErrors: 0 +--- !u!114 &-5391479254513790176 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -405,18 +404,20 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e5315f812f023cf4ebf26f7e5d2d70f2, type: 3} - m_Name: HPReverbG2ControllerProfile Standalone + m_Script: {fileID: 11500000, guid: e0487890a3eee83449ce94b951042ace, type: 3} + m_Name: FBPassthrough Metro m_EditorClassIdentifier: - m_enabled: 1 - nameUi: HP Reverb G2 Controller Profile - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.hpreverb - openxrExtensionStrings: XR_EXT_hp_mixed_reality_controller - company: Unity + m_enabled: 0 + nameUi: FB Passthrough + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbpassthrough + openxrExtensionStrings: XR_FB_passthrough + company: Mikesky priority: 0 required: 0 ---- !u!114 &-4773087401744612407 + RequiredFeature: 0 + StartEnabled: 0 +--- !u!114 &-5390212098595779255 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -425,40 +426,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1927c045052a06d49a9b21fdcaa26db6, type: 3} - m_Name: OculusXRFeature Standalone + m_Script: {fileID: 11500000, guid: 761fdd4502cb7a84e9ec7a2b24f33f37, type: 3} + m_Name: MicrosoftMotionControllerProfile Standalone m_EditorClassIdentifier: - m_enabled: 0 - nameUi: Meta XR Feature + m_enabled: 1 + nameUi: Microsoft Motion Controller Profile version: 0.0.1 - featureIdInternal: com.meta.openxr.feature.metaxr - openxrExtensionStrings: 'XR_KHR_vulkan_enable XR_KHR_D3D11_enable XR_OCULUS_common_reference_spaces - XR_FB_display_refresh_rate XR_EXT_performance_settings XR_FB_composition_layer_image_layout - XR_KHR_android_surface_swapchain XR_FB_android_surface_swapchain_create XR_KHR_composition_layer_color_scale_bias - XR_FB_color_space XR_EXT_hand_tracking XR_FB_swapchain_update_state XR_FB_swapchain_update_state_opengl_es - XR_FB_swapchain_update_state_vulkan XR_FB_composition_layer_alpha_blend XR_KHR_composition_layer_depth - XR_KHR_composition_layer_cylinder XR_KHR_composition_layer_cube XR_KHR_composition_layer_equirect2 - XR_KHR_convert_timespec_time XR_KHR_visibility_mask XR_FB_render_model XR_FB_spatial_entity - XR_FB_spatial_entity_user XR_FB_spatial_entity_query XR_FB_spatial_entity_storage - XR_FB_spatial_entity_storage_batch XR_META_spatial_entity_mesh XR_META_performance_metrics - XR_FB_spatial_entity_sharing XR_FB_scene XR_FB_spatial_entity_container XR_FB_scene_capture - XR_FB_face_tracking XR_FB_face_tracking2 XR_FB_eye_tracking XR_FB_eye_tracking_social - XR_FB_body_tracking XR_META_body_tracking_full_body XR_META_body_tracking_calibration - XR_META_body_tracking_fidelity XR_FB_keyboard_tracking XR_META_virtual_keyboard - XR_FB_passthrough XR_FB_triangle_mesh XR_FB_passthrough_keyboard_hands XR_META_passthrough_layer_resumed_event - XR_META_passthrough_color_lut XR_META_passthrough_preferences XR_OCULUS_audio_device_guid - XR_FB_common_events XR_FB_hand_tracking_capsules XR_FB_hand_tracking_mesh XR_FB_hand_tracking_aim - XR_FB_touch_controller_pro XR_FB_touch_controller_proximity XR_FB_composition_layer_depth_test - XR_FB_haptic_amplitude_envelope XR_FB_haptic_pcm XR_META_local_dimming XR_META_hand_tracking_wide_motion_mode - XR_EXT_hand_tracking_data_source XR_EXT_hand_joints_motion_range XR_META_touch_controller_plus - XR_META_simultaneous_hands_and_controllers XR_MSFT_hand_interaction XR_FB_hand_tracking_confidence - XR_META_detached_controllers XR_META_spatial_entity_persistence XR_META_spatial_entity_discovery - XR_META_boundary_visibility XR_META_headset_id XR_FB_composition_layer_settings - XR_META_automatic_layer_filter ' - company: Meta + featureIdInternal: com.unity.openxr.feature.input.microsoftmotioncontroller + openxrExtensionStrings: + company: Unity priority: 0 required: 0 ---- !u!114 &-4469311779315207794 +--- !u!114 &-4668508543227741199 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -467,18 +446,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 486b5e28864f9a94b979b9620ce5006d, type: 3} - m_Name: ConformanceAutomationFeature Standalone + m_Script: {fileID: 11500000, guid: 2a24be4b5ebfe5f4d8ed1de9b25cb7aa, type: 3} + m_Name: HandCommonPosesInteraction Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: Conformance Automation + nameUi: Hand Interaction Poses version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.conformance - openxrExtensionStrings: XR_EXT_conformance_automation + featureIdInternal: com.unity.openxr.feature.input.handinteractionposes + openxrExtensionStrings: XR_EXT_hand_interaction company: Unity priority: 0 required: 0 ---- !u!114 &-4431914812882349843 +--- !u!114 &-4519343219118859912 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -487,18 +466,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0f6bfdbcb316ed242b30a8798c9eb853, type: 3} - m_Name: KHRSimpleControllerProfile Android + m_Script: {fileID: 11500000, guid: 2b7365b139f7aec43b23d26b7a48b5a6, type: 3} + m_Name: MetaQuestTouchPlusControllerProfile Standalone m_EditorClassIdentifier: m_enabled: 0 - nameUi: Khronos Simple Controller Profile + nameUi: Meta Quest Touch Plus Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.khrsimpleprofile - openxrExtensionStrings: + featureIdInternal: com.unity.openxr.feature.input.metaquestplus + openxrExtensionStrings: XR_META_touch_controller_plus company: Unity priority: 0 required: 0 ---- !u!114 &-3768601675236611697 +--- !u!114 &-4511672501300115454 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -507,18 +486,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: feeef8d85de8db242bdda70cc7ff5acd, type: 3} - m_Name: OculusTouchControllerProfile Android + m_Script: {fileID: 11500000, guid: 5019471fb2174e5c852ecd4047163007, type: 3} + m_Name: HandInteractionProfile Metro m_EditorClassIdentifier: - m_enabled: 1 - nameUi: Oculus Touch Controller Profile + m_enabled: 0 + nameUi: Hand Interaction Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.oculustouch - openxrExtensionStrings: + featureIdInternal: com.unity.openxr.feature.input.handinteraction + openxrExtensionStrings: XR_EXT_hand_interaction company: Unity priority: 0 required: 0 ---- !u!114 &-2581017241881390745 +--- !u!114 &-3853916106329478856 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -527,19 +506,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e573a2aed6698b047aff95224499b722, type: 3} - m_Name: MetaXREyeTrackedFoveationFeature Standalone + m_Script: {fileID: 11500000, guid: 380ed73f3efd2fa43af94bae88b6ad53, type: 3} + m_Name: FBCompositionLayerAlphaBlend Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Meta XR Eye Tracked Foveation - version: 0.0.1 - featureIdInternal: com.meta.openxr.feature.eyetrackedfoveation - openxrExtensionStrings: XR_META_foveation_eye_tracked XR_FB_eye_tracking_social - XR_META_vulkan_swapchain_create_info - company: Meta + nameUi: FB Composition Layer Alpha Blend + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbcompositionlayeralphablend + openxrExtensionStrings: XR_FB_composition_layer_alpha_blend + company: Mikesky priority: 0 required: 0 ---- !u!114 &-2021925341700479113 +--- !u!114 &-3680163117135202226 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -548,18 +526,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f928d0d73a35f294fbe357ca17aa3547, type: 3} - m_Name: MicrosoftHandInteraction WSA + m_Script: {fileID: 11500000, guid: b539472f3eea5fc4e89c6d3475c8e3a2, type: 3} + m_Name: FBDisplayRefreshRate Android m_EditorClassIdentifier: - m_enabled: 1 - nameUi: Microsoft Hand Interaction Profile - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.handtracking - openxrExtensionStrings: XR_MSFT_hand_interaction - company: Unity - priority: 0 + m_enabled: 0 + nameUi: FB Display Refresh Rate + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbdisplayrefreshrate + openxrExtensionStrings: XR_FB_display_refresh_rate + company: Mikesky + priority: 1 required: 0 ---- !u!114 &-1729055449683593181 +--- !u!114 &-3427992323173970041 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -568,18 +546,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 486b5e28864f9a94b979b9620ce5006d, type: 3} - m_Name: ConformanceAutomationFeature Android + m_Script: {fileID: 11500000, guid: feeef8d85de8db242bdda70cc7ff5acd, type: 3} + m_Name: OculusTouchControllerProfile Android m_EditorClassIdentifier: - m_enabled: 0 - nameUi: Conformance Automation + m_enabled: 1 + nameUi: Oculus Touch Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.conformance - openxrExtensionStrings: XR_EXT_conformance_automation + featureIdInternal: com.unity.openxr.feature.input.oculustouch + openxrExtensionStrings: company: Unity priority: 0 required: 0 ---- !u!114 &-1562417761177608366 +--- !u!114 &-3296765274475376796 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -588,18 +566,20 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f928d0d73a35f294fbe357ca17aa3547, type: 3} - m_Name: MicrosoftHandInteraction Android + m_Script: {fileID: 11500000, guid: 9ef793c31862a37448e907829482ef80, type: 3} + m_Name: OculusQuestFeature Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: Microsoft Hand Interaction Profile - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.handtracking - openxrExtensionStrings: XR_MSFT_hand_interaction + nameUi: Oculus Quest Support + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.oculusquest + openxrExtensionStrings: XR_OCULUS_android_initialize_loader company: Unity priority: 0 required: 0 ---- !u!114 &-1294329756112899549 + targetQuest: 1 + targetQuest2: 1 +--- !u!114 &-3169210590918488814 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -608,34 +588,43 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3} - m_Name: Android + m_Script: {fileID: 11500000, guid: f647cc0545697264a9878224faada6d5, type: 3} + m_Name: MetaQuestFeature Android m_EditorClassIdentifier: - features: - - {fileID: -1729055449683593181} - - {fileID: -9060494924153373858} - - {fileID: 5082403655935391592} - - {fileID: 3729635443001478327} - - {fileID: -8049897441354217187} - - {fileID: -4431914812882349843} - - {fileID: 3405362293045848653} - - {fileID: 7875633773414566808} - - {fileID: 3409825189635461668} - - {fileID: -7871932882014305355} - - {fileID: -6188679329620277984} - - {fileID: 6457187213107907505} - - {fileID: -1562417761177608366} - - {fileID: -568313750252970699} - - {fileID: -238312934105289492} - - {fileID: -3768601675236611697} - - {fileID: -792796085665928788} - - {fileID: -57994259809233075} - - {fileID: 4073621059260807014} - m_renderMode: 0 - m_depthSubmissionMode: 1 - m_optimizeBufferDiscards: 0 - m_symmetricProjection: 0 ---- !u!114 &-792796085665928788 + m_enabled: 0 + nameUi: Meta Quest Support + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.metaquest + openxrExtensionStrings: XR_OCULUS_android_initialize_loader + company: Unity + priority: 0 + required: 0 + targetDevices: + - visibleName: Quest + manifestName: quest + enabled: 1 + - visibleName: Quest 2 + manifestName: quest2 + enabled: 1 + - visibleName: Quest Pro + manifestName: cambria + enabled: 1 + - visibleName: Quest 3 + manifestName: eureka + enabled: 1 + - visibleName: Quest 3S + manifestName: quest3s + enabled: 1 + forceRemoveInternetPermission: 0 + symmetricProjection: 0 + foveatedRenderingApi: 0 + systemSplashScreen: {fileID: 0} + optimizeBufferDiscards: 1 + lateLatchingMode: 0 + lateLatchingDebug: 0 + optimizeMultiviewRenderRegions: 0 + spacewarpMotionVectorTextureFormat: 0 +--- !u!114 &-3118044521348213728 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -644,40 +633,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1927c045052a06d49a9b21fdcaa26db6, type: 3} - m_Name: OculusXRFeature Android + m_Script: {fileID: 11500000, guid: b539472f3eea5fc4e89c6d3475c8e3a2, type: 3} + m_Name: FBDisplayRefreshRate Standalone m_EditorClassIdentifier: - m_enabled: 1 - nameUi: Meta XR Feature - version: 0.0.1 - featureIdInternal: com.meta.openxr.feature.metaxr - openxrExtensionStrings: 'XR_KHR_vulkan_enable XR_KHR_D3D11_enable XR_OCULUS_common_reference_spaces - XR_FB_display_refresh_rate XR_EXT_performance_settings XR_FB_composition_layer_image_layout - XR_KHR_android_surface_swapchain XR_FB_android_surface_swapchain_create XR_KHR_composition_layer_color_scale_bias - XR_FB_color_space XR_EXT_hand_tracking XR_FB_swapchain_update_state XR_FB_swapchain_update_state_opengl_es - XR_FB_swapchain_update_state_vulkan XR_FB_composition_layer_alpha_blend XR_KHR_composition_layer_depth - XR_KHR_composition_layer_cylinder XR_KHR_composition_layer_cube XR_KHR_composition_layer_equirect2 - XR_KHR_convert_timespec_time XR_KHR_visibility_mask XR_FB_render_model XR_FB_spatial_entity - XR_FB_spatial_entity_user XR_FB_spatial_entity_query XR_FB_spatial_entity_storage - XR_FB_spatial_entity_storage_batch XR_META_spatial_entity_mesh XR_META_performance_metrics - XR_FB_spatial_entity_sharing XR_FB_scene XR_FB_spatial_entity_container XR_FB_scene_capture - XR_FB_face_tracking XR_FB_face_tracking2 XR_FB_eye_tracking XR_FB_eye_tracking_social - XR_FB_body_tracking XR_META_body_tracking_full_body XR_META_body_tracking_calibration - XR_META_body_tracking_fidelity XR_FB_keyboard_tracking XR_META_virtual_keyboard - XR_FB_passthrough XR_FB_triangle_mesh XR_FB_passthrough_keyboard_hands XR_META_passthrough_layer_resumed_event - XR_META_passthrough_color_lut XR_META_passthrough_preferences XR_OCULUS_audio_device_guid - XR_FB_common_events XR_FB_hand_tracking_capsules XR_FB_hand_tracking_mesh XR_FB_hand_tracking_aim - XR_FB_touch_controller_pro XR_FB_touch_controller_proximity XR_FB_composition_layer_depth_test - XR_FB_haptic_amplitude_envelope XR_FB_haptic_pcm XR_META_local_dimming XR_META_hand_tracking_wide_motion_mode - XR_EXT_hand_tracking_data_source XR_EXT_hand_joints_motion_range XR_META_touch_controller_plus - XR_META_simultaneous_hands_and_controllers XR_MSFT_hand_interaction XR_FB_hand_tracking_confidence - XR_META_detached_controllers XR_META_spatial_entity_persistence XR_META_spatial_entity_discovery - XR_META_boundary_visibility XR_META_headset_id XR_FB_composition_layer_settings - XR_META_automatic_layer_filter ' - company: Meta - priority: 0 + m_enabled: 0 + nameUi: FB Display Refresh Rate + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbdisplayrefreshrate + openxrExtensionStrings: XR_FB_display_refresh_rate + company: Mikesky + priority: 1 required: 0 ---- !u!114 &-568313750252970699 +--- !u!114 &-2963101927486946481 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -686,19 +653,20 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7de993716e042c6499d0c18eed3a773c, type: 3} - m_Name: MockRuntime Android + m_Script: {fileID: 11500000, guid: 6096094d69d82cc40947df806f66ab34, type: 3} + m_Name: OpenXRCompositionLayersFeature Standalone m_EditorClassIdentifier: - m_enabled: 0 - nameUi: Mock Runtime - version: 0.0.2 - featureIdInternal: com.unity.openxr.feature.mockruntime - openxrExtensionStrings: XR_UNITY_null_gfx XR_UNITY_android_present + m_enabled: 1 + nameUi: Composition Layers Support + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.compositionlayers + openxrExtensionStrings: XR_KHR_composition_layer_cylinder XR_KHR_composition_layer_equirect + XR_KHR_composition_layer_equirect2 XR_KHR_composition_layer_cube XR_KHR_composition_layer_color_scale_bias + XR_KHR_android_surface_swapchain company: Unity priority: 0 required: 0 - ignoreValidationErrors: 0 ---- !u!114 &-345907987508416232 +--- !u!114 &-2940866091829731981 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -707,18 +675,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2a24be4b5ebfe5f4d8ed1de9b25cb7aa, type: 3} - m_Name: HandCommonPosesInteraction WSA + m_Script: {fileID: 11500000, guid: 0f6bfdbcb316ed242b30a8798c9eb853, type: 3} + m_Name: KHRSimpleControllerProfile Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: Hand Interaction Poses + nameUi: Khronos Simple Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.handinteractionposes - openxrExtensionStrings: XR_EXT_hand_interaction + featureIdInternal: com.unity.openxr.feature.input.khrsimpleprofile + openxrExtensionStrings: company: Unity priority: 0 required: 0 ---- !u!114 &-238312934105289492 +--- !u!114 &-2871588662150222933 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -727,20 +695,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9ef793c31862a37448e907829482ef80, type: 3} - m_Name: OculusQuestFeature Android + m_Script: {fileID: 11500000, guid: 0f6bfdbcb316ed242b30a8798c9eb853, type: 3} + m_Name: KHRSimpleControllerProfile Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Oculus Quest Support - version: 1.0.0 - featureIdInternal: com.unity.openxr.feature.oculusquest - openxrExtensionStrings: XR_OCULUS_android_initialize_loader + nameUi: Khronos Simple Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.khrsimpleprofile + openxrExtensionStrings: company: Unity priority: 0 required: 0 - targetQuest: 1 - targetQuest2: 1 ---- !u!114 &-177044242218828340 +--- !u!114 &-2741483306923065349 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -749,18 +715,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0d6ccd3d0ef0f1d458e69421dccbdae1, type: 3} - m_Name: ValveIndexControllerProfile Standalone + m_Script: {fileID: 11500000, guid: b213d3e3c7f3109449eb46a4c8ee42f0, type: 3} + m_Name: XrPerformanceSettingsFeature Standalone m_EditorClassIdentifier: - m_enabled: 1 - nameUi: Valve Index Controller Profile - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.valveindex - openxrExtensionStrings: + m_enabled: 0 + nameUi: XR Performance Settings + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.extension.performance_settings + openxrExtensionStrings: XR_EXT_performance_settings company: Unity priority: 0 required: 0 ---- !u!114 &-147410222034222949 +--- !u!114 &-2173291548971639183 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -769,15 +735,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3} - m_Name: VisionOS + m_Script: {fileID: 11500000, guid: b539472f3eea5fc4e89c6d3475c8e3a2, type: 3} + m_Name: FBDisplayRefreshRate Metro m_EditorClassIdentifier: - features: [] - m_renderMode: 1 - m_depthSubmissionMode: 0 - m_optimizeBufferDiscards: 0 - m_symmetricProjection: 0 ---- !u!114 &-57994259809233075 + m_enabled: 0 + nameUi: FB Display Refresh Rate + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbdisplayrefreshrate + openxrExtensionStrings: XR_FB_display_refresh_rate + company: Mikesky + priority: 1 + required: 0 +--- !u!114 &-2096542566023519286 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -786,18 +755,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f028123e2efe1d443875bc7609b4a98b, type: 3} - m_Name: PalmPoseInteraction Android + m_Script: {fileID: 11500000, guid: 761fdd4502cb7a84e9ec7a2b24f33f37, type: 3} + m_Name: MicrosoftMotionControllerProfile Metro m_EditorClassIdentifier: - m_enabled: 0 - nameUi: Palm Pose + m_enabled: 1 + nameUi: Microsoft Motion Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.palmpose - openxrExtensionStrings: XR_EXT_palm_pose + featureIdInternal: com.unity.openxr.feature.input.microsoftmotioncontroller + openxrExtensionStrings: company: Unity priority: 0 required: 0 ---- !u!114 &11400000 +--- !u!114 &-1947652372772614962 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -806,18 +775,20 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9f0ebc320a151d3408ea1e9fce54d40e, type: 3} - m_Name: Open XR Package Settings + m_Script: {fileID: 11500000, guid: 6096094d69d82cc40947df806f66ab34, type: 3} + m_Name: OpenXRCompositionLayersFeature Metro m_EditorClassIdentifier: - Keys: 01000000070000000d0000000e0000000400000024000000 - Values: - - {fileID: 7381656899648225167} - - {fileID: -1294329756112899549} - - {fileID: 9061466112958658113} - - {fileID: 5710753191044472963} - - {fileID: 2540959591261858297} - - {fileID: -147410222034222949} ---- !u!114 &574840683824583675 + m_enabled: 1 + nameUi: Composition Layers Support + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.compositionlayers + openxrExtensionStrings: XR_KHR_composition_layer_cylinder XR_KHR_composition_layer_equirect + XR_KHR_composition_layer_equirect2 XR_KHR_composition_layer_cube XR_KHR_composition_layer_color_scale_bias + XR_KHR_android_surface_swapchain + company: Unity + priority: 0 + required: 0 +--- !u!114 &-1846274655558243129 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -826,18 +797,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e5315f812f023cf4ebf26f7e5d2d70f2, type: 3} - m_Name: HPReverbG2ControllerProfile WSA + m_Script: {fileID: 11500000, guid: c4b862ee14fb479fbfe5fffe655d3ed3, type: 3} + m_Name: MetaQuestTouchProControllerProfile Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: HP Reverb G2 Controller Profile + nameUi: Meta Quest Touch Pro Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.hpreverb - openxrExtensionStrings: XR_EXT_hp_mixed_reality_controller + featureIdInternal: com.unity.openxr.feature.input.metaquestpro + openxrExtensionStrings: XR_FB_touch_controller_pro company: Unity priority: 0 required: 0 ---- !u!114 &1104377150978337437 +--- !u!114 &-1789324790055578746 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -846,18 +817,20 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3d28f705476c80d47acb3dfade3d3142, type: 3} - m_Name: MetaXRFoveationFeature Standalone + m_Script: {fileID: 11500000, guid: 9dd5613b2a5a0a24aa3d61b135e8af42, type: 3} + m_Name: FBBodyTracking Metro m_EditorClassIdentifier: - m_enabled: 1 - nameUi: Meta XR Foveation - version: 1.0.0 - featureIdInternal: com.meta.openxr.feature.foveation - openxrExtensionStrings: 'XR_FB_foveation XR_FB_foveation_configuration XR_FB_foveation_vulkan ' - company: Meta - priority: 0 + m_enabled: 0 + nameUi: FB Body Tracking + META Body Tracking Full Body + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbbodytracking + openxrExtensionStrings: XR_FB_body_tracking XR_META_body_tracking_full_body + company: Mikesky + priority: 1 required: 0 ---- !u!114 &1263590293311991825 + RequiredFeature: 0 + _TrackingType: 0 +--- !u!114 &-1600947481249447351 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -866,18 +839,20 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1927c045052a06d49a9b21fdcaa26db6, type: 3} - m_Name: OculusXRFeature Android + m_Script: {fileID: 11500000, guid: 056125dd64c0ed540b40a4af74f7b495, type: 3} + m_Name: RuntimeDebuggerOpenXRFeature Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: - version: - featureIdInternal: + nameUi: Runtime Debugger + version: 1 + featureIdInternal: com.unity.openxr.features.runtimedebugger openxrExtensionStrings: - company: + company: Unity priority: 0 required: 0 ---- !u!114 &1302668994057080467 + cacheSize: 1048576 + perThreadCacheSize: 51200 +--- !u!114 &-1400617312558427645 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -886,18 +861,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f028123e2efe1d443875bc7609b4a98b, type: 3} - m_Name: PalmPoseInteraction Standalone + m_Script: {fileID: 11500000, guid: cc9d97d3e118e10498b22af44f652f5c, type: 3} + m_Name: FBCompositionLayerDepthTest Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Palm Pose - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.palmpose - openxrExtensionStrings: XR_EXT_palm_pose - company: Unity + nameUi: FB Composition Layer Depth Test + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbcompositionlayeralphablend + openxrExtensionStrings: XR_FB_composition_layer_depth_test + company: Mikesky priority: 0 required: 0 ---- !u!114 &1638299284819138145 +--- !u!114 &-1070531637361003129 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -906,18 +881,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: feeef8d85de8db242bdda70cc7ff5acd, type: 3} - m_Name: OculusTouchControllerProfile WSA + m_Script: {fileID: 11500000, guid: 380ed73f3efd2fa43af94bae88b6ad53, type: 3} + m_Name: FBCompositionLayerAlphaBlend Standalone m_EditorClassIdentifier: m_enabled: 0 - nameUi: Oculus Touch Controller Profile - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.oculustouch - openxrExtensionStrings: - company: Unity + nameUi: FB Composition Layer Alpha Blend + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbcompositionlayeralphablend + openxrExtensionStrings: XR_FB_composition_layer_alpha_blend + company: Mikesky priority: 0 required: 0 ---- !u!114 &1827103528056647146 +--- !u!114 &-692393660349497644 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -926,18 +901,20 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 274c02963f889a64e90bc2e596e21d13, type: 3} - m_Name: HTCViveControllerProfile Standalone + m_Script: {fileID: 11500000, guid: e0487890a3eee83449ce94b951042ace, type: 3} + m_Name: FBPassthrough Android m_EditorClassIdentifier: m_enabled: 1 - nameUi: HTC Vive Controller Profile - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.htcvive - openxrExtensionStrings: - company: Unity + nameUi: FB Passthrough + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbpassthrough + openxrExtensionStrings: XR_FB_passthrough + company: Mikesky priority: 0 required: 0 ---- !u!114 &1995135396447337485 + RequiredFeature: 0 + StartEnabled: 0 +--- !u!114 &-651732358992884020 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -946,18 +923,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 274c02963f889a64e90bc2e596e21d13, type: 3} - m_Name: HTCViveControllerProfile WSA + m_Script: {fileID: 11500000, guid: 5019471fb2174e5c852ecd4047163007, type: 3} + m_Name: HandInteractionProfile Standalone m_EditorClassIdentifier: m_enabled: 0 - nameUi: HTC Vive Controller Profile + nameUi: Hand Interaction Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.htcvive - openxrExtensionStrings: + featureIdInternal: com.unity.openxr.feature.input.handinteraction + openxrExtensionStrings: XR_EXT_hand_interaction company: Unity priority: 0 required: 0 ---- !u!114 &2105268745197950013 +--- !u!114 &-240898317316530137 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -966,18 +943,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c4b862ee14fb479fbfe5fffe655d3ed3, type: 3} - m_Name: MetaQuestTouchProControllerProfile WSA + m_Script: {fileID: 11500000, guid: b213d3e3c7f3109449eb46a4c8ee42f0, type: 3} + m_Name: XrPerformanceSettingsFeature Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: Meta Quest Touch Pro Controller Profile - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.metaquestpro - openxrExtensionStrings: XR_FB_touch_controller_pro + nameUi: XR Performance Settings + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.extension.performance_settings + openxrExtensionStrings: XR_EXT_performance_settings company: Unity priority: 0 required: 0 ---- !u!114 &2540959591261858297 +--- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -986,15 +963,17 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3} - m_Name: iPhone + m_Script: {fileID: 11500000, guid: 9f0ebc320a151d3408ea1e9fce54d40e, type: 3} + m_Name: OpenXRPackageSettings m_EditorClassIdentifier: - features: [] - m_renderMode: 1 - m_depthSubmissionMode: 0 - m_optimizeBufferDiscards: 0 - m_symmetricProjection: 0 ---- !u!114 &2554124788269052071 + Keys: 01000000070000000e000000040000000d000000 + Values: + - {fileID: -8242694009530368604} + - {fileID: 2219514573358777864} + - {fileID: 7032137865131000101} + - {fileID: 1714343552221472449} + - {fileID: 8219604799219043784} +--- !u!114 &73287326397848146 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1003,18 +982,20 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0f6bfdbcb316ed242b30a8798c9eb853, type: 3} - m_Name: KHRSimpleControllerProfile Standalone + m_Script: {fileID: 11500000, guid: 9dd5613b2a5a0a24aa3d61b135e8af42, type: 3} + m_Name: FBBodyTracking Android m_EditorClassIdentifier: - m_enabled: 1 - nameUi: Khronos Simple Controller Profile - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.khrsimpleprofile - openxrExtensionStrings: - company: Unity - priority: 0 + m_enabled: 0 + nameUi: FB Body Tracking + META Body Tracking Full Body + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbbodytracking + openxrExtensionStrings: XR_FB_body_tracking XR_META_body_tracking_full_body + company: Mikesky + priority: 1 required: 0 ---- !u!114 &3238800898370297597 + RequiredFeature: 0 + _TrackingType: 0 +--- !u!114 &735426411698092576 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1023,18 +1004,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5019471fb2174e5c852ecd4047163007, type: 3} - m_Name: HandInteractionProfile WSA + m_Script: {fileID: 11500000, guid: 2b7365b139f7aec43b23d26b7a48b5a6, type: 3} + m_Name: MetaQuestTouchPlusControllerProfile Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Hand Interaction Profile + nameUi: Meta Quest Touch Plus Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.handinteraction - openxrExtensionStrings: XR_EXT_hand_interaction + featureIdInternal: com.unity.openxr.feature.input.metaquestplus + openxrExtensionStrings: XR_META_touch_controller_plus company: Unity priority: 0 required: 0 ---- !u!114 &3405362293045848653 +--- !u!114 &908514120324412924 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1043,34 +1024,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f647cc0545697264a9878224faada6d5, type: 3} - m_Name: MetaQuestFeature Android + m_Script: {fileID: 11500000, guid: 311418363b561b04e96974e030216b89, type: 3} + m_Name: METABoundaryVisibility Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Meta Quest Support - version: 1.0.0 - featureIdInternal: com.unity.openxr.feature.metaquest - openxrExtensionStrings: XR_OCULUS_android_initialize_loader - company: Unity + nameUi: META Boundary Visibility + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.metaboundaryvisibility + openxrExtensionStrings: XR_META_boundary_visibility + company: Mikesky priority: 0 required: 0 - targetDevices: - - visibleName: Quest - manifestName: quest - enabled: 1 - - visibleName: Quest 2 - manifestName: quest2 - enabled: 1 - - visibleName: Quest Pro - manifestName: cambria - enabled: 1 - forceRemoveInternetPermission: 1 - symmetricProjection: 0 - systemSplashScreen: {fileID: 0} - optimizeBufferDiscards: 1 - lateLatchingMode: 0 - lateLatchingDebug: 0 ---- !u!114 &3409825189635461668 +--- !u!114 &967086648090800521 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1079,19 +1044,19 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e573a2aed6698b047aff95224499b722, type: 3} - m_Name: MetaXREyeTrackedFoveationFeature Android + m_Script: {fileID: 11500000, guid: e0c08893328d4904cbc44298641cb087, type: 3} + m_Name: OpenXRAndroidSettings Android m_EditorClassIdentifier: - m_enabled: 0 - nameUi: Meta XR Eye Tracked Foveation - version: 0.0.1 - featureIdInternal: com.meta.openxr.feature.eyetrackedfoveation - openxrExtensionStrings: XR_META_foveation_eye_tracked XR_FB_eye_tracking_social - XR_META_vulkan_swapchain_create_info - company: Meta + m_enabled: 1 + nameUi: Android Settings + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.androidmanifest + openxrExtensionStrings: + company: Mikesky priority: 0 required: 0 ---- !u!114 &3442458366111397828 + systemSplashScreen: {fileID: 0} +--- !u!114 &1062572759309084341 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1100,19 +1065,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7de993716e042c6499d0c18eed3a773c, type: 3} - m_Name: MockRuntime Standalone + m_Script: {fileID: 11500000, guid: ad194dcf6c734fa438fad0f4269ec5ad, type: 3} + m_Name: PICO4ControllerProfile Android m_EditorClassIdentifier: - m_enabled: 0 - nameUi: Mock Runtime - version: 0.0.2 - featureIdInternal: com.unity.openxr.feature.mockruntime - openxrExtensionStrings: XR_UNITY_null_gfx XR_UNITY_android_present - company: Unity + m_enabled: 1 + 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 - ignoreValidationErrors: 0 ---- !u!114 &3701968863295678716 +--- !u!114 &1714343552221472449 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1121,18 +1085,40 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3cf79659a011bd419c7a2a30eb74e9a, type: 3} - m_Name: EyeGazeInteraction Standalone + m_Script: {fileID: 11500000, guid: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3} + m_Name: iPhone m_EditorClassIdentifier: - m_enabled: 0 - nameUi: Eye Gaze Interaction Profile + features: + - {fileID: 9207359740963411432} + m_renderMode: 1 + m_autoColorSubmissionMode: 1 + m_colorSubmissionModes: + m_List: 00000000 + m_depthSubmissionMode: 0 + m_spacewarpMotionVectorTextureFormat: 0 + m_optimizeBufferDiscards: 0 + m_symmetricProjection: 0 +--- !u!114 &1774246631368584256 +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: feeef8d85de8db242bdda70cc7ff5acd, type: 3} + m_Name: OculusTouchControllerProfile Standalone + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: Oculus Touch Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.eyetracking - openxrExtensionStrings: XR_EXT_eye_gaze_interaction + featureIdInternal: com.unity.openxr.feature.input.oculustouch + openxrExtensionStrings: company: Unity priority: 0 required: 0 ---- !u!114 &3729635443001478327 +--- !u!114 &1825709817469746319 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1141,18 +1127,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2a24be4b5ebfe5f4d8ed1de9b25cb7aa, type: 3} - m_Name: HandCommonPosesInteraction Android + m_Script: {fileID: 11500000, guid: 0d6ccd3d0ef0f1d458e69421dccbdae1, type: 3} + m_Name: ValveIndexControllerProfile Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Hand Interaction Poses + nameUi: Valve Index Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.handinteractionposes - openxrExtensionStrings: XR_EXT_hand_interaction + featureIdInternal: com.unity.openxr.feature.input.valveindex + openxrExtensionStrings: company: Unity priority: 0 required: 0 ---- !u!114 &4073621059260807014 +--- !u!114 &1982624024592441971 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1164,7 +1150,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 056125dd64c0ed540b40a4af74f7b495, type: 3} m_Name: RuntimeDebuggerOpenXRFeature Android m_EditorClassIdentifier: - m_enabled: 1 + m_enabled: 0 nameUi: Runtime Debugger version: 1 featureIdInternal: com.unity.openxr.features.runtimedebugger @@ -1174,7 +1160,7 @@ MonoBehaviour: required: 0 cacheSize: 1048576 perThreadCacheSize: 51200 ---- !u!114 &4432650494097248010 +--- !u!114 &1992953916463732779 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1183,18 +1169,168 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f028123e2efe1d443875bc7609b4a98b, type: 3} - m_Name: PalmPoseInteraction WSA + m_Script: {fileID: 11500000, guid: 9dd5613b2a5a0a24aa3d61b135e8af42, type: 3} + m_Name: FBBodyTracking Standalone m_EditorClassIdentifier: m_enabled: 0 - nameUi: Palm Pose - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.palmpose - openxrExtensionStrings: XR_EXT_palm_pose + nameUi: FB Body Tracking + META Body Tracking Full Body + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbbodytracking + openxrExtensionStrings: XR_FB_body_tracking XR_META_body_tracking_full_body + company: Mikesky + priority: 1 + required: 0 + RequiredFeature: 0 + _TrackingType: 0 +--- !u!114 &2219514573358777864 +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: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3} + m_Name: Android + m_EditorClassIdentifier: + features: + - {fileID: 73287326397848146} + - {fileID: -3680163117135202226} + - {fileID: 967086648090800521} + - {fileID: 7294813655699738615} + - {fileID: -9141739992184167668} + - {fileID: 4672747232322962020} + - {fileID: 8478922053924795678} + - {fileID: 5142199716502653691} + - {fileID: -5539927416901328295} + - {fileID: -692393660349497644} + - {fileID: -4668508543227741199} + - {fileID: 7527692461464807488} + - {fileID: -2940866091829731981} + - {fileID: 7184398878750099767} + - {fileID: -3169210590918488814} + - {fileID: -5791431774203327737} + - {fileID: -1846274655558243129} + - {fileID: 8402632982202156079} + - {fileID: 4728314188480663856} + - {fileID: -3296765274475376796} + - {fileID: -3427992323173970041} + - {fileID: 7978280317625903181} + - {fileID: 1062572759309084341} + - {fileID: 1982624024592441971} + - {fileID: -240898317316530137} + m_renderMode: 0 + m_autoColorSubmissionMode: 1 + m_colorSubmissionModes: + m_List: 00000000 + m_depthSubmissionMode: 1 + m_spacewarpMotionVectorTextureFormat: 0 + m_optimizeBufferDiscards: 0 + m_symmetricProjection: 0 +--- !u!114 &2235076403440218077 +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: 056125dd64c0ed540b40a4af74f7b495, type: 3} + m_Name: RuntimeDebuggerOpenXRFeature Standalone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Runtime Debugger + version: 1 + featureIdInternal: com.unity.openxr.features.runtimedebugger + openxrExtensionStrings: + company: Unity + priority: 0 + required: 0 + cacheSize: 1048576 + perThreadCacheSize: 51200 +--- !u!114 &2745045609796079843 +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: cc9d97d3e118e10498b22af44f652f5c, type: 3} + m_Name: FBCompositionLayerDepthTest Standalone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: FB Composition Layer Depth Test + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbcompositionlayeralphablend + openxrExtensionStrings: XR_FB_composition_layer_depth_test + company: Mikesky + priority: 0 + required: 0 +--- !u!114 &3113865298154173063 +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: 274c02963f889a64e90bc2e596e21d13, type: 3} + m_Name: HTCViveControllerProfile Standalone + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: HTC Vive Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.htcvive + openxrExtensionStrings: + company: Unity + priority: 0 + required: 0 +--- !u!114 &3212712622174654143 +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: f928d0d73a35f294fbe357ca17aa3547, type: 3} + m_Name: MicrosoftHandInteraction Standalone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Microsoft Hand Interaction Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.handtracking + openxrExtensionStrings: XR_MSFT_hand_interaction + company: Unity + priority: 0 + required: 0 +--- !u!114 &3436573594146956537 +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: c4b862ee14fb479fbfe5fffe655d3ed3, type: 3} + m_Name: MetaQuestTouchProControllerProfile Metro + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Meta Quest Touch Pro Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.metaquestpro + openxrExtensionStrings: XR_FB_touch_controller_pro company: Unity priority: 0 required: 0 ---- !u!114 &5082403655935391592 +--- !u!114 &3749097899685189551 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1204,7 +1340,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: b3cf79659a011bd419c7a2a30eb74e9a, type: 3} - m_Name: EyeGazeInteraction Android + m_Name: EyeGazeInteraction Standalone m_EditorClassIdentifier: m_enabled: 0 nameUi: Eye Gaze Interaction Profile @@ -1214,7 +1350,7 @@ MonoBehaviour: company: Unity priority: 0 required: 0 ---- !u!114 &5635249410294987815 +--- !u!114 &4581812087518958971 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1223,18 +1359,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 96efa89124dda0941802f28ad8249b87, type: 3} - m_Name: MockDriver Standalone + m_Script: {fileID: 11500000, guid: c4b862ee14fb479fbfe5fffe655d3ed3, type: 3} + m_Name: MetaQuestTouchProControllerProfile Standalone m_EditorClassIdentifier: m_enabled: 0 - nameUi: Mock Driver + nameUi: Meta Quest Touch Pro Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.mockdriver - openxrExtensionStrings: XR_UNITY_mock_driver + featureIdInternal: com.unity.openxr.feature.input.metaquestpro + openxrExtensionStrings: XR_FB_touch_controller_pro company: Unity priority: 0 required: 0 ---- !u!114 &5710753191044472963 +--- !u!114 &4672747232322962020 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1243,30 +1379,31 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3} - m_Name: WSA + m_Script: {fileID: 11500000, guid: 9c5b5af5107e35a43818d5411328bfc3, type: 3} + m_Name: DPadInteraction Android m_EditorClassIdentifier: - features: - - {fileID: 9128593777916537170} - - {fileID: -5086588257097655960} - - {fileID: -6452589779438814163} - - {fileID: -345907987508416232} - - {fileID: 3238800898370297597} - - {fileID: 574840683824583675} - - {fileID: 1995135396447337485} - - {fileID: 7584001526195082204} - - {fileID: 2105268745197950013} - - {fileID: -2021925341700479113} - - {fileID: 6370826120337889678} - - {fileID: 1638299284819138145} - - {fileID: 4432650494097248010} - - {fileID: -5369529246399082918} - - {fileID: -8850364997158714336} - m_renderMode: 0 - m_depthSubmissionMode: 1 - m_optimizeBufferDiscards: 0 - m_symmetricProjection: 0 ---- !u!114 &6163247034252501667 + m_enabled: 0 + nameUi: D-Pad Binding + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.dpadinteraction + openxrExtensionStrings: XR_KHR_binding_modification XR_EXT_dpad_binding + company: Unity + priority: 0 + required: 0 + forceThresholdLeft: 0.5 + forceThresholdReleaseLeft: 0.4 + centerRegionLeft: 0.5 + wedgeAngleLeft: 1.5707964 + isStickyLeft: 0 + forceThresholdRight: 0.5 + forceThresholdReleaseRight: 0.4 + centerRegionRight: 0.5 + wedgeAngleRight: 1.5707964 + isStickyRight: 0 + extensionStrings: + - XR_KHR_binding_modification + - XR_EXT_dpad_binding +--- !u!114 &4728314188480663856 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1275,18 +1412,19 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5019471fb2174e5c852ecd4047163007, type: 3} - m_Name: HandInteractionProfile Standalone + m_Script: {fileID: 11500000, guid: 7de993716e042c6499d0c18eed3a773c, type: 3} + m_Name: MockRuntime Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: Hand Interaction Profile - version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.handinteraction - openxrExtensionStrings: XR_EXT_hand_interaction + nameUi: Mock Runtime + version: 0.0.2 + featureIdInternal: com.unity.openxr.feature.mockruntime + openxrExtensionStrings: XR_UNITY_null_gfx XR_UNITY_android_present company: Unity priority: 0 required: 0 ---- !u!114 &6370826120337889678 + ignoreValidationErrors: 0 +--- !u!114 &4856277442140917248 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1295,18 +1433,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 761fdd4502cb7a84e9ec7a2b24f33f37, type: 3} - m_Name: MicrosoftMotionControllerProfile WSA + m_Script: {fileID: 11500000, guid: f028123e2efe1d443875bc7609b4a98b, type: 3} + m_Name: PalmPoseInteraction Standalone m_EditorClassIdentifier: - m_enabled: 1 - nameUi: Microsoft Motion Controller Profile + m_enabled: 0 + nameUi: Palm Pose version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.microsoftmotioncontroller - openxrExtensionStrings: + featureIdInternal: com.unity.openxr.feature.input.palmpose + openxrExtensionStrings: XR_EXT_palm_pose company: Unity priority: 0 required: 0 ---- !u!114 &6457187213107907505 +--- !u!114 &5024037174281773948 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1315,18 +1453,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4710975c7840e7d499bbb3757c22b0a5, type: 3} - m_Name: MetaXRSubsampledLayout Android + m_Script: {fileID: 11500000, guid: 274c02963f889a64e90bc2e596e21d13, type: 3} + m_Name: HTCViveControllerProfile Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Meta XR Subsampled Layout + nameUi: HTC Vive Controller Profile version: 0.0.1 - featureIdInternal: com.meta.openxr.feature.subsampledLayout - openxrExtensionStrings: XR_META_vulkan_swapchain_create_info - company: Meta + featureIdInternal: com.unity.openxr.feature.input.htcvive + openxrExtensionStrings: + company: Unity priority: 0 required: 0 ---- !u!114 &6781313199298781951 +--- !u!114 &5142199716502653691 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1335,29 +1473,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1927c045052a06d49a9b21fdcaa26db6, type: 3} - m_Name: OculusXRFeature Android + m_Script: {fileID: 11500000, guid: 380ed73f3efd2fa43af94bae88b6ad53, type: 3} + m_Name: FBCompositionLayerAlphaBlend Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: OculusXR Feature - version: 0.0.1 - featureIdInternal: com.oculus.openxr.feature.oculusxr - openxrExtensionStrings: 'XR_KHR_vulkan_enable XR_KHR_D3D11_enable XR_OCULUS_common_reference_spaces - XR_FB_display_refresh_rate XR_EXT_performance_settings XR_FB_composition_layer_image_layout - XR_KHR_android_surface_swapchain XR_FB_android_surface_swapchain_create XR_KHR_composition_layer_color_scale_bias - XR_FB_color_space XR_EXT_hand_tracking XR_FB_swapchain_update_state XR_FB_swapchain_update_state_opengl_es - XR_FB_swapchain_update_state_vulkan XR_FB_foveation XR_FB_foveation_configuration - XR_FB_foveation_vulkan XR_FB_composition_layer_alpha_blend XR_KHR_composition_layer_depth - XR_KHR_composition_layer_cylinder XR_KHR_composition_layer_cube XR_KHR_composition_layer_equirect2 - XR_KHR_convert_timespec_time XR_KHR_visibility_mask XR_FB_render_model XR_FB_spatial_entity - XR_FB_spatial_entity_query XR_FB_spatial_entity_storage XR_META_performance_metrics - XR_FB_keyboard_tracking XR_FB_passthrough XR_FB_triangle_mesh XR_FB_passthrough_keyboard_hands - XR_OCULUS_audio_device_guid XR_FB_common_events XR_FB_space_warp XR_FB_hand_tracking_capsules - XR_FB_hand_tracking_mesh XR_FB_hand_tracking_aim ' - company: Oculus + nameUi: FB Composition Layer Alpha Blend + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.fbcompositionlayeralphablend + openxrExtensionStrings: XR_FB_composition_layer_alpha_blend + company: Mikesky priority: 0 required: 0 ---- !u!114 &6812736204562946406 +--- !u!114 &5142876501055731027 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1366,18 +1493,58 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: feeef8d85de8db242bdda70cc7ff5acd, type: 3} - m_Name: OculusTouchControllerProfile Standalone + m_Script: {fileID: 11500000, guid: 0d6ccd3d0ef0f1d458e69421dccbdae1, type: 3} + m_Name: ValveIndexControllerProfile Standalone m_EditorClassIdentifier: m_enabled: 1 - nameUi: Oculus Touch Controller Profile + nameUi: Valve Index Controller Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.oculustouch + featureIdInternal: com.unity.openxr.feature.input.valveindex openxrExtensionStrings: company: Unity priority: 0 required: 0 ---- !u!114 &7381656899648225167 +--- !u!114 &5188879257186700139 +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: 311418363b561b04e96974e030216b89, type: 3} + m_Name: METABoundaryVisibility Standalone + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: META Boundary Visibility + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.metaboundaryvisibility + openxrExtensionStrings: XR_META_boundary_visibility + company: Mikesky + priority: 0 + required: 0 +--- !u!114 &6658636873894591354 +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: 2a24be4b5ebfe5f4d8ed1de9b25cb7aa, type: 3} + m_Name: HandCommonPosesInteraction Standalone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Hand Interaction Poses + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.handinteractionposes + openxrExtensionStrings: XR_EXT_hand_interaction + company: Unity + priority: 0 + required: 0 +--- !u!114 &7032137865131000101 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1387,34 +1554,42 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3} - m_Name: Standalone + m_Name: Metro m_EditorClassIdentifier: features: - - {fileID: -4469311779315207794} - - {fileID: -7457498403352615917} - - {fileID: 3701968863295678716} - - {fileID: 8280613793592923929} - - {fileID: 6163247034252501667} - - {fileID: -4971751487047288188} - - {fileID: 1827103528056647146} - - {fileID: 2554124788269052071} - - {fileID: 7755255244189431342} - - {fileID: -2581017241881390745} - - {fileID: 1104377150978337437} - - {fileID: -5585190116095795567} - - {fileID: -6490217007365981742} - - {fileID: -6553496117388817208} - - {fileID: 3442458366111397828} - - {fileID: 6812736204562946406} - - {fileID: -4773087401744612407} - - {fileID: 1302668994057080467} - - {fileID: -7635896756621915544} - - {fileID: -177044242218828340} + - {fileID: -1789324790055578746} + - {fileID: -2173291548971639183} + - {fileID: -1947652372772614962} + - {fileID: -8570461368887029806} + - {fileID: -7094326163286396934} + - {fileID: -6004883224111681166} + - {fileID: -3853916106329478856} + - {fileID: -1400617312558427645} + - {fileID: -5391479254513790176} + - {fileID: -8634935931032454399} + - {fileID: -4511672501300115454} + - {fileID: -7719526113015731334} + - {fileID: 5024037174281773948} + - {fileID: -2871588662150222933} + - {fileID: 908514120324412924} + - {fileID: 735426411698092576} + - {fileID: 3436573594146956537} + - {fileID: 7154121404861734787} + - {fileID: -2096542566023519286} + - {fileID: -6991857693337309066} + - {fileID: 7040092971389812431} + - {fileID: -1600947481249447351} + - {fileID: 1825709817469746319} + - {fileID: -7426584533051045112} m_renderMode: 0 - m_depthSubmissionMode: 2 + m_autoColorSubmissionMode: 1 + m_colorSubmissionModes: + m_List: 00000000 + m_depthSubmissionMode: 1 + m_spacewarpMotionVectorTextureFormat: 0 m_optimizeBufferDiscards: 0 m_symmetricProjection: 0 ---- !u!114 &7584001526195082204 +--- !u!114 &7040092971389812431 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1423,18 +1598,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0f6bfdbcb316ed242b30a8798c9eb853, type: 3} - m_Name: KHRSimpleControllerProfile WSA + m_Script: {fileID: 11500000, guid: f028123e2efe1d443875bc7609b4a98b, type: 3} + m_Name: PalmPoseInteraction Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Khronos Simple Controller Profile + nameUi: Palm Pose version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.khrsimpleprofile - openxrExtensionStrings: + featureIdInternal: com.unity.openxr.feature.input.palmpose + openxrExtensionStrings: XR_EXT_palm_pose company: Unity priority: 0 required: 0 ---- !u!114 &7755255244189431342 +--- !u!114 &7154121404861734787 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1443,18 +1618,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c4b862ee14fb479fbfe5fffe655d3ed3, type: 3} - m_Name: MetaQuestTouchProControllerProfile Standalone + m_Script: {fileID: 11500000, guid: f928d0d73a35f294fbe357ca17aa3547, type: 3} + m_Name: MicrosoftHandInteraction Metro m_EditorClassIdentifier: m_enabled: 0 - nameUi: Meta Quest Touch Pro Controller Profile + nameUi: Microsoft Hand Interaction Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.metaquestpro - openxrExtensionStrings: XR_FB_touch_controller_pro + featureIdInternal: com.unity.openxr.feature.input.handtracking + openxrExtensionStrings: XR_MSFT_hand_interaction company: Unity priority: 0 required: 0 ---- !u!114 &7875633773414566808 +--- !u!114 &7184398878750099767 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1463,18 +1638,60 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: c4b862ee14fb479fbfe5fffe655d3ed3, type: 3} - m_Name: MetaQuestTouchProControllerProfile Android + m_Script: {fileID: 11500000, guid: 311418363b561b04e96974e030216b89, type: 3} + m_Name: METABoundaryVisibility Android + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: META Boundary Visibility + version: 0.1.0 + featureIdInternal: dev.mikesky.openxr.extensions.metaboundaryvisibility + openxrExtensionStrings: XR_META_boundary_visibility + company: Mikesky + priority: 0 + required: 0 +--- !u!114 &7294813655699738615 +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: 6096094d69d82cc40947df806f66ab34, type: 3} + m_Name: OpenXRCompositionLayersFeature Android + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: Composition Layers Support + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.compositionlayers + openxrExtensionStrings: XR_KHR_composition_layer_cylinder XR_KHR_composition_layer_equirect + XR_KHR_composition_layer_equirect2 XR_KHR_composition_layer_cube XR_KHR_composition_layer_color_scale_bias + XR_KHR_android_surface_swapchain + company: Unity + priority: 0 + required: 0 +--- !u!114 &7527692461464807488 +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: 5019471fb2174e5c852ecd4047163007, type: 3} + m_Name: HandInteractionProfile Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: Meta Quest Touch Pro Controller Profile + nameUi: Hand Interaction Profile version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.metaquestpro - openxrExtensionStrings: XR_FB_touch_controller_pro + featureIdInternal: com.unity.openxr.feature.input.handinteraction + openxrExtensionStrings: XR_EXT_hand_interaction company: Unity priority: 0 required: 0 ---- !u!114 &8280613793592923929 +--- !u!114 &7978280317625903181 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1483,18 +1700,18 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2a24be4b5ebfe5f4d8ed1de9b25cb7aa, type: 3} - m_Name: HandCommonPosesInteraction Standalone + m_Script: {fileID: 11500000, guid: f028123e2efe1d443875bc7609b4a98b, type: 3} + m_Name: PalmPoseInteraction Android m_EditorClassIdentifier: m_enabled: 0 - nameUi: Hand Interaction Poses + nameUi: Palm Pose version: 0.0.1 - featureIdInternal: com.unity.openxr.feature.input.handinteractionposes - openxrExtensionStrings: XR_EXT_hand_interaction + featureIdInternal: com.unity.openxr.feature.input.palmpose + openxrExtensionStrings: XR_EXT_palm_pose company: Unity priority: 0 required: 0 ---- !u!114 &9061466112958658113 +--- !u!114 &8219604799219043784 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1506,12 +1723,37 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b5a1f07dc5afe854f9f12a4194aca3fb, type: 3} m_Name: WebGL m_EditorClassIdentifier: - features: [] - m_renderMode: 0 + features: + - {fileID: -6348344434547897155} + m_renderMode: 1 + m_autoColorSubmissionMode: 1 + m_colorSubmissionModes: + m_List: 00000000 m_depthSubmissionMode: 0 + m_spacewarpMotionVectorTextureFormat: 0 m_optimizeBufferDiscards: 0 m_symmetricProjection: 0 ---- !u!114 &9128593777916537170 +--- !u!114 &8402632982202156079 +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: f928d0d73a35f294fbe357ca17aa3547, type: 3} + m_Name: MicrosoftHandInteraction Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Microsoft Hand Interaction Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.handtracking + openxrExtensionStrings: XR_MSFT_hand_interaction + company: Unity + priority: 0 + required: 0 +--- !u!114 &8438378100653883613 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -1521,7 +1763,7 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 486b5e28864f9a94b979b9620ce5006d, type: 3} - m_Name: ConformanceAutomationFeature WSA + m_Name: ConformanceAutomationFeature Standalone m_EditorClassIdentifier: m_enabled: 0 nameUi: Conformance Automation @@ -1531,3 +1773,43 @@ MonoBehaviour: company: Unity priority: 0 required: 0 +--- !u!114 &8478922053924795678 +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: b3cf79659a011bd419c7a2a30eb74e9a, type: 3} + m_Name: EyeGazeInteraction Android + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Eye Gaze Interaction Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.eyetracking + openxrExtensionStrings: XR_EXT_eye_gaze_interaction + company: Unity + priority: 0 + required: 0 +--- !u!114 &9207359740963411432 +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: b213d3e3c7f3109449eb46a4c8ee42f0, type: 3} + m_Name: XrPerformanceSettingsFeature iPhone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: XR Performance Settings + version: 1.0.0 + featureIdInternal: com.unity.openxr.feature.extension.performance_settings + openxrExtensionStrings: XR_EXT_performance_settings + company: Unity + priority: 0 + required: 0 diff --git a/Assets/Resources/ONSPSettings.asset.meta b/Assets/XR/Settings/OpenXRPackageSettings.asset.meta similarity index 79% rename from Assets/Resources/ONSPSettings.asset.meta rename to Assets/XR/Settings/OpenXRPackageSettings.asset.meta index 58cb5e6839..30bcc99e18 100644 --- a/Assets/Resources/ONSPSettings.asset.meta +++ b/Assets/XR/Settings/OpenXRPackageSettings.asset.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b963d2f7e534bfc4d8756aeaf1c6441d +guid: bd3da03a27dd86d45b3502af9504154e NativeFormatImporter: externalObjects: {} mainObjectFileID: 11400000 diff --git a/Assets/XR/Settings/PXR Settings.asset b/Assets/XR/Settings/PXR Settings.asset deleted file mode 100644 index 5d26a9afd8..0000000000 --- a/Assets/XR/Settings/PXR Settings.asset +++ /dev/null @@ -1,16 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!114 &11400000 -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: 1c52faa1787e89a4eaf8abdae2e6ae25, type: 3} - m_Name: PXR Settings - m_EditorClassIdentifier: - stereoRenderingModeAndroid: 0 - systemDisplayFrequency: 0 diff --git a/Assets/XR/Settings/PXR Settings.asset.meta b/Assets/XR/Settings/PXR Settings.asset.meta deleted file mode 100644 index b401f5d47b..0000000000 --- a/Assets/XR/Settings/PXR Settings.asset.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: b01e30ce9b062fd439c1d9a04a30cc7e -NativeFormatImporter: - externalObjects: {} - mainObjectFileID: 11400000 - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/XR/XRGeneralSettings.asset b/Assets/XR/XRGeneralSettings.asset index ae01ae95ad..597194c24e 100644 --- a/Assets/XR/XRGeneralSettings.asset +++ b/Assets/XR/XRGeneralSettings.asset @@ -96,7 +96,7 @@ MonoBehaviour: m_Name: iPhone Settings m_EditorClassIdentifier: m_LoaderManagerInstance: {fileID: 6946956650545175336} - m_InitManagerOnStart: 1 + m_InitManagerOnStart: 0 --- !u!114 &5604525069898709079 MonoBehaviour: m_ObjectHideFlags: 0 @@ -140,7 +140,7 @@ MonoBehaviour: m_Name: WebGL Settings m_EditorClassIdentifier: m_LoaderManagerInstance: {fileID: 195705616145022394} - m_InitManagerOnStart: 1 + m_InitManagerOnStart: 0 --- !u!114 &8705794667931902858 MonoBehaviour: m_ObjectHideFlags: 0 @@ -171,4 +171,4 @@ MonoBehaviour: m_Name: WSA Settings m_EditorClassIdentifier: m_LoaderManagerInstance: {fileID: 4286762984707549258} - m_InitManagerOnStart: 1 + m_InitManagerOnStart: 0 diff --git a/Packages/manifest.json b/Packages/manifest.json index 8221486a4a..064255810f 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -1,8 +1,7 @@ { "dependencies": { "com.ixxy.unitysymmetry": "https://github.com/IxxyXR/unity-symmetry.git?nocache=7#upm", - "com.meta.xr.sdk.core": "https://github.com/icosa-mirror/com.meta.xr.sdk.core.git#68.0.2-openbrush-hotfix", - "com.meta.xr.sdk.platform": "60.0.0", + "com.meta.xr.sdk.platform": "69.0.0", "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0", "com.unity.cloud.draco": "5.1.3", @@ -24,11 +23,12 @@ "com.unity.timeline": "1.7.6", "com.unity.ugui": "1.0.0", "com.unity.vectorgraphics": "https://github.com/icosa-mirror/com.unity.vectorgraphics.git#open-brush", + "com.unity.xr.compositionlayers": "1.0.0", "com.unity.xr.core-utils": "2.3.0", - "com.unity.xr.management": "4.4.1", - "com.unity.xr.oculus": "4.2.0", - "com.unity.xr.openxr": "1.10.0", + "com.unity.xr.management": "4.5.0", + "com.unity.xr.openxr": "1.14.0", "com.zappar.xr.zapbox": "https://github.com/zappar-xr/zapbox-xr-sdk.git#43697771ed65efee02d5b1743141b8179444c147", + "dev.mikesky.openxrextensions": "https://github.com/mikeskydev/unity-openxr-extensions.git#0.4.0", "org.khronos.unitygltf": "https://github.com/icosa-mirror/UnityGLTF.git", "org.nuget.google.apis": "1.64.0", "org.nuget.google.apis.auth": "1.64.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 6e0674c794..cf0c5be332 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -13,19 +13,11 @@ "dependencies": {}, "hash": "4f87195d54ccefe076678cb83a296b3f0428fc53" }, - "com.meta.xr.sdk.core": { - "version": "https://github.com/icosa-mirror/com.meta.xr.sdk.core.git#68.0.2-openbrush-hotfix", - "depth": 0, - "source": "git", - "dependencies": {}, - "hash": "cc9462850915e74dbb5cd6094f77464c5e606da1" - }, "com.meta.xr.sdk.platform": { - "version": "60.0.0", + "version": "69.0.0", "depth": 0, "source": "registry", "dependencies": { - "com.meta.xr.sdk.core": "60.0.0", "com.unity.ugui": "1.0.0" }, "url": "https://npm.developer.oculus.com" @@ -308,6 +300,17 @@ }, "hash": "214037a894f7e292687b8ba331f5c959c2bcdd8b" }, + "com.unity.xr.compositionlayers": { + "version": "1.0.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.inputsystem": "1.6.3", + "com.unity.xr.core-utils": "2.2.2", + "com.unity.xr.management": "4.0.1" + }, + "url": "https://packages.unity.com" + }, "com.unity.xr.core-utils": { "version": "2.3.0", "depth": 0, @@ -328,7 +331,7 @@ "url": "https://packages.unity.com" }, "com.unity.xr.management": { - "version": "4.4.1", + "version": "4.5.0", "depth": 0, "source": "registry", "dependencies": { @@ -339,22 +342,13 @@ }, "url": "https://packages.unity.com" }, - "com.unity.xr.oculus": { - "version": "4.2.0", - "depth": 0, - "source": "registry", - "dependencies": { - "com.unity.xr.management": "4.4.0" - }, - "url": "https://packages.unity.com" - }, "com.unity.xr.openxr": { - "version": "1.10.0", + "version": "1.14.0", "depth": 0, "source": "registry", "dependencies": { "com.unity.inputsystem": "1.6.3", - "com.unity.xr.core-utils": "2.1.1", + "com.unity.xr.core-utils": "2.3.0", "com.unity.xr.management": "4.4.0", "com.unity.xr.legacyinputhelpers": "2.1.2" }, @@ -370,6 +364,15 @@ }, "hash": "43697771ed65efee02d5b1743141b8179444c147" }, + "dev.mikesky.openxrextensions": { + "version": "https://github.com/mikeskydev/unity-openxr-extensions.git#0.4.0", + "depth": 0, + "source": "git", + "dependencies": { + "com.unity.xr.openxr": "1.13.0" + }, + "hash": "c78c9ce566ce9745e8a9038569db41c818bda3dd" + }, "org.khronos.unitygltf": { "version": "https://github.com/icosa-mirror/UnityGLTF.git", "depth": 0, diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index aa34b37606..7714d26fd7 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -24,5 +24,5 @@ EditorBuildSettings: type: 2} com.unity.xr.management.loader_settings: {fileID: 11400000, guid: 07092d12b03adbd49b1ade5f5742e72e, type: 2} - com.unity.xr.openxr.settings4: {fileID: 11400000, guid: f1ebaba0fe484c1469e1bc54ab8d82e1, + com.unity.xr.openxr.settings4: {fileID: 11400000, guid: bd3da03a27dd86d45b3502af9504154e, type: 2} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index d5b5c2e539..11f17bb5e2 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -145,10 +145,9 @@ PlayerSettings: bundleVersion: 1.0.0 preloadedAssets: - {fileID: 11400000, guid: 62987a061b20ae345a45e835010db90d, type: 2} - - {fileID: 0} - - {fileID: 11400000, guid: 71fe6cc6ea2fd8841ab44d5442834cc6, type: 2} - {fileID: 11400000, guid: feef587f0ac641c4ab7d9e44e7eea888, type: 2} - - {fileID: 6471616562215093929, guid: f1ebaba0fe484c1469e1bc54ab8d82e1, type: 2} + - {fileID: -5428386068462531570, guid: 07092d12b03adbd49b1ade5f5742e72e, type: 2} + - {fileID: -1294329756112899549, guid: f1ebaba0fe484c1469e1bc54ab8d82e1, type: 2} metroInputSource: 0 wsaTransparentSwapchain: 0 m_HolographicPauseOnTrackingLoss: 1