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