diff --git a/Unity/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/RimLight.mat b/Unity/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/RimLight.mat index 02a1a2320..f7a4fb1c8 100644 --- a/Unity/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/RimLight.mat +++ b/Unity/Assets/Samples/XR Interaction Toolkit/2.5.2/Hands Interaction Demo/Materials/RimLight.mat @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} m_Name: m_EditorClassIdentifier: - version: 5 + version: 7 --- !u!114 &-3392432240476276898 MonoBehaviour: m_ObjectHideFlags: 11 @@ -34,11 +34,14 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: RimLight - m_Shader: {fileID: -6465566751694194690, guid: 4ff4bf42ffc12e34a9c53b2f216f5442, type: 3} + m_Shader: {fileID: -6465566751694194690, guid: 4ff4bf42ffc12e34a9c53b2f216f5442, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 m_ValidKeywords: - _BUILTIN_SURFACE_TYPE_TRANSPARENT - m_InvalidKeywords: - _SURFACE_TYPE_TRANSPARENT + m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 1 m_DoubleSidedGI: 0 @@ -48,6 +51,7 @@ Material: disabledShaderPasses: - SHADOWCASTER - DepthOnly + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: diff --git a/Unity/Assets/Ubiq/Editor/Packaging.meta b/Unity/Assets/Ubiq/Editor/Packages.meta similarity index 100% rename from Unity/Assets/Ubiq/Editor/Packaging.meta rename to Unity/Assets/Ubiq/Editor/Packages.meta diff --git a/Unity/Assets/Ubiq/Editor/Packaging/AddPackageWebRTC.cs b/Unity/Assets/Ubiq/Editor/Packages/AddPackageWebRTC.cs similarity index 77% rename from Unity/Assets/Ubiq/Editor/Packaging/AddPackageWebRTC.cs rename to Unity/Assets/Ubiq/Editor/Packages/AddPackageWebRTC.cs index dc6643e35..372af6b2f 100644 --- a/Unity/Assets/Ubiq/Editor/Packaging/AddPackageWebRTC.cs +++ b/Unity/Assets/Ubiq/Editor/Packages/AddPackageWebRTC.cs @@ -1,4 +1,4 @@ -#if !UNITY_WEBRTC_NO_VULKAN_HOOK && !UBIQ_SKIPCHECK_WEBRTCCOMPATIBILITY +#if !UNITY_WEBRTC_NO_VULKAN_HOOK && !(UNITY_WEBRTC && UBIQ_DISABLE_WEBRTCCOMPATIBILITYCHECK) using UnityEngine; using UnityEditor; using UbiqEditor; @@ -23,11 +23,11 @@ static void Update() " and replace it with a modified fork which is compatible. If" + " you would prefer to skip this check and prevent this" + " behaviour, add the string" + - " UBIQ_SKIPCHECK_WEBRTCCOMPATIBILITY to your scripting define" + + " UBIQ_DISABLE_WEBRTCCOMPATIBILITYCHECK to your scripting define" + " symbols."); PackageManagerHelper.Remove("com.unity.webrtc"); #endif - PackageManagerHelper.Add("https://github.com/UCL-VR/unity-webrtc-no-vulkan-hook.git"); + PackageManagerHelper.AddPackage("https://github.com/UCL-VR/unity-webrtc-no-vulkan-hook.git"); EditorApplication.update -= Update; } } diff --git a/Unity/Assets/Ubiq/Editor/Packaging/AddPackageWebRTC.cs.meta b/Unity/Assets/Ubiq/Editor/Packages/AddPackageWebRTC.cs.meta similarity index 100% rename from Unity/Assets/Ubiq/Editor/Packaging/AddPackageWebRTC.cs.meta rename to Unity/Assets/Ubiq/Editor/Packages/AddPackageWebRTC.cs.meta diff --git a/Unity/Assets/Ubiq/Editor/Packages/PackageManagerHelper.cs b/Unity/Assets/Ubiq/Editor/Packages/PackageManagerHelper.cs new file mode 100644 index 000000000..790a3e86d --- /dev/null +++ b/Unity/Assets/Ubiq/Editor/Packages/PackageManagerHelper.cs @@ -0,0 +1,334 @@ +using UnityEngine; +using UnityEditor; +using UnityEditor.PackageManager; +using UnityEditor.PackageManager.Requests; +using UnityEditor.PackageManager.UI; +using System.Collections; +using System.Collections.Generic; +using System.Text; +using Unity.EditorCoroutines.Editor; + +namespace UbiqEditor +{ + public static class PackageManagerHelper + { + private struct SampleInfo + { + public Sample sample { get; private set; } + public string package { get; private set; } + + public SampleInfo(Sample sample, string package) + { + this.sample = sample; + this.package = package; + } + } + + private class SampleRequest + { + public string package { get; private set; } + public string sample { get; private set; } + + public SampleRequest(string package, string sample) + { + this.package = package; + this.sample = sample; + } + } + + private class PackageRequest + { + public enum Mode + { + Add, + Remove + } + + public Mode mode { get; private set; } + public string package { get; private set; } + + public PackageRequest(Mode mode, string package) + { + this.mode = mode; + this.package = package; + } + } + + private static List packageRequests = new List(); + private static List sampleRequests = new List(); + private static bool assetsDirty = false; + private static EditorCoroutine coroutine; + + public static void RequireSample(string package, string sample) + { + sampleRequests.Add(new SampleRequest(package,sample)); + EnsureCoroutine(); + } + + public static void AddPackage(string package) + { + packageRequests.Add(new PackageRequest(PackageRequest.Mode.Add,package)); + EnsureCoroutine(); + } + + public static void RemovePackage(string package) + { + packageRequests.Add(new PackageRequest(PackageRequest.Mode.Remove,package)); + EnsureCoroutine(); + } + + private static void EnsureCoroutine() + { + if (coroutine != null) + { + return; + } + + coroutine = EditorCoroutineUtility.StartCoroutineOwnerless(Process()); + } + + private static IEnumerator Process() + { + yield return null; // Wait to allow startup set of deps to accrue + + while (packageRequests.Count > 0 || sampleRequests.Count > 0) + { + yield return ProcessPackages(); + yield return ProcessSamples(); + yield return null; + } + + if (assetsDirty) + { + AssetDatabase.Refresh(); + } + } + + private static IEnumerator ProcessPackages() + { + var upmRequest = null as AddAndRemoveRequest; + if (packageRequests.Count > 0) + { + GetUnique(packageRequests, out var adds, out var removes); + LogPackageModificationMessage(adds,removes); + +#if !UBIQ_DISABLE_PACKAGEIMPORT + upmRequest = Client.AddAndRemove(adds,removes); +#else + #if !UBIQ_SILENCEWARNING_DISABLEPACKAGEIMPORT + Debug.LogWarning("Ubiq will not modify packages as the" + + " scripting define symbol UBIQ_DISABLE_PACKAGEIMPORT is" + + " present. Please ensure you manage the required packages" + + " manually, or Ubiq may not function as intended. To" + + " silence this warning, add the string" + " UBIQ_SILENCEWARNING_DISABLEPACKAGEIMPORT to your scripting" + " define symbols."); + #endif +#endif + packageRequests.Clear(); + } + + while (upmRequest != null) + { + if (upmRequest.Status == StatusCode.Failure) + { + var error = upmRequest.Error != null + ? upmRequest.Error.message + : "None specified"; + Debug.LogError($"Ubiq was unable to modify project requirements. Error: {error}"); + upmRequest = null; + } + + if (upmRequest.Status == StatusCode.Success) + { + var collection = (PackageCollection)upmRequest.Result; + Debug.Log("Ubiq successfully modified project requirements."); + upmRequest = null; + assetsDirty = true; + } + + yield return null; + } + } + + private static IEnumerator ProcessSamples() + { + var requiredSamplesInfos = GetRequiredSamples(sampleRequests); + if (requiredSamplesInfos != null && requiredSamplesInfos.Count > 0) + { + LogSampleModificationMessage(requiredSamplesInfos); + +#if UBIQ_DISABLE_SAMPLEIMPORT + requiredSamplesInfos.Clear(); + #if !UBIQ_SILENCEWARNING_DISABLESAMPLEIMPORT + Debug.LogWarning("Ubiq will not modify samples as the" + + " scripting define symbol UBIQ_DISABLE_SAMPLEIMPORT is" + + " present. Please ensure you manage the required samples" + + " manually, or Ubiq may not function as intended. To" + + " silence this warning, add the string" + " UBIQ_SILENCEWARNING_DISABLESAMPLEIMPORT to your scripting" + " define symbols."); + #endif +#endif + sampleRequests.Clear(); + } + + foreach (var info in requiredSamplesInfos) + { + yield return null; + + if (info.sample.Import(Sample.ImportOptions.OverridePreviousImports + | Sample.ImportOptions.HideImportWindow)) + { + Debug.Log($"Ubiq successfully imported sample" + + "\"{info.sample}\" from package \"{info.package}\"."); + assetsDirty = true; + } + else + { + Debug.LogWarning($"Ubiq failed to import sample" + + "\"{info.sample}\" from package \"{info.package}\"."); + } + } + } + + private static List GetRequiredSamples(List requests) + { + if (requests == null || requests.Count == 0) + { + return null; + } + + var samples = new List(); + foreach(var request in requests) + { + var packageSamples = null as IEnumerable; + try + { + packageSamples = Sample.FindByPackage(request.package, string.Empty); + } + catch + { + packageSamples = null; + } + + if (packageSamples == null) + { + Debug.LogWarning($"Ubiq is trying to find a sample" + + " for the package" + + " \"{ request.package }\", but the package could not" + + " be found."); + continue; + } + + var found = false; + foreach (var packageSample in packageSamples) + { + if (packageSample.displayName == request.sample) + { + if (!packageSample.isImported) + { + samples.Add(new SampleInfo(packageSample,request.package)); + } + found = true; + break; + } + } + + if (found) + { + continue; + } + + Debug.LogWarning($"Ubiq is trying to find the sample" + + " \"{ request.sample }\" for the package" + + " \"{ request.package }\", but the sample could not" + + " be found in the package."); + } + return samples; + } + + private static void GetUnique(List requests, + out string[] adds, out string[] removes) + { + var addSet = new HashSet(); + var removeSet = new HashSet(); + + foreach (var request in packageRequests) + { + if (request.mode == PackageRequest.Mode.Add) + { + addSet.Add(request.package); + } + else if (request.mode == PackageRequest.Mode.Remove) + { + removeSet.Add(request.package); + } + } + + adds = ToArray(addSet); + removes = ToArray(removeSet); + } + + static string[] ToArray(HashSet set) + { + var arr = new string[set.Count]; + set.CopyTo(arr); + return arr; + } + + static void LogSampleModificationMessage(List infos) + { + var stringBuilder = new StringBuilder(); + stringBuilder.Append("Ubiq attempting to import required samples."); + stringBuilder.Append(" Importing: {"); + for (int i = 0; i < infos.Count; i++) + { + stringBuilder.Append($" {infos[i].package}:{infos[i].sample.displayName} "); + if (i < infos.Count-1) + { + stringBuilder.Append(","); + } + } + stringBuilder.Append("}"); + + Debug.Log(stringBuilder.ToString()); + } + + static void LogPackageModificationMessage(string[] adds, string[] removes) + { + var stringBuilder = new StringBuilder(); + stringBuilder.Append("Ubiq attempting to modify project requirements."); + + if (adds.Length > 0) + { + stringBuilder.Append(" Adding: {"); + for (int i = 0; i < adds.Length; i++) + { + stringBuilder.Append($" {adds[i]} "); + if (i < adds.Length-1) + { + stringBuilder.Append(","); + } + } + stringBuilder.Append("}"); + } + + if (removes.Length > 0) + { + stringBuilder.Append(" Removing: {"); + for (int i = 0; i < removes.Length; i++) + { + stringBuilder.Append($" {removes[i]} "); + if (i < removes.Length-1) + { + stringBuilder.Append(","); + } + } + stringBuilder.Append("}"); + } + + Debug.Log(stringBuilder.ToString()); + } + } +} \ No newline at end of file diff --git a/Unity/Assets/Ubiq/Editor/Packaging/PackageManagerHelper.cs.meta b/Unity/Assets/Ubiq/Editor/Packages/PackageManagerHelper.cs.meta similarity index 100% rename from Unity/Assets/Ubiq/Editor/Packaging/PackageManagerHelper.cs.meta rename to Unity/Assets/Ubiq/Editor/Packages/PackageManagerHelper.cs.meta diff --git a/Unity/Assets/Ubiq/Editor/Packaging/PackageManagerHelper.cs b/Unity/Assets/Ubiq/Editor/Packaging/PackageManagerHelper.cs deleted file mode 100644 index d08686fe4..000000000 --- a/Unity/Assets/Ubiq/Editor/Packaging/PackageManagerHelper.cs +++ /dev/null @@ -1,156 +0,0 @@ -using UnityEngine; -using UnityEditor; -using UnityEditor.PackageManager; -using UnityEditor.PackageManager.Requests; -using System.Collections.Generic; -using System.Collections.Concurrent; -using System.Text; - -namespace UbiqEditor -{ - public static class PackageManagerHelper - { - private abstract class RequestInfo - { - public enum Mode - { - Add, - Remove - } - - public Mode mode { get; private set; } - public string package { get; private set; } - - public RequestInfo(Mode mode, string package) - { - this.mode = mode; - this.package = package; - } - } - - private class AddRequest : RequestInfo - { - public AddRequest(string package) : base(RequestInfo.Mode.Add,package) { } - } - - private class RemoveRequest : RequestInfo - { - public RemoveRequest(string package) : base(RequestInfo.Mode.Remove,package) { } - } - - private static ConcurrentQueue requestInfos = new ConcurrentQueue(); - private static AddAndRemoveRequest currentRequest; - - public static void Add(string packageToAdd) - { - EnqueueRequest(new AddRequest(packageToAdd)); - } - - public static void Remove(string packageToRemove) - { - EnqueueRequest(new RemoveRequest(packageToRemove)); - } - - private static void EnqueueRequest(RequestInfo request) - { - PackageManagerHelper.requestInfos.Enqueue(request); - - // Ensure we're only subscribed at most once - EditorApplication.update -= Update; - EditorApplication.update += Update; - } - - private static void Update() - { - if (currentRequest == null) - { - // Sets for uniqueness - var addSet = new HashSet(); - var removeSet = new HashSet(); - while(requestInfos.TryDequeue(out var info)) - { - if (info.mode == RequestInfo.Mode.Add) - { - addSet.Add(info.package); - } - else if (info.mode == RequestInfo.Mode.Remove) - { - removeSet.Add(info.package); - } - } - - if (addSet.Count == 0 && removeSet.Count == 0) - { - EditorApplication.update -= Update; - return; - } - - var addArray = ToArray(addSet); - var removeArray = ToArray(removeSet); - currentRequest = Client.AddAndRemove(addArray,removeArray); - - PrintModificationMessage(addArray,removeArray); - } - - if (currentRequest.Status == StatusCode.Failure) - { - var error = currentRequest.Error != null - ? currentRequest.Error.message - : "None specified"; - Debug.LogError($"Ubiq was unable to modify project requirements. Error: {error}"); - currentRequest = null; - } - - if (currentRequest.Status == StatusCode.Success) - { - var collection = (PackageCollection)currentRequest.Result; - Debug.Log("Ubiq successfully modified project requirements"); - AssetDatabase.Refresh(); - currentRequest = null; - } - } - - static string[] ToArray(HashSet set) - { - var arr = new string[set.Count]; - set.CopyTo(arr); - return arr; - } - - static void PrintModificationMessage(string[] toAdd, string[] toRemove) - { - var stringBuilder = new StringBuilder(); - stringBuilder.Append("Ubiq attempting to modify project requirements."); - - if (toAdd.Length > 0) - { - stringBuilder.Append(" Adding: {"); - for (int i = 0; i < toAdd.Length; i++) - { - stringBuilder.Append($" {toAdd[i]} "); - if (i < toAdd.Length-1) - { - stringBuilder.Append(","); - } - } - stringBuilder.Append("}"); - } - - if (toRemove.Length > 0) - { - stringBuilder.Append(" Removing: {"); - for (int i = 0; i < toRemove.Length; i++) - { - stringBuilder.Append($" {toRemove[i]} "); - if (i < toRemove.Length-1) - { - stringBuilder.Append(","); - } - } - stringBuilder.Append("}"); - } - - Debug.Log(stringBuilder.ToString()); - } - } -} \ No newline at end of file diff --git a/Unity/Assets/Ubiq/Editor/Ubiq.Editor.asmdef b/Unity/Assets/Ubiq/Editor/Ubiq.Editor.asmdef index 7ad45c395..a79efedf4 100644 --- a/Unity/Assets/Ubiq/Editor/Ubiq.Editor.asmdef +++ b/Unity/Assets/Ubiq/Editor/Ubiq.Editor.asmdef @@ -3,7 +3,8 @@ "rootNamespace": "", "references": [ "GUID:ab979a98ba0be4546bceb48f770b11c8", - "GUID:4be54a12296e0404db7080c914e17b05" + "GUID:4be54a12296e0404db7080c914e17b05", + "GUID:478a2357cc57436488a56e564b08d223" ], "includePlatforms": [ "Editor" diff --git a/Unity/Assets/Ubiq/Runtime/ExampleAvatar/Body/Floating_Mat.mat b/Unity/Assets/Ubiq/Runtime/ExampleAvatar/Body/Floating_Mat.mat index 81ace1ad6..851362fa0 100644 --- a/Unity/Assets/Ubiq/Runtime/ExampleAvatar/Body/Floating_Mat.mat +++ b/Unity/Assets/Ubiq/Runtime/ExampleAvatar/Body/Floating_Mat.mat @@ -87,7 +87,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Runtime/XRI/Ubiq.XRI.asmdef b/Unity/Assets/Ubiq/Runtime/XRI/Ubiq.XRI.asmdef index 92f69fbab..92865cce2 100644 --- a/Unity/Assets/Ubiq/Runtime/XRI/Ubiq.XRI.asmdef +++ b/Unity/Assets/Ubiq/Runtime/XRI/Ubiq.XRI.asmdef @@ -20,8 +20,8 @@ }, { "name": "com.unity.xr.interaction.toolkit", - "expression": "2.4.3", - "define": "XRI_2_4_3_OR_NEWER" + "expression": "2.5.2", + "define": "XRI_2_5_2_OR_NEWER" } ], "noEngineReferences": false diff --git a/Unity/Assets/Ubiq/Runtime/XRI/XRIAvatarHintProvider.cs b/Unity/Assets/Ubiq/Runtime/XRI/XRIAvatarHintProvider.cs index d4b0b9db7..bf80db02a 100644 --- a/Unity/Assets/Ubiq/Runtime/XRI/XRIAvatarHintProvider.cs +++ b/Unity/Assets/Ubiq/Runtime/XRI/XRIAvatarHintProvider.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using UnityEngine; using Ubiq.Avatars; -#if XRI_2_4_3_OR_NEWER +#if XRI_2_5_2_OR_NEWER using UnityEngine.XR.Interaction.Toolkit; using UnityEngine.XR.Interaction.Toolkit.Inputs; #endif @@ -21,7 +21,7 @@ public class XRIAvatarHintProvider : AvatarHintProvider [SerializeField] private string rightHandPositionNode = "RightHandPosition"; [SerializeField] private string rightHandRotationNode = "RightHandRotation"; -#if XRI_2_4_3_OR_NEWER +#if XRI_2_5_2_OR_NEWER private XRInputModalityManager modalityManager; private void Start() diff --git a/Unity/Assets/Ubiq/Runtime/XRI/XRIMenuAdapter.cs b/Unity/Assets/Ubiq/Runtime/XRI/XRIMenuAdapter.cs index fb24d0659..c6eb1a4eb 100644 --- a/Unity/Assets/Ubiq/Runtime/XRI/XRIMenuAdapter.cs +++ b/Unity/Assets/Ubiq/Runtime/XRI/XRIMenuAdapter.cs @@ -1,7 +1,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; -#if XRI_2_4_3_OR_NEWER +#if XRI_2_5_2_OR_NEWER using UnityEngine.XR.Interaction.Toolkit; using UnityEngine.XR.Interaction.Toolkit.UI; #endif @@ -10,7 +10,7 @@ namespace Ubiq.XRI { public class XRIMenuAdapter : MonoBehaviour { -#if XRI_2_4_3_OR_NEWER +#if XRI_2_5_2_OR_NEWER private void Start() { var grab = gameObject.AddComponent(); diff --git a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Materials/Grass.mat b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Materials/Grass.mat index 0ec82658c..db4da5d93 100644 --- a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Materials/Grass.mat +++ b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Materials/Grass.mat @@ -100,7 +100,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/AddPackageXRI.cs b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/AddPackageXRI.cs index c60fb53e6..185f11598 100644 --- a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/AddPackageXRI.cs +++ b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/AddPackageXRI.cs @@ -1,4 +1,3 @@ -#if !XRI_2_4_3_OR_NEWER using UnityEngine; using UnityEditor; using UbiqEditor; @@ -10,26 +9,29 @@ public class AddPackageXRI { static AddPackageXRI() { -#if XRI_0_0_0_OR_NEWER +#if XRI_2_5_3_OR_NEWER && XRI_0_0_0_OR_NEWER #if !UBIQ_SILENCEWARNING_XRIVERSION Debug.LogWarning( - "Ubiq sample DemoScene (XRI) requires XRI > 2.4.3, but an" + - " earlier version is installed. The sample may not work" + + "Ubiq sample DemoScene (XRI) requires XRI = 2.5.2, but a" + + " different version is installed. The sample may not work" + " correctly. To silence this warning, add the string" + " UBIQ_SILENCEWARNING_XRIVERSION to your scripting define" + " symbols"); #endif -#else +#endif // Safer to interact with Unity on main thread EditorApplication.update += Update; -#endif } static void Update() { - PackageManagerHelper.Add("com.unity.xr.interaction.toolkit"); +#if !XRI_0_0_0_OR_NEWER + PackageManagerHelper.AddPackage("com.unity.xr.interaction.toolkit@2.5.2"); +#else + PackageManagerHelper.RequireSample("com.unity.xr.interaction.toolkit","Starter Assets"); + PackageManagerHelper.RequireSample("com.unity.xr.interaction.toolkit","XR Device Simulator"); +#endif EditorApplication.update -= Update; } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/RequireSamplesXRI.cs b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/RequireSamplesXRI.cs index c931935da..efb35ea7b 100644 --- a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/RequireSamplesXRI.cs +++ b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/RequireSamplesXRI.cs @@ -41,7 +41,7 @@ public static bool AssetExistsFromGUID(string guid) } } -#if XRI_2_4_3_OR_NEWER +#if XRI_2_5_2_OR_NEWER [InitializeOnLoad] public class RequireSamplesXRI { diff --git a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/Ubiq.Demo.Editor.asmdef b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/Ubiq.Demo.Editor.asmdef index 8a937ec86..2b6201764 100644 --- a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/Ubiq.Demo.Editor.asmdef +++ b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Editor/Ubiq.Demo.Editor.asmdef @@ -21,8 +21,8 @@ }, { "name": "com.unity.xr.interaction.toolkit", - "expression": "2.4.3", - "define": "XRI_2_4_3_OR_NEWER" + "expression": "2.5.2", + "define": "XRI_2_5_2_OR_NEWER" } ], "noEngineReferences": false diff --git a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Firework.cs b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Firework.cs index 7b69e868e..cc3777a4c 100644 --- a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Firework.cs +++ b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Firework.cs @@ -4,7 +4,7 @@ using Ubiq.Messaging; using Ubiq.Spawning; using Ubiq.Geometry; -#if XRI_2_4_3_OR_NEWER +#if XRI_2_5_2_OR_NEWER using UnityEngine.XR.Interaction.Toolkit; #endif @@ -20,7 +20,7 @@ public class Firework : MonoBehaviour, INetworkSpawnable public bool owner; public bool fired; -#if XRI_2_4_3_OR_NEWER +#if XRI_2_5_2_OR_NEWER private NetworkContext context; diff --git a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/FireworksBox.cs b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/FireworksBox.cs index 921b7b460..0f83243c1 100644 --- a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/FireworksBox.cs +++ b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/FireworksBox.cs @@ -3,7 +3,7 @@ using System.Linq; using UnityEngine; using Ubiq.Spawning; -#if XRI_2_4_3_OR_NEWER +#if XRI_2_5_2_OR_NEWER using UnityEngine.XR.Interaction.Toolkit; #endif @@ -20,7 +20,7 @@ public class FireworksBox : MonoBehaviour { public GameObject fireworkPrefab; -#if XRI_2_4_3_OR_NEWER +#if XRI_2_5_2_OR_NEWER private NetworkSpawnManager spawnManager; private XRGrabInteractable interactable; diff --git a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Ubiq.Demo.asmdef b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Ubiq.Demo.asmdef index c2c2c51a4..3d15686d4 100644 --- a/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Ubiq.Demo.asmdef +++ b/Unity/Assets/Ubiq/Samples/Demo (XRI)/Assets/Scripts/Ubiq.Demo.asmdef @@ -20,8 +20,8 @@ }, { "name": "com.unity.xr.interaction.toolkit", - "expression": "2.4.3", - "define": "XRI_2_4_3_OR_NEWER" + "expression": "2.5.2", + "define": "XRI_2_5_2_OR_NEWER" } ], "noEngineReferences": false diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/04_Spawning/04_Blue.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/04_Spawning/04_Blue.mat index 38b068cba..b563eb792 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/04_Spawning/04_Blue.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/04_Spawning/04_Blue.mat @@ -100,7 +100,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/04_Spawning/04_Red.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/04_Spawning/04_Red.mat index 603cce72e..ad2a2d16d 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/04_Spawning/04_Red.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/04_Spawning/04_Red.mat @@ -113,7 +113,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/06_SpawningWithScope/06_Orange.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/06_SpawningWithScope/06_Orange.mat index 98cbdfe90..56a7cf229 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/06_SpawningWithScope/06_Orange.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/06_SpawningWithScope/06_Orange.mat @@ -100,7 +100,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/06_SpawningWithScope/06_Purple.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/06_SpawningWithScope/06_Purple.mat index d342dc5c0..703d52cf6 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/06_SpawningWithScope/06_Purple.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/06_SpawningWithScope/06_Purple.mat @@ -100,7 +100,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_Black.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_Black.mat index e13f9e06b..dca27d20e 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_Black.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_Black.mat @@ -100,7 +100,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_Red.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_Red.mat index 08a3198ae..28818cbce 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_Red.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_Red.mat @@ -113,7 +113,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_White.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_White.mat index ccbc1504a..089ddd2b6 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_White.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/07_AvatarSpawning/07_White.mat @@ -100,7 +100,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Black.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Black.mat index 29f4cd12d..2f6b88b36 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Black.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Black.mat @@ -87,7 +87,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Green.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Green.mat index 76bdad474..44a1b9725 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Green.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Green.mat @@ -100,7 +100,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Purple.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Purple.mat index b8200dae7..d7d8cfc70 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Purple.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Purple.mat @@ -100,7 +100,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Red.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Red.mat index f14341327..895d4f37c 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Red.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_Red.mat @@ -87,7 +87,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_White.mat b/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_White.mat index 032b8ec35..f08126276 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_White.mat +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/08_AvatarCatalogues/08_White.mat @@ -100,7 +100,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _QueueControl: -1 + - _QueueControl: 0 - _QueueOffset: 0 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 diff --git a/Unity/Assets/Ubiq/Samples/Examples/Assets/Ubiq.Examples.asmdef b/Unity/Assets/Ubiq/Samples/Examples/Assets/Ubiq.Examples.asmdef index c53cdcbc6..c0c877033 100644 --- a/Unity/Assets/Ubiq/Samples/Examples/Assets/Ubiq.Examples.asmdef +++ b/Unity/Assets/Ubiq/Samples/Examples/Assets/Ubiq.Examples.asmdef @@ -19,8 +19,8 @@ }, { "name": "com.unity.xr.interaction.toolkit", - "expression": "2.4.3", - "define": "XRI_2_4_3_OR_NEWER" + "expression": "2.5.2", + "define": "XRI_2_5_2_OR_NEWER" } ], "noEngineReferences": false diff --git a/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/AddPackageXRI_WebXR.cs b/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/AddPackageXRI_WebXR.cs index fae15da0e..5306950a6 100644 --- a/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/AddPackageXRI_WebXR.cs +++ b/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/AddPackageXRI_WebXR.cs @@ -1,4 +1,3 @@ -#if !XRI_2_4_3_OR_NEWER using UnityEngine; using UnityEditor; using UbiqEditor; @@ -18,26 +17,29 @@ static AddPackageXRI_WebXR() } // Custom for WebXR sample ends -#if XRI_0_0_0_OR_NEWER +#if XRI_2_5_3_OR_NEWER && XRI_0_0_0_OR_NEWER #if !UBIQ_SILENCEWARNING_XRIVERSION Debug.LogWarning( - "Ubiq sample DemoScene (XRI) requires XRI > 2.4.3, but an" + - " earlier version is installed. The sample may not work" + + "Ubiq sample DemoScene (XRI) requires XRI = 2.5.2, but a" + + " different version is installed. The sample may not work" + " correctly. To silence this warning, add the string" + " UBIQ_SILENCEWARNING_XRIVERSION to your scripting define" + " symbols"); #endif -#else +#endif // Safer to interact with Unity on main thread EditorApplication.update += Update; -#endif } static void Update() { - PackageManagerHelper.Add("com.unity.xr.interaction.toolkit"); +#if !XRI_0_0_0_OR_NEWER + PackageManagerHelper.AddPackage("com.unity.xr.interaction.toolkit@2.5.2"); +#else + PackageManagerHelper.RequireSample("com.unity.xr.interaction.toolkit","Starter Assets"); + PackageManagerHelper.RequireSample("com.unity.xr.interaction.toolkit","XR Device Simulator"); +#endif EditorApplication.update -= Update; } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/AddPackagesWebXR.cs b/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/AddPackagesWebXR.cs index f1dbcd726..9c558df28 100644 --- a/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/AddPackagesWebXR.cs +++ b/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/AddPackagesWebXR.cs @@ -1,4 +1,3 @@ -#if !WEBXR_0_22_0_OR_NEWER || !WEBXRINTERACTIONS_0_0_0_OR_NEWER using UnityEngine; using UnityEditor; using UbiqEditor; @@ -11,44 +10,44 @@ public class AddPackageWebXR static AddPackageWebXR() { #if !UBIQ_SILENCEWARNING_WEBXRVERSION - #if !WEBXR_0_22_0_OR_NEWER && WEBXR_0_0_0_OR_NEWER + #if WEBXR_0_22_1_OR_NEWER && WEBXR_0_0_0_OR_NEWER var package = "WebXR"; var version = "0.22.0"; Debug.LogWarning( - $"Ubiq sample DemoScene (XRI) requires {package} > {version}, but an" + - " earlier version is installed. The sample may not work" + + $"Ubiq sample Player (XRI + WebXR) requires {package} = {version}, but an" + + " different version is installed. The sample may not work" + " correctly. To silence this warning, add the string" + " UBIQ_SILENCEWARNING_WEBXRVERSION to your scripting define" + " symbols"); #endif - #if !WEBXRINTERACTIONS_0_22_0_OR_NEWER && WEBXRINTERACTIONS_0_0_0_OR_NEWER + #if WEBXRINTERACTIONS_0_22_1_OR_NEWER && WEBXRINTERACTIONS_0_0_0_OR_NEWER var package = "WebXR-Interactions"; var version = "0.22.0"; Debug.LogWarning( - $"Ubiq sample DemoScene (XRI) requires {package} > {version}, but an" + - " earlier version is installed. The sample may not work" + + $"Ubiq sample Player (XRI + WebXR) requires {package} = {version}, but a" + + " different version is installed. The sample may not work" + " correctly. To silence this warning, add the string" + " UBIQ_SILENCEWARNING_WEBXRVERSION to your scripting define" + " symbols"); #endif #endif -#if !WEBXR_0_0_0_OR_NEWER || !WEBXRINTERACTIONS_0_0_0_OR_NEWER // Safer to interact with Unity on main thread EditorApplication.update += Update; -#endif } static void Update() { #if !WEBXR_0_0_0_OR_NEWER - PackageManagerHelper.Add("https://github.com/De-Panther/unity-webxr-export.git?path=/Packages/webxr"); + PackageManagerHelper.AddPackage("https://github.com/De-Panther/unity-webxr-export.git?path=/Packages/webxr#webxr/0.22.0"); #endif #if !WEBXRINTERACTIONS_0_0_0_OR_NEWER - PackageManagerHelper.Add("https://github.com/De-Panther/unity-webxr-export.git?path=/Packages/webxr-interactions"); + PackageManagerHelper.AddPackage("https://github.com/De-Panther/unity-webxr-export.git?path=/Packages/webxr-interactions#webxr-interactions/0.22.0"); +#endif +#if WEBXRINTERACTIONS_0_22_0_OR_NEWER + PackageManagerHelper.RequireSample("com.de-panther.webxr-interactions","XR Interaction Toolkit Sample"); #endif EditorApplication.update -= Update; } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/RequireSamplesXRI_WebXR.cs b/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/RequireSamplesXRI_WebXR.cs index d9219a4eb..31c16e8a8 100644 --- a/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/RequireSamplesXRI_WebXR.cs +++ b/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/RequireSamplesXRI_WebXR.cs @@ -41,7 +41,7 @@ public static bool AssetExistsFromGUID(string guid) } } -#if XRI_2_4_3_OR_NEWER +#if XRI_2_5_2_OR_NEWER [InitializeOnLoad] public class RequireSamplesXRI_WebXR { diff --git a/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/Ubiq.Player.Editor.asmdef b/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/Ubiq.Player.Editor.asmdef index 97c0a5f79..ce359e5ff 100644 --- a/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/Ubiq.Player.Editor.asmdef +++ b/Unity/Assets/Ubiq/Samples/Player (XRI + WebXR)/Scripts/Editor/Ubiq.Player.Editor.asmdef @@ -25,6 +25,11 @@ "expression": "0.22.0", "define": "WEBXR_0_22_0_OR_NEWER" }, + { + "name": "com.de-panther.webxr", + "expression": "0.22.1", + "define": "WEBXR_0_22_1_OR_NEWER" + }, { "name": "com.de-panther.webxr-interactions", "expression": "0.0.0", @@ -35,6 +40,11 @@ "expression": "0.22.0", "define": "WEBXRINTERACTIONS_0_22_0_OR_NEWER" }, + { + "name": "com.de-panther.webxr-interactions", + "expression": "0.22.1", + "define": "WEBXRINTERACTIONS_0_22_1_OR_NEWER" + }, { "name": "com.unity.xr.interaction.toolkit", "expression": "0.0.0", @@ -42,8 +52,13 @@ }, { "name": "com.unity.xr.interaction.toolkit", - "expression": "2.4.3", - "define": "XRI_2_4_3_OR_NEWER" + "expression": "2.5.2", + "define": "XRI_2_5_2_OR_NEWER" + }, + { + "name": "com.unity.xr.interaction.toolkit", + "expression": "2.5.3", + "define": "XRI_2_5_3_OR_NEWER" } ], "noEngineReferences": false diff --git a/Unity/Assets/Ubiq/package.json b/Unity/Assets/Ubiq/package.json index 76fb7efc0..7f38bb29d 100644 --- a/Unity/Assets/Ubiq/package.json +++ b/Unity/Assets/Ubiq/package.json @@ -25,7 +25,7 @@ { "displayName": "Player (XRI + WebXR)", "description": "Alternative player prefab for WebXR (and standard) build target(s). Compatible with XRI.\nWill add dependencies:\n • com.unity.xr.interaction.toolkit\n • com.de-panther.webxr\n • com.de-panther.webxr-interactions", - "path": "Samples~/Player (WebXR + XRI)" + "path": "Samples~/Player (XRI + WebXR)" } ] } \ No newline at end of file diff --git a/Unity/ProjectSettings/QualitySettings.asset b/Unity/ProjectSettings/QualitySettings.asset index 81ec7c38e..8e69add84 100644 --- a/Unity/ProjectSettings/QualitySettings.asset +++ b/Unity/ProjectSettings/QualitySettings.asset @@ -6,7 +6,7 @@ QualitySettings: serializedVersion: 5 m_CurrentQuality: 2 m_QualitySettings: - - serializedVersion: 2 + - serializedVersion: 3 name: Very Low pixelLightCount: 0 shadows: 0 @@ -19,17 +19,20 @@ QualitySettings: shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 0 skinWeights: 1 - textureQuality: 1 + globalTextureMipmapLimit: 1 + textureMipmapLimitSettings: [] anisotropicTextures: 0 antiAliasing: 0 softParticles: 0 softVegetation: 0 realtimeReflectionProbes: 0 billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 1 vSyncCount: 0 realtimeGICPUUsage: 25 lodBias: 0.3 maximumLODLevel: 0 + enableLODCrossFade: 1 streamingMipmapsActive: 0 streamingMipmapsAddAllCameras: 1 streamingMipmapsMemoryBudget: 512 @@ -42,8 +45,17 @@ QualitySettings: asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 2 + - serializedVersion: 3 name: Low pixelLightCount: 0 shadows: 0 @@ -56,17 +68,20 @@ QualitySettings: shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 0 skinWeights: 2 - textureQuality: 0 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] anisotropicTextures: 0 antiAliasing: 0 softParticles: 0 softVegetation: 0 realtimeReflectionProbes: 0 billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 1 vSyncCount: 0 realtimeGICPUUsage: 25 lodBias: 0.4 maximumLODLevel: 0 + enableLODCrossFade: 1 streamingMipmapsActive: 0 streamingMipmapsAddAllCameras: 1 streamingMipmapsMemoryBudget: 512 @@ -79,8 +94,17 @@ QualitySettings: asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 2 + - serializedVersion: 3 name: Medium pixelLightCount: 1 shadows: 2 @@ -93,17 +117,20 @@ QualitySettings: shadowCascade4Split: {x: 0.074999996, y: 0.23541668, z: 0.5312501} shadowmaskMode: 0 skinWeights: 2 - textureQuality: 0 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] anisotropicTextures: 1 - antiAliasing: 4 + antiAliasing: 0 softParticles: 0 softVegetation: 0 realtimeReflectionProbes: 0 billboardsFaceCameraPosition: 0 + useLegacyDetailDistribution: 1 vSyncCount: 1 realtimeGICPUUsage: 25 lodBias: 0.7 maximumLODLevel: 0 + enableLODCrossFade: 1 streamingMipmapsActive: 0 streamingMipmapsAddAllCameras: 1 streamingMipmapsMemoryBudget: 512 @@ -116,8 +143,17 @@ QualitySettings: asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 2 + - serializedVersion: 3 name: High pixelLightCount: 2 shadows: 2 @@ -130,17 +166,20 @@ QualitySettings: shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 1 skinWeights: 2 - textureQuality: 0 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] anisotropicTextures: 1 antiAliasing: 0 softParticles: 0 softVegetation: 1 realtimeReflectionProbes: 1 billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 vSyncCount: 1 realtimeGICPUUsage: 50 lodBias: 1 maximumLODLevel: 0 + enableLODCrossFade: 1 streamingMipmapsActive: 0 streamingMipmapsAddAllCameras: 1 streamingMipmapsMemoryBudget: 512 @@ -153,8 +192,17 @@ QualitySettings: asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 2 + - serializedVersion: 3 name: Very High pixelLightCount: 3 shadows: 2 @@ -167,17 +215,20 @@ QualitySettings: shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 1 skinWeights: 4 - textureQuality: 0 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] anisotropicTextures: 2 antiAliasing: 2 softParticles: 1 softVegetation: 1 realtimeReflectionProbes: 1 billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 vSyncCount: 1 realtimeGICPUUsage: 50 lodBias: 1.5 maximumLODLevel: 0 + enableLODCrossFade: 1 streamingMipmapsActive: 0 streamingMipmapsAddAllCameras: 1 streamingMipmapsMemoryBudget: 512 @@ -190,8 +241,17 @@ QualitySettings: asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 excludedTargetPlatforms: [] - - serializedVersion: 2 + - serializedVersion: 3 name: Ultra pixelLightCount: 4 shadows: 2 @@ -204,17 +264,20 @@ QualitySettings: shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} shadowmaskMode: 1 skinWeights: 4 - textureQuality: 0 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] anisotropicTextures: 2 antiAliasing: 4 softParticles: 1 softVegetation: 1 realtimeReflectionProbes: 1 billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 vSyncCount: 1 realtimeGICPUUsage: 100 lodBias: 2 maximumLODLevel: 0 + enableLODCrossFade: 1 streamingMipmapsActive: 0 streamingMipmapsAddAllCameras: 1 streamingMipmapsMemoryBudget: 512 @@ -227,7 +290,17 @@ QualitySettings: asyncUploadPersistentBuffer: 1 resolutionScalingFixedDPIFactor: 1 customRenderPipeline: {fileID: 0} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 excludedTargetPlatforms: [] + m_TextureMipmapLimitGroupNames: [] m_PerPlatformDefaultQuality: Android: 2 Lumin: 5