From 6374dcf1aaac60e209b473590151b3144e208317 Mon Sep 17 00:00:00 2001 From: Stephen Hodgson Date: Wed, 13 Dec 2023 10:28:40 -0500 Subject: [PATCH] com.utilities.rest 2.4.0 (#56) - Refactored Multimedia downloaders - Added Debugging flag for http requests - Fixed downloading for webgl --- .../com.utilities.rest/Runtime/Rest.cs | 173 +++++---- .../Packages/com.utilities.rest/package.json | 2 +- Utilities.Rest/Packages/manifest.json | 2 +- .../ProjectSettings/ProjectSettings.asset | 335 ++++++++++-------- .../ProjectSettings/ProjectVersion.txt | 4 +- 5 files changed, 295 insertions(+), 221 deletions(-) diff --git a/Utilities.Rest/Packages/com.utilities.rest/Runtime/Rest.cs b/Utilities.Rest/Packages/com.utilities.rest/Runtime/Rest.cs index f6a7954..b184db4 100644 --- a/Utilities.Rest/Packages/com.utilities.rest/Runtime/Rest.cs +++ b/Utilities.Rest/Packages/com.utilities.rest/Runtime/Rest.cs @@ -429,34 +429,22 @@ public static async Task DeleteAsync( #region Download Cache - private const string DOWNLOAD_CACHE = "download_cache"; + private const string download_cache = nameof(download_cache); private static IDownloadCache cache; private static IDownloadCache Cache - { - get + => cache ??= Application.platform switch { - if (cache != null) - { - return cache; - } - - cache = Application.platform switch - { - RuntimePlatform.WebGLPlayer => new NoOpDownloadCache(), - _ => new DiskDownloadCache() - }; - - return cache; - } - } + RuntimePlatform.WebGLPlayer => new NoOpDownloadCache(), + _ => new DiskDownloadCache() + }; /// /// The download cache directory.
///
public static string DownloadCacheDirectory - => Path.Combine(Application.temporaryCachePath, DOWNLOAD_CACHE); + => Path.Combine(Application.temporaryCachePath, download_cache); /// /// Creates the if it doesn't exist. @@ -510,19 +498,31 @@ public static bool TryGetFileNameFromUrl(string url, out string fileName) #endregion Download Cache + [Obsolete("use new overload with debug support")] + public static async Task DownloadTextureAsync( + string url, + string fileName = null, + RestParameters parameters = null, + CancellationToken cancellationToken = default) + { + return await DownloadTextureAsync(url, fileName, parameters, false, cancellationToken); + } + /// /// Download a from the provided . /// /// The url to download the from. /// Optional, file name to download (including extension). /// Optional, . + /// Optional, debug http request. /// Optional, . /// A new instance. public static async Task DownloadTextureAsync( - string url, - string fileName = null, - RestParameters parameters = null, - CancellationToken cancellationToken = default) + string url, + string fileName = null, + RestParameters parameters = null, + bool debug = false, + CancellationToken cancellationToken = default) { await Awaiters.UnityMainThread; @@ -549,28 +549,22 @@ public static async Task DownloadTextureAsync( url = cachePath; } - using var webRequest = UnityWebRequestTexture.GetTexture(url); - parameters ??= new RestParameters(); - parameters.DisposeDownloadHandler = false; - var response = await webRequest.SendAsync(parameters, cancellationToken); - - if (!response.Successful) - { - throw new RestException(response, $"Failed to download texture from \"{url}\"!"); - } - Texture2D texture; - var downloadHandler = (DownloadHandlerTexture)webRequest.downloadHandler; + parameters ??= new RestParameters(); + parameters.DisposeDownloadHandler = true; + using var webRequest = UnityWebRequestTexture.GetTexture(url); try { + var response = await webRequest.SendAsync(parameters, cancellationToken); + response.Validate(debug); + if (!isCached) { - await Cache.WriteCacheItemAsync(downloadHandler.data, cachePath, cancellationToken); + await Cache.WriteCacheItemAsync(webRequest.downloadHandler.data, cachePath, cancellationToken).ConfigureAwait(true); } - await Awaiters.UnityMainThread; - texture = downloadHandler.texture; + texture = ((DownloadHandlerTexture)webRequest.downloadHandler).texture; if (texture == null) { @@ -579,27 +573,45 @@ public static async Task DownloadTextureAsync( } finally { - downloadHandler.Dispose(); + webRequest.downloadHandler?.Dispose(); } texture.name = Path.GetFileNameWithoutExtension(cachePath); return texture; } + [Obsolete("Use new overload with debug support")] + public static async Task DownloadAudioClipAsync( + string url, + AudioType audioType, + RestParameters parameters = null, + CancellationToken cancellationToken = default) + { + return await DownloadAudioClipAsync(url, audioType, httpMethod: UnityWebRequest.kHttpVerbGET, parameters: parameters, cancellationToken: cancellationToken); + } + /// /// Download a from the provided . /// /// The url to download the from. /// to download. /// Optional, file name to download (including extension). + /// Optional, must be either GET or POST. + /// Optional, json payload. Only OR can be supplied. + /// Optional, raw byte payload. Only OR can be supplied. /// Optional, . + /// Optional, debug http request. /// Optional, . /// A new instance. public static async Task DownloadAudioClipAsync( string url, AudioType audioType, + string httpMethod = UnityWebRequest.kHttpVerbGET, string fileName = null, + string jsonData = null, + byte[] payload = null, RestParameters parameters = null, + bool debug = false, CancellationToken cancellationToken = default) { await Awaiters.UnityMainThread; @@ -627,21 +639,53 @@ public static async Task DownloadAudioClipAsync( url = cachePath; } - using var webRequest = UnityWebRequestMultimedia.GetAudioClip(url, audioType); - parameters ??= new RestParameters(); - parameters.DisposeDownloadHandler = false; - var response = await webRequest.SendAsync(parameters, cancellationToken); + UploadHandler uploadHandler = null; + using var downloadHandler = new DownloadHandlerAudioClip(url, audioType); - if (!response.Successful) + if (httpMethod == UnityWebRequest.kHttpVerbPOST) { - throw new RestException(response, $"Failed to download audio clip from \"{url}\"!"); + if (!string.IsNullOrWhiteSpace(jsonData)) + { + if (payload != null) + { + throw new ArgumentException($"{nameof(payload)} and {nameof(jsonData)} cannot be supplied in the same request. Choose either one or the other.", nameof(jsonData)); + } + + payload = new UTF8Encoding().GetBytes(jsonData); + + var jsonHeaders = new Dictionary + { + { "Content-Type", "application/json" } + }; + + if (parameters is { Headers: not null }) + { + foreach (var header in parameters.Headers) + { + jsonHeaders.Add(header.Key, header.Value); + } + } + + if (parameters != null) + { + parameters.Headers = jsonHeaders; + } + } + + uploadHandler = new UploadHandlerRaw(payload); } AudioClip clip; - var downloadHandler = (DownloadHandlerAudioClip)webRequest.downloadHandler; + parameters ??= new RestParameters(); + parameters.DisposeUploadHandler = false; + parameters.DisposeDownloadHandler = false; + using var webRequest = new UnityWebRequest(url, httpMethod, downloadHandler, uploadHandler); try { + var response = await webRequest.SendAsync(parameters, cancellationToken); + response.Validate(debug); + if (!isCached) { await Cache.WriteCacheItemAsync(downloadHandler.data, cachePath, cancellationToken); @@ -650,16 +694,15 @@ public static async Task DownloadAudioClipAsync( await Awaiters.UnityMainThread; clip = downloadHandler.audioClip; - if (clip == null || - clip.loadState == AudioDataLoadState.Failed || - clip.loadState == AudioDataLoadState.Unloaded) + if (clip == null) { - throw new RestException(response, $"Failed to load audio clip from \"{url}\"!"); + throw new RestException(response, $"Failed to download audio clip from \"{url}\"!"); } } finally { downloadHandler.Dispose(); + uploadHandler?.Dispose(); } clip.name = Path.GetFileNameWithoutExtension(cachePath); @@ -667,7 +710,7 @@ public static async Task DownloadAudioClipAsync( } /// - /// Download a from the provided . + /// Stream a from the provided . /// /// The url to download the from. /// to download. @@ -680,7 +723,7 @@ public static async Task DownloadAudioClipAsync( /// Optional, . /// Optional, debug http request. /// Optional, . - /// Raw downloaded bytes from the stream. + /// A new instance. public static async Task StreamAudioAsync( string url, AudioType audioType, @@ -748,9 +791,8 @@ public static async Task StreamAudioAsync( parameters.DisposeUploadHandler = false; parameters.DisposeDownloadHandler = false; using var downloadHandler = new DownloadHandlerAudioClip(url, audioType); - downloadHandler.streamAudio = true; // BUG: Due to a Unity bug this is actually totally non-functional... https://forum.unity.com/threads/downloadhandleraudioclip-streamaudio-is-ignored.699908/ + downloadHandler.streamAudio = true; // BUG: Due to a Unity bug this does not work with mp3s of indeterminate length. https://forum.unity.com/threads/downloadhandleraudioclip-streamaudio-is-ignored.699908/ using var webRequest = new UnityWebRequest(url, httpMethod, downloadHandler, uploadHandler); - IProgress progress = null; if (parameters.Progress != null) @@ -894,19 +936,31 @@ public static async Task DownloadAssetBundleAsync( #endif // UNITY_ADDRESSABLES + [Obsolete("use new overload with debug support")] + public static async Task DownloadFileAsync( + string url, + string fileName = null, + RestParameters parameters = null, + CancellationToken cancellationToken = default) + { + return await DownloadFileAsync(url, fileName, parameters, false, cancellationToken); + } + /// /// Download a file from the provided . /// /// The url to download the file from. /// Optional, file name to download (including extension). /// Optional, . + /// Optional, debug http request. /// Optional, . /// The path to the downloaded file. public static async Task DownloadFileAsync( - string url, - string fileName = null, - RestParameters parameters = null, - CancellationToken cancellationToken = default) + string url, + string fileName = null, + RestParameters parameters = null, + bool debug = false, + CancellationToken cancellationToken = default) { await Awaiters.UnityMainThread; @@ -925,12 +979,7 @@ public static async Task DownloadFileAsync( fileDownloadHandler.removeFileOnAbort = true; webRequest.downloadHandler = fileDownloadHandler; var response = await webRequest.SendAsync(parameters, cancellationToken); - - if (!response.Successful) - { - throw new RestException(response, $"Failed to download file from \"{url}\"!"); - } - + response.Validate(debug); return filePath; } diff --git a/Utilities.Rest/Packages/com.utilities.rest/package.json b/Utilities.Rest/Packages/com.utilities.rest/package.json index aede2db..6df5897 100644 --- a/Utilities.Rest/Packages/com.utilities.rest/package.json +++ b/Utilities.Rest/Packages/com.utilities.rest/package.json @@ -3,7 +3,7 @@ "displayName": "Utilities.Rest", "description": "This package contains useful RESTful utilities for the Unity Game Engine.", "keywords": [], - "version": "2.3.1", + "version": "2.4.0", "unity": "2021.3", "documentationUrl": "https://github.com/RageAgainstThePixel/com.utilities.rest#documentation", "changelogUrl": "https://github.com/RageAgainstThePixel/com.utilities.rest/releases", diff --git a/Utilities.Rest/Packages/manifest.json b/Utilities.Rest/Packages/manifest.json index 577ad3d..3cc3795 100644 --- a/Utilities.Rest/Packages/manifest.json +++ b/Utilities.Rest/Packages/manifest.json @@ -1,6 +1,6 @@ { "dependencies": { - "com.unity.ide.rider": "3.0.26", + "com.unity.ide.rider": "3.0.27", "com.unity.ide.visualstudio": "2.0.22", "com.utilities.buildpipeline": "1.1.9" }, diff --git a/Utilities.Rest/ProjectSettings/ProjectSettings.asset b/Utilities.Rest/ProjectSettings/ProjectSettings.asset index 7b4e4ca..50e373b 100644 --- a/Utilities.Rest/ProjectSettings/ProjectSettings.asset +++ b/Utilities.Rest/ProjectSettings/ProjectSettings.asset @@ -3,7 +3,7 @@ --- !u!129 &1 PlayerSettings: m_ObjectHideFlags: 0 - serializedVersion: 24 + serializedVersion: 26 productGUID: 40b10b75df2bc1c4081e9d8da766a3c0 AndroidProfiler: 0 AndroidFilterTouchesWhenObscured: 0 @@ -48,14 +48,16 @@ PlayerSettings: defaultScreenHeightWeb: 600 m_StereoRenderingPath: 0 m_ActiveColorSpace: 0 + unsupportedMSAAFallback: 0 + m_SpriteBatchVertexThreshold: 300 m_MTRendering: 1 mipStripping: 0 numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} m_StackTraceTypes: 010000000100000001000000010000000100000001000000 iosShowActivityIndicatorOnLoading: -1 androidShowActivityIndicatorOnLoading: -1 iosUseCustomAppBackgroundBehavior: 0 - iosAllowHTTPDownload: 1 allowedAutorotateToPortrait: 1 allowedAutorotateToPortraitUpsideDown: 1 allowedAutorotateToLandscapeRight: 1 @@ -85,6 +87,7 @@ PlayerSettings: hideHomeButton: 0 submitAnalytics: 1 usePlayerLog: 1 + dedicatedServerOptimizations: 0 bakeCollisionMeshes: 0 forceSingleInstance: 0 useFlipModelSwapchain: 1 @@ -119,8 +122,12 @@ PlayerSettings: switchNVNShaderPoolsGranularity: 33554432 switchNVNDefaultPoolsGranularity: 16777216 switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 switchNVNMaxPublicTextureIDCount: 0 switchNVNMaxPublicSamplerIDCount: 0 + switchNVNGraphicsFirmwareMemory: 32 + switchMaxWorkerMultiple: 8 stadiaPresentMode: 0 stadiaTargetFramerate: 0 vulkanNumSwapchainBuffers: 3 @@ -128,12 +135,7 @@ PlayerSettings: vulkanEnablePreTransform: 0 vulkanEnableLateAcquireNextImage: 0 vulkanEnableCommandBufferRecycling: 1 - m_SupportedAspectRatios: - 4:3: 1 - 5:4: 1 - 16:10: 1 - 16:9: 1 - Others: 1 + loadStoreDebugModeEnabled: 0 bundleVersion: 1.0.0 preloadedAssets: [] metroInputSource: 0 @@ -146,8 +148,9 @@ PlayerSettings: isWsaHolographicRemotingEnabled: 0 enableFrameTimingStats: 0 enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 useHDRDisplay: 0 - D3DHDRBitDepth: 0 + hdrBitDepth: 0 m_ColorGamuts: 00000000 targetPixelDensity: 30 resolutionScalingMode: 0 @@ -158,9 +161,11 @@ PlayerSettings: Android: com.utilities.rest Lumin: com.Utilities.Rest Standalone: com.utilities.rest + WebGL: com.utilities.rest iPhone: com.utilities.rest buildNumber: Standalone: 0 + VisionOS: 0 iPhone: 0 tvOS: 0 overrideDefaultApplicationIdentifier: 1 @@ -168,7 +173,7 @@ PlayerSettings: AndroidMinSdkVersion: 22 AndroidTargetSdkVersion: 0 AndroidPreferredInstallLocation: 1 - aotOptions: + aotOptions: stripEngineCode: 1 iPhoneStrippingLevel: 0 iPhoneScriptCallOptimization: 0 @@ -178,12 +183,15 @@ PlayerSettings: APKExpansionFiles: 0 keepLoadedShadersAlive: 0 StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 VertexChannelCompressionMask: 4054 iPhoneSdkVersion: 988 iOSTargetOSVersionString: 12.0 tvOSSdkVersion: 0 tvOSRequireExtendedGameController: 0 tvOSTargetOSVersionString: 12.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 uIPrerenderedIcon: 0 uIRequiresPersistentWiFi: 0 uIRequiresFullScreen: 1 @@ -208,7 +216,7 @@ PlayerSettings: rgba: 0 iOSLaunchScreenFillPct: 100 iOSLaunchScreenSize: 100 - iOSLaunchScreenCustomXibPath: + iOSLaunchScreenCustomXibPath: iOSLaunchScreeniPadType: 0 iOSLaunchScreeniPadImage: {fileID: 0} iOSLaunchScreeniPadBackgroundColor: @@ -216,9 +224,9 @@ PlayerSettings: rgba: 0 iOSLaunchScreeniPadFillPct: 100 iOSLaunchScreeniPadSize: 100 - iOSLaunchScreeniPadCustomXibPath: - iOSLaunchScreenCustomStoryboardPath: - iOSLaunchScreeniPadCustomStoryboardPath: + iOSLaunchScreeniPadCustomXibPath: + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: iOSDeviceRequirements: [] iOSURLSchemes: [] macOSURLSchemes: [] @@ -228,32 +236,36 @@ PlayerSettings: metalAPIValidation: 1 iOSRenderExtraFrameOnPause: 0 iosCopyPluginsCodeInsteadOfSymlink: 0 - appleDeveloperTeamID: - iOSManualSigningProvisioningProfileID: - tvOSManualSigningProvisioningProfileID: + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: iOSManualSigningProvisioningProfileType: 0 tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 appleEnableAutomaticSigning: 0 iOSRequireARKit: 0 iOSAutomaticallyDetectAndAddCapabilities: 1 appleEnableProMotion: 0 shaderPrecisionModel: 0 clonedFromGUID: 00000000000000000000000000000000 - templatePackageId: - templateDefaultScene: + templatePackageId: + templateDefaultScene: useCustomMainManifest: 0 useCustomLauncherManifest: 0 useCustomMainGradleTemplate: 0 useCustomLauncherGradleManifest: 0 useCustomBaseGradleTemplate: 0 useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 useCustomProguardFile: 0 AndroidTargetArchitectures: 1 AndroidTargetDevices: 0 AndroidSplashScreenScale: 0 androidSplashScreen: {fileID: 0} - AndroidKeystoreName: - AndroidKeyaliasName: + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 AndroidBuildApkPerCpuArchitecture: 0 AndroidTVCompatibility: 0 AndroidIsGame: 1 @@ -267,7 +279,6 @@ PlayerSettings: banner: {fileID: 0} androidGamepadSupportLevel: 0 chromeosInputEmulation: 1 - AndroidMinifyWithR8: 0 AndroidMinifyRelease: 0 AndroidMinifyDebug: 0 AndroidValidateAppBundleSize: 1 @@ -280,92 +291,92 @@ PlayerSettings: m_Width: 432 m_Height: 432 m_Kind: 2 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 324 m_Height: 324 m_Kind: 2 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 216 m_Height: 216 m_Kind: 2 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 162 m_Height: 162 m_Kind: 2 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 108 m_Height: 108 m_Kind: 2 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 81 m_Height: 81 m_Kind: 2 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 192 m_Height: 192 m_Kind: 1 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 144 m_Height: 144 m_Kind: 1 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 96 m_Height: 96 m_Kind: 1 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 72 m_Height: 72 m_Kind: 1 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 48 m_Height: 48 m_Kind: 1 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 36 m_Height: 36 m_Kind: 1 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 192 m_Height: 192 m_Kind: 0 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 144 m_Height: 144 m_Kind: 0 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 96 m_Height: 96 m_Kind: 0 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 72 m_Height: 72 m_Kind: 0 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 48 m_Height: 48 m_Kind: 0 - m_SubKind: + m_SubKind: - m_Textures: [] m_Width: 36 m_Height: 36 m_Kind: 0 - m_SubKind: + m_SubKind: - m_BuildTarget: iPhone m_Icons: - m_Textures: [] @@ -486,7 +497,9 @@ PlayerSettings: iPhone: 1 tvOS: 1 m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] m_BuildTargetNormalMapEncoding: [] m_BuildTargetDefaultTextureCompressionFormat: [] playModeTestRunnerEnabled: 0 @@ -495,53 +508,55 @@ PlayerSettings: enableInternalProfiler: 0 logObjCUncaughtExceptions: 1 enableCrashReportAPI: 0 - cameraUsageDescription: - locationUsageDescription: - microphoneUsageDescription: - bluetoothUsageDescription: - switchNMETAOverride: - switchNetLibKey: + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 10.13.0 + switchNMETAOverride: + switchNetLibKey: switchSocketMemoryPoolSize: 6144 switchSocketAllocatorPoolSize: 128 switchSocketConcurrencyLimit: 14 switchScreenResolutionBehavior: 2 switchUseCPUProfiler: 0 - switchUseGOLDLinker: 0 + switchEnableFileSystemTrace: 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: + switchNSODependencies: + switchCompilerFlags: + 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} @@ -574,18 +589,18 @@ PlayerSettings: switchSmallIcons_13: {fileID: 0} switchSmallIcons_14: {fileID: 0} switchSmallIcons_15: {fileID: 0} - switchManualHTML: - switchAccessibleURLs: - switchLegalInformation: + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: switchMainThreadStackSize: 1048576 - switchPresenceGroupId: + switchPresenceGroupId: switchLogoHandling: 0 switchReleaseVersion: 0 switchDisplayVersion: 1.0.0 switchStartupUserAccount: 0 switchSupportedLanguagesMask: 0 switchLogoType: 0 - switchApplicationErrorCodeCategory: + switchApplicationErrorCodeCategory: switchUserAccountSaveDataSize: 0 switchUserAccountSaveDataJournalSize: 0 switchApplicationAttribute: 0 @@ -605,14 +620,14 @@ PlayerSettings: 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: + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: switchParentalControl: 0 switchAllowsScreenshot: 1 switchAllowsVideoCapturing: 1 @@ -635,7 +650,6 @@ PlayerSettings: switchSocketBufferEfficiency: 4 switchSocketInitializeEnabled: 1 switchNetworkInterfaceManagerInitializeEnabled: 1 - switchPlayerConnectionEnabled: 1 switchUseNewStyleFilepaths: 0 switchUseLegacyFmodPriorities: 1 switchUseMicroSleepForYield: 1 @@ -643,35 +657,35 @@ PlayerSettings: switchMicroSleepForYieldTime: 25 switchRamDiskSpaceSize: 12 ps4NPAgeRating: 12 - ps4NPTitleSecret: - ps4NPTrophyPackPath: + ps4NPTitleSecret: + ps4NPTrophyPackPath: ps4ParentalLevel: 11 ps4ContentID: ED1633-NPXX51362_00-0000000000000000 ps4Category: 0 ps4MasterVersion: 01.00 ps4AppVersion: 01.00 ps4AppType: 0 - ps4ParamSfxPath: + ps4ParamSfxPath: ps4VideoOutPixelFormat: 0 ps4VideoOutInitialWidth: 1920 ps4VideoOutBaseModeInitialWidth: 1920 ps4VideoOutReprojectionRate: 60 - ps4PronunciationXMLPath: - ps4PronunciationSIGPath: - ps4BackgroundImagePath: - ps4StartupImagePath: - ps4StartupImagesFolder: - ps4IconImagesFolder: - ps4SaveDataImagePath: - ps4SdkOverride: - ps4BGMPath: - ps4ShareFilePath: - ps4ShareOverlayImagePath: - ps4PrivacyGuardImagePath: - ps4ExtraSceSysFile: - ps4NPtitleDatPath: + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: ps4RemotePlayKeyAssignment: -1 - ps4RemotePlayKeyMappingDir: + ps4RemotePlayKeyMappingDir: ps4PlayTogetherPlayerCount: 0 ps4EnterButtonAssignment: 2 ps4ApplicationParam1: 0 @@ -699,9 +713,9 @@ PlayerSettings: ps4ScriptOptimizationLevel: 2 ps4Audio3dVirtualSpeakerCount: 14 ps4attribCpuUsage: 0 - ps4PatchPkgPath: - ps4PatchLatestPkgPath: - ps4PatchChangeinfoPath: + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: ps4PatchDayOne: 0 ps4attribUserManagement: 0 ps4attribMoveSupport: 0 @@ -717,18 +731,19 @@ PlayerSettings: ps4attribEyeToEyeDistanceSettingVR: 0 ps4IncludedModules: [] ps4attribVROutputEnabled: 0 - monoEnv: + monoEnv: splashScreenBackgroundSourceLandscape: {fileID: 0} splashScreenBackgroundSourcePortrait: {fileID: 0} blurSplashScreenBackground: 1 - spritePackerPolicy: + spritePackerPolicy: webGLMemorySize: 32 webGLExceptionSupport: 1 webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 webGLDataCaching: 1 webGLDebugSymbols: 0 - webGLEmscriptenArgs: - webGLModulesDirectory: + webGLEmscriptenArgs: + webGLModulesDirectory: webGLTemplate: APPLICATION:Default webGLAnalyzeBuildSize: 0 webGLUseEmbeddedResources: 0 @@ -737,6 +752,12 @@ PlayerSettings: webGLLinkerTarget: 1 webGLThreadsSupport: 0 webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 webGLPowerPreference: 2 scriptingDefineSymbols: {} additionalCompilerArguments: {} @@ -746,6 +767,7 @@ PlayerSettings: Server: 1 Standalone: 1 il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} managedStrippingLevel: Android: 1 EmbeddedLinux: 1 @@ -767,23 +789,20 @@ PlayerSettings: suppressCommonWarnings: 1 allowUnsafeCode: 0 useDeterministicCompilation: 1 - enableRoslynAnalyzers: 1 - selectedPlatform: 0 - additionalIl2CppArgs: + additionalIl2CppArgs: scriptingRuntimeVersion: 1 gcIncremental: 0 - assemblyVersionValidation: 1 gcWBarrierValidation: 0 apiCompatibilityLevelPerPlatform: Windows Store Apps: 6 m_RenderingPath: 1 m_MobileRenderingPath: 1 metroPackageName: com.Utilities.Rest - metroPackageVersion: 0.1.0.0 - metroCertificatePath: - metroCertificatePassword: - metroCertificateSubject: - metroCertificateIssuer: + metroPackageVersion: 1.0.0.0 + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: metroCertificateNotAfter: 0000000000000000 metroApplicationDescription: com.Utilities.Rest wsaImages: {} @@ -802,7 +821,7 @@ PlayerSettings: metroSplashScreenUseBackgroundColor: 0 platformCapabilities: WindowsStoreApps: - EnterpriseAuthentication: False + CodeGeneration: False OfflineMapsManagement: False HumanInterfaceDevice: False Location: False @@ -838,8 +857,8 @@ PlayerSettings: Contacts: False Proximity: False InternetClient: False - CodeGeneration: False BackgroundMediaPlayback: False + EnterpriseAuthentication: False metroTargetDeviceFamilies: Desktop: False Holographic: False @@ -848,23 +867,23 @@ PlayerSettings: Mobile: False Team: False Xbox: False - metroFTAName: + metroFTAName: metroFTAFileTypes: [] - metroProtocolName: - vcxProjDefaultLanguage: - XboxOneProductId: - XboxOneUpdateKey: - XboxOneSandboxId: - XboxOneContentId: - XboxOneTitleId: - XboxOneSCId: - XboxOneGameOsOverridePath: - XboxOnePackagingOverridePath: - XboxOneAppManifestOverridePath: + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: XboxOneVersion: 1.0.0.0 XboxOnePackageEncryption: 0 XboxOnePackageUpdateGranularity: 2 - XboxOneDescription: + XboxOneDescription: XboxOneLanguage: - enus XboxOneCapability: [] @@ -877,31 +896,37 @@ PlayerSettings: XboxOneAllowedProductIds: [] XboxOnePersistentLocalStorageSize: 0 XboxOneXTitleMemory: 8 - XboxOneOverrideIdentityName: - XboxOneOverrideIdentityPublisher: + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: vrEditorSettings: {} cloudServicesEnabled: {} luminIcon: - m_Name: - m_ModelFolderPath: - m_PortalFolderPath: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: luminCert: - m_CertPath: + m_CertPath: m_SignPackage: 1 luminIsChannelApp: 0 luminVersion: m_VersionCode: 1 - m_VersionName: + m_VersionName: 1.0.0 + hmiPlayerDataPath: + hmiForceSRGBBlit: 1 + embeddedLinuxEnableGamepadInput: 1 + hmiLogStartupTiming: 0 + hmiCpuConfiguration: apiCompatibilityLevel: 6 activeInputHandler: 0 windowsGamepadBackendHint: 0 - cloudProjectId: + cloudProjectId: framebufferDepthMemorylessMode: 0 qualitySettingsNames: [] - projectName: - organizationId: + projectName: + organizationId: cloudEnabled: 0 legacyClampBlendShapeWeights: 0 - playerDataPath: - forceSRGBBlit: 1 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 diff --git a/Utilities.Rest/ProjectSettings/ProjectVersion.txt b/Utilities.Rest/ProjectSettings/ProjectVersion.txt index 88bb9cf..2e7bb8a 100644 --- a/Utilities.Rest/ProjectSettings/ProjectVersion.txt +++ b/Utilities.Rest/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2022.3.10f1 -m_EditorVersionWithRevision: 2022.3.10f1 (ff3792e53c62) +m_EditorVersion: 2022.3.15f1 +m_EditorVersionWithRevision: 2022.3.15f1 (b58023a2b463)