diff --git a/PubNubUnity/Assets/PubNub/Editor/PNConfigAssetEditor.cs b/PubNubUnity/Assets/PubNub/Editor/PNConfigAssetEditor.cs index bb7d9c0e..5861c9f3 100644 --- a/PubNubUnity/Assets/PubNub/Editor/PNConfigAssetEditor.cs +++ b/PubNubUnity/Assets/PubNub/Editor/PNConfigAssetEditor.cs @@ -22,6 +22,7 @@ public class PNConfigAssetEditor : Editor { "MaintainPresenceState", "EnableEventEngine", "EnableWebGLBuildMode", + "EnableHttp2", "LogToUnityConsole", "LogVerbosity", "LogLevel" diff --git a/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.dll b/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.dll index f480b594..271dbf53 100644 Binary files a/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.dll and b/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.dll differ diff --git a/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.xml b/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.xml index 8b59eadb..e2e43008 100644 --- a/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.xml +++ b/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.xml @@ -49,6 +49,10 @@ + + Estimates final URL size for regular publish GET using the same middleware path + and query construction used for actual requests. + The publish timetoken of a parent message @@ -160,6 +164,17 @@ Hexadecimal CBOR string Thrown when unsupported type is passed + + + Safely invokes a listener callback with exception handling to prevent listener exceptions from affecting SDK operations. + + The listener callback action to invoke. + The type of event being processed (for logging purposes). + + This method ensures that exceptions thrown by user-provided listener callbacks do not crash the SDK + or prevent other listeners from receiving events. All exceptions are logged at Warning level. + + Dispatch an invocation i.e. call a registered effect handler. @@ -410,6 +425,17 @@ region + + + When enabled single multi-channel subscriptions will internally be changed into multiple single-channel ones. + Enable this option if your keyset has channel-based sharding enabled. + This option requires Event Engine to be enabled (it's on by default). + WARNING: Enabling this option will also: +
  • Disable subscribing to channel groups
  • +
  • Disable subscribing with WithPresence() (you can still explicitly subscribe to *-pnpres channels directly)
  • +
  • Generate more server requests, potentially increasing costs
  • +
    +
    This property is obsolete. Use instead. @@ -428,6 +454,18 @@ PubnubLog is deprecated. Implement IPubnubLogger and Use SetLogger method to configure custom logger for improved flexibility and control. + + + When enabled (default), each outbound request negotiates HTTP/2 using + / VersionPolicy, with + automatic fallback to HTTP/1.1. HTTP/2 only takes effect against an HTTP/2-capable + (customer-enabled) PubNub origin; otherwise requests transparently use HTTP/1.1. + The negotiated protocol is re-evaluated on new connections (natural reconnect or + Pubnub client recreation); the SDK does not pin or proactively probe for HTTP/2. + On target frameworks without VersionPolicy support (netstandard2.0/.NET Framework), + only the request version is set as a best-effort hint. + + Call this function to globally clean up all background threads running in the SDK. Note that this will unsubscribe all channels. @@ -462,6 +500,23 @@ The identifier **must** be 4 bytes long. + + + Creates a transport backed by a caller-supplied . + Intended for testing and advanced transport scenarios (e.g. observing outgoing + requests or stubbing responses). The supplied handler is fully responsible for + TLS/certificate validation and proxy behavior; the SDK does not weaken or override + them here. Do not pass a handler that disables certificate validation in production. + + The message handler used to send requests. + Whether outbound requests should request HTTP/2 with HTTP/1.1 fallback. + + + + The negotiated HTTP protocol version of the response (e.g. 2.0 or 1.1), + taken from HttpResponseMessage.Version. Null when no response was received. + + MD5 Service provider diff --git a/PubNubUnity/Assets/PubNub/Runtime/Util/PNConfigAsset.cs b/PubNubUnity/Assets/PubNub/Runtime/Util/PNConfigAsset.cs index 4cb97d9a..cfde0bac 100644 --- a/PubNubUnity/Assets/PubNub/Runtime/Util/PNConfigAsset.cs +++ b/PubNubUnity/Assets/PubNub/Runtime/Util/PNConfigAsset.cs @@ -18,6 +18,7 @@ public class PNConfigAsset : ScriptableObject { public bool MaintainPresenceState = true; public bool EnableEventEngine = true; public bool EnableWebGLBuildMode; + public bool EnabbleHttp2 = true; public bool LogToUnityConsole = true; [Tooltip("Obsolete and used in legacy logging, if you can please use LogLevel instead")] public PNLogVerbosity LogVerbosity; @@ -37,6 +38,7 @@ public static implicit operator PNConfiguration(PNConfigAsset asset) { config.PublishKey = asset.PublishKey; config.SecretKey = asset.SecretKey; config.AuthKey = asset.AuthKey; + config.EnableHttp2 = asset.EnabbleHttp2; config.CipherKey = asset.CipherKey; config.NonSubscribeRequestTimeout = asset.NonSubscribeRequestTimeout; config.SubscribeTimeout = asset.SubscribeTimeout; diff --git a/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs b/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs index 12e583e5..369f95d6 100644 --- a/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs +++ b/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs @@ -1,4 +1,5 @@ using PubnubApi.PNSDK; +using UnityEngine; namespace PubnubApi.Unity { public static class PubnubUnityUtils { @@ -8,18 +9,53 @@ public static class PubnubUnityUtils { /// Pubnub configuration object /// Flag for enabling WebGL mode - sets httpTransportService to UnityWebGLHttpClientService /// Flag to set Unity specific logger (UnityPubNubLogger) - /// Optional: PNSDK source, used for analytics and debugging. - /// - public static Pubnub NewUnityPubnub(PNConfiguration configuration, bool webGLBuildMode = false, bool unityLogging = false, IPNSDKSource ipnsdkSource = null) { - ipnsdkSource ??= new UnityPNSDKSource(); - var pubnub = webGLBuildMode - ? new Pubnub(configuration, httpTransportService: new UnityWebGLHttpClientService(), - ipnsdkSource: ipnsdkSource) - : new Pubnub(configuration, ipnsdkSource: ipnsdkSource); + /// Custom PNSDK source, used for analytics and debugging. + /// Custom IHttpClientService internal transport layer to be used by the Pubnub instance. + /// A new initialized Pubnub instance optimized for Unity usage. + public static Pubnub NewUnityPubnub(PNConfiguration configuration, bool webGLBuildMode = false, + bool unityLogging = false, IPNSDKSource customIpnsdkSource = null, + IHttpClientService customIHttpClientService = null) + { + Pubnub pubnub; + var ipnsdkSource = customIpnsdkSource ?? new UnityPNSDKSource(); + //With a custom transport layer + if (customIHttpClientService != null) { + pubnub = new Pubnub(configuration, httpTransportService: customIHttpClientService, + ipnsdkSource: ipnsdkSource); + } + //With the WebGL transport layer + else if (webGLBuildMode) { + pubnub = new Pubnub(configuration, httpTransportService: new UnityWebGLHttpClientService(), + ipnsdkSource: ipnsdkSource); + } + //With the Unity Http/2 supported transport layer + else if (configuration.EnableHttp2) { +#if UNITY_6000_5_OR_NEWER + var handler = new UnityEngine.Networking.UnityHttpMessageHandler() + { + HttpForcedVersion = UnityEngine.Networking.HttpForcedVersion.NotForced + }; + var transport = new HttpClientService(handler, enableHttp2: true); + pubnub = new Pubnub(configuration, httpTransportService: transport, ipnsdkSource: new UnityPNSDKSource()); + pubnub.SetJsonPluggableLibrary(new NewtonsoftJsonUnity(configuration)); +#else + Debug.LogWarning( + "Project version is below Unity 6.5 so HTTP/2 support can only be enabled via a third-party HTTP handler, " + + "see documentation for more information. This created Pubnub instance will have the default non-HTTP/2 supporting transport. " + + "If you don't require HTTP/2 and don't want to see this warning set \"EnableHttp2\" to false in the Pubnub config."); + pubnub = new Pubnub(configuration, ipnsdkSource: ipnsdkSource); +#endif + } + //Default + else { + pubnub = new Pubnub(configuration, ipnsdkSource: ipnsdkSource); + } + + pubnub.SetJsonPluggableLibrary(new NewtonsoftJsonUnity(configuration)); if (unityLogging) { pubnub.SetLogger(new UnityPubNubLogger(pubnub.InstanceId)); } - pubnub.SetJsonPluggableLibrary(new NewtonsoftJsonUnity(configuration)); + return pubnub; } @@ -29,11 +65,13 @@ public static Pubnub NewUnityPubnub(PNConfiguration configuration, bool webGLBui /// Pubnub configuration Scriptable Object asset /// Client user ID for this instance /// Optional: PNSDK source, used for analytics and debugging. - /// - public static Pubnub NewUnityPubnub(PNConfigAsset configurationAsset, string userId, IPNSDKSource ipnsdkSource = null) { - configurationAsset.UserId = userId; + /// A new initialized Pubnub instance. + public static Pubnub NewUnityPubnub(PNConfigAsset configurationAsset, string userId, + IPNSDKSource ipnsdkSource = null) { var pnConfig = ((PNConfiguration)configurationAsset); - return NewUnityPubnub(pnConfig, configurationAsset.EnableWebGLBuildMode, configurationAsset.LogToUnityConsole, ipnsdkSource: ipnsdkSource); + pnConfig.UserId = userId; + return NewUnityPubnub(pnConfig, configurationAsset.EnableWebGLBuildMode, + configurationAsset.LogToUnityConsole, customIpnsdkSource: ipnsdkSource); } } } \ No newline at end of file diff --git a/PubNubUnity/Assets/Snippets/Configuration/ConfigurationSample.cs b/PubNubUnity/Assets/Snippets/Configuration/ConfigurationSample.cs index 116ba97e..2c775a48 100644 --- a/PubNubUnity/Assets/Snippets/Configuration/ConfigurationSample.cs +++ b/PubNubUnity/Assets/Snippets/Configuration/ConfigurationSample.cs @@ -180,4 +180,28 @@ static void InitReadOnly() Pubnub pubnub = PubnubUnityUtils.NewUnityPubnub(pnConfiguration); // snippet.end } + + static void Http2UsingYAHH() { + //Not compiling to avoid having to import YAHH into the project +#if false + // snippet.http2_yahh + var config = new PNConfiguration(new UserId("h2-user")) + { + PublishKey = "your-key-here", + SubscribeKey = "your-key-here", + //HTTP/2 supporting origin, default one only supports HTTP/1.1 + Origin = "h2.pubnubapi.com", + //Have to be true (and are by default) + Secure = true, + EnableHttp2 = true + }; + //The YAHH handler + var handler = new YetAnotherHttpHandler(); + //Creating a HttpClientService instance + var customTransport = new HttpClientService(handler, true); + //Creating a Pubnub instance with the custom transport layer + var pubnub = PubnubUnityUtils.NewUnityPubnub(config, customIHttpClientService: customTransport); + // snippet.end +#endif + } } \ No newline at end of file diff --git a/PubNubUnity/Packages/manifest.json b/PubNubUnity/Packages/manifest.json index 8eef3597..09c1a56a 100644 --- a/PubNubUnity/Packages/manifest.json +++ b/PubNubUnity/Packages/manifest.json @@ -2,23 +2,21 @@ "dependencies": { "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0", - "com.unity.ads": "3.7.5", - "com.unity.analytics": "3.6.12", - "com.unity.asset-store-tools": "https://github.com/Unity-Technologies/com.unity.asset-store-tools.git/?path=/com.unity.asset-store-tools/", - "com.unity.collab-proxy": "1.17.1", - "com.unity.ext.nunit": "1.0.6", - "com.unity.ide.rider": "3.0.15", - "com.unity.ide.visualstudio": "2.0.16", - "com.unity.ide.vscode": "1.2.5", - "com.unity.nuget.newtonsoft-json": "3.0.2", - "com.unity.purchasing": "4.3.0", - "com.unity.test-framework": "1.1.33", - "com.unity.textmeshpro": "3.0.6", - "com.unity.timeline": "1.6.4", - "com.unity.toolchain.linux-x86_64": "2.0.2", - "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.4", - "com.unity.ugui": "1.0.0", - "com.unity.xr.legacyinputhelpers": "2.1.9", + "com.unity.ai.navigation": "2.0.12", + "com.unity.analytics": "3.8.2", + "com.unity.collab-proxy": "2.12.4", + "com.unity.ext.nunit": "2.1.0", + "com.unity.ide.rider": "3.0.40", + "com.unity.ide.visualstudio": "2.0.26", + "com.unity.multiplayer.center": "1.0.1", + "com.unity.nuget.newtonsoft-json": "3.2.2", + "com.unity.purchasing": "4.15.0", + "com.unity.test-framework": "1.7.0", + "com.unity.timeline": "1.8.12", + "com.unity.ugui": "2.5.0", + "com.unity.xr.legacyinputhelpers": "3.0.1", + "com.unity.modules.accessibility": "1.0.0", + "com.unity.modules.adaptiveperformance": "1.0.0", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", "com.unity.modules.animation": "1.0.0", @@ -32,6 +30,7 @@ "com.unity.modules.particlesystem": "1.0.0", "com.unity.modules.physics": "1.0.0", "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.physicscore2d": "1.0.0", "com.unity.modules.screencapture": "1.0.0", "com.unity.modules.terrain": "1.0.0", "com.unity.modules.terrainphysics": "1.0.0", @@ -45,9 +44,9 @@ "com.unity.modules.unitywebrequestaudio": "1.0.0", "com.unity.modules.unitywebrequesttexture": "1.0.0", "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vectorgraphics": "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/PubNubUnity/Packages/packages-lock.json b/PubNubUnity/Packages/packages-lock.json index 5a3ed8b7..0eb6b57f 100644 --- a/PubNubUnity/Packages/packages-lock.json +++ b/PubNubUnity/Packages/packages-lock.json @@ -10,51 +10,45 @@ "version": "1.0.0", "depth": 0, "source": "builtin", - "dependencies": {} + "dependencies": { + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.uielements": "1.0.0" + } }, - "com.unity.ads": { - "version": "3.7.5", + "com.unity.ai.navigation": { + "version": "2.0.12", "depth": 0, "source": "registry", "dependencies": { - "com.unity.ugui": "1.0.0" + "com.unity.modules.ai": "1.0.0" }, "url": "https://packages.unity.com" }, "com.unity.analytics": { - "version": "3.6.12", + "version": "3.8.2", "depth": 0, "source": "registry", "dependencies": { - "com.unity.ugui": "1.0.0" + "com.unity.ugui": "1.0.0", + "com.unity.services.analytics": "1.0.4" }, "url": "https://packages.unity.com" }, - "com.unity.asset-store-tools": { - "version": "https://github.com/Unity-Technologies/com.unity.asset-store-tools.git/?path=/com.unity.asset-store-tools/", - "depth": 0, - "source": "git", - "dependencies": {}, - "hash": "6f074eb4c312c7201100747bddba93ebbf844beb" - }, "com.unity.collab-proxy": { - "version": "1.17.1", + "version": "2.12.4", "depth": 0, "source": "registry", - "dependencies": { - "com.unity.services.core": "1.0.1" - }, + "dependencies": {}, "url": "https://packages.unity.com" }, "com.unity.ext.nunit": { - "version": "1.0.6", + "version": "2.1.0", "depth": 0, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" + "source": "builtin", + "dependencies": {} }, "com.unity.ide.rider": { - "version": "3.0.15", + "version": "3.0.40", "depth": 0, "source": "registry", "dependencies": { @@ -63,102 +57,76 @@ "url": "https://packages.unity.com" }, "com.unity.ide.visualstudio": { - "version": "2.0.16", + "version": "2.0.26", "depth": 0, "source": "registry", "dependencies": { - "com.unity.test-framework": "1.1.9" + "com.unity.test-framework": "1.1.33" }, "url": "https://packages.unity.com" }, - "com.unity.ide.vscode": { - "version": "1.2.5", + "com.unity.multiplayer.center": { + "version": "1.0.1", "depth": 0, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" + "source": "builtin", + "dependencies": { + "com.unity.modules.uielements": "1.0.0" + } }, "com.unity.nuget.newtonsoft-json": { - "version": "3.0.2", + "version": "3.2.2", "depth": 0, "source": "registry", "dependencies": {}, "url": "https://packages.unity.com" }, "com.unity.purchasing": { - "version": "4.3.0", + "version": "4.15.0", "depth": 0, "source": "registry", "dependencies": { "com.unity.ugui": "1.0.0", - "com.unity.services.core": "1.3.1", + "com.unity.services.core": "1.12.5", "com.unity.modules.androidjni": "1.0.0", - "com.unity.services.analytics": "4.0.1", "com.unity.modules.jsonserialize": "1.0.0", - "com.unity.modules.unityanalytics": "1.0.0", "com.unity.modules.unitywebrequest": "1.0.0" }, "url": "https://packages.unity.com" }, "com.unity.services.analytics": { - "version": "4.1.0", + "version": "6.3.0", "depth": 1, "source": "registry", "dependencies": { "com.unity.ugui": "1.0.0", - "com.unity.services.core": "1.4.0" + "com.unity.services.core": "1.16.0", + "com.unity.modules.jsonserialize": "1.0.0" }, "url": "https://packages.unity.com" }, "com.unity.services.core": { - "version": "1.4.2", + "version": "1.17.0", "depth": 1, "source": "registry", "dependencies": { "com.unity.modules.androidjni": "1.0.0", - "com.unity.nuget.newtonsoft-json": "3.0.2", + "com.unity.nuget.newtonsoft-json": "3.2.2", "com.unity.modules.unitywebrequest": "1.0.0" }, "url": "https://packages.unity.com" }, - "com.unity.sysroot": { - "version": "2.0.5", - "depth": 1, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, - "com.unity.sysroot.linux-x86_64": { - "version": "2.0.4", - "depth": 1, - "source": "registry", - "dependencies": { - "com.unity.sysroot": "2.0.5" - }, - "url": "https://packages.unity.com" - }, "com.unity.test-framework": { - "version": "1.1.33", + "version": "1.7.0", "depth": 0, - "source": "registry", + "source": "builtin", "dependencies": { - "com.unity.ext.nunit": "1.0.6", + "com.unity.ext.nunit": "2.1.0", "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", + "version": "1.8.12", "depth": 0, "source": "registry", "dependencies": { @@ -169,44 +137,40 @@ }, "url": "https://packages.unity.com" }, - "com.unity.toolchain.linux-x86_64": { - "version": "2.0.2", + "com.unity.ugui": { + "version": "2.5.0", "depth": 0, - "source": "registry", + "source": "builtin", "dependencies": { - "com.unity.sysroot": "2.0.3", - "com.unity.sysroot.linux-x86_64": "2.0.2" - }, - "url": "https://packages.unity.com" + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.physics": "1.0.0" + } }, - "com.unity.toolchain.win-x86_64-linux-x86_64": { - "version": "2.0.4", + "com.unity.xr.legacyinputhelpers": { + "version": "3.0.1", "depth": 0, "source": "registry", "dependencies": { - "com.unity.sysroot": "2.0.5", - "com.unity.sysroot.linux-x86_64": "2.0.4" + "com.unity.modules.xr": "1.0.0" }, "url": "https://packages.unity.com" }, - "com.unity.ugui": { + "com.unity.modules.accessibility": { "version": "1.0.0", "depth": 0, "source": "builtin", - "dependencies": { - "com.unity.modules.ui": "1.0.0", - "com.unity.modules.imgui": "1.0.0" - } + "dependencies": {} }, - "com.unity.xr.legacyinputhelpers": { - "version": "2.1.9", + "com.unity.modules.adaptiveperformance": { + "version": "1.0.0", "depth": 0, - "source": "registry", + "source": "builtin", "dependencies": { - "com.unity.modules.vr": "1.0.0", - "com.unity.modules.xr": "1.0.0" - }, - "url": "https://packages.unity.com" + "com.unity.modules.subsystems": "1.0.0" + } }, "com.unity.modules.ai": { "version": "1.0.0", @@ -218,7 +182,9 @@ "version": "1.0.0", "depth": 0, "source": "builtin", - "dependencies": {} + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } }, "com.unity.modules.animation": { "version": "1.0.0", @@ -255,6 +221,12 @@ "com.unity.modules.animation": "1.0.0" } }, + "com.unity.modules.hierarchycore": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, "com.unity.modules.imageconversion": { "version": "1.0.0", "depth": 0, @@ -286,6 +258,14 @@ "dependencies": {} }, "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physicscore2d": "1.0.0" + } + }, + "com.unity.modules.physicscore2d": { "version": "1.0.0", "depth": 0, "source": "builtin", @@ -344,17 +324,9 @@ "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.hierarchycore": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.animation": "1.0.0" } }, "com.unity.modules.umbra": { @@ -418,32 +390,32 @@ "com.unity.modules.imageconversion": "1.0.0" } }, - "com.unity.modules.vehicles": { + "com.unity.modules.vectorgraphics": { "version": "1.0.0", "depth": 0, "source": "builtin", "dependencies": { - "com.unity.modules.physics": "1.0.0" + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0" } }, - "com.unity.modules.video": { + "com.unity.modules.vehicles": { "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.physics": "1.0.0" } }, - "com.unity.modules.vr": { + "com.unity.modules.video": { "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.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" } }, "com.unity.modules.wind": { diff --git a/PubNubUnity/ProjectSettings/PackageManagerSettings.asset b/PubNubUnity/ProjectSettings/PackageManagerSettings.asset index 5e591863..76dc668c 100644 --- a/PubNubUnity/ProjectSettings/PackageManagerSettings.asset +++ b/PubNubUnity/ProjectSettings/PackageManagerSettings.asset @@ -12,32 +12,33 @@ MonoBehaviour: m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} m_Name: m_EditorClassIdentifier: - m_EnablePreviewPackages: 0 - m_EnablePackageDependencies: 1 + m_EnablePreReleasePackages: 0 m_AdvancedSettingsExpanded: 1 m_ScopedRegistriesSettingsExpanded: 1 + m_SeeAllPackageVersions: 0 + m_DismissPreviewPackagesInUse: 0 oneTimeWarningShown: 0 - m_Registries: - - m_Id: main + oneTimePackageErrorsPopUpShown: 0 + m_MainRegistry: + m_Id: main m_Name: m_Url: https://packages.unity.com m_Scopes: [] m_IsDefault: 1 + m_IsUnityRegistry: 1 m_Capabilities: 7 + m_ConfigSource: 0 + m_Compliance: + m_Status: 0 + m_Violations: [] + m_ScopedRegistries: [] m_UserSelectedRegistryName: m_UserAddingNewScopedRegistry: 0 m_RegistryInfoDraft: - m_ErrorMessage: - m_Original: - m_Id: - m_Name: - m_Url: - m_Scopes: [] - m_IsDefault: 0 - m_Capabilities: 0 m_Modified: 0 - m_Name: - m_Url: - m_Scopes: - - - m_SelectedScopeIndex: 0 + m_ErrorMessage: + m_UserModificationsEntityId: + m_rawData: 568105589213756512 + m_OriginalEntityId: + m_rawData: 568105589213756510 + m_LoadAssets: 0 diff --git a/PubNubUnity/ProjectSettings/ProjectSettings.asset b/PubNubUnity/ProjectSettings/ProjectSettings.asset index 432652db..44c57366 100644 --- a/PubNubUnity/ProjectSettings/ProjectSettings.asset +++ b/PubNubUnity/ProjectSettings/ProjectSettings.asset @@ -3,7 +3,7 @@ --- !u!129 &1 PlayerSettings: m_ObjectHideFlags: 0 - serializedVersion: 23 + serializedVersion: 28 productGUID: 2cc0224a1405fdc44b60ea3fe1ad4a72 AndroidProfiler: 0 AndroidFilterTouchesWhenObscured: 0 @@ -48,14 +48,17 @@ PlayerSettings: defaultScreenHeightWeb: 600 m_StereoRenderingPath: 0 m_ActiveColorSpace: 0 + unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 + m_SpriteBatchVertexThreshold: 300 m_MTRendering: 1 mipStripping: 0 numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} m_StackTraceTypes: 010000000100000001000000010000000200000001000000 iosShowActivityIndicatorOnLoading: -1 androidShowActivityIndicatorOnLoading: -1 iosUseCustomAppBackgroundBehavior: 0 - iosAllowHTTPDownload: 1 allowedAutorotateToPortrait: 1 allowedAutorotateToPortraitUpsideDown: 1 allowedAutorotateToLandscapeRight: 1 @@ -67,24 +70,29 @@ PlayerSettings: androidStartInFullscreen: 1 androidRenderOutsideSafeArea: 1 androidUseSwappy: 1 + androidDisplayOptions: 1 androidBlitType: 0 - androidResizableWindow: 0 + androidResizeableActivity: 0 androidDefaultWindowWidth: 1920 androidDefaultWindowHeight: 1080 androidMinimumWindowWidth: 400 androidMinimumWindowHeight: 300 androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 1 + androidApplicationEntry: 1 defaultIsNativeResolution: 1 macRetinaSupport: 1 runInBackground: 1 - captureSingleScreen: 0 muteOtherAudioSources: 0 Prepare IOS For Recording: 0 Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 deferSystemGesturesMode: 0 hideHomeButton: 0 submitAnalytics: 1 usePlayerLog: 1 + dedicatedServerOptimizations: 1 bakeCollisionMeshes: 0 forceSingleInstance: 0 useFlipModelSwapchain: 1 @@ -92,6 +100,7 @@ PlayerSettings: useMacAppStoreValidation: 0 macAppStoreCategory: public.app-category.games gpuSkinning: 0 + meshDeformation: 0 xboxPIXTextureCapture: 0 xboxEnableAvatar: 0 xboxEnableKinect: 0 @@ -105,6 +114,7 @@ PlayerSettings: xboxEnableGuest: 0 xboxEnablePIXSampling: 0 metalFramebufferOnly: 0 + metalUseMetalDisplayLink: 0 xboxOneResolution: 0 xboxOneSResolution: 0 xboxOneXResolution: 3 @@ -119,21 +129,21 @@ PlayerSettings: switchNVNShaderPoolsGranularity: 33554432 switchNVNDefaultPoolsGranularity: 16777216 switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 switchNVNMaxPublicTextureIDCount: 0 switchNVNMaxPublicSamplerIDCount: 0 - stadiaPresentMode: 0 - stadiaTargetFramerate: 0 + switchMaxWorkerMultiple: 8 + switchNVNGraphicsFirmwareMemory: 32 + switchGraphicsJobsSyncAfterKick: 1 vulkanNumSwapchainBuffers: 3 vulkanEnableSetSRGBWrite: 0 vulkanEnablePreTransform: 0 vulkanEnableLateAcquireNextImage: 0 vulkanEnableCommandBufferRecycling: 1 - m_SupportedAspectRatios: - 4:3: 1 - 5:4: 1 - 16:10: 1 - 16:9: 1 - Others: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 bundleVersion: 1.0 preloadedAssets: [] metroInputSource: 0 @@ -146,25 +156,29 @@ PlayerSettings: isWsaHolographicRemotingEnabled: 0 enableFrameTimingStats: 0 enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 useHDRDisplay: 0 - D3DHDRBitDepth: 0 + hdrBitDepth: 0 m_ColorGamuts: 00000000 targetPixelDensity: 30 resolutionScalingMode: 0 resetResolutionOnWindowResize: 0 androidSupportedAspectRatio: 1 androidMaxAspectRatio: 2.1 + androidMinAspectRatio: 1 applicationIdentifier: Standalone: com.DefaultCompany.PubnubUnity buildNumber: Standalone: 0 + VisionOS: 0 iPhone: 0 tvOS: 0 overrideDefaultApplicationIdentifier: 0 AndroidBundleVersionCode: 1 - AndroidMinSdkVersion: 22 + AndroidMinSdkVersion: 25 AndroidTargetSdkVersion: 0 AndroidPreferredInstallLocation: 1 + AndroidPreferredDataLocation: 1 aotOptions: stripEngineCode: 1 iPhoneStrippingLevel: 0 @@ -172,15 +186,20 @@ PlayerSettings: ForceInternetPermission: 0 ForceSDCardPermission: 0 CreateWallpaper: 0 - APKExpansionFiles: 0 + androidSplitApplicationBinary: 0 keepLoadedShadersAlive: 0 StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 VertexChannelCompressionMask: 4054 iPhoneSdkVersion: 988 - iOSTargetOSVersionString: 11.0 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 15.0 tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 tvOSRequireExtendedGameController: 0 - tvOSTargetOSVersionString: 11.0 + tvOSTargetOSVersionString: 15.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 uIPrerenderedIcon: 0 uIRequiresPersistentWiFi: 0 uIRequiresFullScreen: 1 @@ -205,7 +224,6 @@ PlayerSettings: rgba: 0 iOSLaunchScreenFillPct: 100 iOSLaunchScreenSize: 100 - iOSLaunchScreenCustomXibPath: iOSLaunchScreeniPadType: 0 iOSLaunchScreeniPadImage: {fileID: 0} iOSLaunchScreeniPadBackgroundColor: @@ -213,7 +231,6 @@ PlayerSettings: rgba: 0 iOSLaunchScreeniPadFillPct: 100 iOSLaunchScreeniPadSize: 100 - iOSLaunchScreeniPadCustomXibPath: iOSLaunchScreenCustomStoryboardPath: iOSLaunchScreeniPadCustomStoryboardPath: iOSDeviceRequirements: [] @@ -223,13 +240,16 @@ PlayerSettings: iOSMetalForceHardShadows: 0 metalEditorSupport: 1 metalAPIValidation: 1 + metalCompileShaderBinary: 0 iOSRenderExtraFrameOnPause: 0 iosCopyPluginsCodeInsteadOfSymlink: 0 appleDeveloperTeamID: iOSManualSigningProvisioningProfileID: tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: iOSManualSigningProvisioningProfileType: 0 tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 appleEnableAutomaticSigning: 0 iOSRequireARKit: 0 iOSAutomaticallyDetectAndAddCapabilities: 1 @@ -244,16 +264,22 @@ PlayerSettings: useCustomLauncherGradleManifest: 0 useCustomBaseGradleTemplate: 0 useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 useCustomProguardFile: 0 AndroidTargetArchitectures: 1 - AndroidTargetDevices: 0 + AndroidAllowedArchitectures: -1 AndroidSplashScreenScale: 0 androidSplashScreen: {fileID: 0} AndroidKeystoreName: AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidEnableArm64MTE: 0 AndroidBuildApkPerCpuArchitecture: 0 AndroidTVCompatibility: 0 AndroidIsGame: 1 + androidAppCategory: 3 + useAndroidAppCategory: 1 + androidAppCategoryOther: AndroidEnableTango: 0 androidEnableBanner: 1 androidUseLowAccuracyLocation: 0 @@ -263,12 +289,12 @@ PlayerSettings: height: 180 banner: {fileID: 0} androidGamepadSupportLevel: 0 - chromeosInputEmulation: 1 - AndroidMinifyWithR8: 0 AndroidMinifyRelease: 0 AndroidMinifyDebug: 0 AndroidValidateAppBundleSize: 1 AndroidAppBundleSizeToValidate: 150 + AndroidReportGooglePlayAppDependencies: 1 + androidSymbolsSizeThreshold: 800 m_BuildTargetIcons: [] m_BuildTargetPlatformIcons: - m_BuildTarget: Android @@ -461,13 +487,19 @@ PlayerSettings: m_Kind: 4 m_SubKind: App Store m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] m_BuildTargetGraphicsJobs: [] m_BuildTargetGraphicsJobMode: [] m_BuildTargetGraphicsAPIs: - m_BuildTarget: AndroidPlayer - m_APIs: 0b00000008000000 + m_APIs: 0b000000 + m_Automatic: 0 + - m_BuildTarget: WindowsStandaloneSupport + m_APIs: 0200000012000000 m_Automatic: 0 m_BuildTargetVRSettings: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 openGLRequireES31: 0 openGLRequireES31AEP: 0 openGLRequireES32: 0 @@ -477,12 +509,15 @@ PlayerSettings: iPhone: 1 tvOS: 1 m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] m_BuildTargetNormalMapEncoding: [] m_BuildTargetDefaultTextureCompressionFormat: [] playModeTestRunnerEnabled: 0 runPlayModeTestAsEditModeTest: 0 actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 enableInternalProfiler: 0 logObjCUncaughtExceptions: 1 enableCrashReportAPI: 0 @@ -490,6 +525,7 @@ PlayerSettings: locationUsageDescription: microphoneUsageDescription: bluetoothUsageDescription: + macOSTargetOSVersion: 12.0 switchNMETAOverride: switchNetLibKey: switchSocketMemoryPoolSize: 6144 @@ -497,10 +533,11 @@ PlayerSettings: switchSocketConcurrencyLimit: 14 switchScreenResolutionBehavior: 2 switchUseCPUProfiler: 0 - switchUseGOLDLinker: 0 + switchEnableFileSystemTrace: 0 switchLTOSetting: 0 switchApplicationID: 0x01004b9000490000 switchNSODependencies: + switchCompilerFlags: switchTitleNames_0: switchTitleNames_1: switchTitleNames_2: @@ -574,7 +611,6 @@ PlayerSettings: switchReleaseVersion: 0 switchDisplayVersion: 1.0.0 switchStartupUserAccount: 0 - switchTouchScreenUsage: 0 switchSupportedLanguagesMask: 0 switchLogoType: 0 switchApplicationErrorCodeCategory: @@ -616,6 +652,7 @@ PlayerSettings: switchNativeFsCacheSize: 32 switchIsHoldTypeHorizontal: 0 switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 switchSocketConfigEnabled: 0 switchTcpInitialSendBufferSize: 32 switchTcpInitialReceiveBufferSize: 64 @@ -626,12 +663,14 @@ PlayerSettings: switchSocketBufferEfficiency: 4 switchSocketInitializeEnabled: 1 switchNetworkInterfaceManagerInitializeEnabled: 1 - switchPlayerConnectionEnabled: 1 + switchDisableHTCSPlayerConnection: 0 switchUseNewStyleFilepaths: 0 + switchUseLegacyFmodPriorities: 0 switchUseMicroSleepForYield: 1 switchEnableRamDiskSupport: 0 switchMicroSleepForYieldTime: 25 switchRamDiskSpaceSize: 12 + switchUpgradedPlayerSettingsToNMETA: 0 ps4NPAgeRating: 12 ps4NPTitleSecret: ps4NPTrophyPackPath: @@ -715,6 +754,7 @@ PlayerSettings: webGLMemorySize: 32 webGLExceptionSupport: 1 webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 webGLDataCaching: 1 webGLDebugSymbols: 0 webGLEmscriptenArgs: @@ -727,25 +767,55 @@ PlayerSettings: webGLLinkerTarget: 1 webGLThreadsSupport: 0 webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 + webGLWebAssemblyTable: 0 + webGLWebAssemblyBigInt: 0 + webGLCloseOnQuit: 0 + webWasm2023: 0 + webEnableSubmoduleStrippingCompatibility: 0 scriptingDefineSymbols: Standalone: PN_DEBUG additionalCompilerArguments: {} platformArchitecture: {} - scriptingBackend: {} + scriptingBackend: + Android: 0 il2cppCompilerConfiguration: {} - managedStrippingLevel: {} + il2cppCodeGeneration: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: + Android: 1 + EmbeddedLinux: 1 + GameCoreScarlett: 1 + GameCoreXboxOne: 1 + Kepler: 1 + Nintendo Switch: 1 + Nintendo Switch 2: 1 + PS4: 1 + PS5: 1 + QNX: 1 + VisionOS: 1 + WebGL: 1 + Windows Store Apps: 1 + XboxOne: 1 + iPhone: 1 + tvOS: 1 incrementalIl2cppBuild: {} suppressCommonWarnings: 1 allowUnsafeCode: 0 useDeterministicCompilation: 1 - enableRoslynAnalyzers: 1 additionalIl2CppArgs: scriptingRuntimeVersion: 1 gcIncremental: 0 - assemblyVersionValidation: 0 gcWBarrierValidation: 0 apiCompatibilityLevelPerPlatform: Standalone: 6 + editorAssembliesCompatibilityLevel: 1 m_RenderingPath: 1 m_MobileRenderingPath: 1 metroPackageName: PubnubUnity @@ -769,6 +839,7 @@ PlayerSettings: 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 + syncCapabilities: 0 platformCapabilities: {} metroTargetDeviceFamilies: {} metroFTAName: @@ -815,8 +886,16 @@ PlayerSettings: luminVersion: m_VersionCode: 1 m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 1 + embeddedLinuxEnableGamepadInput: 0 + hmiCpuConfiguration: + hmiLogStartupTiming: 0 + qnxGraphicConfPath: apiCompatibilityLevel: 6 + captureStartupLogs: {} activeInputHandler: 0 + windowsGamepadBackendHint: 0 cloudProjectId: framebufferDepthMemorylessMode: 0 qualitySettingsNames: [] @@ -824,6 +903,12 @@ PlayerSettings: organizationId: cloudEnabled: 0 legacyClampBlendShapeWeights: 0 - playerDataPath: - forceSRGBBlit: 1 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] + androidVulkanDeviceFilterListAsset: {fileID: 0} + d3d12DeviceFilterListAsset: {fileID: 0} + allowedHttpConnections: 3 diff --git a/PubNubUnity/ProjectSettings/ProjectVersion.txt b/PubNubUnity/ProjectSettings/ProjectVersion.txt index 85465a19..ce0a3113 100644 --- a/PubNubUnity/ProjectSettings/ProjectVersion.txt +++ b/PubNubUnity/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2021.3.8f1 -m_EditorVersionWithRevision: 2021.3.8f1 (b30333d56e81) +m_EditorVersion: 6000.5.0b11 +m_EditorVersionWithRevision: 6000.5.0b11 (25d6213cd1ab) diff --git a/PubNubUnity/ProjectSettings/boot.config b/PubNubUnity/ProjectSettings/boot.config deleted file mode 100644 index e69de29b..00000000