diff --git a/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.dll b/PubNubUnity/Assets/PubNub/Runtime/Plugins/PubnubApiUnity.dll index 05391818..51f815a5 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/Util/PubnubUnityUtils.cs b/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs index d127bda4..12e583e5 100644 --- a/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs +++ b/PubNubUnity/Assets/PubNub/Runtime/Util/PubnubUnityUtils.cs @@ -1,3 +1,5 @@ +using PubnubApi.PNSDK; + namespace PubnubApi.Unity { public static class PubnubUnityUtils { /// @@ -6,12 +8,14 @@ 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) { + 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: new UnityPNSDKSource()) - : new Pubnub(configuration, ipnsdkSource: new UnityPNSDKSource()); + ipnsdkSource: ipnsdkSource) + : new Pubnub(configuration, ipnsdkSource: ipnsdkSource); if (unityLogging) { pubnub.SetLogger(new UnityPubNubLogger(pubnub.InstanceId)); } @@ -24,11 +28,12 @@ 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) { + public static Pubnub NewUnityPubnub(PNConfigAsset configurationAsset, string userId, IPNSDKSource ipnsdkSource = null) { configurationAsset.UserId = userId; var pnConfig = ((PNConfiguration)configurationAsset); - return NewUnityPubnub(pnConfig, configurationAsset.EnableWebGLBuildMode, configurationAsset.LogToUnityConsole); + return NewUnityPubnub(pnConfig, configurationAsset.EnableWebGLBuildMode, configurationAsset.LogToUnityConsole, ipnsdkSource: ipnsdkSource); } } } \ No newline at end of file diff --git a/PubNubUnity/Assets/PubNub/Runtime/Util/UnityPNSDKSource.cs b/PubNubUnity/Assets/PubNub/Runtime/Util/UnityPNSDKSource.cs index 502de7b9..6f95b879 100644 --- a/PubNubUnity/Assets/PubNub/Runtime/Util/UnityPNSDKSource.cs +++ b/PubNubUnity/Assets/PubNub/Runtime/Util/UnityPNSDKSource.cs @@ -6,6 +6,7 @@ namespace PubnubApi.Unity public class UnityPNSDKSource : IPNSDKSource { private const string build = "9.1.0"; + public string Build => build; public string GetPNSDK() { #if(UNITY_IOS)