From be27e4c35af9cd8c9305b49570e3c3ebbfc9a8d6 Mon Sep 17 00:00:00 2001 From: yangjing Date: Mon, 20 Jun 2022 21:36:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7SDK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Common/GameInterface/TKGSDKManager.cs | 53 ++++++++++++++- .../TKGSDK/Common/GameInterface/TKGUtils.cs | 4 +- Assets/TKGSDK/Common/TKGSDK/ITKGSDK.cs | 22 ++++++ Assets/TKGSDK/Common/TKGSDK/TKGSDKUnity.cs | 68 +++++++++++++++---- .../Tenjin/Editor/BuildPostProcessor.cs | 2 + .../Editor/ToukaAdsBuildPostProcessor.cs | 6 +- .../SDKInnerScripts/iOS/NativeAd.cs | 28 +++----- .../Tools/AutoIntersititialManager.cs | 11 ++- .../ADSScripts/ToukaSDK/ToukaAdManager.cs | 12 ++++ .../Scripts/ADSScripts/ToukaSDKManager.cs | 12 ++++ ProjectSettings/ProjectSettings.asset | 2 +- 11 files changed, 178 insertions(+), 42 deletions(-) diff --git a/Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs b/Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs index ebecc082..6b092555 100644 --- a/Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs +++ b/Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs @@ -78,6 +78,58 @@ public class TKGSDKManager : TKGSingleton, ITKGSDK m_sdkInterface.HideBanner(); } + /// + /// ShowNative + /// + /// + /// + /// + public void ShowNative(RectTransform pRect, string pAdPos, Camera pCam = null) + { + Vector3[] tWorldCorners = new Vector3[4]; + pRect.GetWorldCorners(tWorldCorners); + + Vector2 tTopLeft = RectTransformUtility.WorldToScreenPoint(pCam, tWorldCorners[1]); + Vector2 tBottomRight = RectTransformUtility.WorldToScreenPoint(pCam, tWorldCorners[3]); + float tWidth = Mathf.Abs(tBottomRight.x - tTopLeft.x); + float tHeight = Mathf.Abs(tBottomRight.y - tTopLeft.y); + + if (IsNativeReady()) + { + ShowNative(pAdPos, tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight); + } + } + + /// + /// ShowNative + /// + /// + /// + /// + /// + /// + public void ShowNative(string nativePos, float x, float y, float width, float height) + { + m_sdkInterface.ShowNative(nativePos, x, y, width, height); + } + + /// + /// HideNative + /// + public void HideNative() + { + m_sdkInterface.HideNative(); + } + + /// + /// Is Ready Native + /// + /// + public bool IsNativeReady() + { + return m_sdkInterface.IsNativeReady(); + } + /// /// Play Interstitial Ad /// @@ -145,7 +197,6 @@ public class TKGSDKManager : TKGSingleton, ITKGSDK { return m_sdkInterface.IsReadyRewardAd(); } - #endregion #region Log Event diff --git a/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs b/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs index 83fd4a93..af8f9bb1 100644 --- a/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs +++ b/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs @@ -194,9 +194,9 @@ public class TKGUtils AutoIntersititialManager.Instance.ActiveLogic(pActive); } - public static bool WillPlayInterstitial() + public static bool WillPlayInterstitial(bool pNormalIV = true) { - return ToukaInterstitialTimer.Instance.CanShow(ToukaSDKManager.IVType.IV1, true) && ToukaAdManager.Instance.IsReadyIntersitial(); + return ToukaInterstitialTimer.Instance.CanShow(pNormalIV ? ToukaSDKManager.IVType.IV1 : ToukaSDKManager.IVType.IV2, true) && ToukaAdManager.Instance.IsReadyIntersitial(); } #endregion } \ No newline at end of file diff --git a/Assets/TKGSDK/Common/TKGSDK/ITKGSDK.cs b/Assets/TKGSDK/Common/TKGSDK/ITKGSDK.cs index 2bcf9712..69fb2997 100644 --- a/Assets/TKGSDK/Common/TKGSDK/ITKGSDK.cs +++ b/Assets/TKGSDK/Common/TKGSDK/ITKGSDK.cs @@ -34,6 +34,28 @@ namespace Touka /// void HideBanner(); + + /// + /// ShowNative + /// + /// + /// + /// + /// + /// + void ShowNative(string nativePos, float x, float y, float width, float height); + + /// + /// HideNative + /// + void HideNative(); + + /// + /// Is Ready Native + /// + /// + bool IsNativeReady(); + /// /// Play Interstitial Ad /// diff --git a/Assets/TKGSDK/Common/TKGSDK/TKGSDKUnity.cs b/Assets/TKGSDK/Common/TKGSDK/TKGSDKUnity.cs index f6df6900..95296685 100644 --- a/Assets/TKGSDK/Common/TKGSDK/TKGSDKUnity.cs +++ b/Assets/TKGSDK/Common/TKGSDK/TKGSDKUnity.cs @@ -116,6 +116,44 @@ namespace Touka ToukaSDKManager.Instance.ShowOrHideBanner(false); } + /// + /// ShowNative + /// + /// + /// + /// + /// + /// + public void ShowNative(string nativePos, float x, float y, float width, float height) + { +#if UNITY_IOS + ToukaAdManager.Instance.ShowNative(x, y, width, height, nativePos); +#endif + } + + /// + /// HideNative + /// + public void HideNative() + { +#if UNITY_IOS + ToukaAdManager.Instance.HideNative(false); +#endif + } + + /// + /// Is Ready Native + /// + /// + public bool IsNativeReady() + { +#if UNITY_IOS + return ToukaAdManager.Instance.IsReadyNative; +#else + return false; +#endif + } + /// /// Play Interstitial Ad /// @@ -156,11 +194,11 @@ namespace Touka return ToukaAdManager.Instance.IsReadyVideo; } - #endregion +#endregion - #region Log Event +#region Log Event - #region Normal +#region Normal /// /// Log Event @@ -205,9 +243,9 @@ namespace Touka ToukaSDKManager.Instance.LogEventByUmeng(_eventSort, _eventDic); } - #endregion +#endregion - #region Level Event +#region Level Event /// /// Notify game start @@ -283,9 +321,9 @@ namespace Touka return false; } - #endregion +#endregion - #region Reward Ad Button Show +#region Reward Ad Button Show /// /// Log Reward ad button show @@ -296,9 +334,9 @@ namespace Touka ToukaSDKManager.Instance.LogEventByUmengAdShow(_pos); } - #endregion +#endregion - #region Tracking Event +#region Tracking Event /// /// Log Tracking Event @@ -309,11 +347,11 @@ namespace Touka ToukaAnalyticsManager.Instance.LogEvent(ToukaLogType.Tenjin, _eventType.ToString()); } - #endregion +#endregion - #endregion +#endregion - #region Online Config +#region Online Config /// /// get config - string /// @@ -361,9 +399,9 @@ namespace Touka return tIntValue != 0; } - #endregion +#endregion - #region Others (common) +#region Others (common) /// /// review @@ -412,6 +450,6 @@ namespace Touka } - #endregion +#endregion } } diff --git a/Assets/TKGSDK/UnitySDK/Plugins/AnalyticsSDK/Tenjin/Editor/BuildPostProcessor.cs b/Assets/TKGSDK/UnitySDK/Plugins/AnalyticsSDK/Tenjin/Editor/BuildPostProcessor.cs index 1f88e6ce..6aad5f8f 100644 --- a/Assets/TKGSDK/UnitySDK/Plugins/AnalyticsSDK/Tenjin/Editor/BuildPostProcessor.cs +++ b/Assets/TKGSDK/UnitySDK/Plugins/AnalyticsSDK/Tenjin/Editor/BuildPostProcessor.cs @@ -1,7 +1,9 @@ using UnityEngine; using UnityEditor; using UnityEditor.Callbacks; +#if UNITY_IOS using UnityEditor.iOS.Xcode; +#endif using System.IO; using System.Collections.Generic; diff --git a/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/Editor/ToukaAdsBuildPostProcessor.cs b/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/Editor/ToukaAdsBuildPostProcessor.cs index 4585d008..7cd2e280 100644 --- a/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/Editor/ToukaAdsBuildPostProcessor.cs +++ b/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/Editor/ToukaAdsBuildPostProcessor.cs @@ -59,11 +59,13 @@ public partial class ToukaAdsBuildPostProcessor plist.root.SetBoolean("ITSAppUsesNonExemptEncryption", false); + plist.root.SetString("kSDKShowAuthView", "1"); + //NSAppTransportSecurity set yes PlistElementDict atf = plist.root["NSAppTransportSecurity"].AsDict(); atf.SetBoolean("NSAllowsArbitraryLoads", true); - #region iOS 14 +#region iOS 14 //SKAdnetwork追加 PlistElementArray URLWhiteListArr2 = plist.root.CreateArray("SKAdNetworkItems"); @@ -591,7 +593,7 @@ public partial class ToukaAdsBuildPostProcessor PlistElementDict dic126; dic126 = URLWhiteListArr2.AddDict(); dic126.SetString("SKAdNetworkIdentifier", "pwdxu55a5a.skadnetwork"); - #endregion +#endregion PlistElementArray urlTypes = plist.root.CreateArray ("CFBundleURLTypes"); diff --git a/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/SDKInnerScripts/iOS/NativeAd.cs b/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/SDKInnerScripts/iOS/NativeAd.cs index e6d29740..8576eb7d 100644 --- a/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/SDKInnerScripts/iOS/NativeAd.cs +++ b/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/SDKInnerScripts/iOS/NativeAd.cs @@ -31,19 +31,11 @@ namespace Touka s_instance = this; } - - public void RemoveNative() + public void ShowNativeAd(string nativePos) { - ToukaAdManager.Instance.HideNative(false); - } - - public void ShowNativeAd(string adpos) - { - Debug.Log("yangwu " + GetX() + "y" + GetY() + "width" + GetWidth() + "hei" + GetWidth()); - if (ToukaAdManager.Instance.IsReadyNative) + if (TKGSDKManager.Instance.IsNativeReady()) { - - ToukaAdManager.Instance.ShowNative(GetX(), GetY(), GetWidth(), GetHeight(),adpos); + TKGSDKManager.Instance.ShowNative(nativePos, GetX(), GetY(), GetWidth(), GetHeight()); } } //由于loadnative 函数有个问题,比如多个位置多个不同尺寸的native。目前只能处理一个尺寸,所以设置了firstFlg,位置宽高得到一次即可。 @@ -78,14 +70,12 @@ namespace Touka { if (firstFlg) { - if (uiCamera == null) - { - uiCamera = GameObject.Find("Main Camera").GetComponent(); - } - Debug.Log("YANGWY " + uiCamera); - Vector3 lefttop = uiCamera.WorldToScreenPoint(new Vector3(transform.position.x - GetComponent().rect.size.x / 2 * transform.lossyScale.x, transform.position.y + GetComponent().rect.size.y / 2 * transform.lossyScale.y, transform.position.z)); - Vector3 rightbottom = uiCamera.WorldToScreenPoint(new Vector3(transform.position.x + GetComponent().rect.size.x / 2 * transform.lossyScale.x, transform.position.y - GetComponent().rect.size.y / 2 * transform.lossyScale.y, transform.position.z)); - Vector3 picture_zero = uiCamera.WorldToScreenPoint(transform.position); + + Vector3[] worldcorners = new Vector3[4]; + GetComponent().GetWorldCorners(worldcorners); + Vector3 lefttop = RectTransformUtility.WorldToScreenPoint(null, worldcorners[1]); + Vector3 rightbottom = RectTransformUtility.WorldToScreenPoint(null, worldcorners[3]); + Vector3 picture_zero = RectTransformUtility.WorldToScreenPoint(null, transform.position); float x = lefttop.x; float y = rightbottom.y; float width = rightbottom.x - lefttop.x; diff --git a/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDK/Tools/AutoIntersititialManager.cs b/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDK/Tools/AutoIntersititialManager.cs index f26c2a31..5911a591 100644 --- a/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDK/Tools/AutoIntersititialManager.cs +++ b/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDK/Tools/AutoIntersititialManager.cs @@ -11,10 +11,12 @@ namespace Touka private TimerCounter t; private bool mIsActive = false; + private int mRetryCount = 0; + private const int MAX_RETRY = 10; public void Init() { - + mRetryCount = 0; } public override void Initialize() @@ -49,7 +51,12 @@ namespace Touka LogEvent(); if (autoShowIVSwitch == 0) { - t.CancelTimer(); + Debug.Log("Check auto iv :" + autoShowIVSwitch); + mRetryCount++; + if (mRetryCount >= MAX_RETRY) + { + t.CancelTimer(); + } return; } //3.支持在线参数控制用户每次打开游戏,展示N次插屏后,才启用自动插屏逻辑,(若N = 0,则代表每次打开都直接启用该逻辑),本地默认N = 1; diff --git a/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDK/ToukaAdManager.cs b/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDK/ToukaAdManager.cs index 43b31fb9..f3d1831c 100644 --- a/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDK/ToukaAdManager.cs +++ b/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDK/ToukaAdManager.cs @@ -388,6 +388,10 @@ namespace Touka { get { +#if NO_AD + return false; +#endif + #if UNITY_EDITOR return false; #endif @@ -406,6 +410,10 @@ namespace Touka public bool ShowNative(float x, float y, float width, float height,string adpos) { Debug.Log("ShowNative()"); + +#if NO_AD + return false; +#endif #if UNITY_EDITOR return false; #endif @@ -457,6 +465,10 @@ namespace Touka /// public void HideNative(bool _clean) { +#if NO_AD + return; +#endif + #if UNITY_EDITOR return; #endif diff --git a/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDKManager.cs b/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDKManager.cs index 3c5df2fc..928df0fc 100644 --- a/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDKManager.cs +++ b/Assets/TKGSDK/UnitySDK/Scripts/ADSScripts/ToukaSDKManager.cs @@ -131,6 +131,11 @@ namespace Touka /// public void ShowOrHideBanner(bool _canShowBanner) { +#if NO_AD + return; +#endif + +#if UNITY_IOS if (_canShowBanner) { Debug.Log("这个场景要显示banner"); @@ -143,16 +148,23 @@ namespace Touka ToukaAdManager.isCurrCanShowBanner = false; ToukaAdManager.Instance.HideBanner(true); } +#endif } public void ShowNative(string adpos) { +#if NO_AD + return; +#endif NativeAd.Instance.ShowNativeAd(adpos); } public void RemoveNative() { +#if NO_AD + return; +#endif ToukaAdManager.Instance.HideNative(false); } #endregion diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 956609e4..6c6b76b5 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -142,7 +142,7 @@ PlayerSettings: 16:10: 1 16:9: 1 Others: 1 - bundleVersion: 1.2.4 + bundleVersion: 1.2.5 preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0