From 1be6f4f9126522d04c98cf741e46825a7cf21e17 Mon Sep 17 00:00:00 2001 From: Michael Farnsworth <114595176+michaelfarnsworth@users.noreply.github.com> Date: Mon, 15 May 2023 12:12:17 -0500 Subject: [PATCH] Add HoloLens 2 Getting-started Sample App (#184) * Adding HoloLens2 Getting Started Sample App * Adding Readme * Updating Readme with basic instructions * Updating WebView2 Package Version * Update Unity Version to 2021.3.24f1 --- .../HoloLens2GetStartedApp/.gitignore | 88 + .../HoloLens2GetStartedApp/Assets/MRTK.meta | 8 + .../Assets/MRTK/Shaders.meta | 8 + .../Assets/MRTK/Shaders/ChannelPacker.shader | 104 + .../MRTK/Shaders/ChannelPacker.shader.meta | 9 + .../Shaders/DepthBufferPostProcess.shader | 35 + .../DepthBufferPostProcess.shader.meta | 9 + .../MRTK/Shaders/InstancedColored.shader | 74 + .../MRTK/Shaders/InstancedColored.shader.meta | 9 + .../MRTK/Shaders/InvisibleShader.shader | 57 + .../MRTK/Shaders/InvisibleShader.shader.meta | 10 + .../Assets/MRTK/Shaders/MRTK.Shaders.sentinel | 1 + .../MRTK/Shaders/MRTK.Shaders.sentinel.meta | 7 + .../Assets/MRTK/Shaders/MRTK_Wireframe.shader | 145 ++ .../MRTK/Shaders/MRTK_Wireframe.shader.meta | 9 + .../Shaders/MixedRealityShaderUtils.cginc | 31 + .../MixedRealityShaderUtils.cginc.meta | 9 + .../MRTK/Shaders/MixedRealityStandard.shader | 1259 ++++++++++++ .../Shaders/MixedRealityStandard.shader.meta | 10 + .../Shaders/MixedRealityTextMeshPro.shader | 377 ++++ .../MixedRealityTextMeshPro.shader.meta | 9 + .../MixedRealityTextMeshProSprite.shader | 184 ++ .../MixedRealityTextMeshProSprite.shader.meta | 9 + .../Assets/MRTK/Shaders/Text3DShader.shader | 180 ++ .../MRTK/Shaders/Text3DShader.shader.meta | 9 + .../HoloLens2GetStartedApp/Assets/Scenes.meta | 8 + .../Assets/Scenes/SampleScene.unity | 1796 +++++++++++++++++ .../Assets/Scenes/SampleScene.unity.meta | 7 + .../Assets/WebViewBrowser.cs | 55 + .../Assets/WebViewBrowser.cs.meta | 11 + .../HoloLens2GetStartedApp/Assets/XR.meta | 8 + .../Assets/XR/Loaders.meta | 8 + .../Assets/XR/Loaders/Open XR Loader.asset | 14 + .../XR/Loaders/Open XR Loader.asset.meta | 8 + .../Assets/XR/Settings.meta | 8 + .../XR/Settings/OpenXR Editor Settings.asset | 20 + .../OpenXR Editor Settings.asset.meta | 8 + .../XR/Settings/OpenXR Package Settings.asset | 752 +++++++ .../OpenXR Package Settings.asset.meta | 8 + .../Assets/XR/XRGeneralSettings.asset | 80 + .../Assets/XR/XRGeneralSettings.asset.meta | 8 + .../HoloLens2GetStartedApp/Assets/XRI.meta | 8 + .../Assets/XRI/Settings.meta | 8 + .../Assets/XRI/Settings/Resources.meta | 8 + .../Resources/InteractionLayerSettings.asset | 47 + .../InteractionLayerSettings.asset.meta | 8 + .../Resources/XRDeviceSimulatorSettings.asset | 16 + .../XRDeviceSimulatorSettings.asset.meta | 8 + .../XRInteractionEditorSettings.asset | 16 + .../XRInteractionEditorSettings.asset.meta | 8 + .../Packages/manifest.json | 50 + .../Packages/manifest.json.backup | 50 + .../Packages/manifest.json.backup0 | 50 + .../Packages/packages-lock.json | 485 +++++ .../ProjectSettings/AudioManager.asset | 19 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | 34 + .../ProjectSettings/EditorBuildSettings.asset | 13 + .../ProjectSettings/EditorSettings.asset | 30 + .../ProjectSettings/GraphicsSettings.asset | 63 + .../ProjectSettings/InputManager.asset | 776 +++++++ .../ProjectSettings/MemorySettings.asset | 35 + .../ProjectSettings/NavMeshAreas.asset | 91 + .../PackageManagerSettings.asset | 35 + .../ProjectSettings/Physics2DSettings.asset | 56 + .../ProjectSettings/PresetManager.asset | 7 + .../ProjectSettings/ProjectSettings.asset | 737 +++++++ .../ProjectSettings/ProjectVersion.txt | 2 + .../ProjectSettings/QualitySettings.asset | 240 +++ .../SceneTemplateSettings.json | 167 ++ .../ProjectSettings/TagManager.asset | 43 + .../ProjectSettings/TimeManager.asset | 9 + .../UnityConnectSettings.asset | 36 + .../ProjectSettings/VFXManager.asset | 12 + .../VersionControlSettings.asset | 8 + .../ProjectSettings/XRPackageSettings.asset | 5 + .../ProjectSettings/XRSettings.asset | 10 + .../ProjectSettings/boot.config | 0 .../HoloLens2_GettingStarted/README.md | 28 + .../hololens-getting-started-webview2.png | Bin 0 -> 380453 bytes 80 files changed, 8673 insertions(+) create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/.gitignore create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/ChannelPacker.shader create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/ChannelPacker.shader.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/DepthBufferPostProcess.shader create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/DepthBufferPostProcess.shader.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InstancedColored.shader create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InstancedColored.shader.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InvisibleShader.shader create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InvisibleShader.shader.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK.Shaders.sentinel create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK.Shaders.sentinel.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK_Wireframe.shader create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK_Wireframe.shader.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityShaderUtils.cginc create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityShaderUtils.cginc.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityStandard.shader create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityStandard.shader.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshPro.shader create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshPro.shader.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshProSprite.shader create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshProSprite.shader.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/Text3DShader.shader create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/Text3DShader.shader.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes/SampleScene.unity create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes/SampleScene.unity.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/WebViewBrowser.cs create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/WebViewBrowser.cs.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders/Open XR Loader.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders/Open XR Loader.asset.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Editor Settings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Editor Settings.asset.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Package Settings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Package Settings.asset.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/XRGeneralSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/XRGeneralSettings.asset.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/InteractionLayerSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/InteractionLayerSettings.asset.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/XRDeviceSimulatorSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/XRDeviceSimulatorSettings.asset.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/XRInteractionEditorSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/XRInteractionEditorSettings.asset.meta create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json.backup create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json.backup0 create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/packages-lock.json create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/AudioManager.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ClusterInputManager.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/DynamicsManager.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/EditorBuildSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/EditorSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/GraphicsSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/InputManager.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/MemorySettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/NavMeshAreas.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/PackageManagerSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/Physics2DSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/PresetManager.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ProjectSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ProjectVersion.txt create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/QualitySettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/SceneTemplateSettings.json create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/TagManager.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/TimeManager.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/UnityConnectSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/VFXManager.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/VersionControlSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/XRPackageSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/XRSettings.asset create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/boot.config create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/README.md create mode 100644 GettingStartedGuides/HoloLens2_GettingStarted/screenshots/hololens-getting-started-webview2.png diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/.gitignore b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/.gitignore new file mode 100644 index 00000000..b17c5fee --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/.gitignore @@ -0,0 +1,88 @@ +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + + +# Ensure Packages folder included +!/[Pp]ackages/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# Asset meta data should only be ignored when the corresponding asset is also ignored +#!*/[Aa]ssets/**/*.meta + +# Recordings can get excessive in size +/[Rr]ecordings/ + +# Uncomment this line if you wish to ignore the asset store tools plugin +/[Aa]ssets/AssetStoreTools* + +# Autogenerated Jetbrains Rider plugin +/[Aa]ssets/Plugins/Editor/JetBrains* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pfx +*.pfx.meta +*.pdb +*.mdb +*.opendb +*.VC.db +.vsconfig + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# MRTK Packages +/[Pp]ackages/[Mm]ixed[Rr]eality/ + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* + +/[Aa]ssets/MixedRealityToolkit.Generated* +/[Aa]ssets/TextMesh Pro* \ No newline at end of file diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK.meta new file mode 100644 index 00000000..665001d1 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 059d557adcd91dd48ac4f807c04c402d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders.meta new file mode 100644 index 00000000..9f56c323 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 61af5bb5a08b82742bf9c74160c36df3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/ChannelPacker.shader b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/ChannelPacker.shader new file mode 100644 index 00000000..e14b3609 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/ChannelPacker.shader @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +// NOTE: MRTK Shaders are versioned via the MRTK.Shaders.sentinel file. +// When making changes to any shader's source file, the value in the sentinel _must_ be incremented. + +Shader "Hidden/ChannelPacker" +{ + Properties + { + _MetallicMap("Metallic Map", 2D) = "black" {} + _MetallicMapChannel("Metallic Map Channel", Int) = 0 // Red. + _MetallicUniform("Metallic Uniform", Float) = -0.01 + _OcclusionMap("Occlusion Map", 2D) = "white" {} + _OcclusionMapChannel("Occlusion Map Channel", Int) = 1 // Green. + _OcclusionUniform("Occlusion Uniform", Float) = -0.01 + _EmissionMap("Emission Map", 2D) = "black" {} + _EmissionMapChannel("Emission Map Channel", Int) = 4 // RGBAverage. + _EmissionUniform("Emission Uniform", Float) = -0.01 + _SmoothnessMap("Smoothness Map", 2D) = "gray" {} + _SmoothnessMapChannel("Smoothness Map Channel", Int) = 3 // Alpha. + _SmoothnessUniform("Smoothness Uniform", Float) = -0.01 + } + SubShader + { + Pass + { + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + sampler2D _MetallicMap; + int _MetallicMapChannel; + float _MetallicUniform; + sampler2D _OcclusionMap; + int _OcclusionMapChannel; + float _OcclusionUniform; + sampler2D _EmissionMap; + int _EmissionMapChannel; + float _EmissionUniform; + sampler2D _SmoothnessMap; + int _SmoothnessMapChannel; + float _SmoothnessUniform; + + v2f vert(appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = v.uv; + + return o; + } + + fixed4 ToGrayScale(fixed4 color) + { + return color.r * 0.21 + color.g * 0.71 + color.b * 0.08; + } + + fixed Sample(fixed4 color, int channel, float uniformValue) + { + if (uniformValue >= 0.0) + { + return uniformValue; + } + + if (channel == 4) + { + return ToGrayScale(color); + } + + return color[channel]; + } + + fixed4 frag(v2f i) : SV_Target + { + fixed4 output; + + output.r = Sample(tex2D(_MetallicMap, i.uv), _MetallicMapChannel, _MetallicUniform); + output.g = Sample(tex2D(_OcclusionMap, i.uv), _OcclusionMapChannel, _OcclusionUniform); + output.b = Sample(tex2D(_EmissionMap, i.uv), _EmissionMapChannel, _EmissionUniform); + output.a = Sample(tex2D(_SmoothnessMap, i.uv), _SmoothnessMapChannel, _SmoothnessUniform); + + return output; + } + + ENDCG + } + } +} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/ChannelPacker.shader.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/ChannelPacker.shader.meta new file mode 100644 index 00000000..b9a13b7f --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/ChannelPacker.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 72ba6d7b37f51174bb3c7be2acc8fb0d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/DepthBufferPostProcess.shader b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/DepthBufferPostProcess.shader new file mode 100644 index 00000000..fa1278c1 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/DepthBufferPostProcess.shader @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +// NOTE: MRTK Shaders are versioned via the MRTK.Shaders.sentinel file. +// When making changes to any shader's source file, the value in the sentinel _must_ be incremented. + +Shader "Mixed Reality Toolkit/Depth Buffer Viewer" +{ + Properties + { + _DepthTex("Texture", 2D) = "black" {} + _MainTex("Base (RGB)", 2D) = "green" {} + } + + SubShader + { + Pass + { + CGPROGRAM + #pragma vertex vert_img + #pragma fragment frag + + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + sampler2D _DepthTex; + + float4 frag(v2f_img i) : COLOR + { + return Linear01Depth(SAMPLE_DEPTH_TEXTURE(_DepthTex, i.uv)); + } + ENDCG + } + } +} \ No newline at end of file diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/DepthBufferPostProcess.shader.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/DepthBufferPostProcess.shader.meta new file mode 100644 index 00000000..668c99de --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/DepthBufferPostProcess.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8e3074f33703cbb4186e9b6c2c958fda +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InstancedColored.shader b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InstancedColored.shader new file mode 100644 index 00000000..a2405b1d --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InstancedColored.shader @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +// NOTE: MRTK Shaders are versioned via the MRTK.Shaders.sentinel file. +// When making changes to any shader's source file, the value in the sentinel _must_ be incremented. + +Shader "Hidden/Instanced-Colored" +{ + Properties + { + _Color("Color", Color) = (1.0, 1.0, 1.0, 1.0) + _ZWrite("ZWrite", Int) = 1.0 // On + [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Int) = 4.0 // LEqual + [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Int) = 0.0 // Off + } + + SubShader + { + Pass + { + Name "Main" + Tags{ "RenderType" = "Opaque" } + ZWrite[_ZWrite] + ZTest[_ZTest] + Cull[_Cull] + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + #pragma multi_compile_instancing + + #include "UnityCG.cginc" + + struct appdata_t + { + fixed4 vertex : POSITION; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + fixed4 vertex : SV_POSITION; + fixed4 color : COLOR0; + UNITY_VERTEX_OUTPUT_STEREO + }; + + float4x4 _ParentLocalToWorldMatrix; + + UNITY_INSTANCING_BUFFER_START(Props) + UNITY_DEFINE_INSTANCED_PROP(float4, _Color) + UNITY_INSTANCING_BUFFER_END(Props) + + v2f vert(appdata_t v) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + o.vertex = mul(UNITY_MATRIX_VP, mul(_ParentLocalToWorldMatrix, mul(unity_ObjectToWorld, float4(v.vertex.xyz, 1.0)))); + o.color = UNITY_ACCESS_INSTANCED_PROP(Props, _Color); + + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + return i.color; + } + + ENDCG + } + } +} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InstancedColored.shader.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InstancedColored.shader.meta new file mode 100644 index 00000000..45560639 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InstancedColored.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d199a2ca60343bb49ad9a41ddb45a083 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InvisibleShader.shader b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InvisibleShader.shader new file mode 100644 index 00000000..57dc8dd6 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InvisibleShader.shader @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +// NOTE: MRTK Shaders are versioned via the MRTK.Shaders.sentinel file. +// When making changes to any shader's source file, the value in the sentinel _must_ be incremented. + +Shader "Mixed Reality Toolkit/InvisibleShader" { + + Subshader + { + Pass + { + GLSLPROGRAM + #ifdef VERTEX + void main() {} + #endif + + #ifdef FRAGMENT + void main() {} + #endif + ENDGLSL + } + } + + Subshader + { + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct v2f + { + fixed4 position : SV_POSITION; + UNITY_VERTEX_OUTPUT_STEREO + }; + + v2f vert(appdata_base v) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + o.position = fixed4(0,0,0,0); + return o; + } + + fixed4 frag() : COLOR + { + return fixed4(0,0,0,0); + } + ENDCG + } + } +} \ No newline at end of file diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InvisibleShader.shader.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InvisibleShader.shader.meta new file mode 100644 index 00000000..ab6aca5d --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/InvisibleShader.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 54ea9f30be414d86a7260eceb330c449 +timeCreated: 1510009044 +licenseType: Free +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK.Shaders.sentinel b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK.Shaders.sentinel new file mode 100644 index 00000000..c7d29ad3 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK.Shaders.sentinel @@ -0,0 +1 @@ +ver: 2 \ No newline at end of file diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK.Shaders.sentinel.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK.Shaders.sentinel.meta new file mode 100644 index 00000000..eb06f007 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK.Shaders.sentinel.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 05852dd420bb9ec4cb7318bfa529d37c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK_Wireframe.shader b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK_Wireframe.shader new file mode 100644 index 00000000..1cdc6c21 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK_Wireframe.shader @@ -0,0 +1,145 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +// NOTE: MRTK Shaders are versioned via the MRTK.Shaders.sentinel file. +// When making changes to any shader's source file, the value in the sentinel _must_ be incremented. + +/// +/// Basic wireframe shader that can be used for rendering spatial mapping meshes. +/// +Shader "Mixed Reality Toolkit/Wireframe" +{ + Properties + { + // Advanced options. + [Enum(RenderingMode)] _Mode("Rendering Mode", Float) = 0 // "Opaque" + [Enum(CustomRenderingMode)] _CustomMode("Mode", Float) = 0 // "Opaque" + [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend("Source Blend", Float) = 1 // "One" + [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend("Destination Blend", Float) = 0 // "Zero" + [Enum(UnityEngine.Rendering.BlendOp)] _BlendOp("Blend Operation", Float) = 0 // "Add" + [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("Depth Test", Float) = 4 // "LessEqual" + [Enum(DepthWrite)] _ZWrite("Depth Write", Float) = 1 // "On" + _ZOffsetFactor("Depth Offset Factor", Float) = 0 // "Zero" + _ZOffsetUnits("Depth Offset Units", Float) = 0 // "Zero" + [Enum(UnityEngine.Rendering.ColorWriteMask)] _ColorWriteMask("Color Write Mask", Float) = 15 // "All" + [Enum(UnityEngine.Rendering.CullMode)] _CullMode("Cull Mode", Float) = 2 // "Back" + _RenderQueueOverride("Render Queue Override", Range(-1.0, 5000)) = -1 + + _BaseColor("Base color", Color) = (0.0, 0.0, 0.0, 1.0) + _WireColor("Wire color", Color) = (1.0, 1.0, 1.0, 1.0) + _WireThickness("Wire thickness", Range(0, 800)) = 100 + } + SubShader + { + Tags { "RenderType" = "Opaque" } + Blend[_SrcBlend][_DstBlend] + BlendOp[_BlendOp] + ZTest[_ZTest] + ZWrite[_ZWrite] + Cull[_CullMode] + Offset[_ZOffsetFactor],[_ZOffsetUnits] + ColorMask[_ColorWriteMask] + + Pass + { + Offset 50, 100 + + CGPROGRAM + #pragma vertex vert + #pragma geometry geom + #pragma fragment frag + + #if defined(SHADER_API_D3D11) + #pragma target 5.0 + #endif + + #include "UnityCG.cginc" + + float4 _BaseColor; + float4 _WireColor; + float _WireThickness; + + // Based on approach described in Shader-Based Wireframe Drawing (2008) + // http://orbit.dtu.dk/en/publications/id(13e2122d-bec7-48de-beca-03ce6ea1c3f1).html + + struct v2g + { + float4 viewPos : SV_POSITION; + UNITY_VERTEX_OUTPUT_STEREO + }; + + v2g vert(appdata_base v) + { + UNITY_SETUP_INSTANCE_ID(v); + v2g o; + o.viewPos = UnityObjectToClipPos(v.vertex); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + return o; + } + + // inverseW is to counteract the effect of perspective-correct interpolation so that the lines + // look the same thickness regardless of their depth in the scene. + struct g2f + { + float4 viewPos : SV_POSITION; + float inverseW : TEXCOORD0; + float3 dist : TEXCOORD1; + UNITY_VERTEX_OUTPUT_STEREO + }; + + [maxvertexcount(3)] + void geom(triangle v2g i[3], inout TriangleStream triStream) + { + // Calculate the vectors that define the triangle from the input points. + float2 point0 = i[0].viewPos.xy / i[0].viewPos.w; + float2 point1 = i[1].viewPos.xy / i[1].viewPos.w; + float2 point2 = i[2].viewPos.xy / i[2].viewPos.w; + + // Calculate the area of the triangle. + float2 vector0 = point2 - point1; + float2 vector1 = point2 - point0; + float2 vector2 = point1 - point0; + float area = abs(vector1.x * vector2.y - vector1.y * vector2.x); + + float3 distScale[3]; + distScale[0] = float3(area / length(vector0), 0, 0); + distScale[1] = float3(0, area / length(vector1), 0); + distScale[2] = float3(0, 0, area / length(vector2)); + + float wireScale = 800 - _WireThickness; + + // Output each original vertex with its distance to the opposing line defined + // by the other two vertices. + g2f o; + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + [unroll] + for (uint idx = 0; idx < 3; ++idx) + { + o.viewPos = i[idx].viewPos; + o.inverseW = 1.0 / o.viewPos.w; + o.dist = distScale[idx] * o.viewPos.w * wireScale; + UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(i[idx], o); + triStream.Append(o); + } + } + + float4 frag(g2f i) : COLOR + { + // Calculate minimum distance to one of the triangle lines, making sure to correct + // for perspective-correct interpolation. + float dist = min(i.dist[0], min(i.dist[1], i.dist[2])) * i.inverseW; + + // Make the intensity of the line very bright along the triangle edges but fall-off very + // quickly. + float I = exp2(-2 * dist * dist); + + return I * _WireColor + (1 - I) * _BaseColor; + } + ENDCG + } + } + + FallBack "Mixed Reality Toolkit/Standard" + CustomEditor "Microsoft.MixedReality.Toolkit.Editor.MixedRealityWireframeShaderGUI" +} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK_Wireframe.shader.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK_Wireframe.shader.meta new file mode 100644 index 00000000..dd042e4a --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MRTK_Wireframe.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5c1653eb4e20b76499141de7bc57c063 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityShaderUtils.cginc b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityShaderUtils.cginc new file mode 100644 index 00000000..37947abe --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityShaderUtils.cginc @@ -0,0 +1,31 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +#ifndef MRTK_SHADER_UTILS +#define MRTK_SHADER_UTILS + +#if defined(_CLIPPING_PLANE) +inline float PointVsPlane(float3 worldPosition, float4 plane) +{ + float3 planePosition = plane.xyz * plane.w; + return dot(worldPosition - planePosition, plane.xyz); +} +#endif + +#if defined(_CLIPPING_SPHERE) +inline float PointVsSphere(float3 worldPosition, float4x4 sphereInverseTransform) +{ + return length(mul(sphereInverseTransform, float4(worldPosition, 1.0)).xyz) - 0.5; +} +#endif + +#if defined(_CLIPPING_BOX) +inline float PointVsBox(float3 worldPosition, float4x4 boxInverseTransform) +{ + float3 distance = abs(mul(boxInverseTransform, float4(worldPosition, 1.0))) - 0.5; + return length(max(distance, 0.0)) + min(max(distance.x, max(distance.y, distance.z)), 0.0); +} +#endif + + +#endif \ No newline at end of file diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityShaderUtils.cginc.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityShaderUtils.cginc.meta new file mode 100644 index 00000000..dd27300b --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityShaderUtils.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dfab24eea71ce3745be340d7a24fe8eb +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityStandard.shader b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityStandard.shader new file mode 100644 index 00000000..7e3a5a34 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityStandard.shader @@ -0,0 +1,1259 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +// NOTE: MRTK Shaders are versioned via the MRTK.Shaders.sentinel file. +// When making changes to any shader's source file, the value in the sentinel _must_ be incremented. + +Shader "Mixed Reality Toolkit/Standard" +{ + Properties + { + // Main maps. + _Color("Color", Color) = (1.0, 1.0, 1.0, 1.0) + _MainTex("Albedo", 2D) = "white" {} + [Enum(AlbedoAlphaMode)] _AlbedoAlphaMode("Albedo Alpha Mode", Float) = 0 // "Transparency" + [Toggle] _AlbedoAssignedAtRuntime("Albedo Assigned at Runtime", Float) = 0.0 + _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5 + _Metallic("Metallic", Range(0.0, 1.0)) = 0.0 + _Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5 + [Toggle(_CHANNEL_MAP)] _EnableChannelMap("Enable Channel Map", Float) = 0.0 + [NoScaleOffset] _ChannelMap("Channel Map", 2D) = "white" {} + [Toggle(_NORMAL_MAP)] _EnableNormalMap("Enable Normal Map", Float) = 0.0 + [NoScaleOffset] _NormalMap("Normal Map", 2D) = "bump" {} + _NormalMapScale("Scale", Float) = 1.0 + [Toggle(_EMISSION)] _EnableEmission("Enable Emission", Float) = 0.0 + [HDR]_EmissiveColor("Emissive Color", Color) = (0.0, 0.0, 0.0, 1.0) + [Toggle(_TRIPLANAR_MAPPING)] _EnableTriplanarMapping("Triplanar Mapping", Float) = 0.0 + [Toggle(_USE_SSAA)] _EnableSSAA("Super Sample Anti Aliasing", Float) = 0.0 + _MipmapBias("Mipmap Bias", Range(-5.0, 0.0)) = -2.0 + [Toggle(_LOCAL_SPACE_TRIPLANAR_MAPPING)] _EnableLocalSpaceTriplanarMapping("Local Space", Float) = 0.0 + _TriplanarMappingBlendSharpness("Blend Sharpness", Range(1.0, 16.0)) = 4.0 + + // Rendering options. + [Toggle(_DIRECTIONAL_LIGHT)] _DirectionalLight("Directional Light", Float) = 1.0 + [Toggle(_SPECULAR_HIGHLIGHTS)] _SpecularHighlights("Specular Highlights", Float) = 1.0 + [Toggle(_SPHERICAL_HARMONICS)] _SphericalHarmonics("Spherical Harmonics", Float) = 0.0 + [Toggle(_REFLECTIONS)] _Reflections("Reflections", Float) = 0.0 + [Toggle(_REFRACTION)] _Refraction("Refraction", Float) = 0.0 + _RefractiveIndex("Refractive Index", Range(0.0, 3.0)) = 0.0 + [Toggle(_RIM_LIGHT)] _RimLight("Rim Light", Float) = 0.0 + _RimColor("Rim Color", Color) = (0.5, 0.5, 0.5, 1.0) + _RimPower("Rim Power", Range(0.0, 8.0)) = 0.25 + [Toggle(_VERTEX_COLORS)] _VertexColors("Vertex Colors", Float) = 0.0 + [Toggle(_VERTEX_EXTRUSION)] _VertexExtrusion("Vertex Extrusion", Float) = 0.0 + _VertexExtrusionValue("Vertex Extrusion Value", Float) = 0.0 + [Toggle(_VERTEX_EXTRUSION_SMOOTH_NORMALS)] _VertexExtrusionSmoothNormals("Vertex Extrusion Smooth Normals", Float) = 0.0 + _BlendedClippingWidth("Blended Clipping With", Range(0.0, 10.0)) = 1.0 + [Toggle(_CLIPPING_BORDER)] _ClippingBorder("Clipping Border", Float) = 0.0 + _ClippingBorderWidth("Clipping Border Width", Range(0.0, 1.0)) = 0.025 + _ClippingBorderColor("Clipping Border Color", Color) = (1.0, 0.2, 0.0, 1.0) + [Toggle(_NEAR_PLANE_FADE)] _NearPlaneFade("Near Plane Fade", Float) = 0.0 + [Toggle(_NEAR_LIGHT_FADE)] _NearLightFade("Near Light Fade", Float) = 0.0 + _FadeBeginDistance("Fade Begin Distance", Range(0.0, 10.0)) = 0.85 + _FadeCompleteDistance("Fade Complete Distance", Range(0.0, 10.0)) = 0.5 + _FadeMinValue("Fade Min Value", Range(0.0, 1.0)) = 0.0 + + // Fluent options. + [Toggle(_HOVER_LIGHT)] _HoverLight("Hover Light", Float) = 1.0 + [Toggle(_HOVER_COLOR_OVERRIDE)] _EnableHoverColorOverride("Hover Color Override", Float) = 0.0 + _HoverColorOverride("Hover Color Override", Color) = (1.0, 1.0, 1.0, 1.0) + [Toggle(_PROXIMITY_LIGHT)] _ProximityLight("Proximity Light", Float) = 0.0 + [Toggle(_PROXIMITY_LIGHT_COLOR_OVERRIDE)] _EnableProximityLightColorOverride("Proximity Light Color Override", Float) = 0.0 + [HDR]_ProximityLightCenterColorOverride("Proximity Light Center Color Override", Color) = (1.0, 0.0, 0.0, 0.0) + [HDR]_ProximityLightMiddleColorOverride("Proximity Light Middle Color Override", Color) = (0.0, 1.0, 0.0, 0.5) + [HDR]_ProximityLightOuterColorOverride("Proximity Light Outer Color Override", Color) = (0.0, 0.0, 1.0, 1.0) + [Toggle(_PROXIMITY_LIGHT_SUBTRACTIVE)] _ProximityLightSubtractive("Proximity Light Subtractive", Float) = 0.0 + [Toggle(_PROXIMITY_LIGHT_TWO_SIDED)] _ProximityLightTwoSided("Proximity Light Two Sided", Float) = 0.0 + _FluentLightIntensity("Fluent Light Intensity", Range(0.0, 1.0)) = 1.0 + [Toggle(_ROUND_CORNERS)] _RoundCorners("Round Corners", Float) = 0.0 + _RoundCornerRadius("Round Corner Radius", Range(0.0, 0.5)) = 0.25 + _RoundCornerMargin("Round Corner Margin", Range(0.0, 0.5)) = 0.01 + [Toggle(_INDEPENDENT_CORNERS)] _IndependentCorners("Independent Corners", Float) = 0.0 + _RoundCornersRadius("Round Corners Radius", Vector) = (0.5 ,0.5, 0.5, 0.5) + [Toggle(_BORDER_LIGHT)] _BorderLight("Border Light", Float) = 0.0 + [Toggle(_BORDER_LIGHT_USES_HOVER_COLOR)] _BorderLightUsesHoverColor("Border Light Uses Hover Color", Float) = 0.0 + [Toggle(_BORDER_LIGHT_REPLACES_ALBEDO)] _BorderLightReplacesAlbedo("Border Light Replaces Albedo", Float) = 0.0 + [Toggle(_BORDER_LIGHT_OPAQUE)] _BorderLightOpaque("Border Light Opaque", Float) = 0.0 + _BorderWidth("Border Width", Range(0.0, 1.0)) = 0.1 + _BorderMinValue("Border Min Value", Range(0.0, 1.0)) = 0.1 + _EdgeSmoothingValue("Edge Smoothing Value", Range(0.0, 0.2)) = 0.002 + _BorderLightOpaqueAlpha("Border Light Opaque Alpha", Range(0.0, 1.0)) = 1.0 + [Toggle(_INNER_GLOW)] _InnerGlow("Inner Glow", Float) = 0.0 + _InnerGlowColor("Inner Glow Color (RGB) and Intensity (A)", Color) = (1.0, 1.0, 1.0, 0.75) + _InnerGlowPower("Inner Glow Power", Range(2.0, 32.0)) = 4.0 + [Toggle(_IRIDESCENCE)] _Iridescence("Iridescence", Float) = 0.0 + [NoScaleOffset] _IridescentSpectrumMap("Iridescent Spectrum Map", 2D) = "white" {} + _IridescenceIntensity("Iridescence Intensity", Range(0.0, 1.0)) = 0.5 + _IridescenceThreshold("Iridescence Threshold", Range(0.0, 1.0)) = 0.05 + _IridescenceAngle("Iridescence Angle", Range(-0.78, 0.78)) = -0.78 + [Toggle(_ENVIRONMENT_COLORING)] _EnvironmentColoring("Environment Coloring", Float) = 0.0 + _EnvironmentColorThreshold("Environment Color Threshold", Range(0.0, 3.0)) = 1.5 + _EnvironmentColorIntensity("Environment Color Intensity", Range(0.0, 1.0)) = 0.5 + _EnvironmentColorX("Environment Color X (RGB)", Color) = (1.0, 0.0, 0.0, 1.0) + _EnvironmentColorY("Environment Color Y (RGB)", Color) = (0.0, 1.0, 0.0, 1.0) + _EnvironmentColorZ("Environment Color Z (RGB)", Color) = (0.0, 0.0, 1.0, 1.0) + + // Advanced options. + [Enum(RenderingMode)] _Mode("Rendering Mode", Float) = 0 // "Opaque" + [Enum(CustomRenderingMode)] _CustomMode("Mode", Float) = 0 // "Opaque" + [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend("Source Blend", Float) = 1 // "One" + [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend("Destination Blend", Float) = 0 // "Zero" + [Enum(UnityEngine.Rendering.BlendOp)] _BlendOp("Blend Operation", Float) = 0 // "Add" + [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("Depth Test", Float) = 4 // "LessEqual" + [Enum(DepthWrite)] _ZWrite("Depth Write", Float) = 1 // "On" + _ZOffsetFactor("Depth Offset Factor", Float) = 0 // "Zero" + _ZOffsetUnits("Depth Offset Units", Float) = 0 // "Zero" + [Enum(UnityEngine.Rendering.ColorWriteMask)] _ColorWriteMask("Color Write Mask", Float) = 15 // "All" + [Enum(UnityEngine.Rendering.CullMode)] _CullMode("Cull Mode", Float) = 2 // "Back" + _RenderQueueOverride("Render Queue Override", Range(-1.0, 5000)) = -1 + [Toggle(_IGNORE_Z_SCALE)] _IgnoreZScale("Ignore Z Scale", Float) = 0.0 + [Toggle(_STENCIL)] _Stencil("Enable Stencil Testing", Float) = 0.0 + _StencilReference("Stencil Reference", Range(0, 255)) = 0 + [Enum(UnityEngine.Rendering.CompareFunction)]_StencilComparison("Stencil Comparison", Int) = 0 + [Enum(UnityEngine.Rendering.StencilOp)]_StencilOperation("Stencil Operation", Int) = 0 + } + + SubShader + { + Pass + { + Name "Main" + Tags{ "RenderType" = "Opaque" "LightMode" = "ForwardBase" } + LOD 100 + Blend[_SrcBlend][_DstBlend] + BlendOp[_BlendOp] + ZTest[_ZTest] + ZWrite[_ZWrite] + Cull[_CullMode] + Offset[_ZOffsetFactor],[_ZOffsetUnits] + ColorMask[_ColorWriteMask] + + Stencil + { + Ref[_StencilReference] + Comp[_StencilComparison] + Pass[_StencilOperation] + } + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + #pragma multi_compile_instancing + #pragma multi_compile _ LIGHTMAP_ON + #pragma multi_compile _ UNITY_UI_CLIP_RECT + #pragma multi_compile _ _HOVER_LIGHT_MEDIUM _HOVER_LIGHT_HIGH + #pragma multi_compile _ _CLIPPING_PLANE _CLIPPING_SPHERE _CLIPPING_BOX + + #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON + #pragma shader_feature _DISABLE_ALBEDO_MAP + #pragma shader_feature _ _METALLIC_TEXTURE_ALBEDO_CHANNEL_A _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + #pragma shader_feature _CHANNEL_MAP + #pragma shader_feature _NORMAL_MAP + #pragma shader_feature _EMISSION + #pragma shader_feature _TRIPLANAR_MAPPING + #pragma shader_feature _LOCAL_SPACE_TRIPLANAR_MAPPING + #pragma shader_feature _USE_SSAA + #pragma shader_feature _DIRECTIONAL_LIGHT + #pragma shader_feature _SPECULAR_HIGHLIGHTS + #pragma shader_feature _SPHERICAL_HARMONICS + #pragma shader_feature _REFLECTIONS + #pragma shader_feature _REFRACTION + #pragma shader_feature _RIM_LIGHT + #pragma shader_feature _VERTEX_COLORS + #pragma shader_feature _VERTEX_EXTRUSION + #pragma shader_feature _VERTEX_EXTRUSION_SMOOTH_NORMALS + #pragma shader_feature _CLIPPING_BORDER + #pragma shader_feature _NEAR_PLANE_FADE + #pragma shader_feature _NEAR_LIGHT_FADE + #pragma shader_feature _HOVER_LIGHT + #pragma shader_feature _HOVER_COLOR_OVERRIDE + #pragma shader_feature _PROXIMITY_LIGHT + #pragma shader_feature _PROXIMITY_LIGHT_COLOR_OVERRIDE + #pragma shader_feature _PROXIMITY_LIGHT_SUBTRACTIVE + #pragma shader_feature _PROXIMITY_LIGHT_TWO_SIDED + #pragma shader_feature _ROUND_CORNERS + #pragma shader_feature _INDEPENDENT_CORNERS + #pragma shader_feature _BORDER_LIGHT + #pragma shader_feature _BORDER_LIGHT_USES_HOVER_COLOR + #pragma shader_feature _BORDER_LIGHT_REPLACES_ALBEDO + #pragma shader_feature _BORDER_LIGHT_OPAQUE + #pragma shader_feature _INNER_GLOW + #pragma shader_feature _IRIDESCENCE + #pragma shader_feature _ENVIRONMENT_COLORING + #pragma shader_feature _IGNORE_Z_SCALE + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "UnityStandardConfig.cginc" + #include "UnityStandardUtils.cginc" + #include "MixedRealityShaderUtils.cginc" + + // This define will get commented in by the UpgradeShaderForUniversalRenderPipeline method. + //#define _RENDER_PIPELINE + +#if defined(_TRIPLANAR_MAPPING) || defined(_DIRECTIONAL_LIGHT) || defined(_SPHERICAL_HARMONICS) || defined(_REFLECTIONS) || defined(_RIM_LIGHT) || defined(_PROXIMITY_LIGHT) || defined(_ENVIRONMENT_COLORING) + #define _NORMAL +#else + #undef _NORMAL +#endif + +#if defined(_CLIPPING_PLANE) || defined(_CLIPPING_SPHERE) || defined(_CLIPPING_BOX) + #define _CLIPPING_PRIMITIVE +#else + #undef _CLIPPING_PRIMITIVE +#endif + +#if defined(_NORMAL) || defined(_CLIPPING_PRIMITIVE) || defined(_NEAR_PLANE_FADE) || defined(_HOVER_LIGHT) || defined(_PROXIMITY_LIGHT) + #define _WORLD_POSITION +#else + #undef _WORLD_POSITION +#endif + +#if defined(UNITY_UI_CLIP_RECT) + #define _LOCAL_POSITION +#else + #undef _LOCAL_POSITION +#endif + +#if defined(_ALPHATEST_ON) || defined(UNITY_UI_CLIP_RECT) || defined(_CLIPPING_PRIMITIVE) || defined(_ROUND_CORNERS) + #define _ALPHA_CLIP +#else + #undef _ALPHA_CLIP +#endif + +#if defined(_ALPHABLEND_ON) + #define _TRANSPARENT + #undef _ALPHA_CLIP +#else + #undef _TRANSPARENT +#endif + +#if defined(_VERTEX_EXTRUSION) || defined(_ROUND_CORNERS) || defined(_BORDER_LIGHT) + #define _SCALE +#else + #undef _SCALE +#endif + +#if defined(_DIRECTIONAL_LIGHT) || defined(_RIM_LIGHT) + #define _FRESNEL +#else + #undef _FRESNEL +#endif + +#if defined(_ROUND_CORNERS) || defined(_BORDER_LIGHT) || defined(_INNER_GLOW) + #define _DISTANCE_TO_EDGE +#else + #undef _DISTANCE_TO_EDGE +#endif + +#if !defined(_DISABLE_ALBEDO_MAP) || defined(_TRIPLANAR_MAPPING) || defined(_CHANNEL_MAP) || defined(_NORMAL_MAP) || defined(_DISTANCE_TO_EDGE) || defined(_IRIDESCENCE) + #define _UV +#else + #undef _UV +#endif + + struct appdata_t + { + float4 vertex : POSITION; + // The default UV channel used for texturing. + float2 uv : TEXCOORD0; +#if defined(LIGHTMAP_ON) + // Reserved for Unity's light map UVs. + float2 uv1 : TEXCOORD1; +#endif + // Used for smooth normal data (or UGUI scaling data). + float4 uv2 : TEXCOORD2; + // Used for UGUI scaling data. + float2 uv3 : TEXCOORD3; +#if defined(_VERTEX_COLORS) + fixed4 color : COLOR0; +#endif + fixed3 normal : NORMAL; +#if defined(_NORMAL_MAP) + fixed4 tangent : TANGENT; +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + float4 position : SV_POSITION; +#if defined(_BORDER_LIGHT) + float4 uv : TEXCOORD0; +#elif defined(_UV) + float2 uv : TEXCOORD0; +#endif +#if defined(LIGHTMAP_ON) + float2 lightMapUV : TEXCOORD1; +#endif +#if defined(_VERTEX_COLORS) + fixed4 color : COLOR0; +#endif +#if defined(_SPHERICAL_HARMONICS) + fixed3 ambient : COLOR1; +#endif +#if defined(_IRIDESCENCE) + fixed3 iridescentColor : COLOR2; +#endif +#if defined(_WORLD_POSITION) +#if defined(_NEAR_PLANE_FADE) + float4 worldPosition : TEXCOORD2; +#else + float3 worldPosition : TEXCOORD2; +#endif +#endif +#if defined(_LOCAL_POSITION) + float3 localPosition : TEXCOORD7; +#endif +#if defined(_SCALE) + float3 scale : TEXCOORD3; +#endif +#if defined(_NORMAL) +#if defined(_TRIPLANAR_MAPPING) + fixed3 worldNormal : COLOR3; + fixed3 triplanarNormal : COLOR4; + float3 triplanarPosition : TEXCOORD6; +#elif defined(_NORMAL_MAP) + fixed3 tangentX : COLOR3; + fixed3 tangentY : COLOR4; + fixed3 tangentZ : COLOR5; +#else + fixed3 worldNormal : COLOR3; +#endif +#endif + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + + UNITY_INSTANCING_BUFFER_START(Props) + UNITY_DEFINE_INSTANCED_PROP(float4, _Color) + +#if defined(_CLIPPING_PLANE) + UNITY_DEFINE_INSTANCED_PROP(fixed, _ClipPlaneSide) + UNITY_DEFINE_INSTANCED_PROP(float4, _ClipPlane) +#endif + +#if defined(_CLIPPING_SPHERE) + UNITY_DEFINE_INSTANCED_PROP(fixed, _ClipSphereSide) + UNITY_DEFINE_INSTANCED_PROP(float4x4, _ClipSphereInverseTransform) +#endif + +#if defined(_CLIPPING_BOX) + UNITY_DEFINE_INSTANCED_PROP(fixed, _ClipBoxSide) + UNITY_DEFINE_INSTANCED_PROP(float4x4, _ClipBoxInverseTransform) +#endif + + UNITY_INSTANCING_BUFFER_END(Props) + + sampler2D _MainTex; + fixed4 _MainTex_ST; + +#if defined(_ALPHA_CLIP) + fixed _Cutoff; +#endif + +#if defined(UNITY_UI_CLIP_RECT) + float4 _ClipRect; +#endif + + fixed _Metallic; + fixed _Smoothness; + +#if defined(_CHANNEL_MAP) + sampler2D _ChannelMap; +#endif + +#if defined(_NORMAL_MAP) + sampler2D _NormalMap; + float _NormalMapScale; +#endif + +#if defined(_EMISSION) + fixed4 _EmissiveColor; +#endif + +#if defined(_USE_SSAA) + float _MipmapBias; +#endif + +#if defined(_TRIPLANAR_MAPPING) + float _TriplanarMappingBlendSharpness; +#endif + +#if defined(_DIRECTIONAL_LIGHT) +#if defined(_RENDER_PIPELINE) + CBUFFER_START(_LightBuffer) + float4 _MainLightPosition; + half4 _MainLightColor; + CBUFFER_END +#else + fixed4 _LightColor0; +#endif +#endif + +#if defined(_REFRACTION) + fixed _RefractiveIndex; +#endif + +#if defined(_RIM_LIGHT) + fixed3 _RimColor; + fixed _RimPower; +#endif + +#if defined(_VERTEX_EXTRUSION) + float _VertexExtrusionValue; +#endif + + +#if defined(_CLIPPING_PRIMITIVE) + float _BlendedClippingWidth; +#endif + +#if defined(_CLIPPING_BORDER) + fixed _ClippingBorderWidth; + fixed3 _ClippingBorderColor; +#endif + +#if defined(_NEAR_PLANE_FADE) + float _FadeBeginDistance; + float _FadeCompleteDistance; + fixed _FadeMinValue; +#endif + +#if defined(_HOVER_LIGHT) || defined(_NEAR_LIGHT_FADE) +#if defined(_HOVER_LIGHT_HIGH) +#define HOVER_LIGHT_COUNT 10 +#elif defined(_HOVER_LIGHT_MEDIUM) +#define HOVER_LIGHT_COUNT 4 +#else +#define HOVER_LIGHT_COUNT 2 +#endif +#define HOVER_LIGHT_DATA_SIZE 2 + float4 _HoverLightData[HOVER_LIGHT_COUNT * HOVER_LIGHT_DATA_SIZE]; +#if defined(_HOVER_COLOR_OVERRIDE) + fixed3 _HoverColorOverride; +#endif +#endif + +#if defined(_PROXIMITY_LIGHT) || defined(_NEAR_LIGHT_FADE) +#define PROXIMITY_LIGHT_COUNT 2 +#define PROXIMITY_LIGHT_DATA_SIZE 6 + float4 _ProximityLightData[PROXIMITY_LIGHT_COUNT * PROXIMITY_LIGHT_DATA_SIZE]; +#if defined(_PROXIMITY_LIGHT_COLOR_OVERRIDE) + float4 _ProximityLightCenterColorOverride; + float4 _ProximityLightMiddleColorOverride; + float4 _ProximityLightOuterColorOverride; +#endif +#endif + +#if defined(_HOVER_LIGHT) || defined(_PROXIMITY_LIGHT) || defined(_BORDER_LIGHT) + fixed _FluentLightIntensity; +#endif + +#if defined(_ROUND_CORNERS) +#if defined(_INDEPENDENT_CORNERS) + float4 _RoundCornersRadius; +#else + fixed _RoundCornerRadius; +#endif + fixed _RoundCornerMargin; +#endif + +#if defined(_BORDER_LIGHT) + fixed _BorderWidth; + fixed _BorderMinValue; +#endif + +#if defined(_BORDER_LIGHT_OPAQUE) + fixed _BorderLightOpaqueAlpha; +#endif + +#if defined(_ROUND_CORNERS) || defined(_BORDER_LIGHT) + float _EdgeSmoothingValue; +#endif + +#if defined(_INNER_GLOW) + fixed4 _InnerGlowColor; + fixed _InnerGlowPower; +#endif + +#if defined(_IRIDESCENCE) + sampler2D _IridescentSpectrumMap; + fixed _IridescenceIntensity; + fixed _IridescenceThreshold; + fixed _IridescenceAngle; +#endif + +#if defined(_ENVIRONMENT_COLORING) + fixed _EnvironmentColorThreshold; + fixed _EnvironmentColorIntensity; + fixed3 _EnvironmentColorX; + fixed3 _EnvironmentColorY; + fixed3 _EnvironmentColorZ; +#endif + +#if defined(_DIRECTIONAL_LIGHT) + static const fixed _MinMetallicLightContribution = 0.7; + static const fixed _IblContribution = 0.1; +#endif + +#if defined(_SPECULAR_HIGHLIGHTS) + static const float _Shininess = 800.0; +#endif + +#if defined(_FRESNEL) + static const float _FresnelPower = 8.0; +#endif + +#if defined(_NEAR_LIGHT_FADE) + static const float _MaxNearLightDistance = 10.0; + + inline float NearLightDistance(float4 light, float3 worldPosition) + { + return distance(worldPosition, light.xyz) + ((1.0 - light.w) * _MaxNearLightDistance); + } +#endif + +#if defined(_HOVER_LIGHT) + inline float HoverLight(float4 hoverLight, float inverseRadius, float3 worldPosition) + { + return (1.0 - saturate(length(hoverLight.xyz - worldPosition) * inverseRadius)) * hoverLight.w; + } +#endif + +#if defined(_PROXIMITY_LIGHT) + inline float ProximityLight(float4 proximityLight, float4 proximityLightParams, float4 proximityLightPulseParams, float3 worldPosition, float3 worldNormal, out fixed colorValue) + { + float proximityLightDistance = dot(proximityLight.xyz - worldPosition, worldNormal); +#if defined(_PROXIMITY_LIGHT_TWO_SIDED) + worldNormal = proximityLightDistance < 0.0 ? -worldNormal : worldNormal; + proximityLightDistance = abs(proximityLightDistance); +#endif + float normalizedProximityLightDistance = saturate(proximityLightDistance * proximityLightParams.y); + float3 projectedProximityLight = proximityLight.xyz - (worldNormal * abs(proximityLightDistance)); + float projectedProximityLightDistance = length(projectedProximityLight - worldPosition); + float attenuation = (1.0 - normalizedProximityLightDistance) * proximityLight.w; + colorValue = saturate(projectedProximityLightDistance * proximityLightParams.z); + float pulse = step(proximityLightPulseParams.x, projectedProximityLightDistance) * proximityLightPulseParams.y; + + return smoothstep(1.0, 0.0, projectedProximityLightDistance / (proximityLightParams.x * max(pow(normalizedProximityLightDistance, 0.25), proximityLightParams.w))) * pulse * attenuation; + } + + inline fixed3 MixProximityLightColor(fixed4 centerColor, fixed4 middleColor, fixed4 outerColor, fixed t) + { + fixed3 color = lerp(centerColor.rgb, middleColor.rgb, smoothstep(centerColor.a, middleColor.a, t)); + return lerp(color, outerColor, smoothstep(middleColor.a, outerColor.a, t)); + } +#endif + +#if defined(_ROUND_CORNERS) + inline float PointVsRoundedBox(float2 position, float2 cornerCircleDistance, float cornerCircleRadius) + { + return length(max(abs(position) - cornerCircleDistance, 0.0)) - cornerCircleRadius; + } + + inline float RoundCornersSmooth(float2 position, float2 cornerCircleDistance, float cornerCircleRadius) + { + return smoothstep(1.0, 0.0, PointVsRoundedBox(position, cornerCircleDistance, cornerCircleRadius) / _EdgeSmoothingValue); + } + + inline float RoundCorners(float2 position, float2 cornerCircleDistance, float cornerCircleRadius) + { +#if defined(_TRANSPARENT) + return RoundCornersSmooth(position, cornerCircleDistance, cornerCircleRadius); +#else + return (PointVsRoundedBox(position, cornerCircleDistance, cornerCircleRadius) < 0.0); +#endif + } +#endif + +#if defined(_IRIDESCENCE) + fixed3 Iridescence(float tangentDotIncident, sampler2D spectrumMap, float threshold, float2 uv, float angle, float intensity) + { + float k = tangentDotIncident * 0.5 + 0.5; + float4 left = tex2D(spectrumMap, float2(lerp(0.0, 1.0 - threshold, k), 0.5), float2(0.0, 0.0), float2(0.0, 0.0)); + float4 right = tex2D(spectrumMap, float2(lerp(threshold, 1.0, k), 0.5), float2(0.0, 0.0), float2(0.0, 0.0)); + + float2 XY = uv - float2(0.5, 0.5); + float s = (cos(angle) * XY.x - sin(angle) * XY.y) / cos(angle); + return (left.rgb + s * (right.rgb - left.rgb)) * intensity; + } +#endif + + v2f vert(appdata_t v) + { + v2f o; + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_OUTPUT(v2f, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + UNITY_TRANSFER_INSTANCE_ID(v, o); + + float4 vertexPosition = v.vertex; + +#if defined(_WORLD_POSITION) || defined(_VERTEX_EXTRUSION) + float3 worldVertexPosition = mul(unity_ObjectToWorld, vertexPosition).xyz; +#endif + +#if defined(_SCALE) + o.scale.x = length(mul(unity_ObjectToWorld, float4(1.0, 0.0, 0.0, 0.0))); + o.scale.y = length(mul(unity_ObjectToWorld, float4(0.0, 1.0, 0.0, 0.0))); +#if defined(_IGNORE_Z_SCALE) + o.scale.z = o.scale.x; +#else + o.scale.z = length(mul(unity_ObjectToWorld, float4(0.0, 0.0, 1.0, 0.0))); +#endif +#if !defined(_VERTEX_EXTRUSION_SMOOTH_NORMALS) + // uv3.y will contain a negative value when rendered by a UGUI and ScaleMeshEffect. + if (v.uv3.y < 0.0) + { + o.scale.x *= v.uv2.x; + o.scale.y *= v.uv2.y; + o.scale.z *= v.uv3.x; + } +#endif +#endif + + fixed3 localNormal = v.normal; + +#if defined(_NORMAL) || defined(_VERTEX_EXTRUSION) + fixed3 worldNormal = UnityObjectToWorldNormal(localNormal); +#endif + +#if defined(_VERTEX_EXTRUSION) +#if defined(_VERTEX_EXTRUSION_SMOOTH_NORMALS) + worldVertexPosition += UnityObjectToWorldNormal(v.uv2 * o.scale) * _VertexExtrusionValue; +#else + worldVertexPosition += worldNormal * _VertexExtrusionValue; +#endif + vertexPosition = mul(unity_WorldToObject, float4(worldVertexPosition, 1.0)); +#endif + + o.position = UnityObjectToClipPos(vertexPosition); + +#if defined(_WORLD_POSITION) + o.worldPosition.xyz = worldVertexPosition; +#endif + +#if defined(_LOCAL_POSITION) + o.localPosition.xyz = vertexPosition; +#endif + +#if defined(_NEAR_PLANE_FADE) + float rangeInverse = 1.0 / (_FadeBeginDistance - _FadeCompleteDistance); +#if defined(_NEAR_LIGHT_FADE) + float fadeDistance = _MaxNearLightDistance; + + [unroll] + for (int hoverLightIndex = 0; hoverLightIndex < HOVER_LIGHT_COUNT; ++hoverLightIndex) + { + int dataIndex = hoverLightIndex * HOVER_LIGHT_DATA_SIZE; + fadeDistance = min(fadeDistance, NearLightDistance(_HoverLightData[dataIndex], o.worldPosition)); + } + + [unroll] + for (int proximityLightIndex = 0; proximityLightIndex < PROXIMITY_LIGHT_COUNT; ++proximityLightIndex) + { + int dataIndex = proximityLightIndex * PROXIMITY_LIGHT_DATA_SIZE; + fadeDistance = min(fadeDistance, NearLightDistance(_ProximityLightData[dataIndex], o.worldPosition)); + } +#else + float fadeDistance = -UnityObjectToViewPos(vertexPosition).z; +#endif + o.worldPosition.w = max(saturate(mad(fadeDistance, rangeInverse, -_FadeCompleteDistance * rangeInverse)), _FadeMinValue); +#endif + +#if defined(_BORDER_LIGHT) || defined(_ROUND_CORNERS) + o.uv.xy = TRANSFORM_TEX(v.uv, _MainTex); + + float minScale = min(min(o.scale.x, o.scale.y), o.scale.z); + +#if defined(_BORDER_LIGHT) + float maxScale = max(max(o.scale.x, o.scale.y), o.scale.z); + float minOverMiddleScale = minScale / (o.scale.x + o.scale.y + o.scale.z - minScale - maxScale); + + float areaYZ = o.scale.y * o.scale.z; + float areaXZ = o.scale.z * o.scale.x; + float areaXY = o.scale.x * o.scale.y; + + float borderWidth = _BorderWidth; +#endif + + if (abs(localNormal.x) == 1.0) // Y,Z plane. + { + o.scale.x = o.scale.z; + o.scale.y = o.scale.y; + +#if defined(_BORDER_LIGHT) + if (areaYZ > areaXZ && areaYZ > areaXY) + { + borderWidth *= minOverMiddleScale; + } +#endif + } + else if (abs(localNormal.y) == 1.0) // X,Z plane. + { + o.scale.x = o.scale.x; + o.scale.y = o.scale.z; + +#if defined(_BORDER_LIGHT) + if (areaXZ > areaXY && areaXZ > areaYZ) + { + borderWidth *= minOverMiddleScale; + } +#endif + } + else // X,Y plane. + { + o.scale.x = o.scale.x; + o.scale.y = o.scale.y; + +#if defined(_BORDER_LIGHT) + if (areaXY > areaYZ && areaXY > areaXZ) + { + borderWidth *= minOverMiddleScale; + } +#endif + } + + o.scale.z = minScale; + +#if defined(_BORDER_LIGHT) + float scaleRatio = min(o.scale.x, o.scale.y) / max(o.scale.x, o.scale.y); + o.uv.z = o.scale.x > o.scale.y ? 1.0 - (borderWidth * scaleRatio) : 1.0 - borderWidth; + o.uv.w = o.scale.x > o.scale.y ? 1.0 - borderWidth : 1.0 - (borderWidth * scaleRatio); +#endif +#elif defined(_UV) + o.uv = TRANSFORM_TEX(v.uv, _MainTex); +#endif + +#if defined(LIGHTMAP_ON) + o.lightMapUV.xy = v.uv1.xy * unity_LightmapST.xy + unity_LightmapST.zw; +#endif + +#if defined(_VERTEX_COLORS) + o.color = v.color; +#endif + +#if defined(_SPHERICAL_HARMONICS) + o.ambient = ShadeSH9(float4(worldNormal, 1.0)); +#endif + +#if defined(_IRIDESCENCE) + float3 rightTangent = normalize(mul((float3x3)unity_ObjectToWorld, float3(1.0, 0.0, 0.0))); + float3 incidentWithCenter = normalize(mul(unity_ObjectToWorld, float4(0.0, 0.0, 0.0, 1.0)) - _WorldSpaceCameraPos); + float tangentDotIncident = dot(rightTangent, incidentWithCenter); + o.iridescentColor = Iridescence(tangentDotIncident, _IridescentSpectrumMap, _IridescenceThreshold, v.uv, _IridescenceAngle, _IridescenceIntensity); +#endif + +#if defined(_NORMAL) +#if defined(_TRIPLANAR_MAPPING) + o.worldNormal = worldNormal; +#if defined(_LOCAL_SPACE_TRIPLANAR_MAPPING) + o.triplanarNormal = localNormal; + o.triplanarPosition = vertexPosition; +#else + o.triplanarNormal = worldNormal; + o.triplanarPosition = o.worldPosition; +#endif +#elif defined(_NORMAL_MAP) + fixed3 worldTangent = UnityObjectToWorldDir(v.tangent.xyz); + fixed tangentSign = v.tangent.w * unity_WorldTransformParams.w; + fixed3 worldBitangent = cross(worldNormal, worldTangent) * tangentSign; + o.tangentX = fixed3(worldTangent.x, worldBitangent.x, worldNormal.x); + o.tangentY = fixed3(worldTangent.y, worldBitangent.y, worldNormal.y); + o.tangentZ = fixed3(worldTangent.z, worldBitangent.z, worldNormal.z); +#else + o.worldNormal = worldNormal; +#endif +#endif + + return o; + } + + fixed4 frag(v2f i, fixed facing : VFACE) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(i); + +#if defined(_TRIPLANAR_MAPPING) + // Calculate triplanar uvs and apply texture scale and offset values like TRANSFORM_TEX. + fixed3 triplanarBlend = pow(abs(i.triplanarNormal), _TriplanarMappingBlendSharpness); + triplanarBlend /= dot(triplanarBlend, fixed3(1.0, 1.0, 1.0)); + float2 uvX = i.triplanarPosition.zy * _MainTex_ST.xy + _MainTex_ST.zw; + float2 uvY = i.triplanarPosition.xz * _MainTex_ST.xy + _MainTex_ST.zw; + float2 uvZ = i.triplanarPosition.xy * _MainTex_ST.xy + _MainTex_ST.zw; + + // Ternary operator is 2 instructions faster than sign() when we don't care about zero returning a zero sign. + float3 axisSign = i.triplanarNormal < 0 ? -1 : 1; + uvX.x *= axisSign.x; + uvY.x *= axisSign.y; + uvZ.x *= -axisSign.z; +#endif + + // Texturing. +#if defined(_DISABLE_ALBEDO_MAP) + fixed4 albedo = fixed4(1.0, 1.0, 1.0, 1.0); +#else +#if defined(_TRIPLANAR_MAPPING) + fixed4 albedo = tex2D(_MainTex, uvX) * triplanarBlend.x + + tex2D(_MainTex, uvY) * triplanarBlend.y + + tex2D(_MainTex, uvZ) * triplanarBlend.z; +#else +#if defined(_USE_SSAA) + // Does SSAA on the texture, implementation based off this article: https://medium.com/@bgolus/sharper-mipmapping-using-shader-based-supersampling-ed7aadb47bec + // per pixel screen space partial derivatives + float2 dx = ddx(i.uv.xy) * 0.25; // horizontal offset + float2 dy = ddy(i.uv.xy) * 0.25; // vertical offset + // supersampled 2x2 ordered grid + fixed4 albedo = 0; + albedo += tex2Dbias(_MainTex, float4(i.uv.xy + dx + dy, 0.0, _MipmapBias)); + albedo += tex2Dbias(_MainTex, float4(i.uv.xy - dx + dy, 0.0, _MipmapBias)); + albedo += tex2Dbias(_MainTex, float4(i.uv.xy + dx - dy, 0.0, _MipmapBias)); + albedo += tex2Dbias(_MainTex, float4(i.uv.xy - dx - dy, 0.0, _MipmapBias)); + albedo *= 0.25; +#else + fixed4 albedo = tex2D(_MainTex, i.uv); +#endif +#endif +#endif + + +#ifdef LIGHTMAP_ON + albedo.rgb *= DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap, i.lightMapUV)); +#endif + +#if defined(_CHANNEL_MAP) + fixed4 channel = tex2D(_ChannelMap, i.uv); + _Metallic = channel.r; + albedo.rgb *= channel.g; + _Smoothness = channel.a; +#else +#if defined(_METALLIC_TEXTURE_ALBEDO_CHANNEL_A) + _Metallic = albedo.a; + albedo.a = 1.0; +#elif defined(_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A) + _Smoothness = albedo.a; + albedo.a = 1.0; +#endif +#endif + + // Primitive clipping. +#if defined(_CLIPPING_PRIMITIVE) + float primitiveDistance = 1.0; +#if defined(_CLIPPING_PLANE) + fixed clipPlaneSide = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipPlaneSide); + float4 clipPlane = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipPlane); + primitiveDistance = min(primitiveDistance, PointVsPlane(i.worldPosition.xyz, clipPlane) * clipPlaneSide); +#endif +#if defined(_CLIPPING_SPHERE) + fixed clipSphereSide = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipSphereSide); + float4x4 clipSphereInverseTransform = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipSphereInverseTransform); + primitiveDistance = min(primitiveDistance, PointVsSphere(i.worldPosition.xyz, clipSphereInverseTransform) * clipSphereSide); +#endif +#if defined(_CLIPPING_BOX) + fixed clipBoxSide = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipBoxSide); + float4x4 clipBoxInverseTransform = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipBoxInverseTransform); + primitiveDistance = min(primitiveDistance, PointVsBox(i.worldPosition.xyz, clipBoxInverseTransform) * clipBoxSide); +#endif +#if defined(_CLIPPING_BORDER) + fixed3 primitiveBorderColor = lerp(_ClippingBorderColor, fixed3(0.0, 0.0, 0.0), primitiveDistance / _ClippingBorderWidth); + albedo.rgb += primitiveBorderColor * (primitiveDistance < _ClippingBorderWidth ? 1.0 : 0.0); +#endif +#endif + +#if defined(_DISTANCE_TO_EDGE) + fixed2 distanceToEdge; + distanceToEdge.x = abs(i.uv.x - 0.5) * 2.0; + distanceToEdge.y = abs(i.uv.y - 0.5) * 2.0; +#endif + + // Rounded corner clipping. +#if defined(_ROUND_CORNERS) + float2 halfScale = i.scale.xy * 0.5; + float2 roundCornerPosition = distanceToEdge * halfScale; + + fixed currentCornerRadius; + +#if defined(_INDEPENDENT_CORNERS) + + _RoundCornersRadius = clamp(_RoundCornersRadius, 0, 0.5); + + if (i.uv.x < 0.5) + { + if (i.uv.y > 0.5) + { + currentCornerRadius = _RoundCornersRadius.x; + } + else + { + currentCornerRadius = _RoundCornersRadius.w; + } + } + else + { + if (i.uv.y > 0.5) + { + currentCornerRadius = _RoundCornersRadius.y; + } + else + { + currentCornerRadius = _RoundCornersRadius.z; + } + } +#else + currentCornerRadius = _RoundCornerRadius; +#endif + + float cornerCircleRadius = saturate(max(currentCornerRadius - _RoundCornerMargin, 0.01)) * i.scale.z; + + float2 cornerCircleDistance = halfScale - (_RoundCornerMargin * i.scale.z) - cornerCircleRadius; + + float roundCornerClip = RoundCorners(roundCornerPosition, cornerCircleDistance, cornerCircleRadius); +#endif + + albedo *= UNITY_ACCESS_INSTANCED_PROP(Props, _Color); + +#if defined(_VERTEX_COLORS) + albedo *= i.color; +#endif + +#if defined(_IRIDESCENCE) + albedo.rgb += i.iridescentColor; +#endif + + // Normal calculation. +#if defined(_NORMAL) + fixed3 worldViewDir = normalize(UnityWorldSpaceViewDir(i.worldPosition.xyz)); +#if defined(_REFLECTIONS) || defined(_ENVIRONMENT_COLORING) + fixed3 incident = -worldViewDir; +#endif + fixed3 worldNormal; + +#if defined(_NORMAL_MAP) +#if defined(_TRIPLANAR_MAPPING) + fixed3 tangentNormalX = UnpackScaleNormal(tex2D(_NormalMap, uvX), _NormalMapScale); + fixed3 tangentNormalY = UnpackScaleNormal(tex2D(_NormalMap, uvY), _NormalMapScale); + fixed3 tangentNormalZ = UnpackScaleNormal(tex2D(_NormalMap, uvZ), _NormalMapScale); + tangentNormalX.x *= axisSign.x; + tangentNormalY.x *= axisSign.y; + tangentNormalZ.x *= -axisSign.z; + + // Swizzle world normals to match tangent space and apply Whiteout normal blend. + tangentNormalX = fixed3(tangentNormalX.xy + i.worldNormal.zy, tangentNormalX.z * i.worldNormal.x); + tangentNormalY = fixed3(tangentNormalY.xy + i.worldNormal.xz, tangentNormalY.z * i.worldNormal.y); + tangentNormalZ = fixed3(tangentNormalZ.xy + i.worldNormal.xy, tangentNormalZ.z * i.worldNormal.z); + + // Swizzle tangent normals to match world normal and blend together. + worldNormal = normalize(tangentNormalX.zyx * triplanarBlend.x + + tangentNormalY.xzy * triplanarBlend.y + + tangentNormalZ.xyz * triplanarBlend.z); +#else + fixed3 tangentNormal = UnpackScaleNormal(tex2D(_NormalMap, i.uv), _NormalMapScale); + worldNormal.x = dot(i.tangentX, tangentNormal); + worldNormal.y = dot(i.tangentY, tangentNormal); + worldNormal.z = dot(i.tangentZ, tangentNormal); + worldNormal = normalize(worldNormal) * facing; +#endif +#else + worldNormal = normalize(i.worldNormal) * facing; +#endif +#endif + + fixed pointToLight = 1.0; + fixed3 fluentLightColor = fixed3(0.0, 0.0, 0.0); + + // Hover light. +#if defined(_HOVER_LIGHT) + pointToLight = 0.0; + + [unroll] + for (int hoverLightIndex = 0; hoverLightIndex < HOVER_LIGHT_COUNT; ++hoverLightIndex) + { + int dataIndex = hoverLightIndex * HOVER_LIGHT_DATA_SIZE; + fixed hoverValue = HoverLight(_HoverLightData[dataIndex], _HoverLightData[dataIndex + 1].w, i.worldPosition.xyz); + pointToLight += hoverValue; +#if !defined(_HOVER_COLOR_OVERRIDE) + fluentLightColor += lerp(fixed3(0.0, 0.0, 0.0), _HoverLightData[dataIndex + 1].rgb, hoverValue); +#endif + } +#if defined(_HOVER_COLOR_OVERRIDE) + fluentLightColor = _HoverColorOverride.rgb * pointToLight; +#endif +#endif + + // Proximity light. +#if defined(_PROXIMITY_LIGHT) +#if !defined(_HOVER_LIGHT) + pointToLight = 0.0; +#endif + [unroll] + for (int proximityLightIndex = 0; proximityLightIndex < PROXIMITY_LIGHT_COUNT; ++proximityLightIndex) + { + int dataIndex = proximityLightIndex * PROXIMITY_LIGHT_DATA_SIZE; + fixed colorValue; + fixed proximityValue = ProximityLight(_ProximityLightData[dataIndex], _ProximityLightData[dataIndex + 1], _ProximityLightData[dataIndex + 2], i.worldPosition.xyz, worldNormal, colorValue); + pointToLight += proximityValue; +#if defined(_PROXIMITY_LIGHT_COLOR_OVERRIDE) + fixed3 proximityColor = MixProximityLightColor(_ProximityLightCenterColorOverride, _ProximityLightMiddleColorOverride, _ProximityLightOuterColorOverride, colorValue); +#else + fixed3 proximityColor = MixProximityLightColor(_ProximityLightData[dataIndex + 3], _ProximityLightData[dataIndex + 4], _ProximityLightData[dataIndex + 5], colorValue); +#endif +#if defined(_PROXIMITY_LIGHT_SUBTRACTIVE) + fluentLightColor -= lerp(fixed3(0.0, 0.0, 0.0), proximityColor, proximityValue); +#else + fluentLightColor += lerp(fixed3(0.0, 0.0, 0.0), proximityColor, proximityValue); +#endif + } +#endif + + // Border light. +#if defined(_BORDER_LIGHT) + fixed borderValue; +#if defined(_ROUND_CORNERS) + fixed borderMargin = _RoundCornerMargin + _BorderWidth * 0.5; + + cornerCircleRadius = saturate(max(currentCornerRadius - borderMargin, 0.01)) * i.scale.z; + + cornerCircleDistance = halfScale - (borderMargin * i.scale.z) - cornerCircleRadius; + + borderValue = 1.0 - RoundCornersSmooth(roundCornerPosition, cornerCircleDistance, cornerCircleRadius); +#else + borderValue = max(smoothstep(i.uv.z - _EdgeSmoothingValue, i.uv.z + _EdgeSmoothingValue, distanceToEdge.x), + smoothstep(i.uv.w - _EdgeSmoothingValue, i.uv.w + _EdgeSmoothingValue, distanceToEdge.y)); +#endif +#if defined(_HOVER_LIGHT) && defined(_BORDER_LIGHT_USES_HOVER_COLOR) && defined(_HOVER_COLOR_OVERRIDE) + fixed3 borderColor = _HoverColorOverride.rgb; +#else + fixed3 borderColor = fixed3(1.0, 1.0, 1.0); +#endif + fixed3 borderContribution = borderColor * borderValue * _BorderMinValue * _FluentLightIntensity; +#if defined(_BORDER_LIGHT_REPLACES_ALBEDO) + albedo.rgb = lerp(albedo.rgb, borderContribution, borderValue); +#else + albedo.rgb += borderContribution; +#endif +#if defined(_HOVER_LIGHT) || defined(_PROXIMITY_LIGHT) + albedo.rgb += (fluentLightColor * borderValue * pointToLight * _FluentLightIntensity) * 2.0; +#endif +#if defined(_BORDER_LIGHT_OPAQUE) + albedo.a = max(albedo.a, borderValue * _BorderLightOpaqueAlpha); +#endif +#endif + +#if defined(_ROUND_CORNERS) + albedo *= roundCornerClip; + pointToLight *= roundCornerClip; +#endif + +#ifdef UNITY_UI_CLIP_RECT + albedo.a *= UnityGet2DClipping(i.localPosition.xy, _ClipRect); +#endif + +#if defined(_ALPHA_CLIP) +#if !defined(_ALPHATEST_ON) + _Cutoff = 0.5; +#endif +#if defined(_CLIPPING_PRIMITIVE) + albedo *= (primitiveDistance > 0.0); +#endif + clip(albedo.a - _Cutoff); + albedo.a = 1.0; +#endif + + // Blinn phong lighting. +#if defined(_DIRECTIONAL_LIGHT) +#if defined(_RENDER_PIPELINE) + float4 directionalLightDirection = _MainLightPosition; +#else + float4 directionalLightDirection = _WorldSpaceLightPos0; +#endif + fixed diffuse = max(0.0, dot(worldNormal, directionalLightDirection)); +#if defined(_SPECULAR_HIGHLIGHTS) + fixed halfVector = max(0.0, dot(worldNormal, normalize(directionalLightDirection + worldViewDir))); + fixed specular = saturate(pow(halfVector, _Shininess * pow(_Smoothness, 4.0)) * (_Smoothness * 2.0) * _Metallic); +#else + fixed specular = 0.0; +#endif +#endif + + // Image based lighting (attempt to mimic the Standard shader). +#if defined(_REFLECTIONS) + fixed3 worldReflection = reflect(incident, worldNormal); + fixed4 iblData = UNITY_SAMPLE_TEXCUBE_LOD(unity_SpecCube0, worldReflection, (1.0 - _Smoothness) * UNITY_SPECCUBE_LOD_STEPS); + fixed3 ibl = DecodeHDR(iblData, unity_SpecCube0_HDR); +#if defined(_REFRACTION) + fixed4 refractColor = UNITY_SAMPLE_TEXCUBE(unity_SpecCube0, refract(incident, worldNormal, _RefractiveIndex)); + ibl *= DecodeHDR(refractColor, unity_SpecCube0_HDR); +#endif +#else + fixed3 ibl = unity_IndirectSpecColor.rgb; +#endif + + // Fresnel lighting. +#if defined(_FRESNEL) + fixed fresnel = 1.0 - saturate(abs(dot(worldViewDir, worldNormal))); +#if defined(_RIM_LIGHT) + fixed3 fresnelColor = _RimColor * pow(fresnel, _RimPower); +#else + fixed3 fresnelColor = unity_IndirectSpecColor.rgb * (pow(fresnel, _FresnelPower) * max(_Smoothness, 0.5)); +#endif +#endif + // Final lighting mix. + fixed4 output = albedo; +#if defined(_SPHERICAL_HARMONICS) + fixed3 ambient = i.ambient; +#else + fixed3 ambient = glstate_lightmodel_ambient + fixed3(0.25, 0.25, 0.25); +#endif + fixed minProperty = min(_Smoothness, _Metallic); +#if defined(_DIRECTIONAL_LIGHT) + fixed oneMinusMetallic = (1.0 - _Metallic); + output.rgb = lerp(output.rgb, ibl, minProperty); +#if defined(_RENDER_PIPELINE) + fixed3 directionalLightColor = _MainLightColor.rgb; +#else + fixed3 directionalLightColor = _LightColor0.rgb; +#endif + output.rgb *= lerp((ambient + directionalLightColor * diffuse + directionalLightColor * specular) * max(oneMinusMetallic, _MinMetallicLightContribution), albedo, minProperty); + output.rgb += (directionalLightColor * albedo * specular) + (directionalLightColor * specular * _Smoothness); + output.rgb += ibl * oneMinusMetallic * _IblContribution; +#elif defined(_REFLECTIONS) + output.rgb = lerp(output.rgb, ibl, minProperty); + output.rgb *= lerp(ambient, albedo, minProperty); +#elif defined(_SPHERICAL_HARMONICS) + output.rgb *= ambient; +#endif + +#if defined(_FRESNEL) +#if defined(_RIM_LIGHT) || !defined(_REFLECTIONS) + output.rgb += fresnelColor; +#else + output.rgb += fresnelColor * (1.0 - minProperty); +#endif +#endif + +#if defined(_EMISSION) +#if defined(_CHANNEL_MAP) + output.rgb += _EmissiveColor * channel.b; +#else + output.rgb += _EmissiveColor; +#endif +#endif + + // Inner glow. +#if defined(_INNER_GLOW) + fixed2 uvGlow = pow(distanceToEdge * _InnerGlowColor.a, _InnerGlowPower); + output.rgb += lerp(fixed3(0.0, 0.0, 0.0), _InnerGlowColor.rgb, uvGlow.x + uvGlow.y); +#endif + + // Environment coloring. +#if defined(_ENVIRONMENT_COLORING) + fixed3 environmentColor = incident.x * incident.x * _EnvironmentColorX + + incident.y * incident.y * _EnvironmentColorY + + incident.z * incident.z * _EnvironmentColorZ; + output.rgb += environmentColor * max(0.0, dot(incident, worldNormal) + _EnvironmentColorThreshold) * _EnvironmentColorIntensity; + +#endif + +#if defined(_NEAR_PLANE_FADE) + output *= i.worldPosition.w; +#endif + + // Hover and proximity lighting should occur after near plane fading. +#if defined(_HOVER_LIGHT) || defined(_PROXIMITY_LIGHT) + output.rgb += fluentLightColor * _FluentLightIntensity * pointToLight; +#endif + + // Perform non-alpha clipped primitive clipping on the final output. +#if defined(_CLIPPING_PRIMITIVE) && !defined(_ALPHA_CLIP) + output *= saturate(primitiveDistance * (1.0f / _BlendedClippingWidth)); +#endif + return output; + } + + ENDCG + } + + // Extracts information for lightmapping, GI (emission, albedo, ...) + // This pass it not used during regular rendering. + Pass + { + Name "Meta" + Tags { "LightMode" = "Meta" } + + CGPROGRAM + + #pragma vertex vert + #pragma fragment frag + + #pragma shader_feature EDITOR_VISUALIZATION + #pragma shader_feature _EMISSION + #pragma shader_feature _CHANNEL_MAP + + #include "UnityCG.cginc" + #include "UnityMetaPass.cginc" + + // This define will get commented in by the UpgradeShaderForUniversalRenderPipeline method. + //#define _RENDER_PIPELINE + + struct v2f + { + float4 vertex : SV_POSITION; + float2 uv : TEXCOORD0; + }; + + float4 _MainTex_ST; + + v2f vert(appdata_full v) + { + v2f o; + o.vertex = UnityMetaVertexPosition(v.vertex, v.texcoord1.xy, v.texcoord2.xy, unity_LightmapST, unity_DynamicLightmapST); + o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); + + return o; + } + + sampler2D _MainTex; + sampler2D _ChannelMap; + + fixed4 _Color; + fixed4 _EmissiveColor; + +#if defined(_RENDER_PIPELINE) + CBUFFER_START(_LightBuffer) + float4 _MainLightPosition; + half4 _MainLightColor; + CBUFFER_END +#else + fixed4 _LightColor0; +#endif + + half4 frag(v2f i) : SV_Target + { + UnityMetaInput output; + UNITY_INITIALIZE_OUTPUT(UnityMetaInput, output); + + output.Albedo = tex2D(_MainTex, i.uv) * _Color; +#if defined(_EMISSION) +#if defined(_CHANNEL_MAP) + output.Emission += tex2D(_ChannelMap, i.uv).b * _EmissiveColor; +#else + output.Emission += _EmissiveColor; +#endif +#endif +#if defined(_RENDER_PIPELINE) + output.SpecularColor = _MainLightColor.rgb; +#else + output.SpecularColor = _LightColor0.rgb; +#endif + + return UnityMetaFragment(output); + } + ENDCG + } + } + + Fallback "Hidden/InternalErrorShader" + CustomEditor "Microsoft.MixedReality.Toolkit.Editor.MixedRealityStandardShaderGUI" +} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityStandard.shader.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityStandard.shader.meta new file mode 100644 index 00000000..7b6bb008 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityStandard.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 5bdea20278144b11916d77503ba1467a +timeCreated: 1519154700 +licenseType: Pro +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshPro.shader b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshPro.shader new file mode 100644 index 00000000..078e5d6c --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshPro.shader @@ -0,0 +1,377 @@ +// TextMesh Pro copyright © 2021 Unity Technologies ApS +// Licensed under the Unity Companion License for Unity-dependent projects--see http://www.unity3d.com/legal/licenses/Unity_Companion_License. +// Unless expressly provided otherwise, the Software under this license is made available strictly on an “AS IS” BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. Please review the license for details on these and other terms and conditions. + +// NOTE: MRTK Shaders are versioned via the MRTK.Shaders.sentinel file. +// When making changes to any shader's source file, the value in the sentinel _must_ be incremented. + +// Simplified SDF shader: +// - No Shading Option (bevel / bump / env map) +// - No Glow Option +// - Softness is applied on both side of the outline + +// MRTK Additions +// - Single Pass Instanced Stereo Rendering Support +// - Support for Clipping Primitives (Plane, Sphere, Box) +// - ZWrite Property + +Shader "Mixed Reality Toolkit/TextMeshPro" { + +Properties { + _FaceColor ("Face Color", Color) = (1,1,1,1) + _FaceDilate ("Face Dilate", Range(-1,1)) = 0 + + _OutlineColor ("Outline Color", Color) = (0,0,0,1) + _OutlineWidth ("Outline Thickness", Range(0,1)) = 0 + _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 + + _UnderlayColor ("Border Color", Color) = (0,0,0,.5) + _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 + _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 + _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 + _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 + + _WeightNormal ("Weight Normal", float) = 0 + _WeightBold ("Weight Bold", float) = .5 + + _ShaderFlags ("Flags", float) = 0 + _ScaleRatioA ("Scale RatioA", float) = 1 + _ScaleRatioB ("Scale RatioB", float) = 1 + _ScaleRatioC ("Scale RatioC", float) = 1 + + _MainTex ("Font Atlas", 2D) = "white" {} + _TextureWidth ("Texture Width", float) = 512 + _TextureHeight ("Texture Height", float) = 512 + _GradientScale ("Gradient Scale", float) = 5 + _ScaleX ("Scale X", float) = 1 + _ScaleY ("Scale Y", float) = 1 + _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 + _Sharpness ("Sharpness", Range(-1,1)) = 0 + + _VertexOffsetX ("Vertex OffsetX", float) = 0 + _VertexOffsetY ("Vertex OffsetY", float) = 0 + + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + _MaskSoftnessX ("Mask SoftnessX", float) = 0 + _MaskSoftnessY ("Mask SoftnessY", float) = 0 + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _ColorMask ("Color Mask", Float) = 15 + _ZWrite ("Depth Write", Float) = 0 +} + +SubShader { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + } + + + Stencil + { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull [_CullMode] + ZWrite[_ZWrite] + Lighting Off + Fog { Mode Off } + ZTest [unity_GUIZTestMode] + Blend One OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass { + CGPROGRAM + #pragma vertex VertShader + #pragma fragment PixShader + #pragma shader_feature __ OUTLINE_ON + #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + #pragma multi_compile __ _CLIPPING_PLANE _CLIPPING_SPHERE _CLIPPING_BOX + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "MixedRealityShaderUtils.cginc" + +#if defined(_CLIPPING_PLANE) || defined(_CLIPPING_SPHERE) || defined(_CLIPPING_BOX) + #define _CLIPPING_PRIMITIVE +#else + #undef _CLIPPING_PRIMITIVE +#endif + + // Direct include for portability. + //#include "TMPro_Properties.cginc" + // UI Editable properties + uniform sampler2D _FaceTex; // Alpha : Signed Distance + uniform float _FaceUVSpeedX; + uniform float _FaceUVSpeedY; + uniform fixed4 _FaceColor; // RGBA : Color + Opacity + uniform float _FaceDilate; // v[ 0, 1] + uniform float _OutlineSoftness; // v[ 0, 1] + + uniform sampler2D _OutlineTex; // RGBA : Color + Opacity + uniform float _OutlineUVSpeedX; + uniform float _OutlineUVSpeedY; + uniform fixed4 _OutlineColor; // RGBA : Color + Opacity + uniform float _OutlineWidth; // v[ 0, 1] + + uniform float _Bevel; // v[ 0, 1] + uniform float _BevelOffset; // v[-1, 1] + uniform float _BevelWidth; // v[-1, 1] + uniform float _BevelClamp; // v[ 0, 1] + uniform float _BevelRoundness; // v[ 0, 1] + + uniform sampler2D _BumpMap; // Normal map + uniform float _BumpOutline; // v[ 0, 1] + uniform float _BumpFace; // v[ 0, 1] + + uniform samplerCUBE _Cube; // Cube / sphere map + uniform fixed4 _ReflectFaceColor; // RGB intensity + uniform fixed4 _ReflectOutlineColor; + uniform float3 _EnvMatrixRotation; + uniform float4x4 _EnvMatrix; + + uniform fixed4 _SpecularColor; // RGB intensity + uniform float _LightAngle; // v[ 0,Tau] + uniform float _SpecularPower; // v[ 0, 1] + uniform float _Reflectivity; // v[ 5, 15] + uniform float _Diffuse; // v[ 0, 1] + uniform float _Ambient; // v[ 0, 1] + + uniform fixed4 _UnderlayColor; // RGBA : Color + Opacity + uniform float _UnderlayOffsetX; // v[-1, 1] + uniform float _UnderlayOffsetY; // v[-1, 1] + uniform float _UnderlayDilate; // v[-1, 1] + uniform float _UnderlaySoftness; // v[ 0, 1] + + uniform fixed4 _GlowColor; // RGBA : Color + Intensity + uniform float _GlowOffset; // v[-1, 1] + uniform float _GlowOuter; // v[ 0, 1] + uniform float _GlowInner; // v[ 0, 1] + uniform float _GlowPower; // v[ 1, 1/(1+4*4)] + + // API Editable properties + uniform float _ShaderFlags; + uniform float _WeightNormal; + uniform float _WeightBold; + + uniform float _ScaleRatioA; + uniform float _ScaleRatioB; + uniform float _ScaleRatioC; + + uniform float _VertexOffsetX; + uniform float _VertexOffsetY; + + uniform float _MaskID; + uniform sampler2D _MaskTex; + uniform float4 _MaskCoord; + uniform float4 _ClipRect; // bottom left(x,y) : top right(z,w) + + uniform float _MaskSoftnessX; + uniform float _MaskSoftnessY; + + // Font Atlas properties + uniform sampler2D _MainTex; + uniform float _TextureWidth; + uniform float _TextureHeight; + uniform float _GradientScale; + uniform float _ScaleX; + uniform float _ScaleY; + uniform float _PerspectiveFilter; + uniform float _Sharpness; + +#if defined(_CLIPPING_PLANE) + fixed _ClipPlaneSide; + float4 _ClipPlane; +#endif + +#if defined(_CLIPPING_SPHERE) + fixed _ClipSphereSide; + float4x4 _ClipSphereInverseTransform; +#endif + +#if defined(_CLIPPING_BOX) + fixed _ClipBoxSide; + float4x4 _ClipBoxInverseTransform; +#endif + + struct vertex_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + float4 vertex : POSITION; + float3 normal : NORMAL; + fixed4 color : COLOR; + float2 texcoord0 : TEXCOORD0; + float2 texcoord1 : TEXCOORD1; + }; + + struct pixel_t { + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + float4 vertex : SV_POSITION; + fixed4 faceColor : COLOR; + fixed4 outlineColor : COLOR1; + float4 texcoord0 : TEXCOORD0; // Texture UV, Mask UV + half4 param : TEXCOORD1; // Scale(x), BiasIn(y), BiasOut(z), Bias(w) + half4 mask : TEXCOORD2; // Position in clip space(xy), Softness(zw) + #if (UNDERLAY_ON | UNDERLAY_INNER) + float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved + half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y) + #endif +#if defined(_CLIPPING_PRIMITIVE) + float3 worldPosition : TEXCOORD5; +#endif + }; + + + pixel_t VertShader(vertex_t input) + { + pixel_t output; + + UNITY_INITIALIZE_OUTPUT(pixel_t, output); + UNITY_SETUP_INSTANCE_ID(input); + UNITY_TRANSFER_INSTANCE_ID(input, output); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + float bold = step(input.texcoord1.y, 0); + + float4 vert = input.vertex; + vert.x += _VertexOffsetX; + vert.y += _VertexOffsetY; + float4 vPosition = UnityObjectToClipPos(vert); + + float2 pixelSize = vPosition.w; + pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); + + float scale = rsqrt(dot(pixelSize, pixelSize)); + scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1); + if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); + + float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; + weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; + + float layerScale = scale; + + scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale); + float bias = (0.5 - weight) * scale - 0.5; + float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale; + + float opacity = input.color.a; + #if (UNDERLAY_ON | UNDERLAY_INNER) + opacity = 1.0; + #endif + + fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor; + faceColor.rgb *= faceColor.a; + + fixed4 outlineColor = _OutlineColor; + outlineColor.a *= opacity; + outlineColor.rgb *= outlineColor.a; + outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2)))); + + #if (UNDERLAY_ON | UNDERLAY_INNER) + layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale); + float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale); + + float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; + float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; + float2 layerOffset = float2(x, y); + #endif + + // Generate UV for the Masking Texture + float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); + float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); + + // Populate structure for pixel shader + output.vertex = vPosition; + output.faceColor = faceColor; + output.outlineColor = outlineColor; + output.texcoord0 = float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y); + output.param = half4(scale, bias - outline, bias + outline, bias); + output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); + #if (UNDERLAY_ON || UNDERLAY_INNER) + output.texcoord1 = float4(input.texcoord0 + layerOffset, input.color.a, 0); + output.underlayParam = half2(layerScale, layerBias); + #endif +#if defined(_CLIPPING_PRIMITIVE) + output.worldPosition = mul(unity_ObjectToWorld, vert).xyz; +#endif + + return output; + } + + + // PIXEL SHADER + fixed4 PixShader(pixel_t input) : SV_Target + { + UNITY_SETUP_INSTANCE_ID(input); + + half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x; + half4 c = input.faceColor * saturate(d - input.param.w); + + #ifdef OUTLINE_ON + c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z)); + c *= saturate(d - input.param.y); + #endif + + #if UNDERLAY_ON + d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; + c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a); + #endif + + #if UNDERLAY_INNER + half sd = saturate(d - input.param.z); + d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; + c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a); + #endif + + // Alternative implementation to UnityGet2DClipping with support for softness. + #if UNITY_UI_CLIP_RECT + half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); + c *= m.x * m.y; + #endif + + #if (UNDERLAY_ON | UNDERLAY_INNER) + c *= input.texcoord1.z; + #endif + + // Primitive clipping. +#if defined(_CLIPPING_PRIMITIVE) + float primitiveDistance = 1.0; +#if defined(_CLIPPING_PLANE) + primitiveDistance = min(primitiveDistance, PointVsPlane(input.worldPosition, _ClipPlane) * _ClipPlaneSide); +#endif +#if defined(_CLIPPING_SPHERE) + primitiveDistance = min(primitiveDistance, PointVsSphere(input.worldPosition, _ClipSphereInverseTransform) * _ClipSphereSide); +#endif +#if defined(_CLIPPING_BOX) + primitiveDistance = min(primitiveDistance, PointVsBox(input.worldPosition, _ClipBoxInverseTransform) * _ClipBoxSide); +#endif + c *= step(0.0, primitiveDistance); +#endif + + #if UNITY_UI_ALPHACLIP + clip(c.a - 0.001); + #endif + + return c; + } + ENDCG + } +} + +CustomEditor "Microsoft.MixedReality.Toolkit.Editor.MixedRealityTextMeshProShaderGUI" +} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshPro.shader.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshPro.shader.meta new file mode 100644 index 00000000..284d80fe --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshPro.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1c504b73bf66872479cd1215fb5ce0fe +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshProSprite.shader b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshProSprite.shader new file mode 100644 index 00000000..8aaa5411 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshProSprite.shader @@ -0,0 +1,184 @@ +// TextMesh Pro copyright © 2021 Unity Technologies ApS +// Licensed under the Unity Companion License for Unity-dependent projects--see http://www.unity3d.com/legal/licenses/Unity_Companion_License. +// Unless expressly provided otherwise, the Software under this license is made available strictly on an “AS IS” BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. Please review the license for details on these and other terms and conditions. + +// NOTE: MRTK Shaders are versioned via the MRTK.Shaders.sentinel file. +// When making changes to any shader's source file, the value in the sentinel _must_ be incremented. + +// Text Mesh Pro Sprite shader with MRTK Additions + +// MRTK Additions +// - Single Pass Instanced Stereo Rendering Support +// - Support for Clipping Primitives (Plane, Sphere, Box) +// - Added to MRTK namespace + +Shader "Mixed Reality Toolkit/TextMeshProSprite" { + +Properties { + _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + + _StencilComp ("Stencil Comparison", Float) = 8 + _Stencil ("Stencil ID", Float) = 0 + _StencilOp ("Stencil Operation", Float) = 0 + _StencilWriteMask ("Stencil Write Mask", Float) = 255 + _StencilReadMask ("Stencil Read Mask", Float) = 255 + + _CullMode ("Cull Mode", Float) = 0 + _ColorMask ("Color Mask", Float) = 15 + _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) + + [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 +} + +SubShader { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Stencil { + Ref [_Stencil] + Comp [_StencilComp] + Pass [_StencilOp] + ReadMask [_StencilReadMask] + WriteMask [_StencilWriteMask] + } + + Cull [_CullMode] + Lighting Off + ZWrite Off + ZTest [unity_GUIZTestMode] + Blend SrcAlpha OneMinusSrcAlpha + ColorMask [_ColorMask] + + Pass { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #pragma multi_compile __ UNITY_UI_CLIP_RECT + #pragma multi_compile __ UNITY_UI_ALPHACLIP + + #pragma multi_compile __ _CLIPPING_PLANE _CLIPPING_SPHERE _CLIPPING_BOX + + #include "UnityCG.cginc" + #include "UnityUI.cginc" + #include "MixedRealityShaderUtils.cginc" + +#if defined(_CLIPPING_PLANE) || defined(_CLIPPING_SPHERE) || defined(_CLIPPING_BOX) + #define _CLIPPING_PRIMITIVE +#else + #undef _CLIPPING_PRIMITIVE +#endif + +#if defined(_CLIPPING_PLANE) + fixed _ClipPlaneSide; + float4 _ClipPlane; +#endif + +#if defined(_CLIPPING_SPHERE) + fixed _ClipSphereSide; + float4x4 _ClipSphereInverseTransform; +#endif + +#if defined(_CLIPPING_BOX) + fixed _ClipBoxSide; + float4x4 _ClipBoxInverseTransform; +#endif + + uniform float _VertexOffsetX; + uniform float _VertexOffsetY; + + struct appdata_t { + + float4 vertex : POSITION; + float4 color : COLOR; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f { + + float4 vertex : SV_POSITION; + fixed4 color : COLOR; + half2 texcoord : TEXCOORD0; + float3 worldPosition : TEXCOORD1; + + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + }; + + fixed4 _Color; + fixed4 _TextureSampleAdd; + float4 _ClipRect; + + v2f vert(appdata_t IN) + { + v2f OUT; + + UNITY_SETUP_INSTANCE_ID(IN); + UNITY_TRANSFER_INSTANCE_ID(IN, OUT); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT); + + OUT.worldPosition = IN.vertex; + OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); + + OUT.texcoord = IN.texcoord; + + float4 vertin = IN.vertex; + vertin.x += _VertexOffsetX; + vertin.y += _VertexOffsetY; + float4 vPosition = UnityObjectToClipPos(vertin); + +#ifdef UNITY_HALF_TEXEL_OFFSET + OUT.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1); +#endif + + OUT.color = IN.color * _Color; +#if defined(_CLIPPING_PRIMITIVE) + OUT.worldPosition = mul(unity_ObjectToWorld, vertin).xyz; +#endif + + return OUT; + } + + sampler2D _MainTex; + + fixed4 frag(v2f IN) : SV_Target + { + half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; + +#if UNITY_UI_CLIP_RECT + color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); +#endif + + // Primitive clipping. +#if defined(_CLIPPING_PRIMITIVE) + float primitiveDistance = 1.0; +#if defined(_CLIPPING_PLANE) + primitiveDistance = min(primitiveDistance, PointVsPlane(IN.worldPosition, _ClipPlane) * _ClipPlaneSide); +#endif +#if defined(_CLIPPING_SPHERE) + primitiveDistance = min(primitiveDistance, PointVsSphere(IN.worldPosition, _ClipSphereInverseTransform) * _ClipSphereSide); +#endif +#if defined(_CLIPPING_BOX) + primitiveDistance = min(primitiveDistance, PointVsBox(IN.worldPosition, _ClipBoxInverseTransform) * _ClipBoxSide); +#endif + color *= step(0.0, primitiveDistance); +#endif + +#ifdef UNITY_UI_ALPHACLIP + clip (color.a - 0.001); +#endif + + return color; + } + ENDCG + } + } +} \ No newline at end of file diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshProSprite.shader.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshProSprite.shader.meta new file mode 100644 index 00000000..b76d3b66 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/MixedRealityTextMeshProSprite.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f11fd341db238f342a8b36d23162d67a +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/Text3DShader.shader b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/Text3DShader.shader new file mode 100644 index 00000000..a89716fe --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/Text3DShader.shader @@ -0,0 +1,180 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +// NOTE: MRTK Shaders are versioned via the MRTK.Shaders.sentinel file. +// When making changes to any shader's source file, the value in the sentinel _must_ be incremented. + +/// +/// Basic 3D TextMesh shader with proper z-sorting and culling options. +/// +Shader "Mixed Reality Toolkit/Text3DShader" +{ + Properties + { + _MainTex("Alpha (A)", 2D) = "white" {} + [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 0 + + [HideInInspector] _Color("Main Color", Color) = (1,1,1,1) + [HideInInspector] _StencilComp("Stencil Comparison", Float) = 8 + [HideInInspector] _Stencil("Stencil ID", Float) = 0 + [HideInInspector] _StencilOp("Stencil Operation", Float) = 0 + [HideInInspector] _StencilWriteMask("Stencil Write Mask", Float) = 255 + [HideInInspector] _StencilReadMask("Stencil Read Mask", Float) = 255 + [HideInInspector] _ColorMask("Color Mask", Float) = 15 + } + + SubShader + { + LOD 200 + + Tags + { + "Queue" = "Transparent" + "IgnoreProjector" = "True" + "RenderType" = "Transparent" + "PreviewType" = "Plane" + } + + Stencil + { + Ref[_Stencil] + Comp[_StencilComp] + Pass[_StencilOp] + ReadMask[_StencilReadMask] + WriteMask[_StencilWriteMask] + } + + Cull[_Cull] + Lighting Off + ZWrite On + ZTest[unity_GUIZTestMode] + Offset -1, -1 + Fog { Mode Off } + Blend SrcAlpha OneMinusSrcAlpha + ColorMask[_ColorMask] + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #pragma multi_compile_instancing + + #pragma multi_compile __ _CLIPPING_PLANE _CLIPPING_SPHERE _CLIPPING_BOX + + #if defined(_CLIPPING_PLANE) || defined(_CLIPPING_SPHERE) || defined(_CLIPPING_BOX) + #define _CLIPPING_PRIMITIVE + #else + #undef _CLIPPING_PRIMITIVE + #endif + + #include "UnityCG.cginc" + #include "MixedRealityShaderUtils.cginc" + + struct appdata_t + { + float4 vertex : POSITION; + half4 color : COLOR; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + float4 vertex : POSITION; + half4 color : COLOR; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + UNITY_VERTEX_OUTPUT_STEREO + + #if defined(_CLIPPING_PRIMITIVE) + float3 worldPosition : TEXCOORD5; + #endif + }; + + + sampler2D _MainTex; + float4 _MainTex_ST; + + UNITY_INSTANCING_BUFFER_START(Props) + UNITY_DEFINE_INSTANCED_PROP(fixed4, _Color) + + #if defined(_CLIPPING_PLANE) + UNITY_DEFINE_INSTANCED_PROP(fixed, _ClipPlaneSide) + UNITY_DEFINE_INSTANCED_PROP(float4, _ClipPlane) + #endif + + #if defined(_CLIPPING_SPHERE) + UNITY_DEFINE_INSTANCED_PROP(fixed, _ClipSphereSide) + UNITY_DEFINE_INSTANCED_PROP(float4x4, _ClipSphereInverseTransform) + #endif + + #if defined(_CLIPPING_BOX) + UNITY_DEFINE_INSTANCED_PROP(fixed, _ClipBoxSide) + UNITY_DEFINE_INSTANCED_PROP(float4x4, _ClipBoxInverseTransform) + #endif + + UNITY_INSTANCING_BUFFER_END(Props) + + v2f vert(appdata_t v) + { + v2f o; + + UNITY_SETUP_INSTANCE_ID(v); + UNITY_TRANSFER_INSTANCE_ID(v, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + o.vertex = UnityObjectToClipPos(v.vertex); + o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); + o.color = v.color; + + #ifdef UNITY_HALF_TEXEL_OFFSET + o.vertex.xy += (_ScreenParams.zw - 1.0)*float2(-1,1); + #endif + + #if defined(_CLIPPING_PRIMITIVE) + o.worldPosition = mul(unity_ObjectToWorld, v.vertex).xyz; + #endif + + return o; + } + + half4 frag(v2f i) : COLOR + { + UNITY_SETUP_INSTANCE_ID(i); + + half4 col = i.color; + col.a *= tex2D(_MainTex, i.texcoord).a; + col = col * UNITY_ACCESS_INSTANCED_PROP(Props, _Color); + + // Primitive clipping. + #if defined(_CLIPPING_PRIMITIVE) + float primitiveDistance = 1.0; + #if defined(_CLIPPING_PLANE) + fixed clipPlaneSide = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipPlaneSide); + float4 clipPlane = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipPlane); + primitiveDistance = min(primitiveDistance, PointVsPlane(i.worldPosition.xyz, clipPlane) * clipPlaneSide); + #endif + #if defined(_CLIPPING_SPHERE) + fixed clipSphereSide = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipSphereSide); + float4x4 clipSphereInverseTransform = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipSphereInverseTransform); + primitiveDistance = min(primitiveDistance, PointVsSphere(i.worldPosition.xyz, clipSphereInverseTransform) * clipSphereSide); + #endif + #if defined(_CLIPPING_BOX) + fixed clipBoxSide = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipBoxSide); + float4x4 clipBoxInverseTransform = UNITY_ACCESS_INSTANCED_PROP(Props, _ClipBoxInverseTransform); + primitiveDistance = min(primitiveDistance, PointVsBox(i.worldPosition.xyz, clipBoxInverseTransform) * clipBoxSide); + #endif + col *= step(0.0, primitiveDistance); + #endif + + clip(col.a - 0.01); + + return col; + } + ENDCG + } + } + CustomEditor "Microsoft.MixedReality.Toolkit.Editor.Text3DShaderGUI" +} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/Text3DShader.shader.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/Text3DShader.shader.meta new file mode 100644 index 00000000..f17c4480 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/MRTK/Shaders/Text3DShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 80c006b91733f1a4991c49af89321ecd +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes.meta new file mode 100644 index 00000000..83c741b2 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ea315d0fd7389c41b19996891e99ae3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes/SampleScene.unity b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes/SampleScene.unity new file mode 100644 index 00000000..56f578f6 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes/SampleScene.unity @@ -0,0 +1,1796 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 705507994} + m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 500 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 2 + m_PVRDenoiserTypeDirect: 0 + m_PVRDenoiserTypeIndirect: 0 + m_PVRDenoiserTypeAO: 0 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &97853868 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 97853871} + - component: {fileID: 97853870} + - component: {fileID: 97853869} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &97853869 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97853868} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &97853870 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97853868} + m_CullTransparentMesh: 1 +--- !u!224 &97853871 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 97853868} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 143832582} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &143832581 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 143832582} + - component: {fileID: 143832583} + m_Layer: 5 + m_Name: Text Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &143832582 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143832581} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1895741750} + - {fileID: 97853871} + m_Father: {fileID: 1187233980} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &143832583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 143832581} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} +--- !u!1 &165517764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 165517765} + - component: {fileID: 165517767} + - component: {fileID: 165517766} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &165517765 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 165517764} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2092252165} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &165517766 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 165517764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Back + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &165517767 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 165517764} + m_CullTransparentMesh: 1 +--- !u!1 &340263450 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 340263451} + m_Layer: 0 + m_Name: MixedRealityPlayspace + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &340263451 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 340263450} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 963194228} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &705507993 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 705507995} + - component: {fileID: 705507994} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &705507994 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705507993} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &705507995 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 705507993} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &713828071 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 713828073} + - component: {fileID: 713828072} + m_Layer: 0 + m_Name: MixedRealityToolkit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &713828072 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 713828071} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 83d9acc7968244a8886f3af591305bcb, type: 3} + m_Name: + m_EditorClassIdentifier: + activeProfile: {fileID: 11400000, guid: 7e7c962b9eb9dfa44993d5b2f2576752, type: 2} +--- !u!4 &713828073 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 713828071} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &963194225 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 963194228} + - component: {fileID: 963194227} + - component: {fileID: 963194226} + - component: {fileID: 963194231} + - component: {fileID: 963194230} + - component: {fileID: 963194229} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &963194226 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + m_Enabled: 1 +--- !u!20 &963194227 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.1 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &963194228 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 340263451} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &963194229 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf98dd1206224111a38765365e98e207, type: 3} + m_Name: + m_EditorClassIdentifier: + lockCursorWhenFocusLocked: 1 + setCursorInvisibleWhenFocusLocked: 0 + maxGazeCollisionDistance: 10 + raycastLayerMasks: + - serializedVersion: 2 + m_Bits: 4294967291 + stabilizer: + storedStabilitySamples: 60 + gazeTransform: {fileID: 0} + minHeadVelocityThreshold: 0.5 + maxHeadVelocityThreshold: 2 +--- !u!114 &963194230 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a21b486d0bb44444b1418aaa38b44de, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &963194231 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 963194225} + 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!1 &1054508622 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1054508623} + - component: {fileID: 1054508626} + - component: {fileID: 1054508625} + - component: {fileID: 1054508624} + - component: {fileID: 1054508628} + - component: {fileID: 1054508627} + - component: {fileID: 1054508629} + - component: {fileID: 1054508631} + - component: {fileID: 1054508630} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1054508623 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054508622} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1.5} + m_LocalScale: {x: 0.001, y: 0.001, z: 0.001} + m_Children: + - {fileID: 1187233980} + - {fileID: 2092252165} + - {fileID: 1306366453} + - {fileID: 2082689488} + m_Father: {fileID: 1649518285} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 600, y: 400} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1054508624 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054508622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1054508625 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054508622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 1 +--- !u!223 &1054508626 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054508622} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 2 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &1054508627 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054508622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.589771, g: 0.61052746, b: 0.6603774, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1054508628 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054508622} + m_CullTransparentMesh: 1 +--- !u!114 &1054508629 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054508622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6df61a9a13528fd4f9365c233cb23bfb, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RaycastTriggerInteraction: 1 + m_EventMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_MaxRayIntersections: 10 + m_EventCamera: {fileID: 0} +--- !u!114 &1054508630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054508622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fcaf896491074042b7ed7684454a412, type: 3} + m_Name: + m_EditorClassIdentifier: + eventsToReceive: 0 + debounceThreshold: 0.01 +--- !u!114 &1054508631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054508622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff4e3b9019304b5aaec5664de0778d21, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1184828600 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1054508623} + m_Modifications: + - target: {fileID: 2311476450002457713, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_Name + value: WebView + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalScale.x + value: 570 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalScale.y + value: 340 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalPosition.y + value: -16 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalPosition.z + value: -5 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} +--- !u!1 &1187233976 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1187233980} + - component: {fileID: 1187233979} + - component: {fileID: 1187233978} + - component: {fileID: 1187233977} + m_Layer: 5 + m_Name: AddressField (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1187233977 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187233976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1187233978} + m_TextViewport: {fileID: 143832582} + m_TextComponent: {fileID: 97853869} + m_Placeholder: {fileID: 1895741747} + m_VerticalScrollbar: {fileID: 0} + m_VerticalScrollbarEventHandler: {fileID: 0} + m_LayoutGroup: {fileID: 0} + m_ScrollSensitivity: 1 + m_ContentType: 0 + m_InputType: 0 + m_AsteriskChar: 42 + m_KeyboardType: 0 + m_LineType: 0 + m_HideMobileInput: 0 + m_HideSoftKeyboard: 0 + m_CharacterValidation: 0 + m_RegexValue: + m_GlobalPointSize: 14 + m_CharacterLimit: 0 + m_OnEndEdit: + m_PersistentCalls: + m_Calls: [] + m_OnSubmit: + m_PersistentCalls: + m_Calls: [] + m_OnSelect: + m_PersistentCalls: + m_Calls: [] + m_OnDeselect: + m_PersistentCalls: + m_Calls: [] + m_OnTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnEndTextSelection: + m_PersistentCalls: + m_Calls: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_OnTouchScreenKeyboardStatusChanged: + m_PersistentCalls: + m_Calls: [] + m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_CustomCaretColor: 0 + m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} + m_Text: + m_CaretBlinkRate: 0.85 + m_CaretWidth: 1 + m_ReadOnly: 0 + m_RichText: 1 + m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_OnFocusSelectAll: 1 + m_ResetOnDeActivation: 1 + m_RestoreOriginalTextOnEscape: 1 + m_isRichTextEditingAllowed: 0 + m_LineLimit: 0 + m_InputValidator: {fileID: 0} +--- !u!114 &1187233978 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187233976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1187233979 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187233976} + m_CullTransparentMesh: 1 +--- !u!224 &1187233980 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1187233976} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 143832582} + m_Father: {fileID: 1054508623} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -2, y: 178} + m_SizeDelta: {x: 390, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1306366452 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1306366453} + - component: {fileID: 1306366456} + - component: {fileID: 1306366455} + - component: {fileID: 1306366454} + m_Layer: 5 + m_Name: Go Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1306366453 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1306366452} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1959170144} + m_Father: {fileID: 1054508623} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 242, y: 178} + m_SizeDelta: {x: 75, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1306366454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1306366452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1306366455} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1306366455 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1306366452} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1306366456 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1306366452} + m_CullTransparentMesh: 1 +--- !u!1 &1649518283 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1649518285} + - component: {fileID: 1649518284} + m_Layer: 0 + m_Name: MixedRealitySceneContent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1649518284 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1649518283} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c65c9dd2f312b8d41b8849d58e1053fa, type: 3} + m_Name: + m_EditorClassIdentifier: + alignmentType: 0 + containerObject: {fileID: 0} +--- !u!4 &1649518285 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1649518283} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1054508623} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1895741746 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1895741750} + - component: {fileID: 1895741749} + - component: {fileID: 1895741747} + - component: {fileID: 1895741748} + m_Layer: 5 + m_Name: Placeholder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1895741747 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1895741746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Enter text... + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 2150773298 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 2 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &1895741748 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1895741746} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!222 &1895741749 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1895741746} + m_CullTransparentMesh: 1 +--- !u!224 &1895741750 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1895741746} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 143832582} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1959170143 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1959170144} + - component: {fileID: 1959170146} + - component: {fileID: 1959170145} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1959170144 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1959170143} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1306366453} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1959170145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1959170143} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Go + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1959170146 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1959170143} + m_CullTransparentMesh: 1 +--- !u!1 &2082689487 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2311476450002457713, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + m_PrefabInstance: {fileID: 1184828600} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2082689488 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3231283774461358941, guid: 4410a2a17e71713438d8cf4ebc93d9a4, type: 3} + m_PrefabInstance: {fileID: 1184828600} + m_PrefabAsset: {fileID: 0} +--- !u!114 &2082689493 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2082689487} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9fdbada398537b44394e6233549c6146, type: 3} + m_Name: + m_EditorClassIdentifier: + BackButton: {fileID: 2092252166} + GoButton: {fileID: 1306366454} + URLField: {fileID: 1187233977} +--- !u!1 &2092252164 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2092252165} + - component: {fileID: 2092252168} + - component: {fileID: 2092252167} + - component: {fileID: 2092252166} + m_Layer: 5 + m_Name: Back Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2092252165 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2092252164} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 165517765} + m_Father: {fileID: 1054508623} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -248, y: 178} + m_SizeDelta: {x: 75, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2092252166 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2092252164} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2092252167} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &2092252167 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2092252164} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2092252168 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2092252164} + m_CullTransparentMesh: 1 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes/SampleScene.unity.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 00000000..952bd1e9 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9fc0d4010bbf28b4594072e72b8655ab +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/WebViewBrowser.cs b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/WebViewBrowser.cs new file mode 100644 index 00000000..04466d45 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/WebViewBrowser.cs @@ -0,0 +1,55 @@ +using Microsoft.MixedReality.WebView; +using UnityEngine.UI; +using UnityEngine; +using TMPro; +using System; + +public class WebViewBrowser : MonoBehaviour +{ + // Declare UI elements: back button, go button, and URL input field + public Button BackButton; + public Button GoButton; + public TMP_InputField URLField; + + private void Start() + { + // Get the WebView component attached to the game object + var webViewComponent = gameObject.GetComponent(); + webViewComponent.GetWebViewWhenReady((IWebView webView) => + { + // If the WebView supports browser history, enable the back button + if (webView is IWithBrowserHistory history) + { + // Add an event listener for the back button to navigate back in history + BackButton.onClick.AddListener(() => history.GoBack()); + + // Update the back button's enabled state based on whether there's any history to go back to + history.CanGoBackUpdated += CanGoBack; + } + + // Add an event listener for the go button to load the URL entered in the input field + GoButton.onClick.AddListener(() => webView.Load(new Uri(URLField.text))); + + // Subscribe to the Navigated event to update the URL input field whenever a navigation occurs + webView.Navigated += OnNavigated; + + // Set the initial value of the URL input field to the current URL of the WebView + if (webView.Page != null) + { + URLField.text = webView.Page.AbsoluteUri; + } + }); + } + + // Update the URL input field with the new path after navigation + private void OnNavigated(string path) + { + URLField.text = path; + } + + // Enable or disable the back button based on whether there's any history to go back to + private void CanGoBack(bool value) + { + BackButton.enabled = value; + } +} \ No newline at end of file diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/WebViewBrowser.cs.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/WebViewBrowser.cs.meta new file mode 100644 index 00000000..5b786265 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/WebViewBrowser.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9fdbada398537b44394e6233549c6146 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR.meta new file mode 100644 index 00000000..f87eb8e5 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 42093a716ec518641a9ae93aa9b3f0fa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders.meta new file mode 100644 index 00000000..b901710b --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dc4ab6a9227501d47bfadcf341e33fed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders/Open XR Loader.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders/Open XR Loader.asset new file mode 100644 index 00000000..15d4498d --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders/Open XR Loader.asset @@ -0,0 +1,14 @@ +%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: d3552e428dc7646a88de3ed3650f87da, type: 3} + m_Name: Open XR Loader + m_EditorClassIdentifier: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders/Open XR Loader.asset.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders/Open XR Loader.asset.meta new file mode 100644 index 00000000..07912dfa --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Loaders/Open XR Loader.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 262e76e0ccf9dfd478466f1e6471f743 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings.meta new file mode 100644 index 00000000..70f917a6 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b3adff16c52aac149af2a2eb342b4203 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Editor Settings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Editor Settings.asset new file mode 100644 index 00000000..d06efa58 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Editor Settings.asset @@ -0,0 +1,20 @@ +%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: 975057b4fdcfb8142b3080d19a5cc712, type: 3} + m_Name: OpenXR Editor Settings + m_EditorClassIdentifier: + Keys: 010000000e000000 + Values: + - featureSets: + - com.microsoft.openxr.featureset.wmr + - featureSets: + - com.microsoft.openxr.featureset.hololens diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Editor Settings.asset.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Editor Settings.asset.meta new file mode 100644 index 00000000..2ed1d1cf --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Editor Settings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a141cb325af82a944a847907c601b6e9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Package Settings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Package Settings.asset new file mode 100644 index 00000000..1b1c4576 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Package Settings.asset @@ -0,0 +1,752 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-9156128087838353666 +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: 2d2e2731103cdda44af77955a0b4814c, type: 3} + m_Name: AppRemotingPlugin WSA + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Holographic Remoting remote app + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.appremoting + openxrExtensionStrings: XR_MSFT_holographic_remoting XR_MSFT_holographic_remoting_speech + company: Microsoft + priority: -100 + required: 0 +--- !u!114 &-8791073877347979526 +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: 3482401f887b8864183e401715462f46, type: 3} + m_Name: HPMixedRealityControllerProfile Standalone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: HP Reverb G2 Controller Profile + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.interaction.hpmixedrealitycontroller + openxrExtensionStrings: XR_EXT_hp_mixed_reality_controller + company: Microsoft + priority: 0 + required: 0 +--- !u!114 &-8320375554670759756 +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 WSA + 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 + required: 0 +--- !u!114 &-8234964549452783826 +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: 2d2e2731103cdda44af77955a0b4814c, type: 3} + m_Name: AppRemotingPlugin Standalone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Holographic Remoting remote app + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.appremoting + openxrExtensionStrings: XR_MSFT_holographic_remoting XR_MSFT_holographic_remoting_speech + company: Microsoft + priority: -100 + required: 0 +--- !u!114 &-6046135081374806543 +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: 0c8f1ce8139888c4ab621f6b3c8bb558, type: 3} + m_Name: MotionControllerFeaturePlugin Standalone + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: Motion Controller Model + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.controller + openxrExtensionStrings: XR_MSFT_controller_model XR_FB_render_model + company: Microsoft + priority: 0 + required: 0 +--- !u!114 &-5281385832365046672 +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: WSA + m_EditorClassIdentifier: + features: + - {fileID: -9156128087838353666} + - {fileID: 3509922356019969242} + - {fileID: -2579591891406222725} + - {fileID: 2236953091096034020} + - {fileID: 4108757663332930139} + - {fileID: 3944210153470645160} + - {fileID: -3558160564479299438} + - {fileID: -4324672991276254832} + - {fileID: -8320375554670759756} + - {fileID: 5540693242641560659} + - {fileID: -2857303689053143175} + - {fileID: 6203936439530748652} + - {fileID: -3643824036258635872} + - {fileID: 8943490906109707154} + - {fileID: -2453136439990797807} + m_renderMode: 1 + m_depthSubmissionMode: 1 +--- !u!114 &-4324672991276254832 +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 WSA + 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 &-3643824036258635872 +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 WSA + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Oculus Touch Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.oculustouch + openxrExtensionStrings: + company: Unity + priority: 0 + required: 0 +--- !u!114 &-3572279281362214239 +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: 7de993716e042c6499d0c18eed3a773c, type: 3} + m_Name: MockRuntime 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 + company: Unity + priority: 0 + required: 0 + ignoreValidationErrors: 0 +--- !u!114 &-3558160564479299438 +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: 0f6bfdbcb316ed242b30a8798c9eb853, type: 3} + m_Name: KHRSimpleControllerProfile WSA + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Khronos Simple Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.khrsimpleprofile + openxrExtensionStrings: + company: Unity + priority: 0 + required: 0 +--- !u!114 &-3532219198906828149 +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 &-3291161241438317336 +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: 0f6bfdbcb316ed242b30a8798c9eb853, type: 3} + m_Name: KHRSimpleControllerProfile Standalone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Khronos Simple Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.khrsimpleprofile + openxrExtensionStrings: + company: Unity + priority: 0 + required: 0 +--- !u!114 &-3222691064925498647 +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: 3f8ec2975f18d5e479159feb34b4dc86, type: 3} + m_Name: MixedRealityFeaturePlugin Standalone + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: Mixed Reality Features + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.hololens + openxrExtensionStrings: XR_MSFT_holographic_window_attachment XR_KHR_win32_convert_performance_counter_time + XR_MSFT_unbounded_reference_space XR_MSFT_spatial_anchor XR_MSFT_secondary_view_configuration + XR_MSFT_first_person_observer XR_MSFT_spatial_graph_bridge XR_MSFT_perception_anchor_interop + XR_MSFT_spatial_anchor_persistence XR_MSFT_scene_understanding XR_MSFT_scene_understanding_serialization + XR_MSFT_spatial_anchor_export_preview XR_MSFT_composition_layer_reprojection + company: Microsoft + priority: 0 + required: 1 + disableFirstPersonObserver: 0 + enablePoseUpdateOnBeforeRender: 0 + validationRuleTarget: 0 +--- !u!114 &-3146378018228042552 +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 Standalone + m_EditorClassIdentifier: + m_enabled: 1 + 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 &-2857303689053143175 +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: 3f8ec2975f18d5e479159feb34b4dc86, type: 3} + m_Name: MixedRealityFeaturePlugin WSA + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: Mixed Reality Features + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.hololens + openxrExtensionStrings: XR_MSFT_holographic_window_attachment XR_KHR_win32_convert_performance_counter_time + XR_MSFT_unbounded_reference_space XR_MSFT_spatial_anchor XR_MSFT_secondary_view_configuration + XR_MSFT_first_person_observer XR_MSFT_spatial_graph_bridge XR_MSFT_perception_anchor_interop + XR_MSFT_spatial_anchor_persistence XR_MSFT_scene_understanding XR_MSFT_scene_understanding_serialization + XR_MSFT_spatial_anchor_export_preview XR_MSFT_composition_layer_reprojection + company: Microsoft + priority: 0 + required: 1 + disableFirstPersonObserver: 0 + enablePoseUpdateOnBeforeRender: 0 + validationRuleTarget: 1 +--- !u!114 &-2579591891406222725 +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 WSA + m_EditorClassIdentifier: + m_enabled: 1 + 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 &-2453136439990797807 +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: 0d6ccd3d0ef0f1d458e69421dccbdae1, type: 3} + m_Name: ValveIndexControllerProfile WSA + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Valve Index Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.valveindex + openxrExtensionStrings: + company: Unity + priority: 0 + required: 0 +--- !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: 9f0ebc320a151d3408ea1e9fce54d40e, type: 3} + m_Name: OpenXR Package Settings + m_EditorClassIdentifier: + Keys: 010000000e000000 + Values: + - {fileID: 5469543864881237022} + - {fileID: -5281385832365046672} +--- !u!114 &1560007936489684005 +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: 0 + nameUi: Oculus Touch Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.oculustouch + openxrExtensionStrings: + company: Unity + priority: 0 + required: 0 +--- !u!114 &1822772621369869403 +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: 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 + required: 0 +--- !u!114 &2236953091096034020 +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: c79c911b38743a649b1c1eddb5097202, type: 3} + m_Name: HandTrackingFeaturePlugin WSA + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: Hand Tracking + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.handtracking + openxrExtensionStrings: XR_EXT_hand_tracking XR_EXT_hand_joints_motion_range XR_MSFT_hand_tracking_mesh + company: Microsoft + priority: 0 + required: 0 + leftHandTrackingOptions: + motionRange: 0 + rightHandTrackingOptions: + motionRange: 0 +--- !u!114 &2692585085645271422 +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: 0d6ccd3d0ef0f1d458e69421dccbdae1, type: 3} + m_Name: ValveIndexControllerProfile Standalone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Valve Index Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.valveindex + openxrExtensionStrings: + company: Unity + priority: 0 + required: 0 +--- !u!114 &3094208498748100248 +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: 486b5e28864f9a94b979b9620ce5006d, type: 3} + m_Name: ConformanceAutomationFeature Standalone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Conformance Automation + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.conformance + openxrExtensionStrings: XR_EXT_conformance_automation + company: Unity + priority: 0 + required: 0 +--- !u!114 &3371921894632598856 +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: 761fdd4502cb7a84e9ec7a2b24f33f37, type: 3} + m_Name: MicrosoftMotionControllerProfile Standalone + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: Microsoft Motion Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.microsoftmotioncontroller + openxrExtensionStrings: + company: Unity + priority: 0 + required: 0 +--- !u!114 &3509922356019969242 +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: 486b5e28864f9a94b979b9620ce5006d, type: 3} + m_Name: ConformanceAutomationFeature WSA + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Conformance Automation + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.conformance + openxrExtensionStrings: XR_EXT_conformance_automation + company: Unity + priority: 0 + required: 0 +--- !u!114 &3944210153470645160 +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 WSA + m_EditorClassIdentifier: + m_enabled: 0 + 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 &4108757663332930139 +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: 3482401f887b8864183e401715462f46, type: 3} + m_Name: HPMixedRealityControllerProfile WSA + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: HP Reverb G2 Controller Profile + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.interaction.hpmixedrealitycontroller + openxrExtensionStrings: XR_EXT_hp_mixed_reality_controller + company: Microsoft + priority: 0 + required: 0 +--- !u!114 &5044288477980273724 +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: 0 + 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 &5469543864881237022 +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: Standalone + m_EditorClassIdentifier: + features: + - {fileID: -8234964549452783826} + - {fileID: 3094208498748100248} + - {fileID: -3146378018228042552} + - {fileID: 7802046322106018668} + - {fileID: -8791073877347979526} + - {fileID: 5044288477980273724} + - {fileID: -3291161241438317336} + - {fileID: 6771435445132617576} + - {fileID: 1822772621369869403} + - {fileID: 3371921894632598856} + - {fileID: -3222691064925498647} + - {fileID: -3572279281362214239} + - {fileID: -6046135081374806543} + - {fileID: 1560007936489684005} + - {fileID: 8183488771817893027} + - {fileID: -3532219198906828149} + - {fileID: 2692585085645271422} + m_renderMode: 1 + m_depthSubmissionMode: 0 +--- !u!114 &5540693242641560659 +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: 761fdd4502cb7a84e9ec7a2b24f33f37, type: 3} + m_Name: MicrosoftMotionControllerProfile WSA + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: Microsoft Motion Controller Profile + version: 0.0.1 + featureIdInternal: com.unity.openxr.feature.input.microsoftmotioncontroller + openxrExtensionStrings: + company: Unity + priority: 0 + required: 0 +--- !u!114 &6203936439530748652 +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: 0c8f1ce8139888c4ab621f6b3c8bb558, type: 3} + m_Name: MotionControllerFeaturePlugin WSA + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: Motion Controller Model + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.controller + openxrExtensionStrings: XR_MSFT_controller_model XR_FB_render_model + company: Microsoft + priority: 0 + required: 0 +--- !u!114 &6771435445132617576 +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 Standalone + 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 &7802046322106018668 +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: c79c911b38743a649b1c1eddb5097202, type: 3} + m_Name: HandTrackingFeaturePlugin Standalone + m_EditorClassIdentifier: + m_enabled: 1 + nameUi: Hand Tracking + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.handtracking + openxrExtensionStrings: XR_EXT_hand_tracking XR_EXT_hand_joints_motion_range XR_MSFT_hand_tracking_mesh + company: Microsoft + priority: 0 + required: 0 + leftHandTrackingOptions: + motionRange: 0 + rightHandTrackingOptions: + motionRange: 0 +--- !u!114 &8183488771817893027 +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: 9f34c86d1a130cc45a438373e1e8a4fc, type: 3} + m_Name: PlayModeRemotingPlugin Standalone + m_EditorClassIdentifier: + m_enabled: 0 + nameUi: Holographic Remoting for Play Mode + version: 1.8.0 + featureIdInternal: com.microsoft.openxr.feature.playmoderemoting + openxrExtensionStrings: XR_MSFT_holographic_remoting XR_MSFT_holographic_remoting_speech + company: Microsoft + priority: -100 + required: 0 + m_remoteHostName: + m_remoteHostPort: 8265 + m_maxBitrate: 20000 + m_videoCodec: 0 + m_enableAudio: 0 +--- !u!114 &8943490906109707154 +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 WSA + 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 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Package Settings.asset.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Package Settings.asset.meta new file mode 100644 index 00000000..f38e916b --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/Settings/OpenXR Package Settings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 541a1cf0c39d86043af97cfb801628fd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/XRGeneralSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/XRGeneralSettings.asset new file mode 100644 index 00000000..1046688d --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/XRGeneralSettings.asset @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5444848369939482447 +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: d236b7d11115f2143951f1e14045df39, type: 3} + m_Name: WSA Settings + m_EditorClassIdentifier: + m_LoaderManagerInstance: {fileID: -3196427664074929696} + m_InitManagerOnStart: 1 +--- !u!114 &-3196427664074929696 +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: f4c3631f5e58749a59194e0cf6baf6d5, type: 3} + m_Name: WSA Providers + m_EditorClassIdentifier: + m_RequiresSettingsUpdate: 0 + m_AutomaticLoading: 0 + m_AutomaticRunning: 0 + m_Loaders: + - {fileID: 11400000, guid: 262e76e0ccf9dfd478466f1e6471f743, type: 2} +--- !u!114 &-303432232004269184 +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: f4c3631f5e58749a59194e0cf6baf6d5, type: 3} + m_Name: Standalone Providers + m_EditorClassIdentifier: + m_RequiresSettingsUpdate: 0 + m_AutomaticLoading: 0 + m_AutomaticRunning: 0 + m_Loaders: + - {fileID: 11400000, guid: 262e76e0ccf9dfd478466f1e6471f743, type: 2} +--- !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: d2dc886499c26824283350fa532d087d, type: 3} + m_Name: XRGeneralSettings + m_EditorClassIdentifier: + Keys: 010000000e000000 + Values: + - {fileID: 6284999351924105525} + - {fileID: -5444848369939482447} +--- !u!114 &6284999351924105525 +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: d236b7d11115f2143951f1e14045df39, type: 3} + m_Name: Standalone Settings + m_EditorClassIdentifier: + m_LoaderManagerInstance: {fileID: -303432232004269184} + m_InitManagerOnStart: 1 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/XRGeneralSettings.asset.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/XRGeneralSettings.asset.meta new file mode 100644 index 00000000..be5a1f0d --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XR/XRGeneralSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 25312d4015a310f499767577dc2d8b23 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI.meta new file mode 100644 index 00000000..3af897f4 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 40fa1b7b9a81718498fefa8eac944707 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings.meta new file mode 100644 index 00000000..96175ce8 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7193ce3b14052c41b52154ff924ebc8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources.meta new file mode 100644 index 00000000..579654c8 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce10c6a2c8cf55b41a654a1041d2306a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/InteractionLayerSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/InteractionLayerSettings.asset new file mode 100644 index 00000000..3f314b5d --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/InteractionLayerSettings.asset @@ -0,0 +1,47 @@ +%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: 191492db6e452eb468b95433ec162164, type: 3} + m_Name: InteractionLayerSettings + m_EditorClassIdentifier: + m_LayerNames: + - Default + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/InteractionLayerSettings.asset.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/InteractionLayerSettings.asset.meta new file mode 100644 index 00000000..7dccc052 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/InteractionLayerSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3e0990ce069a176488c19380d6da111a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/XRDeviceSimulatorSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/XRDeviceSimulatorSettings.asset new file mode 100644 index 00000000..7466a7d1 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/XRDeviceSimulatorSettings.asset @@ -0,0 +1,16 @@ +%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: 690929a59dc7a42da9030305190d391f, type: 3} + m_Name: XRDeviceSimulatorSettings + m_EditorClassIdentifier: + m_AutomaticallyInstantiateSimulatorPrefab: 0 + m_SimulatorPrefab: {fileID: 0} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/XRDeviceSimulatorSettings.asset.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/XRDeviceSimulatorSettings.asset.meta new file mode 100644 index 00000000..7ed0a02c --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/Resources/XRDeviceSimulatorSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f994e6ea9c904c41b88cdf098587bf3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/XRInteractionEditorSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/XRInteractionEditorSettings.asset new file mode 100644 index 00000000..529491b4 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/XRInteractionEditorSettings.asset @@ -0,0 +1,16 @@ +%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: 2d38fb1463c5c804b8847c20e8873623, type: 3} + m_Name: XRInteractionEditorSettings + m_EditorClassIdentifier: + m_InteractionLayerUpdaterShown: 1 + m_ShowOldInteractionLayerMaskInInspector: 0 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/XRInteractionEditorSettings.asset.meta b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/XRInteractionEditorSettings.asset.meta new file mode 100644 index 00000000..48adcca0 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Assets/XRI/Settings/XRInteractionEditorSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 183816796b8112449b485caafbe4f4ec +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json new file mode 100644 index 00000000..cc37929d --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json @@ -0,0 +1,50 @@ +{ + "dependencies": { + "com.microsoft.mixedreality.openxr": "file:MixedReality/com.microsoft.mixedreality.openxr-1.8.0.tgz", + "com.microsoft.mixedreality.toolkit.foundation": "file:MixedReality/com.microsoft.mixedreality.toolkit.foundation-2.8.3.tgz", + "com.microsoft.mixedreality.toolkit.standardassets": "file:MixedReality/com.microsoft.mixedreality.toolkit.standardassets-2.8.3.tgz", + "com.microsoft.mixedreality.webview.unity": "file:MixedReality/com.microsoft.mixedreality.webview.unity-0.17.1-pre.3.tgz", + "com.unity.collab-proxy": "2.0.3", + "com.unity.ide.rider": "3.0.20", + "com.unity.ide.visualstudio": "2.0.18", + "com.unity.ide.vscode": "1.2.5", + "com.unity.test-framework": "1.1.31", + "com.unity.textmeshpro": "3.0.6", + "com.unity.timeline": "1.6.4", + "com.unity.ugui": "1.0.0", + "com.unity.visualscripting": "1.8.0", + "com.unity.xr.interaction.toolkit": "2.3.1", + "com.unity.xr.openxr": "1.7.0", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json.backup b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json.backup new file mode 100644 index 00000000..9c226758 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json.backup @@ -0,0 +1,50 @@ +{ + "dependencies": { + "com.microsoft.mixedreality.openxr": "file:MixedReality/com.microsoft.mixedreality.openxr-1.8.0.tgz", + "com.microsoft.mixedreality.toolkit.foundation": "file:MixedReality/com.microsoft.mixedreality.toolkit.foundation-2.8.3.tgz", + "com.microsoft.mixedreality.toolkit.standardassets": "file:MixedReality/com.microsoft.mixedreality.toolkit.standardassets-2.8.3.tgz", + "com.microsoft.mixedreality.webview.unity": "file:MixedReality/com.microsoft.mixedreality.webview.unity-0.17.1-pre.2.tgz", + "com.unity.collab-proxy": "1.17.7", + "com.unity.ide.rider": "3.0.18", + "com.unity.ide.visualstudio": "2.0.17", + "com.unity.ide.vscode": "1.2.5", + "com.unity.test-framework": "1.1.31", + "com.unity.textmeshpro": "3.0.6", + "com.unity.timeline": "1.6.4", + "com.unity.ugui": "1.0.0", + "com.unity.visualscripting": "1.8.0", + "com.unity.xr.interaction.toolkit": "2.2.0", + "com.unity.xr.openxr": "1.7.0", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json.backup0 b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json.backup0 new file mode 100644 index 00000000..9c226758 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/manifest.json.backup0 @@ -0,0 +1,50 @@ +{ + "dependencies": { + "com.microsoft.mixedreality.openxr": "file:MixedReality/com.microsoft.mixedreality.openxr-1.8.0.tgz", + "com.microsoft.mixedreality.toolkit.foundation": "file:MixedReality/com.microsoft.mixedreality.toolkit.foundation-2.8.3.tgz", + "com.microsoft.mixedreality.toolkit.standardassets": "file:MixedReality/com.microsoft.mixedreality.toolkit.standardassets-2.8.3.tgz", + "com.microsoft.mixedreality.webview.unity": "file:MixedReality/com.microsoft.mixedreality.webview.unity-0.17.1-pre.2.tgz", + "com.unity.collab-proxy": "1.17.7", + "com.unity.ide.rider": "3.0.18", + "com.unity.ide.visualstudio": "2.0.17", + "com.unity.ide.vscode": "1.2.5", + "com.unity.test-framework": "1.1.31", + "com.unity.textmeshpro": "3.0.6", + "com.unity.timeline": "1.6.4", + "com.unity.ugui": "1.0.0", + "com.unity.visualscripting": "1.8.0", + "com.unity.xr.interaction.toolkit": "2.2.0", + "com.unity.xr.openxr": "1.7.0", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/packages-lock.json b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/packages-lock.json new file mode 100644 index 00000000..ed75a01a --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/Packages/packages-lock.json @@ -0,0 +1,485 @@ +{ + "dependencies": { + "com.microsoft.mixedreality.openxr": { + "version": "file:MixedReality/com.microsoft.mixedreality.openxr-1.8.0.tgz", + "depth": 0, + "source": "local-tarball", + "dependencies": { + "com.unity.xr.arfoundation": "4.1.7", + "com.unity.xr.management": "4.2.0", + "com.unity.xr.openxr": "1.5.3", + "com.unity.xr.core-utils": "2.1.0" + } + }, + "com.microsoft.mixedreality.toolkit.foundation": { + "version": "file:MixedReality/com.microsoft.mixedreality.toolkit.foundation-2.8.3.tgz", + "depth": 0, + "source": "local-tarball", + "dependencies": { + "com.microsoft.mixedreality.toolkit.standardassets": "2.8.3" + } + }, + "com.microsoft.mixedreality.toolkit.standardassets": { + "version": "file:MixedReality/com.microsoft.mixedreality.toolkit.standardassets-2.8.3.tgz", + "depth": 0, + "source": "local-tarball", + "dependencies": { + "com.unity.textmeshpro": "2.1.4" + } + }, + "com.microsoft.mixedreality.webview.unity": { + "version": "file:MixedReality/com.microsoft.mixedreality.webview.unity-0.17.1-pre.3.tgz", + "depth": 0, + "source": "local-tarball", + "dependencies": {} + }, + "com.unity.collab-proxy": { + "version": "2.0.3", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "1.0.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.ide.rider": { + "version": "3.0.20", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.18", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.9" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.vscode": { + "version": "1.2.5", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.inputsystem": { + "version": "1.5.1", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.modules.uielements": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.mathematics": { + "version": "1.2.6", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.subsystemregistration": { + "version": "1.1.0", + "depth": 3, + "source": "registry", + "dependencies": { + "com.unity.modules.subsystems": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.test-framework": { + "version": "1.1.31", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.textmeshpro": { + "version": "3.0.6", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.timeline": { + "version": "1.6.4", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.director": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.visualscripting": { + "version": "1.8.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.xr.arfoundation": { + "version": "4.2.7", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.xr.arsubsystems": "4.2.7", + "com.unity.xr.management": "4.0.1", + "com.unity.modules.particlesystem": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.xr.arsubsystems": { + "version": "4.2.7", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.subsystemregistration": "1.1.0", + "com.unity.xr.management": "4.0.1" + }, + "url": "https://packages.unity.com" + }, + "com.unity.xr.core-utils": { + "version": "2.2.0", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.modules.xr": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.xr.interaction.toolkit": { + "version": "2.3.1", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.inputsystem": "1.4.4", + "com.unity.mathematics": "1.2.6", + "com.unity.ugui": "1.0.0", + "com.unity.xr.core-utils": "2.2.0", + "com.unity.xr.legacyinputhelpers": "2.1.10", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.physics": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.xr.legacyinputhelpers": { + "version": "2.1.10", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.xr": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.xr.management": { + "version": "4.3.3", + "depth": 1, + "source": "registry", + "dependencies": { + "com.unity.modules.subsystems": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.xr": "1.0.0", + "com.unity.xr.legacyinputhelpers": "2.1.7" + }, + "url": "https://packages.unity.com" + }, + "com.unity.xr.openxr": { + "version": "1.7.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.xr.management": "4.0.1", + "com.unity.xr.legacyinputhelpers": "2.1.2", + "com.unity.inputsystem": "1.4.4" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.uielementsnative": "1.0.0" + } + }, + "com.unity.modules.uielementsnative": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/AudioManager.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/AudioManager.asset new file mode 100644 index 00000000..07ebfb05 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 1024 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ClusterInputManager.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 00000000..e7886b26 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/DynamicsManager.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/DynamicsManager.asset new file mode 100644 index 00000000..cdc1f3ea --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0 + m_ClothInterCollisionStiffness: 0 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_DefaultMaxAngluarSpeed: 7 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/EditorBuildSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 00000000..ccce9056 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,13 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: + - enabled: 1 + path: Assets/Scenes/SampleScene.unity + guid: 9fc0d4010bbf28b4594072e72b8655ab + m_configObjects: + com.unity.xr.management.loader_settings: {fileID: 11400000, guid: 25312d4015a310f499767577dc2d8b23, type: 2} + com.unity.xr.openxr.settings4: {fileID: 11400000, guid: 541a1cf0c39d86043af97cfb801628fd, type: 2} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/EditorSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/EditorSettings.asset new file mode 100644 index 00000000..1e44a0a1 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/EditorSettings.asset @@ -0,0 +1,30 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_ExternalVersionControlSupport: Visible Meta Files + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 0 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerPaddingPower: 1 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref + m_ProjectGenerationRootNamespace: + m_CollabEditorSettings: + inProgressEnabled: 1 + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_AsyncShaderCompilation: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_ShowLightmapResolutionOverlay: 1 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/GraphicsSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 00000000..43369e3c --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,63 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_LogWhenShaderIsCompiled: 0 + m_AllowEnlightenSupportForUpgradedProject: 0 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/InputManager.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/InputManager.asset new file mode 100644 index 00000000..7a28a619 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/InputManager.asset @@ -0,0 +1,776 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_4 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 3 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_5 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 4 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_6 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_7 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_8 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 7 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_9 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 8 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_10 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 9 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_11 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 10 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_12 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 11 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_13 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 12 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_14 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 13 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_15 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 14 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_16 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 15 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_17 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 16 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_18 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 17 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_19 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 18 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_20 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 19 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_21 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 20 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_22 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 21 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_23 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 22 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_24 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 23 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_25 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 24 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_26 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 25 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_27 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 26 + joyNum: 0 + - serializedVersion: 3 + m_Name: AXIS_28 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 27 + joyNum: 0 + - serializedVersion: 3 + m_Name: UpDown + descriptiveName: + descriptiveNegativeName: + negativeButton: q + positiveButton: e + altNegativeButton: + altPositiveButton: + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: -1 + joyNum: 0 + - serializedVersion: 3 + m_Name: UpDown + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 2 + joyNum: 0 + m_UsePhysicalKeys: 0 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/MemorySettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/MemorySettings.asset new file mode 100644 index 00000000..5b5facec --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/NavMeshAreas.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 00000000..3b0b7c3d --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/PackageManagerSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 00000000..112a053b --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + 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: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreReleasePackages: 0 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_Modified: 0 + m_ErrorMessage: + m_UserModificationsInstanceId: -830 + m_OriginalInstanceId: -832 + m_LoadAssets: 0 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/Physics2DSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 00000000..47880b1c --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 1 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/PresetManager.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/PresetManager.asset new file mode 100644 index 00000000..67a94dae --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ProjectSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ProjectSettings.asset new file mode 100644 index 00000000..32048859 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,737 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 24 + productGUID: 5644c80d498d50e4e9f702e2639c32a1 + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: Microsoft + productName: WebView2HoloLensSample + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1920 + defaultScreenHeight: 1080 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 2 + m_ActiveColorSpace: 1 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + iosAllowHTTPDownload: 1 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 1 + androidBlitType: 0 + androidResizableWindow: 0 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 0 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 1 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 0 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + stadiaPresentMode: 0 + stadiaTargetFramerate: 0 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 1 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + m_SupportedAspectRatios: + 4:3: 1 + 5:4: 1 + 16:10: 1 + 16:9: 1 + Others: 1 + bundleVersion: 0.1 + preloadedAssets: + - {fileID: -5444848369939482447, guid: 25312d4015a310f499767577dc2d8b23, type: 2} + - {fileID: -5281385832365046672, guid: 541a1cf0c39d86043af97cfb801628fd, type: 2} + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + useHDRDisplay: 0 + D3DHDRBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: {} + buildNumber: + Standalone: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 0 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 22 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 1 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 12.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 12.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea + templatePackageId: com.unity.template.3d@8.1.3 + templateDefaultScene: Assets/Scenes/SampleScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 1 + AndroidTargetDevices: 0 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + chromeosInputEmulation: 1 + AndroidMinifyWithR8: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: + - m_BuildTarget: Standalone + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: tvOS + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: Android + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: iPhone + m_StaticBatching: 1 + m_DynamicBatching: 0 + - m_BuildTarget: WebGL + m_StaticBatching: 0 + m_DynamicBatching: 0 + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: + - m_BuildTarget: MacStandaloneSupport + m_GraphicsJobs: 0 + - m_BuildTarget: Switch + m_GraphicsJobs: 1 + - m_BuildTarget: MetroSupport + m_GraphicsJobs: 0 + - m_BuildTarget: AppleTVSupport + m_GraphicsJobs: 0 + - m_BuildTarget: BJMSupport + m_GraphicsJobs: 1 + - m_BuildTarget: LinuxStandaloneSupport + m_GraphicsJobs: 1 + - m_BuildTarget: PS4Player + m_GraphicsJobs: 1 + - m_BuildTarget: iOSSupport + m_GraphicsJobs: 0 + - m_BuildTarget: WindowsStandaloneSupport + m_GraphicsJobs: 1 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobs: 1 + - m_BuildTarget: LuminSupport + m_GraphicsJobs: 0 + - m_BuildTarget: AndroidPlayer + m_GraphicsJobs: 0 + - m_BuildTarget: WebGLSupport + m_GraphicsJobs: 0 + m_BuildTargetGraphicsJobMode: + - m_BuildTarget: PS4Player + m_GraphicsJobMode: 0 + - m_BuildTarget: XboxOnePlayer + m_GraphicsJobMode: 0 + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: AndroidPlayer + m_APIs: 0b00000008000000 + m_Automatic: 0 + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: AppleTVSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: WebGLSupport + m_APIs: 0b000000 + m_Automatic: 1 + m_BuildTargetVRSettings: + - m_BuildTarget: Standalone + m_Enabled: 0 + m_Devices: + - Oculus + - OpenVR + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: + - m_BuildTarget: Android + m_EncodingQuality: 1 + - m_BuildTarget: iPhone + m_EncodingQuality: 1 + - m_BuildTarget: tvOS + m_EncodingQuality: 1 + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetNormalMapEncoding: + - m_BuildTarget: Android + m_Encoding: 1 + - m_BuildTarget: iPhone + m_Encoding: 1 + - m_BuildTarget: tvOS + m_Encoding: 1 + m_BuildTargetDefaultTextureCompressionFormat: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchUseGOLDLinker: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchPlayerConnectionEnabled: 1 + switchUseNewStyleFilepaths: 0 + switchUseLegacyFmodPriorities: 1 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 1 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 0 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 16 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLPowerPreference: 2 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + managedStrippingLevel: + EmbeddedLinux: 1 + GameCoreScarlett: 1 + GameCoreXboxOne: 1 + Lumin: 1 + Nintendo Switch: 1 + PS4: 1 + PS5: 1 + Stadia: 1 + WebGL: 1 + Windows Store Apps: 1 + XboxOne: 1 + iPhone: 1 + tvOS: 1 + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + enableRoslynAnalyzers: 1 + selectedPlatform: 0 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + assemblyVersionValidation: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: WebView2HoloLensSample + metroPackageVersion: 1.0.0.0 + metroCertificatePath: Assets/WSATestCertificate.pfx + metroCertificatePassword: + metroCertificateSubject: Microsoft + metroCertificateIssuer: Microsoft + metroCertificateNotAfter: 0058b1b2ed9cda01 + metroApplicationDescription: WebView2_Hololens_Sample + wsaImages: {} + metroTileShortName: MRTKAdaptiveCards2InclusionTest + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: + WindowsStoreApps: + GazeInput: True + SpatialPerception: True + InternetClient: True + WebCam: True + Microphone: True + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: + UNet: 1 + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + apiCompatibilityLevel: 6 + activeInputHandler: 2 + windowsGamepadBackendHint: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + playerDataPath: + forceSRGBBlit: 1 + virtualTexturingSupportEnabled: 0 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ProjectVersion.txt b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ProjectVersion.txt new file mode 100644 index 00000000..6c676f05 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 2021.3.24f1 +m_EditorVersionWithRevision: 2021.3.24f1 (cf10dcf7010d) diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/QualitySettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/QualitySettings.asset new file mode 100644 index 00000000..0a4842b2 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/QualitySettings.asset @@ -0,0 +1,240 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 0 + m_QualitySettings: + - serializedVersion: 2 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 1 + textureQuality: 1 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.3 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.4 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 1 + lodBias: 0.7 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1.5 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 2 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 2 + GameCoreScarlett: 5 + GameCoreXboxOne: 5 + Lumin: 5 + Nintendo 3DS: 5 + Nintendo Switch: 5 + PS4: 5 + PS5: 5 + Stadia: 5 + Standalone: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/SceneTemplateSettings.json b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 00000000..6f3e60fd --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,167 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicMaterial", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": false + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "ignore": true, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "ignore": false, + "defaultInstantiationMode": 0, + "supportsModification": true + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "ignore": false, + "defaultInstantiationMode": 1, + "supportsModification": true + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/TagManager.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/TagManager.asset new file mode 100644 index 00000000..6c060c6f --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - Spatial Awareness + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/TimeManager.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/TimeManager.asset new file mode 100644 index 00000000..558a017e --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/UnityConnectSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 00000000..a88bee0f --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/VFXManager.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/VFXManager.asset new file mode 100644 index 00000000..3a95c98b --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/VFXManager.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/VersionControlSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 00000000..dca28814 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/XRPackageSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/XRPackageSettings.asset new file mode 100644 index 00000000..7e791e17 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/XRPackageSettings.asset @@ -0,0 +1,5 @@ +{ + "m_Settings": [ + "RemoveLegacyInputHelpersForReload" + ] +} \ No newline at end of file diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/XRSettings.asset b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/XRSettings.asset new file mode 100644 index 00000000..482590c1 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/boot.config b/GettingStartedGuides/HoloLens2_GettingStarted/HoloLens2GetStartedApp/ProjectSettings/boot.config new file mode 100644 index 00000000..e69de29b diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/README.md b/GettingStartedGuides/HoloLens2_GettingStarted/README.md new file mode 100644 index 00000000..9abeedd2 --- /dev/null +++ b/GettingStartedGuides/HoloLens2_GettingStarted/README.md @@ -0,0 +1,28 @@ +--- +description: "Completed Unity project from the tutorial Get started with WebView2 in HoloLens 2 Unity apps." +languages: + - csharp +page_type: sample +products: + - microsoft-edge +urlFragment: HoloLens2_GettingStarted +--- +# Get started with WebView2 in HoloLens 2 Unity apps + +This sample, **HoloLens2_GettingStarted**, is the completed Unity project that results from following the steps in the tutorial [Get started with WebView2 in HoloLens 2 Unity apps](https://learn.microsoft.com/microsoft-edge/webview2/get-started/hololens2). + +![The running app from the finished HoloLens 2 tutorial](screenshots/hololens-getting-started-webview2.png) + + +Follow these steps to get started with this sample code. WebView2 is already included as a Unity package, but you will need to load it via the Mixed Reality Feature Tool. + +1. Clone this repository +2. Launch the Microsoft Mixed Reality Feature Tool + - Click **Start** + - Click the **...** button, navigate to the `HoloLens2GetStartedApp` folder, and select **Open** + - With the project path selected, click **Restore Features** to load the required packages for the Mixed Reality Toolkit and the WebView2 plugin package. +3. Close the Mixed Reality Feature Tool +4. Launch Unity Hub +5. In Unity Hub, click **Open**, navigate to the `HoloLens2GetStartedApp` folder, and select **Open**. This should open the project in the Unity Editor. +6. In the Unity Editor, find the SampleScene in the `Assets/Scenes` folder and double-click to load it. +7. Click the play button in the Unity Editor to quickly test the app. diff --git a/GettingStartedGuides/HoloLens2_GettingStarted/screenshots/hololens-getting-started-webview2.png b/GettingStartedGuides/HoloLens2_GettingStarted/screenshots/hololens-getting-started-webview2.png new file mode 100644 index 0000000000000000000000000000000000000000..df16b60e7ee999bb2d4a666ab7b81fc6d3b2bc0d GIT binary patch literal 380453 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

37!>>~n_dfc9N(Hk@@eG6JSVl)gT>Pj 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%0DgD#v@aT^bGqDSdF{x#9-V)yDI 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 Z;Y+vn4XZ7f=k5Ux(~DOxlo~lk{s&SV-G=}G literal 0 HcmV?d00001