diff --git a/Assets/AppsFlyer/AFPurchaseDetailsAndroid.cs b/Assets/AppsFlyer/AFPurchaseDetailsAndroid.cs index 6762c97f..d149885b 100644 --- a/Assets/AppsFlyer/AFPurchaseDetailsAndroid.cs +++ b/Assets/AppsFlyer/AFPurchaseDetailsAndroid.cs @@ -10,24 +10,19 @@ namespace AppsFlyerSDK } /// - // + /// Purchase details class matching Android SDK AFPurchaseDetails /// public class AFPurchaseDetailsAndroid - { public AFPurchaseType purchaseType { get; private set; } public string purchaseToken { get; private set; } public string productId { get; private set; } - public string price { get; private set; } - public string currency { get; private set; } - public AFPurchaseDetailsAndroid(AFPurchaseType type, String purchaseToken, String productId, String price, String currency) + public AFPurchaseDetailsAndroid(AFPurchaseType type, String purchaseToken, String productId) { this.purchaseType = type; this.purchaseToken = purchaseToken; this.productId = productId; - this.price = price; - this.currency = currency; } } diff --git a/Assets/AppsFlyer/AFSDKPurchaseDetailsIOS.cs b/Assets/AppsFlyer/AFSDKPurchaseDetailsIOS.cs index f159eea4..0dcde3ab 100644 --- a/Assets/AppsFlyer/AFSDKPurchaseDetailsIOS.cs +++ b/Assets/AppsFlyer/AFSDKPurchaseDetailsIOS.cs @@ -4,26 +4,33 @@ using System.Collections.Generic; namespace AppsFlyerSDK { /// - // + /// Purchase type enum matching iOS SDK AFSDKPurchaseType + /// + public enum AFSDKPurchaseType + { + Subscription, + OneTimePurchase + } + + /// + /// Purchase details class matching iOS SDK AFSDKPurchaseDetails /// public class AFSDKPurchaseDetailsIOS { public string productId { get; private set; } - public string price { get; private set; } - public string currency { get; private set; } public string transactionId { get; private set; } + public AFSDKPurchaseType purchaseType { get; private set; } - private AFSDKPurchaseDetailsIOS(string productId, string price, string currency, string transactionId) + private AFSDKPurchaseDetailsIOS(string productId, string transactionId, AFSDKPurchaseType purchaseType) { this.productId = productId; - this.price = price; - this.currency = currency; this.transactionId = transactionId; + this.purchaseType = purchaseType; } - public static AFSDKPurchaseDetailsIOS Init(string productId, string price, string currency, string transactionId) + public static AFSDKPurchaseDetailsIOS Init(string productId, string transactionId, AFSDKPurchaseType purchaseType) { - return new AFSDKPurchaseDetailsIOS(productId, price, currency, transactionId); + return new AFSDKPurchaseDetailsIOS(productId, transactionId, purchaseType); } } diff --git a/Assets/AppsFlyer/AppsFlyer.cs b/Assets/AppsFlyer/AppsFlyer.cs index eaab5c71..149d3e76 100644 --- a/Assets/AppsFlyer/AppsFlyer.cs +++ b/Assets/AppsFlyer/AppsFlyer.cs @@ -6,7 +6,7 @@ namespace AppsFlyerSDK { public class AppsFlyer : MonoBehaviour { - public static readonly string kAppsFlyerPluginVersion = "6.16.21"; + public static readonly string kAppsFlyerPluginVersion = "6.17.91"; public static string CallBackObjectName = null; private static EventHandler onRequestResponse; private static EventHandler onInAppResponse; @@ -768,6 +768,11 @@ namespace AppsFlyerSDK } } + /// + /// [Deprecated] Validates an in-app purchase on iOS. + /// Use the V2 overload with AFSDKPurchaseDetailsIOS instead. + /// + [System.Obsolete("This method is deprecated. Use validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) instead.")] public static void validateAndSendInAppPurchase(string productIdentifier, string price, string currency, string transactionId, Dictionary additionalParameters, MonoBehaviour gameObject) { if (instance != null && instance is IAppsFlyerIOSBridge) @@ -777,16 +782,23 @@ namespace AppsFlyerSDK } } - // V2 - public static void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary extraEventValues, MonoBehaviour gameObject) + /// + /// Validates an in-app purchase on iOS using the V2 API. + /// + public static void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) { if (instance != null && instance is IAppsFlyerIOSBridge) { IAppsFlyerIOSBridge appsFlyeriOSInstance = (IAppsFlyerIOSBridge)instance; - appsFlyeriOSInstance.validateAndSendInAppPurchase(details, extraEventValues, gameObject); + appsFlyeriOSInstance.validateAndSendInAppPurchase(details, purchaseAdditionalDetails, gameObject); } } + /// + /// [Deprecated] Validates an in-app purchase on Android. + /// Use the V2 overload with AFPurchaseDetailsAndroid instead. + /// + [System.Obsolete("This method is deprecated. Use validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) instead.")] public static void validateAndSendInAppPurchase(string publicKey, string signature, string purchaseData, string price, string currency, Dictionary additionalParameters, MonoBehaviour gameObject) { if (instance != null && instance is IAppsFlyerAndroidBridge) @@ -796,13 +808,15 @@ namespace AppsFlyerSDK } } - // V2 - public static void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary additionalParameters, MonoBehaviour gameObject) + /// + /// Validates an in-app purchase on Android using the V2 API. + /// + public static void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) { if (instance != null && instance is IAppsFlyerAndroidBridge) { IAppsFlyerAndroidBridge appsFlyerAndroidInstance = (IAppsFlyerAndroidBridge)instance; - appsFlyerAndroidInstance.validateAndSendInAppPurchase(details, additionalParameters, gameObject); + appsFlyerAndroidInstance.validateAndSendInAppPurchase(details, purchaseAdditionalDetails, gameObject); } } diff --git a/Assets/AppsFlyer/AppsFlyerAndroid.cs b/Assets/AppsFlyer/AppsFlyerAndroid.cs index f380585a..6fc4e9c7 100644 --- a/Assets/AppsFlyer/AppsFlyerAndroid.cs +++ b/Assets/AppsFlyer/AppsFlyerAndroid.cs @@ -484,7 +484,7 @@ namespace AppsFlyerSDK } /// - /// API for server verification of in-app purchases. + /// [Deprecated] API for server verification of in-app purchases - please use V2 with AFPurchaseDetailsAndroid instead. /// An af_purchase event with the relevant values will be automatically sent if the validation is successful. /// /// License Key obtained from the Google Play Console. @@ -493,6 +493,7 @@ namespace AppsFlyerSDK /// Purchase price, should be derived from skuDetails.getStringArrayList("DETAILS_LIST") /// Purchase currency, should be derived from skuDetails.getStringArrayList("DETAILS_LIST") /// additionalParameters Freehand parameters to be sent with the purchase (if validated). + [System.Obsolete("This method is deprecated. Use validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) instead.")] public void validateAndSendInAppPurchase(string publicKey, string signature, string purchaseData, string price, string currency, Dictionary additionalParameters, MonoBehaviour gameObject) { #if !UNITY_EDITOR @@ -501,15 +502,15 @@ namespace AppsFlyerSDK } /// - /// API for server verification of in-app purchases. + /// V2 - API for server verification of in-app purchases. /// An af_purchase event with the relevant values will be automatically sent if the validation is successful. /// /// AFPurchaseDetailsAndroid instance. - /// additionalParameters Freehand parameters to be sent with the purchase (if validated). - public void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary additionalParameters, MonoBehaviour gameObject) + /// purchaseAdditionalDetails Freehand parameters to be sent with the purchase (if validated). + public void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) { #if !UNITY_EDITOR - appsFlyerAndroid.CallStatic("validateAndTrackInAppPurchaseV2", (int)details.purchaseType, details.purchaseToken, details.productId, details.price, details.currency, convertDictionaryToJavaMap(additionalParameters), gameObject ? gameObject.name : null); + appsFlyerAndroid.CallStatic("validateAndTrackInAppPurchaseV2", (int)details.purchaseType, details.purchaseToken, details.productId, convertDictionaryToJavaMap(purchaseAdditionalDetails), gameObject ? gameObject.name : null); #endif } diff --git a/Assets/AppsFlyer/AppsFlyeriOS.cs b/Assets/AppsFlyer/AppsFlyeriOS.cs index 4dfbc007..29c88190 100644 --- a/Assets/AppsFlyer/AppsFlyeriOS.cs +++ b/Assets/AppsFlyer/AppsFlyeriOS.cs @@ -335,13 +335,14 @@ public void startSDK(bool shouldCallback, string CallBackObjectName) } /// - /// To send and validate in app purchases you can call this method from the processPurchase method - please use v2. + /// [Deprecated] To send and validate in app purchases - please use V2 with AFSDKPurchaseDetailsIOS instead. /// /// The product identifier. /// The product price. /// The product currency. /// The purchase transaction Id. /// The additional param, which you want to receive it in the raw reports. + [System.Obsolete("This method is deprecated. Use validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) instead.")] public void validateAndSendInAppPurchase(string productIdentifier, string price, string currency, string transactionId, Dictionary additionalParameters, MonoBehaviour gameObject) { #if !UNITY_EDITOR @@ -350,15 +351,14 @@ public void startSDK(bool shouldCallback, string CallBackObjectName) } /// - /// V2 - /// To send and validate in app purchases you can call this method from the processPurchase method. + /// V2 - To send and validate in app purchases you can call this method from the processPurchase method. /// /// The AFSDKPurchaseDetailsIOS instance. - /// The extra params, which you want to receive it in the raw reports. - public void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary extraEventValues, MonoBehaviour gameObject) + /// The additional params, which you want to receive it in the raw reports. + public void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject) { #if !UNITY_EDITOR - _validateAndSendInAppPurchaseV2(details.productId, details.price, details.currency, details.transactionId, AFMiniJSON.Json.Serialize(extraEventValues), gameObject ? gameObject.name : null); + _validateAndSendInAppPurchaseV2(details.productId, details.transactionId, (int)details.purchaseType, AFMiniJSON.Json.Serialize(purchaseAdditionalDetails), gameObject ? gameObject.name : null); #endif } @@ -843,7 +843,7 @@ public void startSDK(bool shouldCallback, string CallBackObjectName) #elif UNITY_STANDALONE_OSX [DllImport("AppsFlyerBundle")] #endif - private static extern void _validateAndSendInAppPurchaseV2(string product, string price, string currency, string transactionId, string extraEventValues, string objectName); + private static extern void _validateAndSendInAppPurchaseV2(string product, string transactionId, int purchaseType, string purchaseAdditionalDetails, string objectName); #if UNITY_IOS [DllImport("__Internal")] diff --git a/Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml b/Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml index 8cd9adb1..1d6bffe5 100644 --- a/Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml +++ b/Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml @@ -2,17 +2,15 @@ - - - - - - + + + + - - + + diff --git a/Assets/AppsFlyer/Editor/AppsFlyerObjectEditor.cs b/Assets/AppsFlyer/Editor/AppsFlyerObjectEditor.cs index f18e3fa5..a576ad1c 100644 --- a/Assets/AppsFlyer/Editor/AppsFlyerObjectEditor.cs +++ b/Assets/AppsFlyer/Editor/AppsFlyerObjectEditor.cs @@ -31,7 +31,7 @@ public class AppsFlyerObjectEditor : Editor { serializedObject.Update(); - GUILayout.Box((Texture)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(AssetDatabase.FindAssets("appsflyer_logo")[0]), typeof(Texture)), new GUILayoutOption[] { GUILayout.Width(600) }); + DrawLogo(); EditorGUILayout.Separator(); EditorGUILayout.HelpBox("Set your devKey and appID to init the AppsFlyer SDK and start tracking. You must modify these fields and provide:\ndevKey - Your application devKey provided by AppsFlyer.\nappId - For iOS only. Your iTunes Application ID.\nUWP app id - For UWP only. Your application app id \nMac OS app id - For MacOS app only.", MessageType.Info); @@ -80,5 +80,25 @@ public class AppsFlyerObjectEditor : Editor serializedObject.ApplyModifiedProperties(); } + private void DrawLogo() + { + var guids = AssetDatabase.FindAssets("appsflyer_logo"); + if (guids.Length == 0) return; + + Texture logo = (Texture)AssetDatabase.LoadAssetAtPath( + AssetDatabase.GUIDToAssetPath(guids[0]), + typeof(Texture)); + + if (logo == null) return; + + float maxWidth = Mathf.Min(200, EditorGUIUtility.currentViewWidth - 40); + float aspect = (float)logo.height / logo.width; + float height = maxWidth * aspect; + + Rect rect = GUILayoutUtility.GetRect(maxWidth, height, GUILayout.ExpandWidth(false)); + rect.x = (EditorGUIUtility.currentViewWidth - maxWidth) * 0.5f; + rect.width = maxWidth; + GUI.DrawTexture(rect, logo, ScaleMode.ScaleToFit); + } } \ No newline at end of file diff --git a/Assets/AppsFlyer/Editor/appsflyer_logo.png b/Assets/AppsFlyer/Editor/appsflyer_logo.png index 01c2b8ca..4cc30954 100644 Binary files a/Assets/AppsFlyer/Editor/appsflyer_logo.png and b/Assets/AppsFlyer/Editor/appsflyer_logo.png differ diff --git a/Assets/AppsFlyer/IAppsFlyerAndroidBridge.cs b/Assets/AppsFlyer/IAppsFlyerAndroidBridge.cs index b4c81885..3a83bc3f 100644 --- a/Assets/AppsFlyer/IAppsFlyerAndroidBridge.cs +++ b/Assets/AppsFlyer/IAppsFlyerAndroidBridge.cs @@ -22,7 +22,7 @@ namespace AppsFlyerSDK string getAttributionId(); void handlePushNotifications(); void validateAndSendInAppPurchase(string publicKey, string signature, string purchaseData, string price, string currency, Dictionary additionalParameters, MonoBehaviour gameObject); - void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary additionalParameters, MonoBehaviour gameObject); + void validateAndSendInAppPurchase(AFPurchaseDetailsAndroid details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject); void setCollectOaid(bool isCollect); void setDisableAdvertisingIdentifiers(bool disable); void setDisableNetworkData(bool disable); diff --git a/Assets/AppsFlyer/IAppsFlyerIOSBridge.cs b/Assets/AppsFlyer/IAppsFlyerIOSBridge.cs index 86211fbd..4de6fd40 100644 --- a/Assets/AppsFlyer/IAppsFlyerIOSBridge.cs +++ b/Assets/AppsFlyer/IAppsFlyerIOSBridge.cs @@ -14,7 +14,7 @@ namespace AppsFlyerSDK void setUseReceiptValidationSandbox(bool useReceiptValidationSandbox); void setUseUninstallSandbox(bool useUninstallSandbox); void validateAndSendInAppPurchase(string productIdentifier, string price, string currency, string transactionId, Dictionary additionalParameters, MonoBehaviour gameObject); - void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary extraEventValues, MonoBehaviour gameObject); + void validateAndSendInAppPurchase(AFSDKPurchaseDetailsIOS details, Dictionary purchaseAdditionalDetails, MonoBehaviour gameObject); void registerUninstall(byte[] deviceToken); void handleOpenUrl(string url, string sourceApplication, string annotation); void waitForATTUserAuthorizationWithTimeoutInterval(int timeoutInterval); diff --git a/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift b/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift new file mode 100644 index 00000000..e44f781f --- /dev/null +++ b/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift @@ -0,0 +1,79 @@ +import Foundation +import StoreKit + +#if canImport(PurchaseConnector) +import PurchaseConnector + +@available(iOS 15.0, *) +@objc +public class AFUnityStoreKit2Bridge: NSObject { + @objc + public static func fetchAFSDKTransactionSK2(withTransactionId transactionId: String, completion: @escaping (AFSDKTransactionSK2?) -> Void) { + guard let transactionIdUInt64 = UInt64(transactionId) else { + print("Invalid transaction ID format.") + completion(nil) + return + } + Task { + for await result in StoreKit.Transaction.all { + if case .verified(let transaction) = result, transaction.id == transactionIdUInt64 { + let afTransaction = AFSDKTransactionSK2(transaction: transaction) + DispatchQueue.main.async { + completion(afTransaction) + } + return + } + } + DispatchQueue.main.async { + completion(nil) + } + } + } + + @objc + public static func extractSK2ProductInfo(_ products: [AFSDKProductSK2]) -> NSArray { + var result: [[String: Any]] = [] + + for product in products { + if let swiftProduct = Mirror(reflecting: product).children.first(where: { $0.label == "product" })?.value { + let productId = (swiftProduct as? NSObject)?.value(forKey: "id") as? String ?? "" + let title = (swiftProduct as? NSObject)?.value(forKey: "displayName") as? String ?? "" + let desc = (swiftProduct as? NSObject)?.value(forKey: "description") as? String ?? "" + let price = (swiftProduct as? NSObject)?.value(forKey: "price") as? NSDecimalNumber ?? 0 + + result.append([ + "productIdentifier": productId, + "localizedTitle": title, + "localizedDescription": desc, + "price": price + ]) + } + } + + return result as NSArray + } + + @objc + public static func extractSK2TransactionInfo(_ transactions: [AFSDKTransactionSK2]) -> NSArray { + var result: [[String: Any]] = [] + + for txn in transactions { + guard let mirrorChild = Mirror(reflecting: txn).children.first(where: { $0.label == "transaction" }), + let swiftTxn = mirrorChild.value as? StoreKit.Transaction else { + continue + } + + let transactionId = "\(swiftTxn.id)" + let date = NSNumber(value: swiftTxn.purchaseDate.timeIntervalSince1970) + + result.append([ + "transactionIdentifier": transactionId, + "transactionState": "verified", // or skip this line + "transactionDate": date + ]) + } + + return result as NSArray + } +} +#endif diff --git a/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift.meta b/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift.meta new file mode 100644 index 00000000..f269096e --- /dev/null +++ b/Assets/AppsFlyer/Plugins/iOS/AFUnityStoreKit2Bridge.swift.meta @@ -0,0 +1,42 @@ +fileFormatVersion: 2 +guid: 5652805602a6b4273a6e527b00aea272 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + VisionOS: VisionOS + second: + enabled: 1 + settings: {} + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.mm b/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.mm index 611f269d..e2c0cf3a 100644 --- a/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.mm +++ b/Assets/AppsFlyer/Plugins/iOS/AFUnityUtils.mm @@ -34,14 +34,22 @@ static const char* stringFromdictionary(NSDictionary* dictionary) { static NSDictionary* dictionaryFromNSError(NSError* error) { if(error){ - NSInteger code = [error code]; - NSString *localizedDescription = [error localizedDescription]; - - NSDictionary *errorDictionary = @{ - @"code" : @(code) ?: @(-1), - @"localizedDescription" : localizedDescription, - }; - return errorDictionary; + NSMutableDictionary *errorDictionary = [NSMutableDictionary dictionary]; + errorDictionary[@"code"] = @(error.code); + errorDictionary[@"localizedDescription"] = error.localizedDescription ?: @""; + + // Include userInfo fields for enhanced error reporting (iOS SDK 6.17.8+) + if (error.userInfo[@"error_code"]) { + errorDictionary[@"error_code"] = error.userInfo[@"error_code"]; + } + if (error.userInfo[@"error_message"]) { + errorDictionary[@"error_message"] = error.userInfo[@"error_message"]; + } + if (error.userInfo[@"invalid_fields"]) { + errorDictionary[@"invalid_fields"] = error.userInfo[@"invalid_fields"]; + } + + return errorDictionary; } return nil; diff --git a/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.h b/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.h index ee32e658..cf73afe5 100644 --- a/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.h +++ b/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.h @@ -10,15 +10,30 @@ #import "AppsFlyerAttribution.h" #if __has_include() #import -#import "AppsFlyerLib/AppsFlyerLib-Swift.h" #else #import "AppsFlyerLib.h" -#import "AppsFlyerLib-Swift.h" +#endif +#if __has_include() +#import +#else +#import "PurchaseConnector.h" +#endif +#import + +// Add StoreKit 2 support +#if __has_include() +#import #endif -@interface AppsFlyeriOSWarpper : NSObject +@interface AppsFlyeriOSWarpper : NSObject + + (BOOL) didCallStart; + (void) setDidCallStart:(BOOL)val; + +// Add StoreKit 2 methods +- (void)setStoreKitVersion:(int)storeKitVersion; +- (void)logConsumableTransaction:(id)transaction; + @end @@ -50,3 +65,7 @@ static NSString* startRequestObjectName = @""; static NSString* inAppRequestObjectName = @""; static NSString* onDeeplinkingObjectName = @""; +static const char* PURCHASE_REVENUE_VALIDATION_CALLBACK = "didReceivePurchaseRevenueValidationInfo"; +static const char* PURCHASE_REVENUE_ERROR_CALLBACK = "didReceivePurchaseRevenueError"; + +static NSString* onPurchaseValidationObjectName = @""; diff --git a/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.mm b/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.mm index 389ee1f7..34153d2b 100644 --- a/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.mm +++ b/Assets/AppsFlyer/Plugins/iOS/AppsFlyeriOSWrapper.mm @@ -6,7 +6,22 @@ // #import "AppsFlyeriOSWrapper.h" +#import +#import +#import "UnityFramework/UnityFramework-Swift.h" + +#if __has_include() +#import +#elif __has_include("PurchaseConnector-Swift.h") +#import "PurchaseConnector-Swift.h" +#endif + +#if __has_include() +#import +#elif __has_include("UnityFramework-Swift.h") +#import "UnityFramework-Swift.h" +#endif static void unityCallBack(NSString* objectName, const char* method, const char* msg) { if(objectName){ @@ -18,7 +33,7 @@ extern "C" { const void _startSDK(bool shouldCallback, const char* objectName) { [[AppsFlyerLib shared] setPluginInfoWith: AFSDKPluginUnity - pluginVersion:@"6.16.21" + pluginVersion:@"6.17.91" additionalParams:nil]; startRequestObjectName = stringFromChar(objectName); AppsFlyeriOSWarpper.didCallStart = YES; @@ -273,21 +288,19 @@ extern "C" { }]; } - const void _validateAndSendInAppPurchaseV2 (const char* product, const char* price, const char* currency, const char* transactionId, const char* extraEventValues, const char* objectName) { + const void _validateAndSendInAppPurchaseV2 (const char* product, const char* transactionId, int purchaseType, const char* purchaseAdditionalDetails, const char* objectName) { validateAndLogObjectName = stringFromChar(objectName); - AFSDKPurchaseDetails *details = [[AFSDKPurchaseDetails alloc] initWithProductId:stringFromChar(product) price:stringFromChar(price) currency:stringFromChar(currency) transactionId:stringFromChar(transactionId)]; + AFSDKPurchaseDetails *details = [[AFSDKPurchaseDetails alloc] initWithProductId:stringFromChar(product) transactionId:stringFromChar(transactionId) purchaseType:(AFSDKPurchaseType)purchaseType]; [[AppsFlyerLib shared] validateAndLogInAppPurchase:details - extraEventValues:dictionaryFromJson(extraEventValues) - completionHandler:^(AFSDKValidateAndLogResult * _Nullable result) { - if (result.status == AFSDKValidateAndLogStatusSuccess) { - unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_CALLBACK, stringFromdictionary(result.result)); - } else if (result.status == AFSDKValidateAndLogStatusFailure) { - unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_CALLBACK, stringFromdictionary(result.errorData)); + purchaseAdditionalDetails:dictionaryFromJson(purchaseAdditionalDetails) + completion:^(NSDictionary * _Nullable response, NSError * _Nullable error) { + if (error) { + unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_ERROR_CALLBACK, stringFromdictionary(dictionaryFromNSError(error))); } else { - unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_ERROR_CALLBACK, stringFromdictionary(dictionaryFromNSError(result.error))); + unityCallBack(validateAndLogObjectName, VALIDATE_AND_LOG_V2_CALLBACK, stringFromdictionary(response)); } }]; @@ -337,6 +350,97 @@ extern "C" { [AppsFlyerLib shared].disableIDFVCollection = isDisabled; } + // Purchase connector + const void _startObservingTransactions() { + [[PurchaseConnector shared] startObservingTransactions]; + } + + const void _stopObservingTransactions() { + [[PurchaseConnector shared] stopObservingTransactions]; + } + + const void _setIsSandbox(bool isSandBox) { + [[PurchaseConnector shared] setIsSandbox:isSandBox]; + } + + const void _setPurchaseRevenueDelegate() { + if (_AppsFlyerdelegate== nil) { + _AppsFlyerdelegate = [[AppsFlyeriOSWarpper alloc] init]; + } + [[PurchaseConnector shared] setPurchaseRevenueDelegate:_AppsFlyerdelegate]; + } + + const void _setAutoLogPurchaseRevenue(int option) { + [[PurchaseConnector shared] setAutoLogPurchaseRevenue:option]; + + } + + const void _initPurchaseConnector(const char* objectName) { + if (_AppsFlyerdelegate == nil) { + _AppsFlyerdelegate = [[AppsFlyeriOSWarpper alloc] init]; + } + onPurchaseValidationObjectName = stringFromChar(objectName); + } + + const void _setPurchaseRevenueDataSource(const char* objectName) { + if (_AppsFlyerdelegate == nil) { + _AppsFlyerdelegate = [[AppsFlyeriOSWarpper alloc] init]; + } + + if (strstr(objectName, "StoreKit2") != NULL) { + + // Force protocol conformance + Protocol *sk2Protocol = @protocol(AppsFlyerPurchaseRevenueDataSourceStoreKit2); + class_addProtocol([_AppsFlyerdelegate class], sk2Protocol); + + if (![_AppsFlyerdelegate conformsToProtocol:@protocol(AppsFlyerPurchaseRevenueDataSourceStoreKit2)]) { + NSLog(@"[AppsFlyer] Warning: SK2 protocol not conformed!"); + } + } + + [PurchaseConnector shared].purchaseRevenueDataSource = _AppsFlyerdelegate; + } + + const void _setStoreKitVersion(int storeKitVersion) { + [[PurchaseConnector shared] setStoreKitVersion:(AFSDKStoreKitVersion)storeKitVersion]; + } + + const void _logConsumableTransaction(const char* transactionId) { + if (@available(iOS 15.0, *)) { + NSString *transactionIdStr = [NSString stringWithUTF8String:transactionId]; + [AFUnityStoreKit2Bridge fetchAFSDKTransactionSK2WithTransactionId:transactionIdStr completion:^(AFSDKTransactionSK2 *afTransaction) { + if (afTransaction) { + [[PurchaseConnector shared] logConsumableTransaction:afTransaction]; + } else { + NSLog(@"No AFSDKTransactionSK2 found for id %@", transactionIdStr); + } + }]; + } + } + + #ifdef __cplusplus + extern "C" { + #endif + + typedef const char *(*UnityPurchaseCallback)(const char *, const char *); + + UnityPurchaseCallback UnityPurchasesGetAdditionalParamsCallback = NULL; + UnityPurchaseCallback UnityPurchasesGetAdditionalParamsCallbackSK2 = NULL; + + __attribute__((visibility("default"))) + void RegisterUnityPurchaseRevenueParamsCallback(UnityPurchaseCallback callback) { + UnityPurchasesGetAdditionalParamsCallback = callback; + } + + __attribute__((visibility("default"))) + void RegisterUnityPurchaseRevenueParamsCallbackSK2(UnityPurchaseCallback callback) { + UnityPurchasesGetAdditionalParamsCallbackSK2 = callback; + } + + + #ifdef __cplusplus + } + #endif } @implementation AppsFlyeriOSWarpper @@ -378,5 +482,120 @@ static BOOL didCallStart; unityCallBack(onDeeplinkingObjectName, ON_DEEPLINKING, stringFromdictionary(dict)); } +// Purchase Connector +- (void)didReceivePurchaseRevenueValidationInfo:(NSDictionary *)validationInfo error:(NSError *)error { + if (error != nil) { + unityCallBack(onPurchaseValidationObjectName, PURCHASE_REVENUE_ERROR_CALLBACK, [[error localizedDescription] UTF8String]); + } else { + unityCallBack(onPurchaseValidationObjectName, PURCHASE_REVENUE_VALIDATION_CALLBACK, stringFromdictionary(validationInfo)); + } +} + +- (NSDictionary *)purchaseRevenueAdditionalParametersForProducts:(NSSet *)products + transactions:(NSSet *)transactions { + + NSMutableArray *productsArray = [NSMutableArray array]; + for (SKProduct *product in products) { + [productsArray addObject:@{ + @"productIdentifier": product.productIdentifier ?: @"", + @"localizedTitle": product.localizedTitle ?: @"", + @"localizedDescription": product.localizedDescription ?: @"", + @"price": [product.price stringValue] ?: @"" + }]; + } + + NSMutableArray *transactionsArray = [NSMutableArray array]; + for (SKPaymentTransaction *txn in transactions) { + [transactionsArray addObject:@{ + @"transactionIdentifier": txn.transactionIdentifier ?: @"", + @"transactionState": @(txn.transactionState), + @"transactionDate": txn.transactionDate ? [@(txn.transactionDate.timeIntervalSince1970) stringValue] : @"" + }]; + } + + NSDictionary *input = @{ + @"products": productsArray, + @"transactions": transactionsArray + }; + + NSError *error = nil; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:input options:0 error:&error]; + if (error || !jsonData) { + NSLog(@"[AppsFlyer] Failed to serialize Unity purchase data: %@", error); + return @{}; + } + + NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + if (!jsonString || !UnityPurchasesGetAdditionalParamsCallback) { + NSLog(@"[AppsFlyer] Unity callback not registered"); + return @{}; + } + + const char *resultCStr = UnityPurchasesGetAdditionalParamsCallback([jsonString UTF8String], ""); + if (!resultCStr) { + NSLog(@"[AppsFlyer] Unity callback returned null"); + return @{}; + } + + NSString *resultJson = [NSString stringWithUTF8String:resultCStr]; + NSData *resultData = [resultJson dataUsingEncoding:NSUTF8StringEncoding]; + NSDictionary *parsedResult = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&error]; + + if (error || ![parsedResult isKindOfClass:[NSDictionary class]]) { + NSLog(@"[AppsFlyer] Failed to parse Unity response: %@", error); + return @{}; + } + + return parsedResult; +} + +#pragma mark - AppsFlyerPurchaseRevenueDataSourceStoreKit2 +- (NSDictionary *)purchaseRevenueAdditionalParametersStoreKit2ForProducts:(NSSet *)products transactions:(NSSet *)transactions { + if (@available(iOS 15.0, *)) { + NSArray *productInfoArray = [AFUnityStoreKit2Bridge extractSK2ProductInfo:[products allObjects]]; + NSArray *transactionInfoArray = [AFUnityStoreKit2Bridge extractSK2TransactionInfo:[transactions allObjects]]; + + NSDictionary *input = @{ + @"products": productInfoArray, + @"transactions": transactionInfoArray + }; + + if (UnityPurchasesGetAdditionalParamsCallbackSK2) { + NSError *error = nil; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:input options:0 error:&error]; + if (error || !jsonData) { + NSLog(@"[AppsFlyer] Failed to serialize Unity purchase data: %@", error); + return @{}; + } + + NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + + const char *resultCStr = UnityPurchasesGetAdditionalParamsCallbackSK2([jsonString UTF8String], ""); + if (!resultCStr) { + NSLog(@"[AppsFlyer] Unity callback returned null"); + return @{}; + } + + NSString *resultJson = [NSString stringWithUTF8String:resultCStr]; + + NSData *resultData = [resultJson dataUsingEncoding:NSUTF8StringEncoding]; + NSDictionary *parsedResult = [NSJSONSerialization JSONObjectWithData:resultData options:0 error:&error]; + + if (error || ![parsedResult isKindOfClass:[NSDictionary class]]) { + NSLog(@"[AppsFlyer] Failed to parse Unity response: %@", error); + return @{}; + } + + return parsedResult; + } else { + NSLog(@"[AppsFlyer] SK2 - Unity callback is NOT registered"); + } + } else { + NSLog(@"[AppsFlyer] SK2 - iOS version not supported"); + } + return @{}; +} + @end + diff --git a/Assets/AppsFlyer/Windows/AppsFlyerWindows.cs b/Assets/AppsFlyer/Windows/AppsFlyerWindows.cs index a44fea48..8fd696f8 100644 --- a/Assets/AppsFlyer/Windows/AppsFlyerWindows.cs +++ b/Assets/AppsFlyer/Windows/AppsFlyerWindows.cs @@ -1,145 +1,145 @@ -//#define AFSDK_WIN_DEBUG -//#define UNITY_WSA_10_0 -//#define ENABLE_WINMD_SUPPORT - -#if UNITY_WSA_10_0 -using System; -using System.Collections; -using System.Collections.Generic; -using System.Reflection; -using System.ComponentModel; -using UnityEngine; -using System.Threading.Tasks; - -#if ENABLE_WINMD_SUPPORT -using AppsFlyerLib; -#endif - -namespace AppsFlyerSDK -{ - public class AppsFlyerWindows - { -#if ENABLE_WINMD_SUPPORT - static private MonoBehaviour _gameObject = null; -#endif - - public static void InitSDK(string devKey, string appId, MonoBehaviour gameObject) - { -#if ENABLE_WINMD_SUPPORT - -#if AFSDK_WIN_DEBUG - // Remove callstack - Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); -#endif - Log("[InitSDK]: devKey: {0}, appId: {1}, gameObject: {2}", devKey, appId, gameObject == null ? "null" : gameObject.ToString()); - AppsFlyerTracker tracker = AppsFlyerTracker.GetAppsFlyerTracker(); - tracker.devKey = devKey; - tracker.appId = appId; - // Interface - _gameObject = gameObject; -#endif - } - - public static string GetAppsFlyerId() - { -#if ENABLE_WINMD_SUPPORT - Log("[GetAppsFlyerId]"); - return AppsFlyerTracker.GetAppsFlyerTracker().GetAppsFlyerUID(); -#else - return ""; -#endif - } - - public static void SetCustomerUserId(string customerUserId) - { -#if ENABLE_WINMD_SUPPORT - Log("[SetCustomerUserId] customerUserId: {0}", customerUserId); - if (customerUserId.Contains("test_device:")) - { - string testDeviceId = customerUserId.Substring(12); - AppsFlyerTracker.GetAppsFlyerTracker().testDeviceId = testDeviceId; - } - AppsFlyerTracker.GetAppsFlyerTracker().customerUserId = customerUserId; -#endif - } - - public static void Start() - { -#if ENABLE_WINMD_SUPPORT - Log("[Start]"); - AppsFlyerTracker.GetAppsFlyerTracker().TrackAppLaunchAsync(Callback); -#endif - } - -#if ENABLE_WINMD_SUPPORT - public static void Callback(AppsFlyerLib.ServerStatusCode code) - { - Log("[Callback]: {0}", code.ToString()); - - AppsFlyerRequestEventArgs eventArgs = new AppsFlyerRequestEventArgs((int)code, code.ToString()); - if (_gameObject != null) { - var method = _gameObject.GetType().GetMethod("AppsFlyerOnRequestResponse"); - if (method != null) { - method.Invoke(_gameObject, new object[] { AppsFlyerTracker.GetAppsFlyerTracker(), eventArgs }); - } - } - } -#endif - - public static void LogEvent(string eventName, Dictionary eventValues) - { -#if ENABLE_WINMD_SUPPORT - if (eventValues == null) - { - eventValues = new Dictionary(); - } - IDictionary result = new Dictionary(); - foreach (KeyValuePair kvp in eventValues) - { - result.Add(kvp.Key.ToString(), kvp.Value); - } - - Log("[LogEvent]: eventName: {0} result: {1}", eventName, result.ToString()); - - AppsFlyerTracker tracker = AppsFlyerTracker.GetAppsFlyerTracker(); - tracker.TrackEvent(eventName, result); - -#endif - } - - - public static void GetConversionData(string _reserved) - { -#if ENABLE_WINMD_SUPPORT - Task.Run(async () => - { - AppsFlyerLib.AppsFlyerTracker tracker = AppsFlyerLib.AppsFlyerTracker.GetAppsFlyerTracker(); - string conversionData = await tracker.GetConversionDataAsync(); - - IAppsFlyerConversionData conversionDataHandler = _gameObject as IAppsFlyerConversionData; - - if (conversionDataHandler != null) - { - Log("[GetConversionData] Will call `onConversionDataSuccess` with: {0}", conversionData); - conversionDataHandler.onConversionDataSuccess(conversionData); - } else { - Log("[GetConversionData] Object with `IAppsFlyerConversionData` interface not found! Check `InitSDK` implementation"); - } - // _gameObject.GetType().GetMethod("onConversionDataSuccess").Invoke(_gameObject, new[] { conversionData }); - }); -#endif - } - - private static void Log(string format, params string[] args) - { -#if AFSDK_WIN_DEBUG -#if ENABLE_WINMD_SUPPORT - Debug.Log("AF_UNITY_WSA_10_0" + String.Format(format, args)); -#endif -#endif - } - - } - -} -#endif +//#define AFSDK_WIN_DEBUG +//#define UNITY_WSA_10_0 +//#define ENABLE_WINMD_SUPPORT + +#if UNITY_WSA_10_0 +using System; +using System.Collections; +using System.Collections.Generic; +using System.Reflection; +using System.ComponentModel; +using UnityEngine; +using System.Threading.Tasks; + +#if ENABLE_WINMD_SUPPORT +using AppsFlyerLib; +#endif + +namespace AppsFlyerSDK +{ + public class AppsFlyerWindows + { +#if ENABLE_WINMD_SUPPORT + static private MonoBehaviour _gameObject = null; +#endif + + public static void InitSDK(string devKey, string appId, MonoBehaviour gameObject) + { +#if ENABLE_WINMD_SUPPORT + +#if AFSDK_WIN_DEBUG + // Remove callstack + Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None); +#endif + Log("[InitSDK]: devKey: {0}, appId: {1}, gameObject: {2}", devKey, appId, gameObject == null ? "null" : gameObject.ToString()); + AppsFlyerTracker tracker = AppsFlyerTracker.GetAppsFlyerTracker(); + tracker.devKey = devKey; + tracker.appId = appId; + // Interface + _gameObject = gameObject; +#endif + } + + public static string GetAppsFlyerId() + { +#if ENABLE_WINMD_SUPPORT + Log("[GetAppsFlyerId]"); + return AppsFlyerTracker.GetAppsFlyerTracker().GetAppsFlyerUID(); +#else + return ""; +#endif + } + + public static void SetCustomerUserId(string customerUserId) + { +#if ENABLE_WINMD_SUPPORT + Log("[SetCustomerUserId] customerUserId: {0}", customerUserId); + if (customerUserId.Contains("test_device:")) + { + string testDeviceId = customerUserId.Substring(12); + AppsFlyerTracker.GetAppsFlyerTracker().testDeviceId = testDeviceId; + } + AppsFlyerTracker.GetAppsFlyerTracker().customerUserId = customerUserId; +#endif + } + + public static void Start() + { +#if ENABLE_WINMD_SUPPORT + Log("[Start]"); + AppsFlyerTracker.GetAppsFlyerTracker().TrackAppLaunchAsync(Callback); +#endif + } + +#if ENABLE_WINMD_SUPPORT + public static void Callback(AppsFlyerLib.ServerStatusCode code) + { + Log("[Callback]: {0}", code.ToString()); + + AppsFlyerRequestEventArgs eventArgs = new AppsFlyerRequestEventArgs((int)code, code.ToString()); + if (_gameObject != null) { + var method = _gameObject.GetType().GetMethod("AppsFlyerOnRequestResponse"); + if (method != null) { + method.Invoke(_gameObject, new object[] { AppsFlyerTracker.GetAppsFlyerTracker(), eventArgs }); + } + } + } +#endif + + public static void LogEvent(string eventName, Dictionary eventValues) + { +#if ENABLE_WINMD_SUPPORT + if (eventValues == null) + { + eventValues = new Dictionary(); + } + IDictionary result = new Dictionary(); + foreach (KeyValuePair kvp in eventValues) + { + result.Add(kvp.Key.ToString(), kvp.Value); + } + + Log("[LogEvent]: eventName: {0} result: {1}", eventName, result.ToString()); + + AppsFlyerTracker tracker = AppsFlyerTracker.GetAppsFlyerTracker(); + tracker.TrackEvent(eventName, result); + +#endif + } + + + public static void GetConversionData(string _reserved) + { +#if ENABLE_WINMD_SUPPORT + Task.Run(async () => + { + AppsFlyerLib.AppsFlyerTracker tracker = AppsFlyerLib.AppsFlyerTracker.GetAppsFlyerTracker(); + string conversionData = await tracker.GetConversionDataAsync(); + + IAppsFlyerConversionData conversionDataHandler = _gameObject as IAppsFlyerConversionData; + + if (conversionDataHandler != null) + { + Log("[GetConversionData] Will call `onConversionDataSuccess` with: {0}", conversionData); + conversionDataHandler.onConversionDataSuccess(conversionData); + } else { + Log("[GetConversionData] Object with `IAppsFlyerConversionData` interface not found! Check `InitSDK` implementation"); + } + // _gameObject.GetType().GetMethod("onConversionDataSuccess").Invoke(_gameObject, new[] { conversionData }); + }); +#endif + } + + private static void Log(string format, params string[] args) + { +#if AFSDK_WIN_DEBUG +#if ENABLE_WINMD_SUPPORT + Debug.Log("AF_UNITY_WSA_10_0" + String.Format(format, args)); +#endif +#endif + } + + } + +} +#endif diff --git a/Assets/AppsFlyer/package.json b/Assets/AppsFlyer/package.json index db586e9f..6ac28531 100644 --- a/Assets/AppsFlyer/package.json +++ b/Assets/AppsFlyer/package.json @@ -2,7 +2,7 @@ "name": "appsflyer-unity-plugin", "displayName": "AppsFlyer", "description": "AppsFlyer Unity plugin", - "version": "6.16.2", + "version": "6.17.91", "unity": "2019.4", "license": "MIT" } diff --git a/Assets/Editor Default Resources.meta b/Assets/Editor Default Resources.meta new file mode 100644 index 00000000..aebacf51 --- /dev/null +++ b/Assets/Editor Default Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d95f4eb6b76da3c4e98b4ef7af986b62 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/CrashlyticsSettings.asset b/Assets/Editor Default Resources/CrashlyticsSettings.asset new file mode 100644 index 00000000..c9b53843 --- /dev/null +++ b/Assets/Editor Default Resources/CrashlyticsSettings.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1465085449, guid: 3781f2218eef4d5a823dba406baa434b, type: 3} + m_Name: CrashlyticsSettings + m_EditorClassIdentifier: + configuration: + stringProperties: [] + intProperties: [] + floatProperties: [] + booleanProperties: [] diff --git a/Assets/Editor Default Resources/CrashlyticsSettings.asset.meta b/Assets/Editor Default Resources/CrashlyticsSettings.asset.meta new file mode 100644 index 00000000..af89805b --- /dev/null +++ b/Assets/Editor Default Resources/CrashlyticsSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e3b372c796e407e499eff2e854a571ec +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase.meta b/Assets/Editor Default Resources/Firebase.meta new file mode 100644 index 00000000..5bfc89ef --- /dev/null +++ b/Assets/Editor Default Resources/Firebase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ff264e59d64e1824e8d61afc436a5db7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_analytics.png b/Assets/Editor Default Resources/Firebase/fb_analytics.png new file mode 100644 index 00000000..3f19563a Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_analytics.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_analytics.png.meta b/Assets/Editor Default Resources/Firebase/fb_analytics.png.meta new file mode 100644 index 00000000..90c6b615 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_analytics.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: dc218b335b1d14cd5ae532f65042d829 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_analytics.png +timeCreated: 1473376337 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_analytics_dark.png b/Assets/Editor Default Resources/Firebase/fb_analytics_dark.png new file mode 100644 index 00000000..e6b922e9 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_analytics_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_analytics_dark.png.meta b/Assets/Editor Default Resources/Firebase/fb_analytics_dark.png.meta new file mode 100644 index 00000000..42be9ef8 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_analytics_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 9fe4b3bd3b7d2477dac92fb7429d1d1b +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_analytics_dark.png +timeCreated: 1472679008 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_auth.png b/Assets/Editor Default Resources/Firebase/fb_auth.png new file mode 100644 index 00000000..b5ccfe98 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_auth.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_auth.png.meta b/Assets/Editor Default Resources/Firebase/fb_auth.png.meta new file mode 100644 index 00000000..377c8f77 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_auth.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 394b3ec4d60c24476a12e4ba696d9e5d +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_auth.png +timeCreated: 1473376335 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_auth_dark.png b/Assets/Editor Default Resources/Firebase/fb_auth_dark.png new file mode 100644 index 00000000..e90ec771 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_auth_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_auth_dark.png.meta b/Assets/Editor Default Resources/Firebase/fb_auth_dark.png.meta new file mode 100644 index 00000000..a54cd3c2 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_auth_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 3a9e1ef6287664c389bb09e2ac1b23b7 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_auth_dark.png +timeCreated: 1472679008 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png b/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png new file mode 100644 index 00000000..350c03f7 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png.meta b/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png.meta new file mode 100644 index 00000000..b9398085 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 837e8e1f35e334e81931d0857680cebf +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_cloud_messaging.png +timeCreated: 1473376336 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png b/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png new file mode 100644 index 00000000..1fbb8dc7 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png.meta b/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png.meta new file mode 100644 index 00000000..ce5d2ad1 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 20c5b8a1f82cb4aadb77ca20683d2a6e +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_cloud_messaging_dark.png +timeCreated: 1472679008 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_config.png b/Assets/Editor Default Resources/Firebase/fb_config.png new file mode 100644 index 00000000..3c692873 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_config.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_config.png.meta b/Assets/Editor Default Resources/Firebase/fb_config.png.meta new file mode 100644 index 00000000..23a13636 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_config.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 415eaec414af14d11955222a282aca08 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_config.png +timeCreated: 1473376335 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_config_dark.png b/Assets/Editor Default Resources/Firebase/fb_config_dark.png new file mode 100644 index 00000000..5441081d Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_config_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_config_dark.png.meta b/Assets/Editor Default Resources/Firebase/fb_config_dark.png.meta new file mode 100644 index 00000000..cc8fdacc --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_config_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 0ad9ef5fff5524355a9670c90a99cbba +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_config_dark.png +timeCreated: 1472679008 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_crashlytics.png b/Assets/Editor Default Resources/Firebase/fb_crashlytics.png new file mode 100644 index 00000000..e9b7cad8 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_crashlytics.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_crashlytics.png.meta b/Assets/Editor Default Resources/Firebase/fb_crashlytics.png.meta new file mode 100644 index 00000000..4ffc8115 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_crashlytics.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 008a5e76206e49f9b06d8ba144aabb38 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_crashlytics.png +timeCreated: 1473376335 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png b/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png new file mode 100644 index 00000000..52f5d48f Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png.meta b/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png.meta new file mode 100644 index 00000000..f0a38b23 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 214009068900439da4a9cded17d58090 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_crashlytics_dark.png +timeCreated: 1472679008 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_database.png b/Assets/Editor Default Resources/Firebase/fb_database.png new file mode 100644 index 00000000..a2a186de Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_database.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_database.png.meta b/Assets/Editor Default Resources/Firebase/fb_database.png.meta new file mode 100644 index 00000000..44581e6c --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_database.png.meta @@ -0,0 +1,69 @@ +fileFormatVersion: 2 +guid: 3eea7b558c67b48e18acf3c278392e3d +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_database.png +timeCreated: 1476203961 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_database_dark.png b/Assets/Editor Default Resources/Firebase/fb_database_dark.png new file mode 100644 index 00000000..ecc572e6 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_database_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_database_dark.png.meta b/Assets/Editor Default Resources/Firebase/fb_database_dark.png.meta new file mode 100644 index 00000000..52416613 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_database_dark.png.meta @@ -0,0 +1,69 @@ +fileFormatVersion: 2 +guid: 9f6bfa9d8aefb40dc92461c372c73b0f +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_database_dark.png +timeCreated: 1476203949 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_dynamic_links.png b/Assets/Editor Default Resources/Firebase/fb_dynamic_links.png new file mode 100644 index 00000000..a06148e0 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_dynamic_links.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_dynamic_links.png.meta b/Assets/Editor Default Resources/Firebase/fb_dynamic_links.png.meta new file mode 100644 index 00000000..68f8fece --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_dynamic_links.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: df6f219c396f4ad9b5048bae6944cb8e +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_dynamic_links.png +timeCreated: 1473376335 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png b/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png new file mode 100644 index 00000000..a35cb525 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png.meta b/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png.meta new file mode 100644 index 00000000..bc0a359a --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 9355a4671cfe4eef90879863318d1a4b +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_dynamic_links_dark.png +timeCreated: 1472679009 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_functions.png b/Assets/Editor Default Resources/Firebase/fb_functions.png new file mode 100644 index 00000000..776283e5 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_functions.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_functions.png.meta b/Assets/Editor Default Resources/Firebase/fb_functions.png.meta new file mode 100644 index 00000000..1ab5de5c --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_functions.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 953367231f9e3e22e70e5d1c91a40fe5 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_functions.png +timeCreated: 1473376335 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_functions_dark.png b/Assets/Editor Default Resources/Firebase/fb_functions_dark.png new file mode 100644 index 00000000..64741fc6 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_functions_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_functions_dark.png.meta b/Assets/Editor Default Resources/Firebase/fb_functions_dark.png.meta new file mode 100644 index 00000000..0d2d0d99 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_functions_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: b5aa3e4f7432e1c5698417cc13f85271 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_functions_dark.png +timeCreated: 1472679008 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_invites.png b/Assets/Editor Default Resources/Firebase/fb_invites.png new file mode 100644 index 00000000..be9a9b96 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_invites.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_invites.png.meta b/Assets/Editor Default Resources/Firebase/fb_invites.png.meta new file mode 100644 index 00000000..1683e18f --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_invites.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 741b269777f30488482ef4937b456b28 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_invites.png +timeCreated: 1473376335 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_invites_dark.png b/Assets/Editor Default Resources/Firebase/fb_invites_dark.png new file mode 100644 index 00000000..1bd1a904 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_invites_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_invites_dark.png.meta b/Assets/Editor Default Resources/Firebase/fb_invites_dark.png.meta new file mode 100644 index 00000000..f1c014ca --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_invites_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: a734ad7414926404e90f8b5be37b7e23 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_invites_dark.png +timeCreated: 1472679009 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_storage.png b/Assets/Editor Default Resources/Firebase/fb_storage.png new file mode 100644 index 00000000..ef8e129e Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_storage.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_storage.png.meta b/Assets/Editor Default Resources/Firebase/fb_storage.png.meta new file mode 100644 index 00000000..5d0baca4 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_storage.png.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: 573eb851c99f948f4bf2de49322bfd53 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_storage.png +timeCreated: 1481243899 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/fb_storage_dark.png b/Assets/Editor Default Resources/Firebase/fb_storage_dark.png new file mode 100644 index 00000000..b18ac5e2 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/fb_storage_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/fb_storage_dark.png.meta b/Assets/Editor Default Resources/Firebase/fb_storage_dark.png.meta new file mode 100644 index 00000000..6df54d6d --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/fb_storage_dark.png.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: 2955864b938094f579ea9902b65ac10c +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/fb_storage_dark.png +timeCreated: 1481243898 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/firebase_lockup.png b/Assets/Editor Default Resources/Firebase/firebase_lockup.png new file mode 100644 index 00000000..26fdb094 Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/firebase_lockup.png differ diff --git a/Assets/Editor Default Resources/Firebase/firebase_lockup.png.meta b/Assets/Editor Default Resources/Firebase/firebase_lockup.png.meta new file mode 100644 index 00000000..a6ff4516 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/firebase_lockup.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 9f058f25e8e2d47cfb894951d4d7e48a +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/firebase_lockup.png +timeCreated: 1473376336 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png b/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png new file mode 100644 index 00000000..c02c0b7e Binary files /dev/null and b/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png differ diff --git a/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png.meta b/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png.meta new file mode 100644 index 00000000..77d43d43 --- /dev/null +++ b/Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: b93330fc8ea08407dbc514b5101afa14 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Editor Default Resources/Firebase/firebase_lockup_dark.png +timeCreated: 1472601251 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor/1.2.177.meta b/Assets/ExternalDependencyManager/Editor/1.2.177.meta new file mode 100644 index 00000000..73e4ac25 --- /dev/null +++ b/Assets/ExternalDependencyManager/Editor/1.2.177.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d6750a74bc39c4450843327dbf5ca6ab +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor/1.2.177/Google.IOSResolver.dll b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.IOSResolver.dll new file mode 100644 index 00000000..3854d85e Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.IOSResolver.dll differ diff --git a/Assets/ExternalDependencyManager/Editor/1.2.177/Google.IOSResolver.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.IOSResolver.dll.meta new file mode 100644 index 00000000..6e3c8282 --- /dev/null +++ b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.IOSResolver.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 599b2f02d9a8248d9a7b8f0be6163d8f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor/1.2.177/Google.JarResolver.dll b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.JarResolver.dll new file mode 100644 index 00000000..44124297 Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.JarResolver.dll differ diff --git a/Assets/ExternalDependencyManager/Editor/1.2.177/Google.JarResolver.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.JarResolver.dll.meta new file mode 100644 index 00000000..aeabe052 --- /dev/null +++ b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.JarResolver.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 019187800ae574fc3aa5d9c2c854efbc +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor/1.2.177/Google.PackageManagerResolver.dll b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.PackageManagerResolver.dll new file mode 100644 index 00000000..658282c1 Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.PackageManagerResolver.dll differ diff --git a/Assets/ExternalDependencyManager/Editor/1.2.177/Google.PackageManagerResolver.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.PackageManagerResolver.dll.meta new file mode 100644 index 00000000..727d7639 --- /dev/null +++ b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.PackageManagerResolver.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 7cc889411af084bd3a8df5f29e4c6fce +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor/1.2.177/Google.VersionHandlerImpl.dll b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.VersionHandlerImpl.dll new file mode 100644 index 00000000..f80ebeba Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.VersionHandlerImpl.dll differ diff --git a/Assets/ExternalDependencyManager/Editor/1.2.177/Google.VersionHandlerImpl.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.VersionHandlerImpl.dll.meta new file mode 100644 index 00000000..b99c7759 --- /dev/null +++ b/Assets/ExternalDependencyManager/Editor/1.2.177/Google.VersionHandlerImpl.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 05040c30aa6104ac98fd8b438d7a7604 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.177_manifest.txt b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.177_manifest.txt new file mode 100644 index 00000000..5aac0e82 --- /dev/null +++ b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.177_manifest.txt @@ -0,0 +1,13 @@ +Assets/ExternalDependencyManager/Editor/1.2.177/Google.IOSResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.177/Google.IOSResolver.dll.mdb +Assets/ExternalDependencyManager/Editor/1.2.177/Google.JarResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.177/Google.JarResolver.dll.mdb +Assets/ExternalDependencyManager/Editor/1.2.177/Google.PackageManagerResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.177/Google.PackageManagerResolver.dll.mdb +Assets/ExternalDependencyManager/Editor/1.2.177/Google.VersionHandlerImpl.dll +Assets/ExternalDependencyManager/Editor/1.2.177/Google.VersionHandlerImpl.dll.mdb +Assets/ExternalDependencyManager/Editor/CHANGELOG.md +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb +Assets/ExternalDependencyManager/Editor/LICENSE +Assets/ExternalDependencyManager/Editor/README.md diff --git a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.177_manifest.txt.meta b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.177_manifest.txt.meta new file mode 100644 index 00000000..ebc018d8 --- /dev/null +++ b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.177_manifest.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5a60495da67554141958dc13a662ea1b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase.meta b/Assets/Firebase.meta new file mode 100644 index 00000000..6d29d434 --- /dev/null +++ b/Assets/Firebase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ec08b98a0bbe0e4982efbe3ee6c33ac +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor.meta b/Assets/Firebase/Editor.meta new file mode 100644 index 00000000..afe521f4 --- /dev/null +++ b/Assets/Firebase/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8e8f7d71b39131a448de54c9ec6777b9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/AnalyticsDependencies.xml b/Assets/Firebase/Editor/AnalyticsDependencies.xml new file mode 100644 index 00000000..1cccffe9 --- /dev/null +++ b/Assets/Firebase/Editor/AnalyticsDependencies.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + Assets/Firebase/m2repository + + + + diff --git a/Assets/Firebase/Editor/AnalyticsDependencies.xml.meta b/Assets/Firebase/Editor/AnalyticsDependencies.xml.meta new file mode 100644 index 00000000..4afd9533 --- /dev/null +++ b/Assets/Firebase/Editor/AnalyticsDependencies.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1e3c2da79be842cd838a9ddd70d20fa9 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/AnalyticsDependencies.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/AppDependencies.xml b/Assets/Firebase/Editor/AppDependencies.xml new file mode 100644 index 00000000..61e899df --- /dev/null +++ b/Assets/Firebase/Editor/AppDependencies.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + Assets/Firebase/m2repository + + + + diff --git a/Assets/Firebase/Editor/AppDependencies.xml.meta b/Assets/Firebase/Editor/AppDependencies.xml.meta new file mode 100644 index 00000000..e34bfdcd --- /dev/null +++ b/Assets/Firebase/Editor/AppDependencies.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9b63af95d9364af4a3d8ce58738b6223 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/AppDependencies.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/CrashlyticsDependencies.xml b/Assets/Firebase/Editor/CrashlyticsDependencies.xml new file mode 100644 index 00000000..6fccc351 --- /dev/null +++ b/Assets/Firebase/Editor/CrashlyticsDependencies.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + Assets/Firebase/m2repository + + + + diff --git a/Assets/Firebase/Editor/CrashlyticsDependencies.xml.meta b/Assets/Firebase/Editor/CrashlyticsDependencies.xml.meta new file mode 100644 index 00000000..956d5df7 --- /dev/null +++ b/Assets/Firebase/Editor/CrashlyticsDependencies.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: be690db6bda046a89e38b20ef9bfe06c +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/CrashlyticsDependencies.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll b/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll new file mode 100644 index 00000000..088288aa Binary files /dev/null and b/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll differ diff --git a/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll.meta b/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll.meta new file mode 100644 index 00000000..3ea95b5d --- /dev/null +++ b/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll.meta @@ -0,0 +1,118 @@ +fileFormatVersion: 2 +guid: 3781f2218eef4d5a823dba406baa434b +labels: +- gvh +- gvh_targets-editor +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/Firebase.Crashlytics.Editor.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Linux + second: + enabled: 0 + settings: + CPU: None + - first: + : LinuxUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + : OSXIntel + second: + enabled: 0 + settings: + CPU: None + - first: + : OSXIntel64 + second: + enabled: 0 + settings: + CPU: None + - first: + : Web + second: + enabled: 0 + settings: {} + - first: + : WebStreamed + second: + enabled: 0 + settings: {} + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + iPhone: iOS + second: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + - first: + tvOS: tvOS + second: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.pdb b/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.pdb new file mode 100644 index 00000000..60618041 Binary files /dev/null and b/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.pdb differ diff --git a/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.pdb.meta b/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.pdb.meta new file mode 100644 index 00000000..bd4b11a5 --- /dev/null +++ b/Assets/Firebase/Editor/Firebase.Crashlytics.Editor.pdb.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 78466de0dce747f9bf1d009be141cf6f +labels: +- gvh +- gvh_rename_to_disable +- gvh_targets-editor +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/Firebase.Crashlytics.Editor.pdb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/Firebase.Editor.dll b/Assets/Firebase/Editor/Firebase.Editor.dll new file mode 100644 index 00000000..e03072cc Binary files /dev/null and b/Assets/Firebase/Editor/Firebase.Editor.dll differ diff --git a/Assets/Firebase/Editor/Firebase.Editor.dll.meta b/Assets/Firebase/Editor/Firebase.Editor.dll.meta new file mode 100644 index 00000000..b511518e --- /dev/null +++ b/Assets/Firebase/Editor/Firebase.Editor.dll.meta @@ -0,0 +1,118 @@ +fileFormatVersion: 2 +guid: 9f2edbf81053418f879076c05f816dc2 +labels: +- gvh +- gvh_targets-editor +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/Firebase.Editor.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Linux + second: + enabled: 0 + settings: + CPU: None + - first: + : LinuxUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + : OSXIntel + second: + enabled: 0 + settings: + CPU: None + - first: + : OSXIntel64 + second: + enabled: 0 + settings: + CPU: None + - first: + : Web + second: + enabled: 0 + settings: {} + - first: + : WebStreamed + second: + enabled: 0 + settings: {} + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + iPhone: iOS + second: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + - first: + tvOS: tvOS + second: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/Firebase.Editor.pdb b/Assets/Firebase/Editor/Firebase.Editor.pdb new file mode 100644 index 00000000..d90fb869 Binary files /dev/null and b/Assets/Firebase/Editor/Firebase.Editor.pdb differ diff --git a/Assets/Firebase/Editor/Firebase.Editor.pdb.meta b/Assets/Firebase/Editor/Firebase.Editor.pdb.meta new file mode 100644 index 00000000..b447a3d5 --- /dev/null +++ b/Assets/Firebase/Editor/Firebase.Editor.pdb.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: f2ceb9c446ee4196b6476d4978a416b6 +labels: +- gvh +- gvh_rename_to_disable +- gvh_targets-editor +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/Firebase.Editor.pdb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/Firebase.Messaging.Editor.dll b/Assets/Firebase/Editor/Firebase.Messaging.Editor.dll new file mode 100644 index 00000000..3c4b5ba2 Binary files /dev/null and b/Assets/Firebase/Editor/Firebase.Messaging.Editor.dll differ diff --git a/Assets/Firebase/Editor/Firebase.Messaging.Editor.dll.meta b/Assets/Firebase/Editor/Firebase.Messaging.Editor.dll.meta new file mode 100644 index 00000000..a2e42b21 --- /dev/null +++ b/Assets/Firebase/Editor/Firebase.Messaging.Editor.dll.meta @@ -0,0 +1,118 @@ +fileFormatVersion: 2 +guid: 9555198c219241e0b850872f8732192f +labels: +- gvh +- gvh_targets-editor +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/Firebase.Messaging.Editor.dll +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Linux + second: + enabled: 0 + settings: + CPU: None + - first: + : LinuxUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + : OSXIntel + second: + enabled: 0 + settings: + CPU: None + - first: + : OSXIntel64 + second: + enabled: 0 + settings: + CPU: None + - first: + : Web + second: + enabled: 0 + settings: {} + - first: + : WebStreamed + second: + enabled: 0 + settings: {} + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + iPhone: iOS + second: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + - first: + tvOS: tvOS + second: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/Firebase.Messaging.Editor.pdb b/Assets/Firebase/Editor/Firebase.Messaging.Editor.pdb new file mode 100644 index 00000000..c9eb2853 Binary files /dev/null and b/Assets/Firebase/Editor/Firebase.Messaging.Editor.pdb differ diff --git a/Assets/Firebase/Editor/Firebase.Messaging.Editor.pdb.meta b/Assets/Firebase/Editor/Firebase.Messaging.Editor.pdb.meta new file mode 100644 index 00000000..d3067672 --- /dev/null +++ b/Assets/Firebase/Editor/Firebase.Messaging.Editor.pdb.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: dfa822a1009f4d90972aac668718aaaa +labels: +- gvh +- gvh_rename_to_disable +- gvh_targets-editor +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/Firebase.Messaging.Editor.pdb +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/FirebaseAnalytics_version-12.8.0_manifest.txt b/Assets/Firebase/Editor/FirebaseAnalytics_version-12.8.0_manifest.txt new file mode 100644 index 00000000..671057ba --- /dev/null +++ b/Assets/Firebase/Editor/FirebaseAnalytics_version-12.8.0_manifest.txt @@ -0,0 +1,73 @@ +Assets/Editor Default Resources/Firebase/fb_analytics.png +Assets/Editor Default Resources/Firebase/fb_analytics_dark.png +Assets/Editor Default Resources/Firebase/fb_auth.png +Assets/Editor Default Resources/Firebase/fb_auth_dark.png +Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png +Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png +Assets/Editor Default Resources/Firebase/fb_config.png +Assets/Editor Default Resources/Firebase/fb_config_dark.png +Assets/Editor Default Resources/Firebase/fb_crashlytics.png +Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png +Assets/Editor Default Resources/Firebase/fb_database.png +Assets/Editor Default Resources/Firebase/fb_database_dark.png +Assets/Editor Default Resources/Firebase/fb_dynamic_links.png +Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png +Assets/Editor Default Resources/Firebase/fb_functions.png +Assets/Editor Default Resources/Firebase/fb_functions_dark.png +Assets/Editor Default Resources/Firebase/fb_invites.png +Assets/Editor Default Resources/Firebase/fb_invites_dark.png +Assets/Editor Default Resources/Firebase/fb_storage.png +Assets/Editor Default Resources/Firebase/fb_storage_dark.png +Assets/Editor Default Resources/Firebase/firebase_lockup.png +Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png +Assets/ExternalDependencyManager/Editor/1.2.185/Google.IOSResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.IOSResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.185/Google.JarResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.JarResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.185/Google.PackageManagerResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.PackageManagerResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.185/Google.VersionHandlerImpl.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.VersionHandlerImpl.pdb +Assets/ExternalDependencyManager/Editor/CHANGELOG.md +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb +Assets/ExternalDependencyManager/Editor/LICENSE +Assets/ExternalDependencyManager/Editor/README.md +Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.185_manifest.txt +Assets/Firebase/Editor/AnalyticsDependencies.xml +Assets/Firebase/Editor/AppDependencies.xml +Assets/Firebase/Editor/Firebase.Editor.dll +Assets/Firebase/Editor/Firebase.Editor.pdb +Assets/Firebase/Editor/generate_xml_from_google_services_json.exe +Assets/Firebase/Editor/generate_xml_from_google_services_json.py +Assets/Firebase/Editor/network_request.exe +Assets/Firebase/Editor/network_request.py +Assets/Firebase/Plugins/Firebase.Analytics.dll +Assets/Firebase/Plugins/Firebase.Analytics.pdb +Assets/Firebase/Plugins/Firebase.App.dll +Assets/Firebase/Plugins/Firebase.App.pdb +Assets/Firebase/Plugins/Firebase.Platform.dll +Assets/Firebase/Plugins/Firebase.Platform.pdb +Assets/Firebase/Plugins/Firebase.TaskExtension.dll +Assets/Firebase/Plugins/Firebase.TaskExtension.pdb +Assets/Firebase/Plugins/Google.MiniJson.dll +Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll +Assets/Firebase/Plugins/iOS/Firebase.Analytics.pdb +Assets/Firebase/Plugins/iOS/Firebase.App.dll +Assets/Firebase/Plugins/iOS/Firebase.App.pdb +Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle +Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll +Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so +Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.bundle +Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.dll +Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.so +Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom +Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.srcaar +Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml +Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom +Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.srcaar +Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml +Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a +Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a +Assets/Plugins/tvOS/Firebase/libFirebaseCppAnalytics.a +Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a diff --git a/Assets/Firebase/Editor/FirebaseAnalytics_version-12.8.0_manifest.txt.meta b/Assets/Firebase/Editor/FirebaseAnalytics_version-12.8.0_manifest.txt.meta new file mode 100644 index 00000000..49eada2d --- /dev/null +++ b/Assets/Firebase/Editor/FirebaseAnalytics_version-12.8.0_manifest.txt.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a4e8e6cc224a43209c603e3759695835 +labels: +- gvh +- gvh_manifest +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/FirebaseAnalytics_version-12.8.0_manifest.txt +- gvhp_manifestname-0Google Analytics +- gvhp_manifestname-1FirebaseAnalytics +timeCreated: 0 diff --git a/Assets/Firebase/Editor/FirebaseCrashlytics_version-12.8.0_manifest.txt b/Assets/Firebase/Editor/FirebaseCrashlytics_version-12.8.0_manifest.txt new file mode 100644 index 00000000..ee5198bc --- /dev/null +++ b/Assets/Firebase/Editor/FirebaseCrashlytics_version-12.8.0_manifest.txt @@ -0,0 +1,72 @@ +Assets/Editor Default Resources/Firebase/fb_analytics.png +Assets/Editor Default Resources/Firebase/fb_analytics_dark.png +Assets/Editor Default Resources/Firebase/fb_auth.png +Assets/Editor Default Resources/Firebase/fb_auth_dark.png +Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png +Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png +Assets/Editor Default Resources/Firebase/fb_config.png +Assets/Editor Default Resources/Firebase/fb_config_dark.png +Assets/Editor Default Resources/Firebase/fb_crashlytics.png +Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png +Assets/Editor Default Resources/Firebase/fb_database.png +Assets/Editor Default Resources/Firebase/fb_database_dark.png +Assets/Editor Default Resources/Firebase/fb_dynamic_links.png +Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png +Assets/Editor Default Resources/Firebase/fb_functions.png +Assets/Editor Default Resources/Firebase/fb_functions_dark.png +Assets/Editor Default Resources/Firebase/fb_invites.png +Assets/Editor Default Resources/Firebase/fb_invites_dark.png +Assets/Editor Default Resources/Firebase/fb_storage.png +Assets/Editor Default Resources/Firebase/fb_storage_dark.png +Assets/Editor Default Resources/Firebase/firebase_lockup.png +Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png +Assets/ExternalDependencyManager/Editor/1.2.185/Google.IOSResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.IOSResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.185/Google.JarResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.JarResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.185/Google.PackageManagerResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.PackageManagerResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.185/Google.VersionHandlerImpl.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.VersionHandlerImpl.pdb +Assets/ExternalDependencyManager/Editor/CHANGELOG.md +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb +Assets/ExternalDependencyManager/Editor/LICENSE +Assets/ExternalDependencyManager/Editor/README.md +Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.185_manifest.txt +Assets/Firebase/Editor/AppDependencies.xml +Assets/Firebase/Editor/CrashlyticsDependencies.xml +Assets/Firebase/Editor/Firebase.Crashlytics.Editor.dll +Assets/Firebase/Editor/Firebase.Crashlytics.Editor.pdb +Assets/Firebase/Editor/Firebase.Editor.dll +Assets/Firebase/Editor/Firebase.Editor.pdb +Assets/Firebase/Editor/generate_xml_from_google_services_json.exe +Assets/Firebase/Editor/generate_xml_from_google_services_json.py +Assets/Firebase/Editor/network_request.exe +Assets/Firebase/Editor/network_request.py +Assets/Firebase/Plugins/Firebase.App.dll +Assets/Firebase/Plugins/Firebase.App.pdb +Assets/Firebase/Plugins/Firebase.Crashlytics.dll +Assets/Firebase/Plugins/Firebase.Crashlytics.pdb +Assets/Firebase/Plugins/Firebase.Platform.dll +Assets/Firebase/Plugins/Firebase.Platform.pdb +Assets/Firebase/Plugins/Firebase.TaskExtension.dll +Assets/Firebase/Plugins/Firebase.TaskExtension.pdb +Assets/Firebase/Plugins/Google.MiniJson.dll +Assets/Firebase/Plugins/iOS/Firebase.App.dll +Assets/Firebase/Plugins/iOS/Firebase.App.pdb +Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll +Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.pdb +Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.bundle +Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.dll +Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.so +Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom +Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.srcaar +Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml +Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom +Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.srcaar +Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml +Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a +Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a +Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a +Assets/Plugins/tvOS/Firebase/libFirebaseCppCrashlytics.a diff --git a/Assets/Firebase/Editor/FirebaseCrashlytics_version-12.8.0_manifest.txt.meta b/Assets/Firebase/Editor/FirebaseCrashlytics_version-12.8.0_manifest.txt.meta new file mode 100644 index 00000000..d491abed --- /dev/null +++ b/Assets/Firebase/Editor/FirebaseCrashlytics_version-12.8.0_manifest.txt.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f4491847e2c04c6584a04d9f49337afe +labels: +- gvh +- gvh_manifest +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/FirebaseCrashlytics_version-12.8.0_manifest.txt +- gvhp_manifestname-0Firebase Crashlytics +- gvhp_manifestname-1FirebaseCrashlytics +timeCreated: 0 diff --git a/Assets/Firebase/Editor/FirebaseMessaging_version-12.8.0_manifest.txt b/Assets/Firebase/Editor/FirebaseMessaging_version-12.8.0_manifest.txt new file mode 100644 index 00000000..a2f8a78e --- /dev/null +++ b/Assets/Firebase/Editor/FirebaseMessaging_version-12.8.0_manifest.txt @@ -0,0 +1,78 @@ +Assets/Editor Default Resources/Firebase/fb_analytics.png +Assets/Editor Default Resources/Firebase/fb_analytics_dark.png +Assets/Editor Default Resources/Firebase/fb_auth.png +Assets/Editor Default Resources/Firebase/fb_auth_dark.png +Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png +Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png +Assets/Editor Default Resources/Firebase/fb_config.png +Assets/Editor Default Resources/Firebase/fb_config_dark.png +Assets/Editor Default Resources/Firebase/fb_crashlytics.png +Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png +Assets/Editor Default Resources/Firebase/fb_database.png +Assets/Editor Default Resources/Firebase/fb_database_dark.png +Assets/Editor Default Resources/Firebase/fb_dynamic_links.png +Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png +Assets/Editor Default Resources/Firebase/fb_functions.png +Assets/Editor Default Resources/Firebase/fb_functions_dark.png +Assets/Editor Default Resources/Firebase/fb_invites.png +Assets/Editor Default Resources/Firebase/fb_invites_dark.png +Assets/Editor Default Resources/Firebase/fb_storage.png +Assets/Editor Default Resources/Firebase/fb_storage_dark.png +Assets/Editor Default Resources/Firebase/firebase_lockup.png +Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png +Assets/ExternalDependencyManager/Editor/1.2.185/Google.IOSResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.IOSResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.185/Google.JarResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.JarResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.185/Google.PackageManagerResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.PackageManagerResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.185/Google.VersionHandlerImpl.dll +Assets/ExternalDependencyManager/Editor/1.2.185/Google.VersionHandlerImpl.pdb +Assets/ExternalDependencyManager/Editor/CHANGELOG.md +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb +Assets/ExternalDependencyManager/Editor/LICENSE +Assets/ExternalDependencyManager/Editor/README.md +Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.185_manifest.txt +Assets/Firebase/Editor/AppDependencies.xml +Assets/Firebase/Editor/Firebase.Editor.dll +Assets/Firebase/Editor/Firebase.Editor.pdb +Assets/Firebase/Editor/Firebase.Messaging.Editor.dll +Assets/Firebase/Editor/Firebase.Messaging.Editor.pdb +Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.asmdef +Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.cs +Assets/Firebase/Editor/MessagingDependencies.xml +Assets/Firebase/Editor/generate_xml_from_google_services_json.exe +Assets/Firebase/Editor/generate_xml_from_google_services_json.py +Assets/Firebase/Editor/network_request.exe +Assets/Firebase/Editor/network_request.py +Assets/Firebase/Plugins/Android/firebase-messaging-cpp.aar +Assets/Firebase/Plugins/Firebase.App.dll +Assets/Firebase/Plugins/Firebase.App.pdb +Assets/Firebase/Plugins/Firebase.Messaging.dll +Assets/Firebase/Plugins/Firebase.Messaging.pdb +Assets/Firebase/Plugins/Firebase.Platform.dll +Assets/Firebase/Plugins/Firebase.Platform.pdb +Assets/Firebase/Plugins/Firebase.TaskExtension.dll +Assets/Firebase/Plugins/Firebase.TaskExtension.pdb +Assets/Firebase/Plugins/Google.MiniJson.dll +Assets/Firebase/Plugins/iOS/Firebase.App.dll +Assets/Firebase/Plugins/iOS/Firebase.App.pdb +Assets/Firebase/Plugins/iOS/Firebase.Messaging.dll +Assets/Firebase/Plugins/iOS/Firebase.Messaging.pdb +Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.bundle +Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.dll +Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.so +Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.bundle +Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.dll +Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.so +Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom +Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.srcaar +Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml +Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom +Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.srcaar +Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/maven-metadata.xml +Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a +Assets/Plugins/iOS/Firebase/libFirebaseCppMessaging.a +Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a +Assets/Plugins/tvOS/Firebase/libFirebaseCppMessaging.a diff --git a/Assets/Firebase/Editor/FirebaseMessaging_version-12.8.0_manifest.txt.meta b/Assets/Firebase/Editor/FirebaseMessaging_version-12.8.0_manifest.txt.meta new file mode 100644 index 00000000..809625e1 --- /dev/null +++ b/Assets/Firebase/Editor/FirebaseMessaging_version-12.8.0_manifest.txt.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 523f177029b14503bb7d5806578a7c33 +labels: +- gvh +- gvh_manifest +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/FirebaseMessaging_version-12.8.0_manifest.txt +- gvhp_manifestname-0Firebase Cloud Messaging +- gvhp_manifestname-1FirebaseMessaging +timeCreated: 0 diff --git a/Assets/Firebase/Editor/Messaging.meta b/Assets/Firebase/Editor/Messaging.meta new file mode 100644 index 00000000..95578666 --- /dev/null +++ b/Assets/Firebase/Editor/Messaging.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19ed14142d00f564d83c9e631862d46f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.asmdef b/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.asmdef new file mode 100644 index 00000000..37fef88b --- /dev/null +++ b/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.asmdef @@ -0,0 +1,16 @@ +{ + "name": "FirebaseMessagingActivityGenerator", + "rootNamespace": "", + "references": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} diff --git a/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.asmdef.meta b/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.asmdef.meta new file mode 100644 index 00000000..132b92b2 --- /dev/null +++ b/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.asmdef.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 23dad9d59a474cb6a052bb9322271ae3 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.asmdef +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.cs b/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.cs new file mode 100644 index 00000000..133e3a18 --- /dev/null +++ b/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.cs @@ -0,0 +1,198 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +using System.IO; +using System.Linq; +using UnityEngine; +using UnityEditor; +using UnityEditor.Build; +using UnityEditor.Build.Reporting; + +namespace Firebase.Messaging.Editor { + +// Handles the generation of the MessagingUnityPlayerActivity java file. +// Note this regenerates the file every time an Android build occurs, +// but local changes can be preserved by using the PreserveTag below. +// This is needed because the source code needs to be present to work across +// different Unity versions, due to changes in mUnityPlayer. +// It also adjusts the base class of the file based on if GameActivity is being +// used (a new feature in Unity 2023). +public class FirebaseMessagingActivityGenerator : IPreprocessBuildWithReport { + // TODO: Ideally this should use a template file, the tricky part is locating + // the template file when it is either in the Assets path, or the Packages path. + // There are some similar cases in EDM4U, so a solution might be to use that. + private readonly string[] ActivityClassContents = new string[]{ +"/*", +" * This file is generated by the FirebaseMessagingActivityGenerator script.", +" * Refer to that script for more information.", +" */", +"", +"package com.google.firebase;", +"", +"import android.content.Intent;", +"import android.os.Bundle;", +"import com.google.firebase.messaging.MessageForwardingService;", +"import com.unity3d.player.{0};", +"", +"/**", +" * MessagingUnityPlayerActivity is a {0} that updates its intent when new intents", +" * are sent to it.", +" *", +" * This is a workaround for a known issue that prevents Firebase Cloud Messaging from responding to", +" * data payloads when both a data and notification payload are sent to the app while it is in the", +" * background.", +" */", +"public class MessagingUnityPlayerActivity extends {0} {{", +" // The key in the intent's extras that maps to the incoming message's message ID. Only sent by", +" // the server, GmsCore sends EXTRA_MESSAGE_ID_KEY below. Server can't send that as it would get", +" // stripped by the client.", +" private static final String EXTRA_MESSAGE_ID_KEY_SERVER = \"message_id\";", +"", +" // An alternate key value in the intent's extras that also maps to the incoming message's message", +" // ID. Used by upstream, and set by GmsCore.", +" private static final String EXTRA_MESSAGE_ID_KEY = \"google.message_id\";", +"", +" // The key in the intent's extras that maps to the incoming message's sender value.", +" private static final String EXTRA_FROM = \"google.message_id\";", +"", +" /**", +" * Workaround for when a message is sent containing both a Data and Notification payload.", +" *", +" *

When the app is in the background, if a message with both a data and notification payload is", +" * received the data payload is stored on the Intent passed to onNewIntent. By default, that", +" * intent does not get set as the Intent that started the app, so when the app comes back online", +" * it doesn't see a new FCM message to respond to. As a workaround, we override onNewIntent so", +" * that it sends the intent to the MessageForwardingService which forwards the message to the", +" * FirebaseMessagingService which in turn sends the message to the application.", +" */", +" @Override", +" protected void onNewIntent(Intent intent) {{", +" super.onNewIntent(intent);", +"", +" // If we do not have a 'from' field this intent was not a message and should not be handled. It", +" // probably means this intent was fired by tapping on the app icon.", +" Bundle extras = intent.getExtras();", +" if (extras == null) {{", +" return;", +" }}", +" String from = extras.getString(EXTRA_FROM);", +" String messageId = extras.getString(EXTRA_MESSAGE_ID_KEY);", +" if (messageId == null) {{", +" messageId = extras.getString(EXTRA_MESSAGE_ID_KEY_SERVER);", +" }}", +" if (from != null && messageId != null) {{", +" Intent message = new Intent(this, MessageForwardingService.class);", +" message.setAction(MessageForwardingService.ACTION_REMOTE_INTENT);", +" message.putExtras(intent);", +" message.setData(intent.getData());", +" MessageForwardingService.enqueueWork(this, message);", +" }}", +" setIntent(intent);", +" }}", +"", +" /**", +" * Dispose of the mUnityPlayer when restarting the app.", +" *", +" *

This ensures that when the app starts up again it does not start with stale data.", +" */", +" @Override", +" protected void onCreate(Bundle savedInstanceState) {{", +" if (mUnityPlayer != null) {{", +" mUnityPlayer.{1}();", +" mUnityPlayer = null;", +" }}", +" super.onCreate(savedInstanceState);", +" }}", +"}}" + }; + private readonly string BaseActivityClass = "UnityPlayerActivity"; +#if UNITY_2023_1_OR_NEWER + private readonly string BaseGameActivityClass = "UnityPlayerGameActivity"; +#endif + +#if UNITY_2023_1_OR_NEWER + private readonly string UnityPlayerQuitFunction = "destroy"; +#else + private readonly string UnityPlayerQuitFunction = "quit"; +#endif + + private readonly string GeneratedFileTag = "FirebaseMessagingActivityGenerated"; + // If this tag is present on the generated file, it will not be replaced. + private readonly string PreserveTag = "FirebasePreserve"; + + private readonly string OutputPath = Path.Combine("Plugins", "Android"); + private readonly string OutputFilename = "MessagingUnityPlayerActivity.java"; + + public int callbackOrder { get { return 0; } } + public void OnPreprocessBuild(BuildReport report) { + // Only run this logic when building for Android. + if (EditorUserBuildSettings.activeBuildTarget != BuildTarget.Android) { + return; + } + + // Determine what the contents of the generated file should be. + string baseClass = BaseActivityClass; +#if UNITY_2023_1_OR_NEWER + // If using the new GameActivity logic, we want to generate with that base class. + if (PlayerSettings.Android.applicationEntry.HasFlag(AndroidApplicationEntry.GameActivity)) { + baseClass = BaseGameActivityClass; + } +#endif + string fileContents = System.String.Format(System.String.Join("\n", ActivityClassContents), + baseClass, UnityPlayerQuitFunction); + + // Check if the file has already been generated. + string[] oldAssetGuids = AssetDatabase.FindAssets("l:" + GeneratedFileTag); + if (oldAssetGuids != null && oldAssetGuids.Length > 0) { + if (oldAssetGuids.Length != 1) { + Debug.LogWarning("FirebaseMessagingActivityEditor found multiple generated files with the label: " + + GeneratedFileTag + " \n" + + "No changes will be made, but this can potentially cause problems on Android with duplicate classes.\n" + + "Please check for duplicate classes, and remove any unnecessary uses of the label."); + return; + } + string oldAssetPath = AssetDatabase.GUIDToAssetPath(oldAssetGuids[0]); + Object oldAsset = AssetDatabase.LoadMainAssetAtPath(oldAssetPath); + if (oldAsset != null) { + string oldAssetFullPath = Path.Combine(Application.dataPath, "..", oldAssetPath); + string oldFileContents = System.IO.File.ReadAllText(oldAssetFullPath); + // If the old file matches what we would generate, exit early. + if (oldFileContents == fileContents) { + return; + } + // If the generated file has been tagged to be preserved, don't change it. + string[] labelList = AssetDatabase.GetLabels(oldAsset); + if (labelList.Contains(PreserveTag)) { + return; + } + // Delete the old asset. + Debug.Log("Changes detected, regenerating " + oldAssetPath + "\n" + + "To preserve local changes to that file, add the label: " + PreserveTag); + AssetDatabase.DeleteAsset(oldAssetPath); + } + } + + // Generate the new file. + string newAssetFullDirectory = Path.Combine(Application.dataPath, OutputPath); + System.IO.Directory.CreateDirectory(newAssetFullDirectory); + System.IO.File.WriteAllText(Path.Combine(newAssetFullDirectory, OutputFilename), fileContents); + string newAssetLocalPath = Path.Combine("Assets", OutputPath, OutputFilename); + AssetDatabase.ImportAsset(newAssetLocalPath); + Object newAsset = AssetDatabase.LoadMainAssetAtPath(newAssetLocalPath); + AssetDatabase.SetLabels(newAsset, new[]{GeneratedFileTag}); + } +} + +} // namespace Firebase.Messaging.Editor diff --git a/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.cs.meta b/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.cs.meta new file mode 100644 index 00000000..37fab22e --- /dev/null +++ b/Assets/Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 38cf8316372e4943aee735c624262e05 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/Messaging/FirebaseMessagingActivityGenerator.cs +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/MessagingDependencies.xml b/Assets/Firebase/Editor/MessagingDependencies.xml new file mode 100644 index 00000000..418788a8 --- /dev/null +++ b/Assets/Firebase/Editor/MessagingDependencies.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + Assets/Firebase/m2repository + + + + diff --git a/Assets/Firebase/Editor/MessagingDependencies.xml.meta b/Assets/Firebase/Editor/MessagingDependencies.xml.meta new file mode 100644 index 00000000..5e893fbc --- /dev/null +++ b/Assets/Firebase/Editor/MessagingDependencies.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 992fedef98ac42209a9d26d5bf364adf +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/MessagingDependencies.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/generate_xml_from_google_services_json.exe b/Assets/Firebase/Editor/generate_xml_from_google_services_json.exe new file mode 100644 index 00000000..2d31b042 Binary files /dev/null and b/Assets/Firebase/Editor/generate_xml_from_google_services_json.exe differ diff --git a/Assets/Firebase/Editor/generate_xml_from_google_services_json.exe.meta b/Assets/Firebase/Editor/generate_xml_from_google_services_json.exe.meta new file mode 100644 index 00000000..4a3249c6 --- /dev/null +++ b/Assets/Firebase/Editor/generate_xml_from_google_services_json.exe.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ae88c0972b7448b5b36def1716f1d711 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/generate_xml_from_google_services_json.exe +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/generate_xml_from_google_services_json.py b/Assets/Firebase/Editor/generate_xml_from_google_services_json.py new file mode 100644 index 00000000..789dcebe --- /dev/null +++ b/Assets/Firebase/Editor/generate_xml_from_google_services_json.py @@ -0,0 +1,498 @@ +#!/usr/bin/python + +# Copyright 2016 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Stand-alone implementation of the Gradle Firebase plugin. + +Converts the services json file to xml: +https://googleplex-android.googlesource.com/platform/tools/base/+/studio-master-dev/build-system/google-services/src/main/groovy/com/google/gms/googleservices +""" + +__author__ = 'Wouter van Oortmerssen' + +import argparse +import ctypes +import json +import os +import platform +import sys +from xml.etree import ElementTree + +if platform.system().lower() == 'windows': + import ctypes.wintypes # pylint: disable=g-import-not-at-top + +# Map Python 2's unicode method to encode a string as bytes in python 3. +try: + unicode('') # See whether unicode class is available (Python < 3) +except NameError: + unicode = str # pylint: disable=redefined-builtin,invalid-name + +# Input filename if it isn't set. +DEFAULT_INPUT_FILENAME = 'app/google-services.json' +# Output filename if it isn't set. +DEFAULT_OUTPUT_FILENAME = 'res/values/googleservices.xml' +# Input filename for .plist files, if it isn't set. +DEFAULT_PLIST_INPUT_FILENAME = 'GoogleService-Info.plist' +# Output filename for .json files, if it isn't set. +DEFAULT_JSON_OUTPUT_FILENAME = 'google-services-desktop.json' + +OAUTH_CLIENT_TYPE_ANDROID_APP = 1 +OAUTH_CLIENT_TYPE_WEB = 3 + + +def read_xml_value(xml_node): + """Utility method for reading values from the plist XML. + + Args: + xml_node: An ElementTree node, that contains a value. + + Returns: + The value of the node, or None, if it could not be read. + """ + if xml_node.tag == 'string': + return xml_node.text + elif xml_node.tag == 'integer': + return int(xml_node.text) + elif xml_node.tag == 'real': + return float(xml_node.text) + elif xml_node.tag == 'false': + return 0 + elif xml_node.tag == 'true': + return 1 + else: + # other types of input are ignored. (data, dates, arrays, etc.) + return None + + +def construct_plist_dictionary(xml_root): + """Constructs a dictionary of values based on the contents of a plist file. + + Args: + xml_root: An ElementTree node, that represents the root of the xml file + that is to be parsed. (Which should be a dictionary containing + key-value pairs of the properties that need to be extracted.) + + Returns: + A dictionary, containing key-value pairs for all (supported) entries in the + node. + """ + xml_dict = xml_root.find('dict') + + if xml_dict is None: + return None + + plist_dict = {} + i = 0 + while i < len(xml_dict): + if xml_dict[i].tag == 'key': + key = xml_dict[i].text + i += 1 + if i < len(xml_dict): + value = read_xml_value(xml_dict[i]) + if value is not None: + plist_dict[key] = value + i += 1 + + return plist_dict + + +def update_dict_keys(key_map, input_dict): + """Creates a dict from input_dict with the same values but new keys. + + Two dictionaries are passed to this function: the key_map that represents a + mapping of source keys to destination keys, and the input_dict that is the + dictionary that is to be duplicated, replacing any key that matches a source + key with a destination key. Source keys that are not present in the + input_dict will not have their destination key represented in the result. + + In other words, if key_map is `{'old': 'new', 'foo': 'bar'}`, and input_dict + is `{'old': 10}`, the result will be `{'new': 10}`. + + Args: + key_map (dict): A dictionary of strings to strings that maps source keys to + destination keys. + input_dict (dict): The dictionary of string keys to any value type, which + is to be duplicated, replacing source keys with the corresponding + destination keys from key_map. + + Returns: + dict: A new dictionary with updated keys. + """ + return { + new_key: input_dict[old_key] + for (old_key, new_key) in key_map.items() + if old_key in input_dict + } + + +def construct_google_services_json(xml_dict): + """Constructs a google services json file from a dictionary. + + Args: + xml_dict: A dictionary of all the key/value pairs that are needed for the + output json file. + Returns: + A string representing the output json file. + """ + + try: + json_struct = { + 'project_info': + update_dict_keys( + { + 'GCM_SENDER_ID': 'project_number', + 'DATABASE_URL': 'firebase_url', + 'PROJECT_ID': 'project_id', + 'STORAGE_BUCKET': 'storage_bucket' + }, xml_dict), + 'client': [{ + 'client_info': { + 'mobilesdk_app_id': xml_dict['GOOGLE_APP_ID'], + 'android_client_info': { + 'package_name': xml_dict['BUNDLE_ID'] + } + }, + 'api_key': [{ + 'current_key': xml_dict['API_KEY'] + }], + 'services': { + 'analytics_service': { + 'status': xml_dict['IS_ANALYTICS_ENABLED'] + }, + 'appinvite_service': { + 'status': xml_dict['IS_APPINVITE_ENABLED'] + } + } + },], + 'configuration_version': + '1' + } + # OAuth client is optional, but include it if present. + if 'CLIENT_ID' in xml_dict: + json_struct['client'][0]['oauth_client'] = [{ + 'client_id': xml_dict['CLIENT_ID'], + }] + return json.dumps(json_struct, indent=2) + except KeyError as e: + sys.stderr.write('Could not find key in plist file: [%s]\n' % (e.args[0])) + return None + + +def convert_plist_to_json(plist_string, input_filename): + """Converts an input plist string into a .json file and saves it. + + Args: + plist_string: The contents of the loaded plist file. + + input_filename: The file name that the plist data was read from. + Returns: + the converted string, or None if there were errors. + """ + + try: + root = ElementTree.fromstring(plist_string) + except ElementTree.ParseError: + sys.stderr.write('Error parsing file %s.\n' + 'It does not appear to be valid XML.\n' % (input_filename)) + return None + + plist_dict = construct_plist_dictionary(root) + if plist_dict is None: + sys.stderr.write('In file %s, could not locate a top-level \'dict\' ' + 'element.\n' + 'File format should be plist XML, with a top-level ' + 'dictionary containing project settings as key-value ' + 'pairs.\n' % (input_filename)) + return None + + json_string = construct_google_services_json(plist_dict) + return json_string + + +def gen_string(parent, name, text): + """Generate one element and put into the list of keeps. + + Args: + parent: The object that will hold the string. + name: The name to store the string under. + text: The text of the string. + """ + if text: + prev = parent.get('tools:keep', '') + if prev: + prev += ',' + parent.set('tools:keep', prev + '@string/' + name) + child = ElementTree.SubElement(parent, 'string', { + 'name': name, + 'translatable': 'false' + }) + child.text = text + + +def indent(elem, level=0): + """Recurse through XML tree and add indentation. + + Args: + elem: The element to recurse over + level: The current indentation level. + """ + i = '\n' + level*' ' + if elem is not None: + if not elem.text or not elem.text.strip(): + elem.text = i + ' ' + if not elem.tail or not elem.tail.strip(): + elem.tail = i + for elem in elem: + indent(elem, level+1) + if not elem.tail or not elem.tail.strip(): + elem.tail = i + else: + if level and (not elem.tail or not elem.tail.strip()): + elem.tail = i + + +def argv_as_unicode_win32(): + """Returns unicode command line arguments on windows. + """ + + get_command_line_w = ctypes.cdll.kernel32.GetCommandLineW + get_command_line_w.restype = ctypes.wintypes.LPCWSTR + + # CommandLineToArgvW parses the Unicode command line + command_line_to_argv_w = ctypes.windll.shell32.CommandLineToArgvW + command_line_to_argv_w.argtypes = [ + ctypes.wintypes.LPCWSTR, + ctypes.POINTER(ctypes.c_int) + ] + command_line_to_argv_w.restype = ctypes.POINTER( + ctypes.wintypes.LPWSTR) + + argc = ctypes.c_int(0) + argv = command_line_to_argv_w(get_command_line_w(), argc) + + # Strip the python executable from the arguments if it exists + # (It would be listed as the first argument on the windows command line, but + # not in the arguments to the python script) + sys_argv_len = len(sys.argv) + return [unicode(argv[i]) for i in + range(argc.value - sys_argv_len, argc.value)] + + +def main(): + parser = argparse.ArgumentParser( + description=(( + 'Converts a Firebase %s into %s similar to the Gradle plugin, or ' + 'converts a Firebase %s into a %s suitible for use on desktop apps.' % + (DEFAULT_INPUT_FILENAME, DEFAULT_OUTPUT_FILENAME, + DEFAULT_PLIST_INPUT_FILENAME, DEFAULT_JSON_OUTPUT_FILENAME)))) + parser.add_argument('-i', help='Override input file name', + metavar='FILE', required=False) + parser.add_argument('-o', help='Override destination file name', + metavar='FILE', required=False) + parser.add_argument('-p', help=('Package ID to select within the set of ' + 'packages in the input file. If this is ' + 'not specified, the first package in the ' + 'input file is selected.')) + parser.add_argument('-l', help=('List all package IDs referenced by the ' + 'input file. If this is specified, ' + 'the output file is not created.'), + action='store_true', default=False, required=False) + parser.add_argument('-f', help=('Print project fields from the input file ' + 'in the form \'name=value\\n\' for each ' + 'field. If this is specified, the output ' + 'is not created.'), + action='store_true', default=False, required=False) + parser.add_argument( + '--plist', + help=( + 'Specifies a plist file to convert to a JSON configuration file. ' + 'If this is enabled, the script will expect a .plist file as input, ' + 'which it will convert into %s file. The output file is ' + '*not* suitable for use with Firebase on Android.' % + (DEFAULT_JSON_OUTPUT_FILENAME)), + action='store_true', + default=False, + required=False) + + # python 2 on Windows doesn't handle unicode arguments well, so we need to + # pre-process the command line arguments before trying to parse them. + if platform.system() == 'Windows': + sys.argv = argv_as_unicode_win32() + + args = parser.parse_args() + + if args.plist: + input_filename = DEFAULT_PLIST_INPUT_FILENAME + output_filename = DEFAULT_JSON_OUTPUT_FILENAME + else: + input_filename = DEFAULT_INPUT_FILENAME + output_filename = DEFAULT_OUTPUT_FILENAME + + if args.i: + # Encode the input string (type unicode) as a normal string (type str) + # using the 'utf-8' encoding so that it can be worked with the same as + # input names from other sources (like the defaults). + input_filename_raw = args.i.encode('utf-8') + # Decode the filename to a unicode string using the 'utf-8' encoding to + # properly handle filepaths with unicode characters in them. + input_filename = input_filename_raw.decode('utf-8') + + if args.o: + output_filename = args.o + + with open(input_filename, 'r') as ifile: + file_string = ifile.read() + + json_string = None + if args.plist: + json_string = convert_plist_to_json(file_string, input_filename) + if json_string is None: + return 1 + jsobj = json.loads(json_string) + else: + jsobj = json.loads(file_string) + + root = ElementTree.Element('resources') + root.set('xmlns:tools', 'http://schemas.android.com/tools') + + project_info = jsobj.get('project_info') + if project_info: + gen_string(root, 'firebase_database_url', project_info.get('firebase_url')) + gen_string(root, 'gcm_defaultSenderId', project_info.get('project_number')) + gen_string(root, 'google_storage_bucket', + project_info.get('storage_bucket')) + gen_string(root, 'project_id', project_info.get('project_id')) + + if args.f: + if not project_info: + sys.stderr.write('No project info found in %s.' % input_filename) + return 1 + for field, value in sorted(project_info.items()): + sys.stdout.write('%s=%s\n' % (field, value)) + return 0 + + packages = set() + client_list = jsobj.get('client') + if client_list: + # Search for the user specified package in the file. + selected_package_name = '' + selected_client = client_list[0] + find_package_name = args.p + for client in client_list: + package_name = client.get('client_info', {}).get( + 'android_client_info', {}).get('package_name', '') + if not package_name: + package_name = client.get('oauth_client', {}).get( + 'android_info', {}).get('package_name', '') + if package_name: + if not selected_package_name: + selected_package_name = package_name + selected_client = client + if package_name == find_package_name: + selected_package_name = package_name + selected_client = client + packages.add(package_name) + + if args.p and selected_package_name != find_package_name: + sys.stderr.write('No packages found in %s which match the package ' + 'name %s\n' + '\n' + 'Found the following:\n' + '%s\n' % (input_filename, find_package_name, + '\n'.join(packages))) + return 1 + + client_api_key = selected_client.get('api_key') + if client_api_key: + client_api_key0 = client_api_key[0] + gen_string(root, 'google_api_key', client_api_key0.get('current_key')) + gen_string(root, 'google_crash_reporting_api_key', + client_api_key0.get('current_key')) + + client_info = selected_client.get('client_info') + if client_info: + gen_string(root, 'google_app_id', client_info.get('mobilesdk_app_id')) + + # Only include the first matching OAuth client ID per type. + client_id_web_parsed = False + client_id_android_parsed = False + + oauth_client_list = selected_client.get('oauth_client') + if oauth_client_list: + for oauth_client in oauth_client_list: + client_type = oauth_client.get('client_type') + client_id = oauth_client.get('client_id') + if not (client_type and client_id): continue + if (client_type == OAUTH_CLIENT_TYPE_WEB and + not client_id_web_parsed): + gen_string(root, 'default_web_client_id', client_id) + client_id_web_parsed = True + if (client_type == OAUTH_CLIENT_TYPE_ANDROID_APP and + not client_id_android_parsed): + gen_string(root, 'default_android_client_id', client_id) + client_id_android_parsed = True + + services = selected_client.get('services') + if services: + ads_service = services.get('ads_service') + if ads_service: + gen_string(root, 'test_banner_ad_unit_id', + ads_service.get('test_banner_ad_unit_id')) + gen_string(root, 'test_interstitial_ad_unit_id', + ads_service.get('test_interstitial_ad_unit_id')) + analytics_service = services.get('analytics_service') + if analytics_service: + analytics_property = analytics_service.get('analytics_property') + if analytics_property: + gen_string(root, 'ga_trackingId', + analytics_property.get('tracking_id')) + # enable this once we have an example if this service being present + # in the json data: + maps_service_enabled = False + if maps_service_enabled: + maps_service = services.get('maps_service') + if maps_service: + maps_api_key = maps_service.get('api_key') + if maps_api_key: + for k in range(0, len(maps_api_key)): + # generates potentially multiple of these keys, which is + # the same behavior as the java plugin. + gen_string(root, 'google_maps_key', + maps_api_key[k].get('maps_api_key')) + + tree = ElementTree.ElementTree(root) + + indent(root) + + if args.l: + for package in sorted(packages): + if package: + sys.stdout.write(package + '\n') + else: + path = os.path.dirname(output_filename) + + if path and not os.path.exists(path): + os.makedirs(path) + + if not args.plist: + tree.write(output_filename, 'utf-8', True) + else: + with open(output_filename, 'w') as ofile: + ofile.write(json_string) + + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/Assets/Firebase/Editor/generate_xml_from_google_services_json.py.meta b/Assets/Firebase/Editor/generate_xml_from_google_services_json.py.meta new file mode 100644 index 00000000..4af40164 --- /dev/null +++ b/Assets/Firebase/Editor/generate_xml_from_google_services_json.py.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f18ed76c0f04ce0a65736104f913ef8 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/generate_xml_from_google_services_json.py +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/network_request.exe b/Assets/Firebase/Editor/network_request.exe new file mode 100644 index 00000000..30f5e8ef Binary files /dev/null and b/Assets/Firebase/Editor/network_request.exe differ diff --git a/Assets/Firebase/Editor/network_request.exe.meta b/Assets/Firebase/Editor/network_request.exe.meta new file mode 100644 index 00000000..5d1fb543 --- /dev/null +++ b/Assets/Firebase/Editor/network_request.exe.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d3cd5d0a941c4cdc8ab4b1b684b05191 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/network_request.exe +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Editor/network_request.py b/Assets/Firebase/Editor/network_request.py new file mode 100644 index 00000000..04f055f4 --- /dev/null +++ b/Assets/Firebase/Editor/network_request.py @@ -0,0 +1,416 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Wrapper script which makes a network request. + +Basic Usage: network_request.py post + --url + --header

(optional, support multiple) + --body (optional) + --timeout (optional) + --verbose (optional) +""" + +import argparse +import inspect +import logging +import socket +import sys + +# pylint: disable=g-import-not-at-top +# pylint: disable=g-importing-member +try: + from six.moves.http_client import HTTPSConnection + from six.moves.http_client import HTTPConnection + from six.moves.http_client import HTTPException +except ImportError: + from http.client import HTTPSConnection + from http.client import HTTPConnection + from http.client import HTTPException + +try: + from six.moves.urllib.parse import urlparse +except ImportError: + from urllib.parse import urlparse +# pylint: enable=g-import-not-at-top +# pylint: enable=g-importing-member + +# Set up logger as soon as possible +formatter = logging.Formatter('[%(levelname)s] %(message)s') + +handler = logging.StreamHandler(stream=sys.stdout) +handler.setFormatter(formatter) +handler.setLevel(logging.INFO) + +logger = logging.getLogger(__name__) +logger.addHandler(handler) +logger.setLevel(logging.INFO) + +# Custom exit codes for known issues. +# System exit codes in python are valid from 0 - 256, so we will map some common +# ones here to understand successes and failures. +# Uses lower ints to not collide w/ HTTP status codes that the script may return +EXIT_CODE_SUCCESS = 0 +EXIT_CODE_SYS_ERROR = 1 +EXIT_CODE_INVALID_REQUEST_VALUES = 2 +EXIT_CODE_GENERIC_HTTPLIB_ERROR = 3 +EXIT_CODE_HTTP_TIMEOUT = 4 +EXIT_CODE_HTTP_REDIRECT_ERROR = 5 +EXIT_CODE_HTTP_NOT_FOUND_ERROR = 6 +EXIT_CODE_HTTP_SERVER_ERROR = 7 +EXIT_CODE_HTTP_UNKNOWN_ERROR = 8 + +MAX_EXIT_CODE = 8 + +# All used http verbs +POST = 'POST' + + +def unwrap_kwarg_namespace(func): + """Transform a Namespace object from argparse into proper args and kwargs. + + For a function that will be delegated to from argparse, inspect all of the + argments and extract them from the Namespace object. + + Args: + func: the function that we are wrapping to modify behavior + + Returns: + a new function that unwraps all of the arguments in a namespace and then + delegates to the passed function with those args. + """ + # When we move to python 3, getfullargspec so that we can tell the + # difference between args and kwargs -- then this could be used for functions + # that have both args and kwargs + if 'getfullargspec' in dir(inspect): + argspec = inspect.getfullargspec(func) + else: + argspec = inspect.getargspec(func) # Python 2 compatibility. + + def wrapped(argparse_namespace=None, **kwargs): + """Take a Namespace object and map it to kwargs. + + Inspect the argspec of the passed function. Loop over all the args that + are present in the function and try to map them by name to arguments in the + namespace. For keyword arguments, we do not require that they be present + in the Namespace. + + Args: + argparse_namespace: an arparse.Namespace object, the result of calling + argparse.ArgumentParser().parse_args() + **kwargs: keyword arguments that may be passed to the original function + Returns: + The return of the wrapped function from the parent. + + Raises: + ValueError in the event that an argument is passed to the cli that is not + in the set of named kwargs + """ + if not argparse_namespace: + return func(**kwargs) + + reserved_namespace_keywords = ['func'] + new_kwargs = {} + + args = argspec.args or [] + for arg_name in args: + passed_value = getattr(argparse_namespace, arg_name, None) + if passed_value is not None: + new_kwargs[arg_name] = passed_value + + for namespace_key in vars(argparse_namespace).keys(): + # ignore namespace keywords that have been set not passed in via cli + if namespace_key in reserved_namespace_keywords: + continue + + # make sure that we haven't passed something we should be processing + if namespace_key not in args: + raise ValueError('CLI argument "{}" does not match any argument in ' + 'function {}'.format(namespace_key, func.__name__)) + + return func(**new_kwargs) + + wrapped.__name__ = func.__name__ + return wrapped + + +class NetworkRequest(object): + """A container for an network request object. + + This class holds on to all of the attributes necessary for making a + network request via httplib. + """ + + def __init__(self, url, method, headers, body, timeout): + self.url = url.lower() + self.parsed_url = urlparse(self.url) + self.method = method + self.headers = headers + self.body = body + self.timeout = timeout + self.is_secure_connection = self.is_secure_connection() + + def execute_request(self): + """"Execute the request, and get a response. + + Returns: + an HttpResponse object from httplib + """ + if self.is_secure_connection: + conn = HTTPSConnection(self.get_hostname(), timeout=self.timeout) + else: + conn = HTTPConnection(self.get_hostname(), timeout=self.timeout) + + conn.request(self.method, self.url, self.body, self.headers) + response = conn.getresponse() + return response + + def get_hostname(self): + """Return the hostname for the url.""" + return self.parsed_url.netloc + + def is_secure_connection(self): + """Checks for a secure connection of https. + + Returns: + True if the scheme is "https"; False if "http" + + Raises: + ValueError when the scheme does not match http or https + """ + scheme = self.parsed_url.scheme + + if scheme == 'http': + return False + elif scheme == 'https': + return True + else: + raise ValueError('The url scheme is not "http" nor "https"' + ': {}'.format(scheme)) + + +def parse_colon_delimited_options(option_args): + """Parses a key value from a string. + + Args: + option_args: Key value string delimited by a color, ex: ("key:value") + + Returns: + Return an array with the key as the first element and value as the second + + Raises: + ValueError: If the key value option is not formatted correctly + """ + options = {} + + if not option_args: + return options + + for single_arg in option_args: + values = single_arg.split(':') + if len(values) != 2: + raise ValueError('An option arg must be a single key/value pair ' + 'delimited by a colon - ex: "thing_key:thing_value"') + + key = values[0].strip() + value = values[1].strip() + options[key] = value + + return options + + +def make_request(request): + """Makes a synchronous network request and return the HTTP status code. + + Args: + request: a well formulated request object + + Returns: + The HTTP status code of the network request. + '1' maps to invalid request headers. + """ + + logger.info('Sending network request -') + logger.info('\tUrl: %s', request.url) + logger.debug('\tMethod: %s', request.method) + logger.debug('\tHeaders: %s', request.headers) + logger.debug('\tBody: %s', request.body) + + try: + response = request.execute_request() + except socket.timeout: + logger.exception( + 'Timed out post request to %s in %d seconds for request body: %s', + request.url, request.timeout, request.body) + return EXIT_CODE_HTTP_TIMEOUT + except (HTTPException, socket.error): + logger.exception( + 'Encountered generic exception in posting to %s with request body %s', + request.url, request.body) + return EXIT_CODE_GENERIC_HTTPLIB_ERROR + + status = response.status + headers = response.getheaders() + logger.info('Received Network response -') + logger.info('\tStatus code: %d', status) + logger.debug('\tResponse headers: %s', headers) + + if status < 200 or status > 299: + logger.error('Request (%s) failed with status code %d\n', request.url, + status) + + # If we wanted this script to support get, we need to + # figure out what mechanism we intend for capturing the response + return status + + +@unwrap_kwarg_namespace +def post(url=None, header=None, body=None, timeout=5, verbose=False): + """Sends a post request. + + Args: + url: The url of the request + header: A list of headers for the request + body: The body for the request + timeout: Timeout in seconds for the request + verbose: Should debug logs be displayed + + Returns: + Return an array with the key as the first element and value as the second + """ + + if verbose: + handler.setLevel(logging.DEBUG) + logger.setLevel(logging.DEBUG) + + try: + logger.info('Parsing headers: %s', header) + headers = parse_colon_delimited_options(header) + except ValueError: + logging.exception('Could not parse the parameters with "--header": %s', + header) + return EXIT_CODE_INVALID_REQUEST_VALUES + + try: + request = NetworkRequest(url, POST, headers, body, float(timeout)) + except ValueError: + logger.exception('Invalid request values passed into the script.') + return EXIT_CODE_INVALID_REQUEST_VALUES + + status = make_request(request) + + # View exit code after running to get the http status code: 'echo $?' + return status + + +def get_argsparser(): + """Returns the argument parser. + + Returns: + Argument parser for the script. + """ + + parser = argparse.ArgumentParser( + description='The script takes in the arguments of a network request. ' + 'The network request is sent and the http status code will be' + 'returned as the exit code.') + subparsers = parser.add_subparsers(help='Commands:') + post_parser = subparsers.add_parser( + post.__name__, help='{} help'.format(post.__name__)) + post_parser.add_argument( + '--url', + help='Request url. Ex: https://www.google.com/somePath/', + required=True, + dest='url') + post_parser.add_argument( + '--header', + help='Request headers as a space delimited list of key ' + 'value pairs. Ex: "key1:value1 key2:value2"', + action='append', + required=False, + dest='header') + post_parser.add_argument( + '--body', + help='The body of the network request', + required=True, + dest='body') + post_parser.add_argument( + '--timeout', + help='The timeout in seconds', + default=10.0, + required=False, + dest='timeout') + post_parser.add_argument( + '--verbose', + help='Should verbose logging be outputted', + action='store_true', + default=False, + required=False, + dest='verbose') + post_parser.set_defaults(func=post) + return parser + + +def map_http_status_to_exit_code(status_code): + """Map an http status code to the appropriate exit code. + + Exit codes in python are valid from 0-256, so we want to map these to + predictable exit codes within range. + + Args: + status_code: the input status code that was output from the network call + function + + Returns: + One of our valid exit codes declared at the top of the file or a generic + unknown error code + """ + if status_code <= MAX_EXIT_CODE: + return status_code + + if status_code > 199 and status_code < 300: + return EXIT_CODE_SUCCESS + + if status_code == 302: + return EXIT_CODE_HTTP_REDIRECT_ERROR + + if status_code == 404: + return EXIT_CODE_HTTP_NOT_FOUND_ERROR + + if status_code > 499: + return EXIT_CODE_HTTP_SERVER_ERROR + + return EXIT_CODE_HTTP_UNKNOWN_ERROR + + +def main(): + """Main function to run the program. + + Parse system arguments and delegate to the appropriate function. + + Returns: + A status code - either an http status code or a custom error code + """ + parser = get_argsparser() + subparser_action = parser.parse_args() + try: + return subparser_action.func(subparser_action) + except ValueError: + logger.exception('Invalid arguments passed.') + parser.print_help(sys.stderr) + return EXIT_CODE_INVALID_REQUEST_VALUES + return EXIT_CODE_GENERIC_HTTPLIB_ERROR + +if __name__ == '__main__': + exit_code = map_http_status_to_exit_code(main()) + sys.exit(exit_code) diff --git a/Assets/Firebase/Editor/network_request.py.meta b/Assets/Firebase/Editor/network_request.py.meta new file mode 100644 index 00000000..c8450b3e --- /dev/null +++ b/Assets/Firebase/Editor/network_request.py.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e6e32fecbfd44fab946fa160e4861924 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Editor/network_request.py +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins.meta b/Assets/Firebase/Plugins.meta new file mode 100644 index 00000000..25833da8 --- /dev/null +++ b/Assets/Firebase/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74641d9677971a54a943a4df768f2917 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Android.meta b/Assets/Firebase/Plugins/Android.meta new file mode 100644 index 00000000..7cca179d --- /dev/null +++ b/Assets/Firebase/Plugins/Android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 56dcb07281839a24d96a78d39d49089c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Android/firebase-messaging-cpp.aar b/Assets/Firebase/Plugins/Android/firebase-messaging-cpp.aar new file mode 100644 index 00000000..c1a8107c Binary files /dev/null and b/Assets/Firebase/Plugins/Android/firebase-messaging-cpp.aar differ diff --git a/Assets/Firebase/Plugins/Android/firebase-messaging-cpp.aar.meta b/Assets/Firebase/Plugins/Android/firebase-messaging-cpp.aar.meta new file mode 100644 index 00000000..84208582 --- /dev/null +++ b/Assets/Firebase/Plugins/Android/firebase-messaging-cpp.aar.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 0be2cda49adc4b61a7e9eb9bf669fdab +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Android/firebase-messaging-cpp.aar +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.Analytics.dll b/Assets/Firebase/Plugins/Firebase.Analytics.dll new file mode 100644 index 00000000..6228d2ac Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.Analytics.dll differ diff --git a/Assets/Firebase/Plugins/Firebase.Analytics.dll.meta b/Assets/Firebase/Plugins/Firebase.Analytics.dll.meta new file mode 100644 index 00000000..bf8d6311 --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.Analytics.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 816270c2a2a348e59cb9b7b096a24f50 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.Analytics.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.Analytics.pdb b/Assets/Firebase/Plugins/Firebase.Analytics.pdb new file mode 100644 index 00000000..ee4b13eb Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.Analytics.pdb differ diff --git a/Assets/Firebase/Plugins/Firebase.Analytics.pdb.meta b/Assets/Firebase/Plugins/Firebase.Analytics.pdb.meta new file mode 100644 index 00000000..0d924c17 --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.Analytics.pdb.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 778e0739eb634ac6beb8b1dbac5d17f0 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.Analytics.pdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.App.dll b/Assets/Firebase/Plugins/Firebase.App.dll new file mode 100644 index 00000000..58df1627 Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.App.dll differ diff --git a/Assets/Firebase/Plugins/Firebase.App.dll.meta b/Assets/Firebase/Plugins/Firebase.App.dll.meta new file mode 100644 index 00000000..e47da3f0 --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.App.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 7311924048bd457bac6d713576c952da +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.App.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.App.pdb b/Assets/Firebase/Plugins/Firebase.App.pdb new file mode 100644 index 00000000..bfdeba9e Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.App.pdb differ diff --git a/Assets/Firebase/Plugins/Firebase.App.pdb.meta b/Assets/Firebase/Plugins/Firebase.App.pdb.meta new file mode 100644 index 00000000..d1fa8b82 --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.App.pdb.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 44907853a9e64be4a31076a763ae13b3 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.App.pdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.Crashlytics.dll b/Assets/Firebase/Plugins/Firebase.Crashlytics.dll new file mode 100644 index 00000000..204d6739 Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.Crashlytics.dll differ diff --git a/Assets/Firebase/Plugins/Firebase.Crashlytics.dll.meta b/Assets/Firebase/Plugins/Firebase.Crashlytics.dll.meta new file mode 100644 index 00000000..1be10936 --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.Crashlytics.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 4a712f6ef12f441e9d8b053a3c30ad55 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.Crashlytics.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.Crashlytics.pdb b/Assets/Firebase/Plugins/Firebase.Crashlytics.pdb new file mode 100644 index 00000000..eefa1c25 Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.Crashlytics.pdb differ diff --git a/Assets/Firebase/Plugins/Firebase.Crashlytics.pdb.meta b/Assets/Firebase/Plugins/Firebase.Crashlytics.pdb.meta new file mode 100644 index 00000000..2efa7bb2 --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.Crashlytics.pdb.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: cf098bb37bd1464083da05173619936e +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.Crashlytics.pdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.Messaging.dll b/Assets/Firebase/Plugins/Firebase.Messaging.dll new file mode 100644 index 00000000..cb3295de Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.Messaging.dll differ diff --git a/Assets/Firebase/Plugins/Firebase.Messaging.dll.meta b/Assets/Firebase/Plugins/Firebase.Messaging.dll.meta new file mode 100644 index 00000000..f1cca28d --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.Messaging.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 0177f1334f3944ac8ca3df55e1d98660 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.Messaging.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.Messaging.pdb b/Assets/Firebase/Plugins/Firebase.Messaging.pdb new file mode 100644 index 00000000..286eae1f Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.Messaging.pdb differ diff --git a/Assets/Firebase/Plugins/Firebase.Messaging.pdb.meta b/Assets/Firebase/Plugins/Firebase.Messaging.pdb.meta new file mode 100644 index 00000000..c4d55a97 --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.Messaging.pdb.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 45f91ddef5f24fee8410c18fdc5e55b6 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.Messaging.pdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.Platform.dll b/Assets/Firebase/Plugins/Firebase.Platform.dll new file mode 100644 index 00000000..5a9f0835 Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.Platform.dll differ diff --git a/Assets/Firebase/Plugins/Firebase.Platform.dll.meta b/Assets/Firebase/Plugins/Firebase.Platform.dll.meta new file mode 100644 index 00000000..24385bd6 --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.Platform.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 7d3eec03d7e241a48941e038118c5e6a +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.Platform.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.Platform.pdb b/Assets/Firebase/Plugins/Firebase.Platform.pdb new file mode 100644 index 00000000..0cf413f3 Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.Platform.pdb differ diff --git a/Assets/Firebase/Plugins/Firebase.Platform.pdb.meta b/Assets/Firebase/Plugins/Firebase.Platform.pdb.meta new file mode 100644 index 00000000..33e86edb --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.Platform.pdb.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: af8fc0c835824578b855d4c0ed7b16ab +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.Platform.pdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.TaskExtension.dll b/Assets/Firebase/Plugins/Firebase.TaskExtension.dll new file mode 100644 index 00000000..94637a47 Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.TaskExtension.dll differ diff --git a/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.meta b/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.meta new file mode 100644 index 00000000..097f6e65 --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.TaskExtension.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: f5d4069c578548ba9f199b46d61bf06d +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.TaskExtension.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Firebase.TaskExtension.pdb b/Assets/Firebase/Plugins/Firebase.TaskExtension.pdb new file mode 100644 index 00000000..deb9b062 Binary files /dev/null and b/Assets/Firebase/Plugins/Firebase.TaskExtension.pdb differ diff --git a/Assets/Firebase/Plugins/Firebase.TaskExtension.pdb.meta b/Assets/Firebase/Plugins/Firebase.TaskExtension.pdb.meta new file mode 100644 index 00000000..1dfb4a7a --- /dev/null +++ b/Assets/Firebase/Plugins/Firebase.TaskExtension.pdb.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 736717de9e57417d930d929ac556b287 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Firebase.TaskExtension.pdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/Google.MiniJson.dll b/Assets/Firebase/Plugins/Google.MiniJson.dll new file mode 100644 index 00000000..e06aa565 Binary files /dev/null and b/Assets/Firebase/Plugins/Google.MiniJson.dll differ diff --git a/Assets/Firebase/Plugins/Google.MiniJson.dll.meta b/Assets/Firebase/Plugins/Google.MiniJson.dll.meta new file mode 100644 index 00000000..eb7e33a8 --- /dev/null +++ b/Assets/Firebase/Plugins/Google.MiniJson.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 3ebb289656f1477fa263e62d36c6e329 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/Google.MiniJson.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/iOS.meta b/Assets/Firebase/Plugins/iOS.meta new file mode 100644 index 00000000..587d77fe --- /dev/null +++ b/Assets/Firebase/Plugins/iOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b78b51a58e165994f81fcb3ba889d64e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll b/Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll new file mode 100644 index 00000000..ae18205d Binary files /dev/null and b/Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll differ diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll.meta b/Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll.meta new file mode 100644 index 00000000..98f9ffbb --- /dev/null +++ b/Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 52718a3a80d44aacb368bcc9d62dd804 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.Analytics.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Analytics.pdb b/Assets/Firebase/Plugins/iOS/Firebase.Analytics.pdb new file mode 100644 index 00000000..02664730 Binary files /dev/null and b/Assets/Firebase/Plugins/iOS/Firebase.Analytics.pdb differ diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Analytics.pdb.meta b/Assets/Firebase/Plugins/iOS/Firebase.Analytics.pdb.meta new file mode 100644 index 00000000..eefbe135 --- /dev/null +++ b/Assets/Firebase/Plugins/iOS/Firebase.Analytics.pdb.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: e0a3fec4e6044b70added51eb3d310ee +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.Analytics.pdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/iOS/Firebase.App.dll b/Assets/Firebase/Plugins/iOS/Firebase.App.dll new file mode 100644 index 00000000..8fec0030 Binary files /dev/null and b/Assets/Firebase/Plugins/iOS/Firebase.App.dll differ diff --git a/Assets/Firebase/Plugins/iOS/Firebase.App.dll.meta b/Assets/Firebase/Plugins/iOS/Firebase.App.dll.meta new file mode 100644 index 00000000..51505a77 --- /dev/null +++ b/Assets/Firebase/Plugins/iOS/Firebase.App.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 5f3feda1a91343759b7eb58a29b492b7 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.App.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/iOS/Firebase.App.pdb b/Assets/Firebase/Plugins/iOS/Firebase.App.pdb new file mode 100644 index 00000000..165d7386 Binary files /dev/null and b/Assets/Firebase/Plugins/iOS/Firebase.App.pdb differ diff --git a/Assets/Firebase/Plugins/iOS/Firebase.App.pdb.meta b/Assets/Firebase/Plugins/iOS/Firebase.App.pdb.meta new file mode 100644 index 00000000..31223431 --- /dev/null +++ b/Assets/Firebase/Plugins/iOS/Firebase.App.pdb.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: e96748f6edd2467b95622dee98523c65 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.App.pdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll b/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll new file mode 100644 index 00000000..e08789bc Binary files /dev/null and b/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll differ diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll.meta b/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll.meta new file mode 100644 index 00000000..3f2245b2 --- /dev/null +++ b/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 3c83c9a9845245cfbbab5a52932b5045 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.Crashlytics.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.pdb b/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.pdb new file mode 100644 index 00000000..b04a33d5 Binary files /dev/null and b/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.pdb differ diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.pdb.meta b/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.pdb.meta new file mode 100644 index 00000000..6aaf6998 --- /dev/null +++ b/Assets/Firebase/Plugins/iOS/Firebase.Crashlytics.pdb.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: fc067b050957416ea05be8e76ac98a69 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.Crashlytics.pdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Messaging.dll b/Assets/Firebase/Plugins/iOS/Firebase.Messaging.dll new file mode 100644 index 00000000..ce9850db Binary files /dev/null and b/Assets/Firebase/Plugins/iOS/Firebase.Messaging.dll differ diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Messaging.dll.meta b/Assets/Firebase/Plugins/iOS/Firebase.Messaging.dll.meta new file mode 100644 index 00000000..f460951b --- /dev/null +++ b/Assets/Firebase/Plugins/iOS/Firebase.Messaging.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 104bd79795964dd3a77a6fa53e729421 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.Messaging.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Messaging.pdb b/Assets/Firebase/Plugins/iOS/Firebase.Messaging.pdb new file mode 100644 index 00000000..74187b56 Binary files /dev/null and b/Assets/Firebase/Plugins/iOS/Firebase.Messaging.pdb differ diff --git a/Assets/Firebase/Plugins/iOS/Firebase.Messaging.pdb.meta b/Assets/Firebase/Plugins/iOS/Firebase.Messaging.pdb.meta new file mode 100644 index 00000000..5e64d577 --- /dev/null +++ b/Assets/Firebase/Plugins/iOS/Firebase.Messaging.pdb.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: db52be13d765411796629c696730d984 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.Messaging.pdb +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/x86_64.meta b/Assets/Firebase/Plugins/x86_64.meta new file mode 100644 index 00000000..67b60b57 --- /dev/null +++ b/Assets/Firebase/Plugins/x86_64.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85c575d8a92a29c4cb562ecbac1c215a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle new file mode 100644 index 00000000..b8b312a5 Binary files /dev/null and b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle differ diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle.meta b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle.meta new file mode 100644 index 00000000..6f286474 --- /dev/null +++ b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 35bfcced25264151bd76b628a1dfa989 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll new file mode 100644 index 00000000..6de3bb94 Binary files /dev/null and b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll differ diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll.meta b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll.meta new file mode 100644 index 00000000..97b1a784 --- /dev/null +++ b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: c48626ae27ed478483ba85fd7c81c04b +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so new file mode 100644 index 00000000..e7f3ae4b Binary files /dev/null and b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so differ diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so.meta b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so.meta new file mode 100644 index 00000000..7c5f43e4 --- /dev/null +++ b/Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 590090df30d142acba7e7be939fd2988 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppAnalytics.so +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.bundle b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.bundle new file mode 100644 index 00000000..60189d6c Binary files /dev/null and b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.bundle differ diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.bundle.meta b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.bundle.meta new file mode 100644 index 00000000..29b0c9dd --- /dev/null +++ b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.bundle.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: db33cacaee9244768effe1c685b48760 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.bundle +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.dll b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.dll new file mode 100644 index 00000000..13aa0f16 Binary files /dev/null and b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.dll differ diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.dll.meta b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.dll.meta new file mode 100644 index 00000000..e50eadba --- /dev/null +++ b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 66adb52e65464b858b1fe1b6e092a9dd +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.so b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.so new file mode 100644 index 00000000..9275ca72 Binary files /dev/null and b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.so differ diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.so.meta b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.so.meta new file mode 100644 index 00000000..4f234719 --- /dev/null +++ b/Assets/Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.so.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 7e0dbda61aaa430fb7d0913f7f100eef +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppApp-12_8_0.so +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.bundle b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.bundle new file mode 100644 index 00000000..c28d4d69 Binary files /dev/null and b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.bundle differ diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.bundle.meta b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.bundle.meta new file mode 100644 index 00000000..2c74bd12 --- /dev/null +++ b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.bundle.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 5d46f3be89af4272b9f8990f26048598 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppMessaging.bundle +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.dll b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.dll new file mode 100644 index 00000000..1b2395bd Binary files /dev/null and b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.dll differ diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.dll.meta b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.dll.meta new file mode 100644 index 00000000..6e08f9f9 --- /dev/null +++ b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 25030b1944ee412881e89b8967a05294 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppMessaging.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.so b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.so new file mode 100644 index 00000000..48d88894 Binary files /dev/null and b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.so differ diff --git a/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.so.meta b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.so.meta new file mode 100644 index 00000000..6e6e0a52 --- /dev/null +++ b/Assets/Firebase/Plugins/x86_64/FirebaseCppMessaging.so.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 0625d28dbdd6464a9915e074cb465acf +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppMessaging.so +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository.meta b/Assets/Firebase/m2repository.meta new file mode 100644 index 00000000..fbf06802 --- /dev/null +++ b/Assets/Firebase/m2repository.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1cf9e5a06b484d645af49ced897aec26 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com.meta b/Assets/Firebase/m2repository/com.meta new file mode 100644 index 00000000..435942c9 --- /dev/null +++ b/Assets/Firebase/m2repository/com.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 946c2a0cf1bc5db46bf8d34f0aa30b27 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google.meta b/Assets/Firebase/m2repository/com/google.meta new file mode 100644 index 00000000..bd26ea61 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 603b13f7ef5dcbb4e82488d0edb08a15 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase.meta b/Assets/Firebase/m2repository/com/google/firebase.meta new file mode 100644 index 00000000..b7146198 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49e471f77d9ee984c8f021d12c3ec434 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity.meta new file mode 100644 index 00000000..af5a35d1 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 017e482facc455f45a167c1346f3335c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0.meta new file mode 100644 index 00000000..cd863445 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4af573860f3cf5341bc33823748b758a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom new file mode 100644 index 00000000..55594dfd --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + com.google.firebase + firebase-analytics-unity + 12.8.0 + srcaar + + \ No newline at end of file diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom.meta new file mode 100644 index 00000000..319a55f4 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 487dec2845d948a3bc1e62c5156f3912 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.srcaar b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.srcaar new file mode 100644 index 00000000..7ba86e65 Binary files /dev/null and b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.srcaar differ diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.srcaar.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.srcaar.meta new file mode 100644 index 00000000..b9690039 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.srcaar.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 54052cbecb874f9692a8b382b61f214c +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.srcaar +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml new file mode 100644 index 00000000..d7df9fa5 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml @@ -0,0 +1,9 @@ + + com.google.firebase + firebase-analytics-unity + + 12.8.0 + 12.8.0 + + + diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml.meta new file mode 100644 index 00000000..2f9d2066 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 291f81d8ae2745cf913a96d116f2e3f7 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta new file mode 100644 index 00000000..8071212c --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 582d326c3f53fda469626ce8f3a3b869 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0.meta new file mode 100644 index 00000000..741ce54a --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9622959658a108941941f91dbce13455 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom new file mode 100644 index 00000000..6a0a771f --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + com.google.firebase + firebase-app-unity + 12.8.0 + srcaar + + \ No newline at end of file diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom.meta new file mode 100644 index 00000000..df315b77 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e7114db9d92c4fe5bf7c3a64c9b144fd +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.srcaar b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.srcaar new file mode 100644 index 00000000..7bae5c4c Binary files /dev/null and b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.srcaar differ diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.srcaar.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.srcaar.meta new file mode 100644 index 00000000..a0380c91 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.srcaar.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dcdbd7f82aa84194ad72a68e3ce9b47d +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.srcaar +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml new file mode 100644 index 00000000..9f17e50e --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml @@ -0,0 +1,9 @@ + + com.google.firebase + firebase-app-unity + + 12.8.0 + 12.8.0 + + + diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml.meta new file mode 100644 index 00000000..68113e2e --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 96337775a7c941d88ea15f8026ad6f8e +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity.meta new file mode 100644 index 00000000..22194703 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3842e3e163edd5e48be271ba2839dcd6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0.meta new file mode 100644 index 00000000..50d85e90 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f4d712409c2c945478f2edbc2d7ef21c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom new file mode 100644 index 00000000..737e0e84 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + com.google.firebase + firebase-crashlytics-unity + 12.8.0 + srcaar + + \ No newline at end of file diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom.meta new file mode 100644 index 00000000..037b09e3 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 951ffca241f3498dab7f2e8a17e86c5e +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.srcaar b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.srcaar new file mode 100644 index 00000000..71df1af7 Binary files /dev/null and b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.srcaar differ diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.srcaar.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.srcaar.meta new file mode 100644 index 00000000..d5fd1a54 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.srcaar.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 267d8a989a0b48b5be3ba6b7c7c95716 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.srcaar +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml new file mode 100644 index 00000000..2054061e --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml @@ -0,0 +1,9 @@ + + com.google.firebase + firebase-crashlytics-unity + + 12.8.0 + 12.8.0 + + + diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml.meta new file mode 100644 index 00000000..c1893a58 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eda65244fc1b407e8948b25b31c17991 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/maven-metadata.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity.meta new file mode 100644 index 00000000..111b081f --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 93d8867ae32fcd044b24237cd23f39b1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0.meta new file mode 100644 index 00000000..db019891 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2a9a16643e9b16748a01cb73e813dada +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom new file mode 100644 index 00000000..ae1ae5f6 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + com.google.firebase + firebase-messaging-unity + 12.8.0 + srcaar + + \ No newline at end of file diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom.meta new file mode 100644 index 00000000..2778f64b --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 46b0b84f2b4245feb818749b379fc5e1 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.srcaar b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.srcaar new file mode 100644 index 00000000..2d49fc83 Binary files /dev/null and b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.srcaar differ diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.srcaar.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.srcaar.meta new file mode 100644 index 00000000..7c175735 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.srcaar.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 73575eff53f94b15b607c2e2defa3d0b +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.srcaar +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/maven-metadata.xml b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/maven-metadata.xml new file mode 100644 index 00000000..ed7fa681 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/maven-metadata.xml @@ -0,0 +1,9 @@ + + com.google.firebase + firebase-messaging-unity + + 12.8.0 + 12.8.0 + + + diff --git a/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/maven-metadata.xml.meta b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/maven-metadata.xml.meta new file mode 100644 index 00000000..1f05a736 --- /dev/null +++ b/Assets/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/maven-metadata.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6a5eb4df3694f6dac9ddc5451ac17db +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-messaging-unity/maven-metadata.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo.meta b/Assets/GeneratedLocalRepo.meta new file mode 100644 index 00000000..e913853e --- /dev/null +++ b/Assets/GeneratedLocalRepo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ef31d9304c845a5409e16cc234aa2b27 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase.meta b/Assets/GeneratedLocalRepo/Firebase.meta new file mode 100644 index 00000000..6e7c2529 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ad33eef1e326a046abe885dc4ad70c3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository.meta new file mode 100644 index 00000000..522b99c9 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6e3cb11db6a63e24c9a2b519c7eb839a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com.meta new file mode 100644 index 00000000..d1288655 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1d333d8717a443941914e587abd1b8a7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google.meta new file mode 100644 index 00000000..2dcbe92a --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d829867bf6b775d418c66b24abb19984 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase.meta new file mode 100644 index 00000000..970881ae --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d8e811b9f66d6484a973d08d5d2ee3f2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity.meta new file mode 100644 index 00000000..454c3116 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b0c5a2aedd723d4ab0fc02caf561d6b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0.meta new file mode 100644 index 00000000..98e7c74c --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44f0a95af761f9249a428d284df8d666 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.aar b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.aar new file mode 100644 index 00000000..7ba86e65 Binary files /dev/null and b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.aar differ diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.aar.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.aar.meta new file mode 100644 index 00000000..d3aa9646 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.aar.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: d329be592e4c5cc4480c2b33699a1915 +labels: +- gpsr +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 0 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom new file mode 100644 index 00000000..441a75bb --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + com.google.firebase + firebase-analytics-unity + 12.8.0 + aar + + \ No newline at end of file diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom.meta new file mode 100644 index 00000000..3c10019c --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.8.0/firebase-analytics-unity-12.8.0.pom.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a2aa40ce243681f4d85a56aace6294c9 +labels: +- gpsr +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta new file mode 100644 index 00000000..0a6ae3c7 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 90f19498e8d9fd4418fa7d154ff9e000 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0.meta new file mode 100644 index 00000000..37a51635 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7d1c44b73803dad46a71faba9ef925c2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.aar b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.aar new file mode 100644 index 00000000..7bae5c4c Binary files /dev/null and b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.aar differ diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.aar.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.aar.meta new file mode 100644 index 00000000..a2c7f9af --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.aar.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: 24c85b4455086ca40b18125a193bb16c +labels: +- gpsr +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 0 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom new file mode 100644 index 00000000..eba65762 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + com.google.firebase + firebase-app-unity + 12.8.0 + aar + + \ No newline at end of file diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom.meta new file mode 100644 index 00000000..f719b85c --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/12.8.0/firebase-app-unity-12.8.0.pom.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 054e8e14b678df3458cedd8b1896f2a0 +labels: +- gpsr +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity.meta new file mode 100644 index 00000000..61365aef --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d3fbf3eb6b9c3e4eaa65d4014cc6ebf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0.meta new file mode 100644 index 00000000..853af85d --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 93437f1ad21bb5240bb790e22f310ef4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.aar b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.aar new file mode 100644 index 00000000..71df1af7 Binary files /dev/null and b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.aar differ diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.aar.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.aar.meta new file mode 100644 index 00000000..cb40949c --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.aar.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: f9a69ca143f5c37468611f4e763ec238 +labels: +- gpsr +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 0 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom new file mode 100644 index 00000000..f69e5a5a --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + com.google.firebase + firebase-crashlytics-unity + 12.8.0 + aar + + \ No newline at end of file diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom.meta new file mode 100644 index 00000000..6b1a094b --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-crashlytics-unity/12.8.0/firebase-crashlytics-unity-12.8.0.pom.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 94dc1b2920705cb4aae3811bb93bb310 +labels: +- gpsr +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity.meta new file mode 100644 index 00000000..f352e218 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: db81791426a7d404f952d45a7f3bb6f1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0.meta new file mode 100644 index 00000000..6f6abf08 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 444271c4e2f561640b89bece9ab979fa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.aar b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.aar new file mode 100644 index 00000000..2d49fc83 Binary files /dev/null and b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.aar differ diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.aar.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.aar.meta new file mode 100644 index 00000000..f8e808d2 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.aar.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: 35c3b6861274f844da75a0ce799697bb +labels: +- gpsr +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 0 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom new file mode 100644 index 00000000..0daa8b4b --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + com.google.firebase + firebase-messaging-unity + 12.8.0 + aar + + \ No newline at end of file diff --git a/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom.meta b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom.meta new file mode 100644 index 00000000..ea9ece46 --- /dev/null +++ b/Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-messaging-unity/12.8.0/firebase-messaging-unity-12.8.0.pom.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5e2310355589f2240b1c265be20ff953 +labels: +- gpsr +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds.meta b/Assets/GoogleMobileAds.meta new file mode 100644 index 00000000..c942cc90 --- /dev/null +++ b/Assets/GoogleMobileAds.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 05951c9eb5d88414e81c0c7f9c565947 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/CHANGELOG.md b/Assets/GoogleMobileAds/CHANGELOG.md new file mode 100644 index 00000000..3c6f69c4 --- /dev/null +++ b/Assets/GoogleMobileAds/CHANGELOG.md @@ -0,0 +1,1502 @@ +Google Mobile Ads Unity Plugin Change Log + +************** +Version 10.6.0 +************** + +- Updated the GMA iOS SDK dependency version to 12.12.0. +- Added proguard rules to prevent minification of public APIs of GMA Android and UMP SDK. + +Built and tested with: + +- Google Mobile Ads Android SDK 24.5.0. +- Google Mobile Ads iOS SDK 12.12.0. +- Google User Messaging Platform Android SDK 3.2.0 +- Google User Messaging Platform iOS SDK 3.0.0 +- External Dependency Manager for Unity 1.2.186 + +************** +Version 10.5.0 +************** + +- Add `PlacementID` field to all formats. +- Enable loading EDM4U for Editor platform while importing. +- Fix a crash when `MobileAds.GetPlatformVersion` is called. +- Fix missing `link.xml` when using the UPM package ([#3951](https://github.com/googleads/googleads-mobile-unity/issues/3951)). +- Add the latest Unity Editor LTS version flag `2021_3_56` to `AndroidBuildPreProcessor`. + +Built and tested with: + +- Google Mobile Ads Android SDK 24.5.0. +- Google Mobile Ads iOS SDK 12.11.0. +- Google User Messaging Platform Android SDK 3.2.0 +- Google User Messaging Platform iOS SDK 3.0.0 +- External Dependency Manager for Unity 1.2.186 + +************** +Version 10.4.2 +************** + +- Fix issue with macros in `BuildPreProcessor` for Unity Editor 2021. +- Added `androidx.lifecycle` dependency required for AppOpenAd. + +Built and tested with: + +- Google Mobile Ads Android SDK 24.5.0. +- Google Mobile Ads iOS SDK 12.9.0. +- Google User Messaging Platform Android SDK 3.2.0 +- Google User Messaging Platform iOS SDK 3.0.0 +- External Dependency Manager for Unity 1.2.186 + +************** +Version 10.4.1 +************** + +- **Version 10.4.0 has been deprecated. Please update to 10.4.1 instead.** +- Add `package` and `minSdkVersion` attribute to AndroidManifest.xml. + +Built and tested with: + +- Google Mobile Ads Android SDK 24.5.0. +- Google Mobile Ads iOS SDK 12.9.0. +- Google User Messaging Platform Android SDK 3.2.0 +- Google User Messaging Platform iOS SDK 3.0.0 +- External Dependency Manager for Unity 1.2.186 + +************** +Version 10.4.0 +************** + +- Updated the GMA Android SDK dependency version to 24.5.0. +- Updated the GMA iOS SDK dependency version to 12.9.0. +- Added Android build post processor to solve common build issues. For more information see, [Enable Gradle build post processor](https://developers.google.com/admob/unity/android). +- Fixed [#3718](https://github.com/googleads/googleads-mobile-unity/issues/3718). +- Updated the Android library source code location according to Unity's [Android Library](https://docs.unity3d.com/Manual/android-library-plugin-create.html) [(aka bundled) plug-in](https://docs.unity3d.com/2019.4/Documentation/Manual/PluginInspector.html) format. + - **Old location:** [source/android-library](https://github.com/googleads/googleads-mobile-unity/tree/main/source/android-library) + - **New location:** [source/plugin/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib](https://github.com/googleads/googleads-mobile-unity/tree/main/source/plugin/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib) + - This change makes the SDK more streamlined to build from source. +- Merged the Android Manifest files into a single one located under `src/main`. +- Fixed [#3810](https://github.com/googleads/googleads-mobile-unity/issues/3810) - crash on `AdapterResponseInfo.AdSourceName`. + +Built and tested with: + +- Google Mobile Ads Android SDK 24.5.0. +- Google Mobile Ads iOS SDK 12.9.0. +- Google User Messaging Platform Android SDK 3.2.0 +- Google User Messaging Platform iOS SDK 3.0.0 +- External Dependency Manager for Unity 1.2.186 + +************** +Version 10.3.0 +************** + +- Updated the GMA Android SDK dependency version to 24.4.0. +- Updated the GMA iOS SDK dependency version to 12.6.0. +- Fixed `RaiseAdEventsOnUnityMainThread ` by ensuring the events are always called back on Main thread even if the SDK is called on background thread. + +Built and tested with: + +- Google Mobile Ads Android SDK 24.4.0. +- Google Mobile Ads iOS SDK 12.6.0. +- Google User Messaging Platform Android SDK 3.2.0 +- Google User Messaging Platform iOS SDK 3.0.0 +- External Dependency Manager for Unity 1.2.186 + +************** +Version 10.2.0 +************** +- Updated the GMA Android SDK dependency version to 24.3.0. +- Updated the GMA iOS SDK dependency version to 12.5.0. +- Run AppOpen ads in Immersive mode for Android. This will prevent the 3 button navigation from showing up when ads are shown. + +Built and tested with: +- Google Mobile Ads Android SDK 24.3.0. +- Google Mobile Ads iOS SDK 12.5.0. +- Google User Messaging Platform Android SDK 3.2.0 +- Google User Messaging Platform iOS SDK 3.0.0 +- External Dependency Manager for Unity 1.2.186 + +************** +Version 10.1.0 +************** +- Updated UMP SDK dependency on Android to 3.2.0 and on iOS to 3.0.0. +- Updated the GMA Android SDK dependency version to 24.2.0. +- Updated the GMA iOS SDK dependency version to 12.3.0. +- Updated SKAdNetworkIdentifiers List on iOS to reflect latest additions. +- Supports Preloading APIs on iOS and Android. +- Refactored Unity Editor Banner experience to be inline with Android and iOS behavior. +- Fixed a bug on AdRequest where setting the CustomTargeting parameter was not being propagated. +- Run fullscreen ads in Immersive mode for Android. This will prevent the 3 button navigation from showing up when ads are shown. +- Fixed crash on rendering Native Overlay ads due to conflict of icon and background IDs with other similarly named Resource ID's. + +Built and tested with: +- Google Mobile Ads Android SDK 24.2.0. +- Google Mobile Ads iOS SDK 12.3.0. +- Google User Messaging Platform Android SDK 3.2.0 +- Google User Messaging Platform iOS SDK 3.0.0 +- External Dependency Manager for Unity 1.2.185 + +************** +Version 10.0.0 +************** +- Updated the GMA Android SDK dependency version to 24.1.0. +- Updated the GMA iOS SDK dependency version to 12.2.0. +- Removed deprecated `AdFailedToLoadEventArgs` class. Use `LoadAdError` directly. +- Removed deprecated `AdValueEventArgs` class. Use `AdValue` directly. +- Changed the default behavior to True for OPTIMIZE_INITIALIZATION and +OPTIMIZE_AD_LOADING flags to align with GMA Android 24.0.0. +- Replaced `Optimize Ad Loading` and `Optimize Initialization` with +`Disable ad loading optimization` and `Disable initialization optimzation` +- Removed "Remove property tag from GMA Android SDK" feature from Google Mobile +Ads Editor Settings as this tag has been removed from GMA Android SDK v.24.0.0. +- Removed Preloading APIs for iOS as part of upgrade to newer to newer APIs. + +Built and tested with: +- Google Mobile Ads Android SDK 24.1.0. +- Google Mobile Ads iOS SDK 12.2.0. +- Google User Messaging Platform Android SDK 3.1.0 +- Google User Messaging Platform iOS SDK 2.7.0 +- External Dependency Manager for Unity 1.2.185 + +************** +Version 9.6.0 +************** +- Added ability to return correct native template view size on Android. +- Fixed issue with Native Overlay Icon not being clickable. +- Added `GetVersion` API to MobileAds class to be able to fetch the GMA Unity SDK Version. +- Fire `OnUserEarnedReward` once the ad counter expires when showing Rewarded ads in Unity Editor. + +Built and tested with: +- Google Mobile Ads Android SDK 23.6.0 +- Google Mobile Ads iOS SDK 11.13.0 +- Google User Messaging Platform Android SDK 3.1.0 +- Google User Messaging Platform iOS SDK 2.7.0 +- External Dependency Manager for Unity 1.2.185 + +************** +Version 9.5.0 +************** +- Added `CustomTargeting` field to AdRequest. +- Added `GetPlatformVersion` API to MobileAds class to be able to fetch the version info of the underlying GMA Android or iOS SDK. +- Updated the GMA iOS SDK dependency version to 11.13.0. +- Updated the GMA Android SDK dependency version to 23.6.0. + +Built and tested with: +- Google Mobile Ads Android SDK 23.6.0 +- Google Mobile Ads iOS SDK 11.13.0 +- Google User Messaging Platform Android SDK 3.1.0 +- Google User Messaging Platform iOS SDK 2.7.0 +- External Dependency Manager for Unity 1.2.183 + +************** +Version 9.4.0 +************** + +- To support testing with regulated US states, added the following options to UMPDebugGeography: + - RegulatedUSState + - Other +- Deprecated `DebugGeography.NotEEA`. Use `DebugGeography.Other` instead. +- Updated the GMA iOS SDK dependency version to 11.12.0. +- Updated the GMA Android SDK dependency version to 23.5.0. +- Updated UMP SDK dependency on Android to 3.1.0 and on iOS to 2.7.0. + +Built and tested with: +- Google Mobile Ads Android SDK 23.5.0 +- Google Mobile Ads iOS SDK 11.12.0 +- Google User Messaging Platform Android SDK 3.1.0 +- Google User Messaging Platform iOS SDK 2.7.0 +- External Dependency Manager for Unity 1.2.183 + +************** +Version 9.3.0 +************** +- Updated the iOS GMA SDK dependency version to 11.11.0. + +Built and tested with: +- Google Mobile Ads Android SDK 23.4.0 +- Google Mobile Ads iOS SDK 11.11.0 +- Google User Messaging Platform Android SDK 3.0.0 +- Google User Messaging Platform iOS SDK 2.6.0 +- External Dependency Manager for Unity 1.2.183 + +************** +Version 9.2.1 +************** +- Added French language support for Settings Inspector window. +- Fixed [#3510] by specifying the minSdkVersion in the library. +- Updated the dependency version for Android GMA SDK to 23.4.0 and iOS GMA SDK to 11.10.0. +- Updated iOS UMP SDK dependency to 2.6.0. + +Built and tested with: +- Google Mobile Ads Android SDK 23.4.0 +- Google Mobile Ads iOS SDK 11.10.0 +- Google User Messaging Platform Android SDK 3.0.0 +- Google User Messaging Platform iOS SDK 2.6.0 +- External Dependency Manager for Unity 1.2.183 + +************** +Version 9.2.0 +************** +- Added `IsCollapsible` API to `BannerView` to check if a collapsible banner was loaded. +- Fixed [#3369] by using appropriate LayoutParams. +- Fixed [#3455] Banner ad positioning not working on iOS. +- Updated GoogleMobileAds iOS SDK to 11.7.0. + +Built and tested with: +- Google Mobile Ads Android SDK 23.2.0 +- Google Mobile Ads iOS SDK 11.7.0 +- Google User Messaging Platform 2.2.0 +- External Dependency Manager for Unity 1.2.181 + +************** +Version 9.1.1 +************** +- Updated GoogleMobileAds Android SDK to 23.2.0. +- Updated GoogleMobileAds iOS SDK to 11.6.0. +- Updated External Dependency Manager for Unity to 1.2.181. +- Added the AndroidJNI dependency to the UPM package. + +Built and tested with: +- Google Mobile Ads Android SDK 23.2.0 +- Google Mobile Ads iOS SDK 11.6.0 +- Google User Messaging Platform 2.2.0 +- External Dependency Manager for Unity 1.2.181 + +************** +Version 9.1.0 +************** + +- Removed the app measurement feature as Android/iOS SDKs [no longer](https://support.google.com/admob/answer/13973847) initialize App measurement. +- Fixed [#3290] by calling static putPublisherFirstPartyIdEnabled with boolean return type. +- Fixed [#3042] by explicitly adding gradle.projectsEvaluated for executing validate_dependencies gradle script. +- Fixed [#2801] incorrect value for `AdapterResponseInfo.LatencyMillis` on iOS. +- Added `GetAdUnitID` API that allows reading the ad unit id for all ad formats. +- Enabled passing AdManagerAdRequest as part of Load API for Rewarded, Rewarded Interstitial and AppOpen formats. +- Updated Google Mobile Ads SDK dependency to use v11.3.0 on iOS. + +Built and tested with: +- Google Mobile Ads Android SDK 23.0.0 +- Google Mobile Ads iOS SDK 11.3.0 +- Google User Messaging Platform 2.2.0 +- External Dependency Manager for Unity 1.2.179 + +************** +Version 9.0.0 +************** + +- Removed `SameAppKeyEnabled` in `RequestConfiguration`. Use `PublisherFirstPartyIdEnabled` instead. +- Removed `ServerSideVerificationOptions.Builder`. Use `ServerSideVerificationOptions` directly. +- Removed `RequestConfiguration.Builder`. Use `RequestConfiguration` directly. +- Removed `AdRequest.Builder`. Use `AdRequest` directly. +- Removed `AdErrorEventArgs`. Use `AdError` directly. +- Removed `AppOpenAd.Load` API that takes a `ScreenOrientation` parameter. +- Made `AdValueEventArgs` Obsolete. Use `AdValue` directly. +- Made `AdFailedToLoadEventArgs` Obsolete. Use `LoadAdError` directly. +- Updated Google Mobile Ads SDK dependency to use v11.2.0 on iOS. +- Updated the Android User Messaging Platform dependency version to 2.2.0. +- Added the `NativeOverlayAd` class to fetch and display native ads using templates. +- Using `CFPreferences` APIs for `ApplicationPreferences` instead of `NSUserDefaults` on iOS. + +Built and tested with: +- Google Mobile Ads Android SDK 23.0.0 +- Google Mobile Ads iOS SDK 11.2.0 +- Google User Messaging Platform 2.2.0 +- External Dependency Manager for Unity 1.2.179 + +************** +Version 8.7.0 +************** + +- Added PublisherPrivacyPersonalizationState property accessible via RequestConfiguration. +- Added PublisherFirstPartyIdEnabled property in RequestConfiguration. +- Deprecated SameAppKeyEnabled in RequestConfiguration. Use PublisherFirstPartyIdEnabled instead. +- Added ApplicationPreferences GetString and GetInt APIs. +- Fixed [#3048] by applying accurate path for gradle scripts on Windows. +- Updated Google Mobile Ads SDK dependency to use v22.6.0 on Android. +- Updated Google Mobile Ads SDK dependency to use v10.14 on iOS. + +Built and tested with: +- Google Mobile Ads Android SDK 22.6.0 +- Google Mobile Ads iOS SDK 10.14 +- Google User Messaging Platform 2.1.0 +- External Dependency Manager for Unity 1.2.177 + +************** +Version 8.6.0 +************** + +- Fixed [#3007] by aligning the PrivacyOptionsRequirementStatus Enum on iOS with Android Plugin. +- Fixed [#2930] for Projects using Android Gradle Plugin less than 4.2.2. +- Added Editor Options to toggle adding packagingOptions to gradle files to pick the first occurrence of META-INF/kotlinx_coroutines_core.version file. +- Added Editor Options to enable removing the property tag from the Android Manifest of the GMA Android SDK. This is enabled by default for projects using Android Gradle Plugin version 4.2.1 and lower. +- Updated Google Mobile Ads SDK dependency to use v22.5.0 on Android. +- Updated Google Mobile Ads SDK dependency to use v10.13 on iOS. + +Built and tested with: +- Google Mobile Ads Android SDK 22.5.0 +- Google Mobile Ads iOS SDK 10.13 +- Google User Messaging Platform 2.1.0 +- External Dependency Manager for Unity 1.2.177 + +************** +Version 8.5.3 +************** + +- Fixed "cannot find symbol" error when building the Android bridge project using gradle. +- Fixed [#2930] by pinning the Google Mobile Ads SDK dependency to use v22.3.0 on Android. +- Fixed [#2974] ConsentInformation.Update() wasn't working as expected on consecutive requests. + +Built and tested with: +- Google Mobile Ads Android SDK 22.3.0 +- Google Mobile Ads iOS SDK 10.9 +- Google User Messaging Platform 2.1.0 +- External Dependency Manager for Unity 1.2.176 + +************** +Version 8.5.2 +************** + +- Fixed AndroidJavaException when using AdManagerAdRequest custom targeting. +- Fixed [#2826] "No such proxy method" error within GoogleMobileAds.Ump. +- Updated Google Mobile Ads SDK dependency to use v22.3.0 on Android. + +Built and tested with: +- Google Mobile Ads Android SDK 22.3.0 +- Google Mobile Ads iOS SDK 10.9 +- Google User Messaging Platform 2.1.0 +- External Dependency Manager for Unity 1.2.176 + +************** +Version 8.5.1 +************** + +- Version 8.5.0 has been deprecated. Please upgrade to 8.5.1 instead. +- Fixed [#2866] Read enum from getPrivacyOptionsRequirementStatus. +- Removed double quotes from GoogleMobileAdsSKAdNetworkItems.xml. + +Built and tested with: +- Google Mobile Ads Android SDK 22.2.0 +- Google Mobile Ads iOS SDK 10.9 +- Google User Messaging Platform 2.1.0 +- External Dependency Manager for Unity 1.2.176 + +************** +Version 8.5.0 +************** + +- Requires apps to build against Xcode 14.1 or higher. +- This release introduces several new APIs to simplify the consent gathering + process. + - Calling `ConsentInformation.Update()` is now required before interacting + with other `ConsentInformation` public APIs. Before calling it, the following are returned: + - `ConsentStatus` returns `ConsentStatus.Unknown` + - `PrivacyOptionsRequirementStatus` returns + `PrivacyOptionsRequirementStatus.Unknown` + - `ConsentInformation.CanRequestAds` returns `false`. + - [ConsentForm](https://github.com/googleads/googleads-mobile-unity/blob/main/source/plugin/Assets/GoogleMobileAds/Ump/Api/ConsentForm.cs) + - Added method `LoadAndPresentIfRequired` to combine load and show calls. + This method is intended for the use case of showing a form if needed + when the app starts. + - Added method `ShowPrivacyOptionsForm`, to be called when users interact + with your app's privacy setting. + - [ConsentInformation](https://github.com/googleads/googleads-mobile-unity/blob/main/source/plugin/Assets/GoogleMobileAds/Ump/Api/ConsentInformation.cs) + - Added `CanRequestAds` property. + - Added `PrivacyOptionsRequirementStatus` property to indicate whether + privacy options are required to be shown in this session. +- Updated the Android User Messaging Platform dependency version to 2.1.0. +- Updated the Google Mobile Ads iOS SDK dependency version to 10.9. +- Fixed [#2840] Check if the ad references get deallocated in the iOS + plugin (bridge). +- Updated [SKAdNetwork](https://developers.google.com/admob/unity/3p-skadnetworks) + list with values from the July 13, 2023 update. + +Built and tested with: +- Google Mobile Ads Android SDK 22.2.0 +- Google Mobile Ads iOS SDK 10.9 +- Google User Messaging Platform 2.1.0 +- External Dependency Manager for Unity 1.2.176 + +************** +Version 8.4.1 +************** + +- Fixed [#2815] Setting ApplicationPreferences on Android. + +Built and tested with: +- Google Mobile Ads Android SDK 22.2.0 +- Google Mobile Ads iOS SDK 10.7 +- Google User Messaging Platform 2.0.0 +- External Dependency Manager for Unity 1.2.176 + +************** +Version 8.4.0 +************** + +- Fixed [#2757] Rewarded Interstitial events not raising on the main thread. +- Added support for rendering Ad Manager banner ad. +- Removed method call logs from showing up in Unity Editor Console. +- Deprecated ScreenOrientation parameter of the AppOpenAd Load() API. Added AppOpenAd.Load() API for loading AppOpen Ads using ad unit ID, ad request and ad load callbacks. +- Added ApplicationPreferences API to manage GMA preferences. +- Updated Google Mobile Ads SDK dependency to use v10.7 on iOS. +- Updated Google Mobile Ads SDK dependency to use v22.2.0 on Android. + +Built and tested with: +- Google Mobile Ads Android SDK 22.2.0 +- Google Mobile Ads iOS SDK 10.7 +- Google User Messaging Platform 2.0.0 +- External Dependency Manager for Unity 1.2.176 + +************** +Version 8.3.0 +************** + +- Added support to RaiseAdEventsOnUnityMainThread for UMP callbacks. +- Added support for Ad Manager interstitial ad. +- Updated Google Mobile Ads SDK dependency to use v22.1.0 on Android. +- Updated Google Mobile Ads SDK dependency to use v10.5 on iOS. + +Built and tested with: +- Google Mobile Ads Android SDK 22.1.0 +- Google Mobile Ads iOS SDK 10.5 +- Google User Messaging Platform 2.0.0 +- External Dependency Manager for Unity 1.2.176 + +************** +Version 8.2.0 +************** + +- Fixed [#2646] Android Banner 'Descendant focus' crash. +- Fixed [#2676] Raising Interstitial events on main thread. +- Deprecated builder pattern in AdRequest, RequestConfiguration and ServerSideVerificationOptions Class. Utilize fields instead. +- Added AdManagerAdRequest class to allow passing CustomTargeting, CategoryExclusions and PublisherProvidedId as part of AdManager requests. +- Updated Google Mobile Ads SDK dependency to use v10.4 on iOS. + +Built and tested with: +- Google Mobile Ads Android SDK 22.0.0 +- Google Mobile Ads iOS SDK 10.4 +- Google User Messaging Platform 2.0.0 +- External Dependency Manager for Unity 1.2.176 + +************** +Version 8.1.0 +************** + +- Requires apps to build against Xcode 14.0 or higher. +- Fixed [#2611] [UMP] Exception raised when calling Update of ConsentInformation on Android + +Built and tested with: +- Google Mobile Ads Android SDK 22.0.0 +- Google Mobile Ads iOS SDK 10.3 +- Google User Messaging Platform 2.0.0 +- External Dependency Manager for Unity 1.2.175 + +************** +Version 8.0.0 +************** + +Plugin: +- Removed obsolete APIs for AppOpenAd. +- Removed obsolete APIs for InterstitialAd. +- Added the MobileAds.RaiseAdEventsOnUnityMainThread option for raising ad events on the Unity main thread. +- Dropped support for `armv7` and `i386` architectures. +- Requires minimum iOS version 11.0. +- Fixed [#2543] NullReferenceException when UMP ConsentDebugSettings are null. +- Fixed [#2531] Xcode 13 compile time error. +- Fixed [#1779] Crash with custom Banner Ad Sizes on the Unity platform. +- Fixed [#2553] Banner position in Unity Editor to reflect Android and iOS position. +- Added support for GMA Android SDK v22.0.0. Requires using GMA Android SDK v22.0.0 or higher. +- Added support for GMA iOS SDK v10.3. Requires using GMA iOS SDK v10.3 or higher. + +Built and tested with: +- Google Mobile Ads Android SDK 22.0.0 +- Google Mobile Ads iOS SDK 10.3 +- Google User Messaging Platform 2.0.0 +- External Dependency Manager for Unity 1.2.175 + +************** +Version 7.4.1 +************** + +Plugin: +- Added support for GMA iOS SDK v10. Requires using Google Mobile Ads iOS SDK v10.0 or higher. + +Built and tested with: +- Google Mobile Ads Android SDK 21.3.0 +- Google Mobile Ads iOS SDK 10.0 +- Google User Messaging Platform 2.0.0 +- External Dependency Manager for Unity 1.2.175 + +************** +Version 7.4.0 +************** + +Plugin: +- Added OnAdClicked and OnAdImpressionRecorded events to BannerView. +- Updated all ad format APIs to have consistent nomenclature. +- Added new InterstitialAd.OnAdClicked event to interstitial ads. +- Added new InterstitialAd.Load() API for loading interstitial ads. +- Added new InterstitialAd.CanShowAd() API for checking interstitial ad state. +- Added new RewardedAd.OnAdClicked event to rewarded ads. +- Added new RewardedAd.Load() API for loading rewarded ads. +- Added new RewardedAd.CanShowAd() API for checking rewarded ad state. +- Added new RewardedInterstitialAd.OnAdClicked event to rewarded interstitial ads. +- Added new RewardedInterstitialAd.Load() API for loading rewarded interstitial ads. +- Added new RewardedInterstitialAd.CanShowAd() API for checking rewarded interstitial ad state. +- Added new AppOpenAd.OnAdClicked event to app open ads. +- Added new AppOpenAd.Load() API for loading app open ads. +- Added new AppOpenAd.CanShowAd() API for checking app open ad state. +- Fixed [#2453] and [#2450] XCode build error when using iOS SDK 9.14.0 or greater. +- Added User Messaging Platform (UMP) APIs. + +Built and tested with: +- Google Mobile Ads Android SDK 21.3.0 +- Google Mobile Ads iOS SDK 9.11.0 +- Google User Messaging Platform 2.0.0 +- External Dependency Manager for Unity 1.2.175 + +************** +Version 7.3.1 +************** + +Plugin: +- Fixed [#1799](https://github.com/googleads/googleads-mobile-unity/issues/1799) RewardedAd OnAdFailedToPresentFullScreenContent called twice. + +Built and tested with: +- Google Mobile Ads Android SDK 21.3.0. +- Google Mobile Ads iOS SDK 9.11.0 +- External Dependency Manager for Unity 1.2.171 + +************** +Version 7.3.0 +************** + +Plugin: +- Requires using Google Mobile Ads Android SDK v21.3.0 or higher. +- Requires using Google Mobile Ads iOS SDK v9.11.0 or higher. +- Added response information for ad networks to the [ad response](https://developers.google.com/admob/unity/response-info). + +Built and tested with: +- Google Mobile Ads Android SDK 21.3.0. +- Google Mobile Ads iOS SDK 9.11.0 +- External Dependency Manager for Unity 1.2.171. + +************** +Version 7.2.0 +************** + +Plugin: +- Added settings to optimize Android initialization and ad loading thread usage. +- Fixed issue with AppOpenAd.GetResponseInfo() not completing on Android. +- Fixed display issue for AdInspector on the Unity Editor platform. + +Built and tested with: +- Google Mobile Ads Android SDK 21.0.0. +- Google Mobile Ads iOS SDK 9.9.0 +- External Dependency Manager for Unity 1.2.171. + +************** +Version 7.1.0 +************** + +Plugin: +- Added AppStateEventNotifier as a better option to OnApplicationPause for app open ads. + +Built and tested with: +- Google Mobile Ads Android SDK 21.0.0. +- Google Mobile Ads iOS SDK 9.0.0 +- External Dependency Manager for Unity 1.2.171. + +************** +Version 7.0.2 +************** + +Plugin: +- Added support for GMA Android SDK v21. Requires using GMA Android SDK v21.0.0 or higher. + +Built and tested with: +- Google Mobile Ads Android SDK 21.0.0. +- Google Mobile Ads iOS SDK 9.0.0 +- External Dependency Manager for Unity 1.2.171. + +************** +Version 7.0.1 +************** + +Plugin: +- Fixed Github issue [1943](https://github.com/googleads/googleads-mobile-unity/issues/1943) related App Id saving. +- Fixed Github issue [2001](https://github.com/googleads/googleads-mobile-unity/issues/2001) related to Android manifest. +- Fixed Github issue [2003](https://github.com/googleads/googleads-mobile-unity/issues/2003) related to Ad Inspector crash. +- Added placeholder AdInspector for Unity editor. + +Built and tested with: +- Google Play services 20.2.0 +- Google Mobile Ads iOS SDK 9.0.0 +- External Dependency Manager for Unity 1.2.171. + +************** +Version 7.0.0 +************** + +Plugin: +- Added support for GMA iOS SDK v9. Requires using GMA iOS SDK v9.0.0 or higher. +- Fixed https://github.com/googleads/googleads-mobile-unity/issues/1620 +- Updated to use External Dependency Manager for Unity 1.2.169. + +Built and tested with: +- Google Play services 20.2.0 +- Google Mobile Ads iOS SDK 9.0.0 +- External Dependency Manager for Unity 1.2.171. + +************** +Version 6.1.2 +************** + +Plugin: +- Fixed Github issue [1786](https://github.com/googleads/googleads-mobile-unity/issues/1786) related to GoogleMobileAdsSettings. +- Fixed issue related to missing GADUAdNetworkExtras.h file when using some mediation adapters. + +Built and tested with: +- Google Play services 20.2.0 +- Google Mobile Ads iOS SDK 8.8.0 +- External Dependency Manager for Unity 1.2.165. + +Known issue: +- iOS Resolver library cannot be loaded in Unity 2021.1.11 and 2021.1.12. It can be loaded properly with Unity 2021.1.10. See https://github.com/googlesamples/unity-jar-resolver/issues/441 for more information. + +************** +Version 6.1.1 +************** + +Plugin: +- Added support for ad inspector. + +Built and tested with: +- Google Play services 20.2.0 +- Google Mobile Ads iOS SDK 8.8.0 +- External Dependency Manager for Unity 1.2.165. + +Known issue: +- iOS Resolver library cannot be loaded in Unity 2021.1.11 and 2021.1.12. It can be loaded properly with Unity 2021.1.10. See https://github.com/googlesamples/unity-jar-resolver/issues/441 for more information. + + +************** +Version 6.1.0 +************** + +Plugin: +- Fixed https://github.com/googleads/googleads-mobile-unity/issues/1620 +- Added support for iOS 14+ [same app key](https://developers.google.com/admob/ios/ios14) +- Added support for App Open ads. + +Built and tested with: +- Google Play services 20.2.0 +- Google Mobile Ads iOS SDK 8.8.0 +- External Dependency Manager for Unity 1.2.165. + +Known issue: +- iOS Resolver library cannot be loaded in Unity 2021.1.11 and 2021.1.12. It can be loaded properly with Unity 2021.1.10. See https://github.com/googlesamples/unity-jar-resolver/issues/441 for more information. + +************** +Version 6.0.2 +************** + +Plugin: +- Fixed https://github.com/googleads/googleads-mobile-unity/issues/1677 This version requires Xcode 12.4 where the previous version required Xcode 12.5.1. +- You no longer need to enable "Link frameworks statically" for the Google Mobile Ads plugin to work. + +Built and tested with: +- Google Play services 20.2.0 +- Google Mobile Ads iOS SDK 8.8.0 +- External Dependency Manager for Unity 1.2.165. + +Known issue: +- iOS Resolver library cannot be loaded in Unity 2021.1.11 and 2021.1.12. It can be loaded properly with Unity 2021.1.10. See https://github.com/googlesamples/unity-jar-resolver/issues/441 for more information. + +************** +Version 6.0.1 +************** + +Plugin: +- Fixed https://github.com/googleads/googleads-mobile-unity/issues/1613 where build error occurs on Unity 2021. +- Fixed https://github.com/googleads/googleads-mobile-unity/issues/1616 where iOS build contains undefined symbol. +- Automatically added SKAdNetworkIdentifiers recommended by https://developers.google.com/admob/ios/ios14#skadnetwork into generated iOS builds. You can manage the list of SKAdNetworkIdentifier values by editing `Assets/GoogleMobileAds/Editor/GoogleMobileAdsSKAdNetworkItems.xml`. + +Built and tested with: +- Google Play services 20.0.0 +- Google Mobile Ads iOS SDK 8.2.0 +- External Dependency Manager for Unity 1.2.165. + +Known issue: +- iOS Resolver library cannot be loaded in Unity 2021.1.11 and 2021.1.12. It can be loaded properly with Unity 2021.1.10. See https://github.com/googlesamples/unity-jar-resolver/issues/441 for more information. + +************** +Version 6.0.0 +************** + +Plugin: +- Added support for GMA iOS SDK v8 and GMA Android SDK v20. Requires using GMA iOS SDK v8.0.0 or higher, and GMA Android SDK 20.0.0 or higher. +- Removed MobileAds.Initialize(string appId). +- Removed Birthday, Gender, TestDevices, TagForChildDirectedTreatment properties on AdRequest. TagForChildDirectedTreatment and TestDeviceIds properties are available under RequestConfiguration.. +- Removed OnAdLeavingApplication event for all formats. +- Removed MediationAdapterClassName from all formats in favor of ResponseInfo. +- Removed Message from AdErrorEventArgs class in favor of AdError. +- Removed RewardBasedVideoAd in favor of RewardedAd. +- Added support for ad load errors, please see https://developers.google.com/admob/unity/ad-load-errors for details. +- Ad Manager integration now requires providing the app ID in the Unity Editor. +- Changed package format to contain compiled assemblies in DLL format in place of the uncompiled code. +- You need to enable "Link frameworks statically" in Unity Editor -> Assets -> External Dependency Manager -> iOS Resolver -> Settings, or else the GMA plugin does not work. + +Built and tested with: +- Google Play services 20.0.0 +- Google Mobile Ads iOS SDK 8.2.0 +- External Dependency Manager for Unity 1.2.165. + +************** +Version 5.4.0 +************** + +Plugin: +- Add support for iOS14 with Googles `SKAdNetwork` identifiers automatically included in + `Info.plist`. +- Added the RewardedInterstitialAd format. This feature is currently in private beta. Reach out to your account manager to request access. +- Added mock ad views to enable developers to test ad placement and callback logic within the Unity editor. +- Added fix for crash that occurs when attempting to show interstitial when app is closing. +- Added fix for crash that occurs when calling `GetResponseInfo()` on iOS before ad is loaded. + +Built and tested with: +- Google Play services 19.5.0 +- Google Mobile Ads iOS SDK 7.68.0 +- External Dependency Manager for Unity 1.2.161. + +************** +Version 5.3.0 +************** + +Plugin: +- Add InitializationStatusClient for Init callback in Unity Editor. Fixes #1394. +- Update to Android SDK version 19.3.0 + +Built and tested with: +- Google Play services 19.3.0 +- Google Mobile Ads iOS SDK 7.63.0 +- External Dependency Manager for Unity 1.2.156. + +************** +Version 5.2.0 +************** + +Plugin: + - Added ResponseInfo class. See + https://developers.google.com/admob/unity/response-info for usage details. + - Fixes #1307 - issue with running in Unity Editor when targeting iOS platform. + - Fixes #1287 - issue where a crash is caused in equality check when AdSize is + null. + - Moved GoogleMobileAdsPlugin to GoogleMobileAdsPlugin.androidlib to ensure manifest + is picked up when building android app in Unity 2020. Fixes issue #1310. Thanks @pipe-alt! + - Fix error messages for iOS plugin. + - Added the DisableMediationInitialization() method to MobileAds. + Warning: Calling this method may negatively impact your Google mediation performance. + This method should only be called if you include Google mediation adapters in your app, but you + won't use mediate through Google during a particular app session (for example, you are running + an A/B mediation test). + +Built and tested with: +- Google Play services 19.2.0 +- Google Mobile Ads iOS SDK 7.60.0 +- External Dependency Manager for Unity 1.2.156. + +************** +Version 5.1.0 +************** + +Plugin: + - Added RequestConfiguration class. See + https://developers.google.com/admob/unity/targeting for usage details. + - Fixed issue with building for IL2CPP in versions of Unity 2017 and earlier. + - Adding missing imports for Unity 5.6 build (Thanks @EldersJavas !). + - Added GoogleMobileAds assembly definition. + - Added thread safety to GADUObjectCache in iOS plugin. + - Revised project structure. If upgrading from a previous version, delete + your GoogleMobileAds/ folder before importing this plugin. + +Built and tested with: +- Google Play services 19.1.0 +- Google Mobile Ads iOS SDK 7.58.0 +- Unity Jar Resolver 1.2.152 + + +************** +Version 5.0.1 +************** + +Plugin: + - Fixed issue with externs.cpp in pre-2019 versions of Unity + +Built and tested with: +- Google Play services 19.0.0 +- Google Mobile Ads iOS SDK 7.56.0 +- Unity Jar Resolver 1.2.136 + +************** +Version 5.0.0 +************** + +Plugin: + - Removed preprocessor directives for custom assembly support. + - Fixed IL2CPP build support on Android. + - Updated to Google Play services 19.0.0. + - Updated minimum Android API level to 16. + +Built and tested with: +- Google Play services 19.0.0 +- Google Mobile Ads iOS SDK 7.56.0 +- Unity Jar Resolver 1.2.136 + +************** +Version 4.2.1 +************** + +Plugin: + - Fixed issue with using `AdSize.FullWidth` API for apps that only support landscape. + +Built and tested with: +- Google Play services 18.3.0 +- Google Mobile Ads iOS SDK 7.53.1 +- Unity Jar Resolver 1.2.135 + +************** +Version 4.2.0 +************** + +Plugin: + - Added support for using AdSize.FullWidth with Adaptive banner APIs. + - Added `GetRewardItem()` API for `RewardedAd`. + - Fixed issue with Android implementation of `GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth`. + +Built and tested with: +- Google Play services 18.3.0 +- Google Mobile Ads iOS SDK 7.53.1 +- Unity Jar Resolver 1.2.135 + +************** +Version 4.1.0 +************** + +Plugin: + - Released Anchored Adaptive Banner APIs. + +Built and tested with: +- Google Play services 18.2.0 +- Google Mobile Ads iOS SDK 7.51.0 +- Unity Jar Resolver 1.2.130 + +************** +Version 4.0.0 +************** + +Plugin: +- Breaking change: The Android library included in this plugin is now distributed as an aar, and + lives at `Assets/Plugins/Android/googlemobileads-unity.aar'. If you are upgrading from a previous + version, remove the `Assets/Plugins/Android/GoogleMobileAdsPlugin' folder prior to importing this + latest version of the plugin. +- Added proguard support on Android. +- Update Android Google Mobile Ads SDK version to 18.2.0. +- Fixed a bug where the AdSize.SMART_BANNER banner size did not work on Unity 2019.2+. +- Added assertion to stop Android builds when Google Mobile Ads settings are invalid. + +Built and tested with: +- Google Play services 18.2.0 +- Google Mobile Ads iOS SDK 7.50.0 +- Unity Jar Resolver 1.2.125 + +************** +Version 3.18.3 +************** + +Plugin: +- Update JAR resolver. + +Built and tested with: +- Google Play services 18.1.1 +- Google Mobile Ads iOS SDK 7.48.0 +- Unity Jar Resolver 1.2.124 + +************** +Version 3.18.2 +************** + +Plugin: +- Update to Android release 18.1.1. + +Built and tested with: +- Google Play services 18.1.1 +- Google Mobile Ads iOS SDK 7.47.0 +- Unity Jar Resolver 1.2.123 + +************** +Version 3.18.1 +************** + +Plugin: +- Add new Initialization API. +- Fixed Android compile error with PListProcessor. +- Removed reflection for improved IL2CPP support. +- Fixed iOS dependency to not use patch version. + +Built and tested with: +- Google Play services 18.1.0 +- Google Mobile Ads iOS SDK 7.46.0 +- Unity Jar Resolver 1.2.122 + +************** +Version 3.18.0 +************** + +Plugin: +- Added GoogleMobileAdsSettings editor UI for making Plist / manifest changes. +- Fix OnRewardedAdFailedToShow callbacks. +- Migrated android support library to androidx (JetPack) with Google Mobile Ads + SDK version 18.0.0. + +Built and tested with: +- Google Play services 18.0.0 +- Google Mobile Ads iOS SDK 7.45.0 +- Unity Jar Resolver 1.2.119 + +************** +Version 3.17.0 +************** + +Plugin: +- Revised Banner positioning code to use gravity instead of popup window. +- Tested Banner positioning with notched devices supporting Google P APIs. +- Added Rewarded Ads ServerSideVerificationOptions (thanks @halfdevil !) +- Fixed issue with PListProcessor macro. +- Added whitelist for apache http library (thanks @RolandSzep !) +- Specified package for gender enum (thanks @armnotstrong !) +- Added mediation extras for custom events (thanks SeanPONeil !) + +Built and tested with: +- Google Play services 17.2.0 +- Google Mobile Ads iOS SDK 7.44.0 +- Unity Jar Resolver 1.2.111 + +************** +Version 3.16.0 +************** + +Plugin: +- Added new RewardedAd APIs support. +- Added PListProcessor to assist in adding the GADApplicationIdentifier +to iOS build Info.plist. + +Built and tested with: +- Google Play services 17.2.0 +- Google Mobile Ads iOS SDK 7.42.0 +- Unity Jar Resolver 1.2.102.0 + +************** +Version 3.15.1 +************** + +Plugin: +- Fixed crash when adding mediation extras to ad request. + +Built and tested with: +- Google Play services 15.0.1 +- Google Mobile Ads iOS SDK 7.32.0 +- Unity Jar Resolver 1.2.88.0 + +************** +Version 3.15.0 +************** + +Plugin: +- Forward Android ad events on background thread through JNI interface +to mitigate ANRs. + +Mediation packages: +- Updated AppLovin Unity package to v3.0.3. +- Updated Chartboost Unity package to v1.1.1. +- Updated Facebook Unity package to v1.1.3. +- Updated IronSource Unity package to v1.0.2. +- Updated Nend Unity package to v2.0.0. +- Updated Tapjoy Unity package to v2.0.0. + +Built and tested with: +- Google Play services 15.0.1 +- Google Mobile Ads iOS SDK 7.31.0 +- Unity Jar Resolver 1.2.79.0 + +************** +Version 3.14.0 +************** + +Plugin: +- Fixed Google Play dependencies version conflict with Firebase plugins. + +Mediation packages: +- Updated AdColony Unity package to v1.2.1. +- Updated AppLovin Unity package to v3.0.2. +- Updated Chartboost Unity package to v1.1.0. +- Updated Facebook Unity package to v1.1.2. +- Updated InMobi Unity package to v2.1.0. +- Updated IronSource Unity package to v1.0.1. +- Updated Maio Unity package to v1.1.0. +- Updated MoPub Unity package to v2.1.0. +- Updated MyTarget Unity package to v2.1.0. +- Updated Nend Unity package to v1.0.2. +- Updated Tapjoy Unity package to v1.1.1. +- Updated UnityAds Unity package to v1.1.3. + +Built and tested with: +- Google Play services 15.0.1 +- Google Mobile Ads iOS SDK 7.31.0 +- Unity Jar Resolver 1.2.75.0 + +************** +Version 3.13.1 +************** + +Plugin: +- Fixed issue where banner ads reposition to top of screen after a full +screen ad is displayed. + +Built and tested with: +- Google Play services 12.0.1 +- Google Mobile Ads iOS SDK 7.30.0 +- Unity Jar Resolver 1.2.64.0 + +************** +Version 3.13.0 +************** + +Plugin: +- Added `OnAdCompleted` ad event to rewarded video ads. +- Removed support for Native Ads Express. + +Mediation packages: +- Added Chartboost mediation support package. +- Added MoPub mediation support package. +- Updated AppLovin Unity package to v1.2.1. +- Updated AdColony Unity package to v1.0.1. +- Updated myTarget Unity package to v2.0.0. + +Built and tested with: +- Google Play services 12.0.1 +- Google Mobile Ads iOS SDK 7.30.0 +- Unity Jar Resolver 1.2.64.0 + +************** +Version 3.12.0 +************** + +Plugin: +- Added `setUserId` API to rewarded video ads to identify users in +server-to-server reward callbacks. +- Removed functionality that forced ad events to be invoked on the +main thread. + +Mediation packages: +- Updated maio Unity package to v1.0.1. + +Built and tested with: +- Google Play services 11.8.0 +- Google Mobile Ads iOS SDK 7.29.0 +- Unity Jar Resolver 1.2.61.0 + +************** +Version 3.11.1 +************** + +Plugin: +- Fixed issue where calling GetWidthInPixels() or GetHeightInPixels() resulted +in a null pointer exception. + +Mediation packages: +- Added Facebook mediation support package. + +Built and tested with: +- Google Play services 11.8.0 +- Google Mobile Ads iOS SDK 7.28.0 +- Unity Jar Resolver 1.2.61.0 + +************** +Version 3.11.0 +************** + +Plugin: +- Updated Android ad events to be invoked on the main thread. +- Added `MobileAds.SetiOSAppPauseOnBackground()` method to pause iOS apps when +displaying full screen ads. +- Fixed issue were banners repositioned incorrectly following an orientation +change. + +Mediation packages: +- Added maio mediation support package. +- Added nend mediation support package. + +Built and tested with: +- Google Play services 11.8.0 +- Google Mobile Ads iOS SDK 7.27.0 +- Unity Jar Resolver 1.2.61.0 + +************** +Version 3.10.0 +************** + +Plugin: +- Updated Smart Banner positioning to render within safe area on iOS 11. +- Added API to return height and width of BannerView in pixels. +- Added SetPosition method to reposition banner ads. +- Updated AppLovin Unity mediation package to support AppLovin initialization +integration. + +Mediation packages: +- Added InMobi mediation support package. +- Added Tapjoy mediation support package. +- Added Unity Ads mediation support package. +- Added myTarget mediation support package. + +Built and tested with: +- Google Play services 11.6.2 +- Google Mobile Ads iOS SDK 7.27.0 +- Unity Jar Resolver 1.2.59.0 + +************* +Version 3.9.0 +************* + +Plugin: +- Implemented workaround for issue where ad views are rendered in incorrect +position. +- Resolved compatibility issues with Gradle 4. +- Resolved comnpatilbity issues with older versions of Xcode. + +Mediation packages: +- Added API for video ad volume control. +- Added AdColony mediation support package. +- Added AppLovin mediation support package. + +Built and tested with: +- Google Play services 11.6.0 +- Google Mobile Ads iOS SDK 7.25.0 +- Unity Jar Resolver 1.2.59.0 + +************* +Version 3.8.0 +************* + +- Added support for Vungle mediation extras. +- Updated ad views to render within safe area on iOS 11 when using predefined +AdPosition constants. +- Added MediationAdapterClassName() method to all ad formats. +- Fixed issue where ad views are always rendered on the top of the screen for +certain devices. + +Built and tested with: +- Google Play services 11.4.0 +- Google Mobile Ads iOS SDK 7.24.1 +- Unity Jar Resolver 1.2.59.0 + +************* +Version 3.7.1 +************* + +- Fix issue where banner and Native Express ads fail to show after being hidden. + +Built and tested with: +- Google Play services 11.4.0 +- Google Mobile Ads iOS SDK 7.24.0 +- Unity Jar Resolver 1.2.52.0 + +************* +Version 3.7.0 +************* + +- Updated dependency specification for JarResolver to use new XML format. +- Resolved JarResolver incompatibility issues when using Firebase Unity plugins. + +Built and tested with: +- Google Play services 11.2.0 +- Google Mobile Ads iOS SDK 7.23.0 +- Unity Jar Resolver 1.2.48.0 + +************* +Version 3.6.3 +************* + +- Fixed serving of live ads to iOS simulator when simulator set as test +device. +- Reverted addition of mediation sub-directories to Plugin folder. + +Built and tested with: +- Google Play services 11.0.4 +- Google Mobile Ads iOS SDK 7.21.0 +- Unity Jar Resolver 1.2.35.0 + +************* +Version 3.6.2 +************* + +- Add mediation sub-directories to Plugin folder. + +Built and tested with: +- Google Play services 11.0.4 +- Google Mobile Ads iOS SDK 7.21.0 +- Unity Jar Resolver 1.2.35.0 + +************* +Version 3.6.1 +************* + +- Updated Unity Jar Resolver. + +Built and tested with: +- Google Play services 11.0.0 +- Google Mobile Ads iOS SDK 7.21.0 +- Unity Jar Resolver 1.2.32.0 + +************* +Version 3.6.0 +************* + +- Added method to initialize the GMA SDK. +- Added FullWidth AdSize constant. +- Fixed incompatibility with Gradle build system. +- Updated iOS code to remove modular imports. + +Built and tested with: +- Google Play services 11.0.0 +- Google Mobile Ads iOS SDK 7.21.0 +- Unity Jar Resolver 1.2.31.0 + +************* +Version 3.5.0 +************* +- Fix ad views losing visibility after an activity change for certain devices +(eg. Huaweai devices). + +Built and tested with: +- Google Play services 10.2.4 +- Google Mobile Ads iOS SDK 7.20.0 +- Unity Jar Resolver 1.2.20.0 + +************* +Version 3.4.0 +************* +- Fix native express and banner ad behavior where initializing and +hidden ads create unclickable region. + +Built and tested with: +- Google Play services 10.2.1 +- Google Mobile Ads iOS SDK 7.19.0 +- Unity Jar Resolver 1.2.14.0 + +************* +Version 3.3.0 +************* +- Removed support for in-app purchases. +- Fix positioning of ads in sticky-immersive mode. +- Fix issue were ads larger than 320dp could not be rendered. +- Fix incorrect positioning of ads in iOS for ad position BOTTOM. +- Add rewarded video test ad units to HelloWorld sample app. +- Suppress warnings for unused placeholder ad events. + +Built and tested with: +- Google Play services 10.2.0 +- Google Mobile Ads iOS SDK 7.18.0 +- Unity Jar Resolver 1.2.12.0 + +************* +Version 3.2.0 +************* +- Banner ads and native express ads display correctly on Unity 5.6. +- Add ability to specify x, y location of ad views. + +Built and tested with: +- Google Play services 10.0.1 +- Google Mobile Ads iOS SDK 7.16.0 +- Unity Jar Resolver 1.2.9.0 + +************* +Version 3.1.3 +************* +- Fix incorrect invocation of events on ads failing to load. + +Built and tested with: +- Google Play services 10.0.0 +- Google Mobile Ads iOS SDK 7.15.0 +- Unity Jar Resolver 1.2.6.0 + +************* +Version 3.1.2 +************* +- Fix NPE when ad events are not hooked up. + +Built and tested with: +- Google Play services 9.8.0 +- Google Mobile Ads iOS SDK 7.13.0 +- Unity Jar Resolver 1.2.2.0 + +************* +Version 3.1.1 +************* +- Remove dependency on Android Support Library and update GMA iOS SDK +version in `AdMobDependencies.cs`. + +Built and tested with: +- Google Play services 9.6.1 +- Google Mobile Ads iOS SDK 7.13.0 +- Unity Jar Resolver 1.2.2.0 + +************* +Version 3.1.0 +************* +- Integrate plugin with play-services-resolver-1.2.1.0. +- Removal of CocoaPods integration. + +Built and tested with: +- Google Play services 9.6.0 +- Google Mobile Ads iOS SDK 7.12.0 +- Unity Jar Resolver 1.2.1.0 + +************* +Version 3.0.7 +************* +- Fix crash within OnAdLoaded ad event for rewarded video ads on iOS. + +Built and tested with: +- Google Play services 9.4.0 +- Google Mobile Ads iOS SDK 7.11.0 +- Unity Jar Resolver 1.2 + +************* +Version 3.0.6 +************* +- Add support for Native Ads express. +- Fix compatibility issues with Android IL2CPP compilation. +- Fix memory leak of C# client objects + +Built and tested with: +- Google Play services 9.4.0 +- Google Mobile Ads iOS SDK 7.10.1 +- Unity Jar Resolver 1.2 + +************* +Version 3.0.5 +************* +- Remove use of JSONUtility. + +Built and tested with: +- Google Play services 9.2.0 +- Google Mobile Ads iOS SDK 7.8.1 +- Unity Jar Resolver 1.2 + +************* +Version 3.0.4 +************* +- Fix Podfile compatibility with CocoaPods 1.0.0. +- Add support for DFP custom native ad formats. + +Built and tested with: +- Google Play services 9.0.0 +- Google Mobile Ads iOS SDK 7.8.1 +- Unity Jar Resolver 1.2 + +************* +Version 3.0.3 +************* +- Restrict simultaneous rewarded video requests on Android. + +Built and tested with: +- Google Play services 8.4.0 +- Google Mobile Ads iOS SDK 7.7.0 + +************* +Version 3.0.2 +************* +- Fix compatibility issues with Google Mobile Ads iOS SDK 7.7.0 + +Built and tested with: +- Google Play services 8.4.0 +- Google Mobile Ads iOS SDK 7.7.0 + +************* +Version 3.0.1 +************* +- Update preprocessor directives for iOS post build setup +- Add request agent to all ad requests from plugin + +Built and tested with: +- Google Play services 8.4.0 +- Google Mobile Ads iOS SDK 7.6.0 + +************* +Version 3.0.0 +************* +- Add support for Custom In-App purchase flow on Android +- Add CocoaPods integration and automated build settings for iOS projects +- Use JarResolver plugin to resolve Google Play services client dependencies +- Ad events for banners and interstitials refactored with new names + +Built and tested with: +- Google Play services 8.4.0 +- Google Mobile Ads iOS SDK 7.6.0 + +************* +Version 2.3.1 +************* +- Move IInAppBillingService into its own JAR + +************* +Version 2.3.0 +************* +- Add support for In-App Purchase house ads on Android + +************* +Version 2.2.1 +************* +- Fix for Android manifest merge issues on Unity 4.x +- Fix for TouchCount issue on Unity 5.0 + +*********** +Version 2.2 +*********** +- Support for Unity 5.0 & ARC +- Additional Banner positions +- iOS Ads SDK 7.0.0 compatibility + +*********** +Version 2.1 +*********** +- Support for Interstitial Ads +- Ad events use EventHandlers + +*********** +Version 2.0 +*********** +- A single package with cross platform (Android/iOS) support +- Mock ad calls when running inside Unity editor +- Support for Banner Ads +- Custom banner sizes +- Banner ad events listeners +- AdRequest targeting methods +- A sample project to demonstrate plugin integration + +*********** +Version 1.2 +*********** +- Initial Android version with Google Play services support +- Support for Banner Ads only + +*********** +Version 1.1 +*********** +- Initial iOS only version +- Support for Banner Ads only + +*********** +Version 1.0 +*********** +- Initial version for Android (using now deprecated legacy Android SDK) diff --git a/Assets/GoogleMobileAds/CHANGELOG.md.meta b/Assets/GoogleMobileAds/CHANGELOG.md.meta new file mode 100644 index 00000000..f4e5d7f1 --- /dev/null +++ b/Assets/GoogleMobileAds/CHANGELOG.md.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 161c4904cd2045a1bf046453a58a9d7b +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/CHANGELOG.md +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor.meta b/Assets/GoogleMobileAds/Editor.meta new file mode 100644 index 00000000..dd81e725 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad2c7d42170b57d41bbce607405135c5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/AndroidBuildPreProcessor.cs b/Assets/GoogleMobileAds/Editor/AndroidBuildPreProcessor.cs new file mode 100644 index 00000000..17c58cd6 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/AndroidBuildPreProcessor.cs @@ -0,0 +1,191 @@ +#if UNITY_ANDROID +#if UNITY_2022 || UNITY_2021_3_58 || UNITY_2021_3_57 || UNITY_2021_3_56 || UNITY_2021_3_55 || UNITY_2021_3_54 || UNITY_2021_3_53 || UNITY_2021_3_52 || UNITY_2021_3_51 || UNITY_2021_3_50 || UNITY_2021_3_49 || UNITY_2021_3_48 || UNITY_2021_3_47 || UNITY_2021_3_46 || UNITY_2021_3_45 || UNITY_2021_3_44 || UNITY_2021_3_43 || UNITY_2021_3_42 || UNITY_2021_3_41 +// 2021.3.41f1+ Gradle version 7.5.1+ +// https://docs.unity3d.com/2021.3/Documentation/Manual/android-gradle-overview.html +#define ANDROID_GRADLE_BUILD_JETIFIER_ENTRY_ENABLED +#endif + +#if UNITY_6000_0_OR_NEWER || UNITY_2023 || ANDROID_GRADLE_BUILD_JETIFIER_ENTRY_ENABLED +#define ANDROID_GRADLE_BUILD_PRE_PROCESSOR_ENABLED +#endif + +using System; +using UnityEngine; +using UnityEditor; +using System.IO; +using GooglePlayServices; +using UnityEditor.Build; +using UnityEditor.Build.Reporting; + +namespace GoogleMobileAds.Editor +{ + /// + /// This script will verify and configure your Android build settings to be compatible + /// with the Google Mobile Ads SDK. This includes: + /// - Verify the Android Google Mobile Ads app ID is set. + /// - Throw an exception if the Android Google Mobile Ads app ID is not set. + /// - Set minimum API level to 23 (the target API level may be automatically set, we should not + /// hardcode it). + /// - Enable Custom Main Gradle Template. + /// - Update Custom Main Gradle Template with dependencies using the Play Services Resolver. + /// - Enable Custom Gradle Properties Template. + /// - Update Custom Gradle Properties Template with the Jetifier Ignorelist. + /// + public class AndroidBuildPreProcessor : IPreprocessBuildWithReport + { + const int MinimumAPILevel = 23; + const string CustomGradlePropertiesTemplatesFileName = "gradleTemplate.properties"; + const string CustomMainGradleTemplateFileName = "mainTemplate.gradle"; + const string JetifierEntry = + "android.jetifier.ignorelist=annotation-experimental-1.4.0.aar"; + + // Set the callback order to be before EDM4U. + // https://github.com/googlesamples/unity-jar-resolver/blob/master/source/AndroidResolver/src/PlayServicesPreBuild.cs#L39 + public int callbackOrder { get { return -1; } } + + public void OnPreprocessBuild(BuildReport report) + { + if(!GoogleMobileAdsSettings.LoadInstance().EnableGradleBuildPreProcessor) + { + return; + } + // For more details see, https://developers.google.com/admob/unity/android +#if ANDROID_GRADLE_BUILD_PRE_PROCESSOR_ENABLED + ApplyBuildSettings(report); +#endif + } + + private void ApplyBuildSettings(BuildReport report) + { + Debug.Log("Running Android Gradle Build Pre-Processor."); + + // Set Minimum Api Level. + if (PlayerSettings.Android.minSdkVersion < (AndroidSdkVersions)MinimumAPILevel) + { + PlayerSettings.Android.minSdkVersion = (AndroidSdkVersions)MinimumAPILevel; + Debug.Log($"Set minimum API Level to: {MinimumAPILevel}."); + } + else + { + Debug.Log($"Verified Minimum API Level is >= {MinimumAPILevel}."); + } + + // Create Assets/Plugins folder. + if (!AssetDatabase.IsValidFolder(Path.Combine("Assets", "Plugins"))) + { + AssetDatabase.CreateFolder("Assets", "Plugins"); + AssetDatabase.Refresh(); + } + + // Create Assets/Plugins/Android folder. + if (!AssetDatabase.IsValidFolder(Path.Combine("Assets", "Plugins", "Android"))) + { + AssetDatabase.CreateFolder(Path.Combine("Assets", "Plugins"), "Android"); + AssetDatabase.Refresh(); + } + + // Ensure Custom Main Gradle Template. + EnsureGradleFileExists(CustomMainGradleTemplateFileName); + + // Ensure Custom Gradle Properties Templates. + EnsureGradleFileExists(CustomGradlePropertiesTemplatesFileName); + + #if ANDROID_GRADLE_BUILD_JETIFIER_ENTRY_ENABLED + string customGradlePropertiesTemplatesFilePath = Path.Combine( + Application.dataPath, + "Plugins", "Android", + CustomGradlePropertiesTemplatesFileName); + if (File.Exists(customGradlePropertiesTemplatesFilePath)) + { + var gradlePropertiesFileContent = + File.ReadAllText(customGradlePropertiesTemplatesFilePath); + if (!gradlePropertiesFileContent.Contains(JetifierEntry)) + { + File.AppendAllText( + customGradlePropertiesTemplatesFilePath, + Environment.NewLine + JetifierEntry); + Debug.Log($"Added Jetifier Entry."); + } + else + { + Debug.Log($"Verified Jetifier Entry exists."); + } + } + else + { + Debug.LogError("Failed to add Jetifier Entry."); + } + #endif + + Debug.Log("Resolving Android Gradle dependencies."); + PlayServicesResolver.ResolveSync(true); + Debug.Log("Android Build Pre-Processor finished."); + } + + /// + /// Ensures that the given Gradle file exists. + /// + /// name of the given Gradle file. + private void EnsureGradleFileExists(string fileName) + { + bool foundTargetFile = false; + bool foundDisabledFile = false; + + // Check for target file. + string targetPath = Path.Combine(Application.dataPath, "Plugins", "Android", fileName); + if (File.Exists(targetPath)) + { + foundTargetFile = true; + } + + // Check for the ".DISABLED" file. + string disabledPath = Path.Combine(Application.dataPath, "Plugins", "Android", + $"{fileName}.DISABLED"); + if (File.Exists(disabledPath)) + { + foundDisabledFile = true; + } + + // If DISABLED and target exist, delete DISABLED. + if (foundTargetFile && foundDisabledFile) + { + File.Delete(disabledPath); + Debug.Log($"Removed disabled {fileName}."); + return; + } + // If DISABLED exists, move it to target. + if (foundDisabledFile) + { + File.Move(disabledPath, targetPath); + AssetDatabase.Refresh(); + Debug.Log($"Enabled {fileName}."); + return; + } + // If target exists, return true. + if (foundTargetFile) + { + Debug.Log($"Verified {fileName}."); + return; + } + + // If target does not exist, create it from source. + var unityGradleTemplateDirectory = Path.Combine( + PlayServicesResolver.AndroidPlaybackEngineDirectory, + "Tools", + "GradleTemplates"); + string sourceFileName = Path.Combine(unityGradleTemplateDirectory, fileName); + if (!File.Exists(sourceFileName)) + { + throw new BuildFailedException( + "Android Build Pre-Processor failed. "+ + $"Unable to find source {sourceFileName}. Is your file system read-only?" + + "If this issue persists, contact Google Mobile Ads Support "+ + "at https://developers.google.com/admob/support"); + } + File.Copy(sourceFileName, targetPath); + AssetDatabase.Refresh(); + Debug.Log($"Created {fileName}."); + } + } +} +#endif diff --git a/Assets/GoogleMobileAds/Editor/AndroidBuildPreProcessor.cs.meta b/Assets/GoogleMobileAds/Editor/AndroidBuildPreProcessor.cs.meta new file mode 100644 index 00000000..61b58c55 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/AndroidBuildPreProcessor.cs.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c0080e86890c24abba53b3f4d2daf6db +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/AndroidBuildPreProcessor.cs +timeCreated: 1480838400 diff --git a/Assets/GoogleMobileAds/Editor/BuildPreProcessor.cs b/Assets/GoogleMobileAds/Editor/BuildPreProcessor.cs new file mode 100644 index 00000000..54ac86e4 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/BuildPreProcessor.cs @@ -0,0 +1,55 @@ +using System; +using UnityEngine; +using UnityEditor; +using System.IO; +using GooglePlayServices; +using UnityEditor.Build; +using UnityEditor.Build.Reporting; + +namespace GoogleMobileAds.Editor +{ + /// + /// Pre-processor that performs common setup tasks for all platforms before a build. + /// + public class BuildPreProcessor : IPreprocessBuildWithReport + { + // Set the callback order to be before EDM4U. + // https://github.com/googlesamples/unity-jar-resolver/blob/master/source/AndroidResolver/src/PlayServicesPreBuild.cs#L39 + public int callbackOrder { get { return -1; } } + + private readonly static string _linkXmlAssetsPath = + Path.Combine(Application.dataPath, "GoogleMobileAds", "link.xml"); + + public void OnPreprocessBuild(BuildReport report) + { + // Unity's managed code stripping process does not inherently process `link.xml` files + // in UPM packages. This pre-processor copies the `link.xml` file from the UPM package + // to the Unity project's `Assets/GoogleMobileAds` directory if it does not exist. + if (!File.Exists(_linkXmlAssetsPath)) + { + CopyLinkXml(); + } + } + + private static void CopyLinkXml() + { + if (!AssetDatabase.IsValidFolder(Path.Combine("Assets", "GoogleMobileAds"))) + { + AssetDatabase.CreateFolder("Assets", "GoogleMobileAds"); + } + var pathUtils = ScriptableObject.CreateInstance(); + if (pathUtils.IsPackageRootPath()) + { + string parentDirectoryPath = pathUtils.GetParentDirectoryAssetPath(); + string linkXmlPackagePath = Path.Combine(parentDirectoryPath, "link.xml"); + if(String.IsNullOrEmpty(linkXmlPackagePath)) + { + Debug.LogWarning("link.xml not found in the package."); + return; + } + AssetDatabase.CopyAsset(linkXmlPackagePath, _linkXmlAssetsPath); + } + AssetDatabase.Refresh(); + } + } +} diff --git a/Assets/GoogleMobileAds/Editor/BuildPreProcessor.cs.meta b/Assets/GoogleMobileAds/Editor/BuildPreProcessor.cs.meta new file mode 100644 index 00000000..159958b5 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/BuildPreProcessor.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: 79760efe9b6bb4736aa4ffd869e2ed0c +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/BuildPreProcessor.cs +timeCreated: 1480838400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: + instanceID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/EditorLocalization.cs b/Assets/GoogleMobileAds/Editor/EditorLocalization.cs new file mode 100644 index 00000000..d3c6d295 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/EditorLocalization.cs @@ -0,0 +1,172 @@ +using System; +using System.Text.RegularExpressions; +using System.Collections.Generic; +using System.IO; +using UnityEngine; + +namespace GoogleMobileAds.Editor +{ + public class EditorLocalization + { + private const string LOCALIZATION_DATA_JSON_RELATIVE_PATH = "GoogleMobileAds/Editor"; + private const string LOCALIZATION_DATA_JSON_FILENAME = + "gma_settings_editor_localization_data.json"; + private const string LOCALIZATIONS_JSON_KEY = "LocalizationsByKey"; + private const string LOCALIZATION_KEY_PREFIX = "KEY_"; + + private readonly Lazy _localizationData = + new Lazy(() => InitLocalizationDataOrThrow()); + private EditorLocalizationData GetLocalizationData() => _localizationData.Value; + + /** + * Gets the default language for the settings editor. + * We assume the default locale used belong to the list of supported cultures + * (https://www.csharp-examples.net/culture-names/), and that each key has a default + * localization provided. + */ + public string GetDefaultLanguage() + { + return "en"; // English + } + + /** + * Checks that a localization key exists. + */ + public bool HasKey(string key) + { + return GetLocalizationData().LocalizationsByKey.ContainsKey(key); + } + + /** + * Localizes a resource key based on a provided user language. + * Returns the key name if the key could not be localized. + */ + public string ForKey(string key) + { + key = key.ToUpper(); + // Accept both key syntaxes. + if (key.StartsWith(LOCALIZATION_KEY_PREFIX)) + key = key.Replace(LOCALIZATION_KEY_PREFIX, ""); + + if (GetLocalizationData().LocalizationsByKey.TryGetValue(key, + out Dictionary localizations)) + { + // Key was found. Try to localize the key with the user language (e.g., "en" or "fr"). + // Else, use the default (fallback) language, if the localization key is missing for + // the chosen language (or no language was selected). + // The region is omitted purposely as we don't currently require this level of details. + string userLanguage = GoogleMobileAdsSettings.LoadInstance().UserLanguage; + if (localizations == null) + { + return null; + } + bool userLanguageExists = localizations.TryGetValue(userLanguage, + out string userLocalization); + bool userLocalizationIsValid = userLanguageExists && + !string.IsNullOrEmpty(userLocalization); + return userLocalizationIsValid ? userLocalization: localizations[GetDefaultLanguage()]; + } + + // Error, key not found, no localization to return so let's fallback to the key name + // to provide some sort of indication in the UI. + Debug.LogError($"Localization key not found: {key}."); + return key; + } + + /** + * Deserializes the localization data, encoded in json. + * Returns the json deserialized to a EditorLocalizationData class instance. + * Throws an ArgumentException if the json file cannot be deserialized. + */ + private static EditorLocalizationData InitLocalizationDataOrThrow() + { + string localizationDataPath = + Path.Combine(Application.dataPath, LOCALIZATION_DATA_JSON_RELATIVE_PATH, + LOCALIZATION_DATA_JSON_FILENAME); + // Handle importing the localization data file via Unity Package Manager. + var pathUtils = ScriptableObject.CreateInstance(); + if (pathUtils.IsPackageRootPath()) + { + localizationDataPath = + Path.Combine(pathUtils.GetDirectoryAssetPath(), LOCALIZATION_DATA_JSON_FILENAME); + } + try + { + string json = File.ReadAllText(localizationDataPath); + var data = DeserializeFromJson(json); + if (data.LocalizationsByKey == null) + { + throw new ArgumentNullException("LocalizationsByKey"); + } + return data; + } + catch (Exception) + { + throw new ArgumentException( + $"Exception thrown while retrieving localization data from {localizationDataPath}:" + + " {ex:full}"); + } + } + + // We would like to handle the deserialization of the JSON file referenced above but without + // leveraging any JSON library to avoid adding any dependency. + private static EditorLocalizationData DeserializeFromJson(string json) + { + var data = new EditorLocalizationData(); + data.LocalizationsByKey = new Dictionary>(); + // We match every field in the JSON. The order in which those matches are found is used to + // deserialize the localization values. + var regex = new Regex(@"""(?[^""]+)"""); + var matches = regex.Matches(json); + var currentKeys = new List(); + var valueProcessed = false; + foreach (Match match in matches) + { + var val = match.Groups["val"].Value; + if (val.Equals(LOCALIZATIONS_JSON_KEY)) + { + currentKeys.Clear(); + continue; + } + + if (valueProcessed) + { + valueProcessed = false; + if (val.StartsWith(LOCALIZATION_KEY_PREFIX)) + { + // Start a new level. + currentKeys.Clear(); + } + else if (currentKeys.Count > 0) + { + // Go up one level by removing the latest key. + currentKeys.RemoveAt(currentKeys.Count - 1); + } + } + + // The localization values are 2 levels deep. + if (currentKeys.Count < 2) + { + currentKeys.Add(val); + continue; + } + + ProcessValue(data, currentKeys, val); + valueProcessed = true; + } + + return data; + } + + private static void ProcessValue(EditorLocalizationData data, List currentKeys, + string val) + { + if (currentKeys.Count != 2) + return; + currentKeys[0] = currentKeys[0].Replace(LOCALIZATION_KEY_PREFIX, ""); + if (!data.LocalizationsByKey.ContainsKey(currentKeys[0])) + data.LocalizationsByKey[currentKeys[0]] = new Dictionary(); + data.LocalizationsByKey[currentKeys[0]][currentKeys[1]] = val; + } + } +} diff --git a/Assets/GoogleMobileAds/Editor/EditorLocalization.cs.meta b/Assets/GoogleMobileAds/Editor/EditorLocalization.cs.meta new file mode 100644 index 00000000..722729cd --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/EditorLocalization.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: 1a843cb3b999a40ea9babd1f69e1232f +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/EditorLocalization.cs +timeCreated: 1480838400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: + instanceID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/EditorLocalizationData.cs b/Assets/GoogleMobileAds/Editor/EditorLocalizationData.cs new file mode 100644 index 00000000..8ff2037f --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/EditorLocalizationData.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; + +namespace GoogleMobileAds.Editor +{ + public class EditorLocalizationData + { + // First key: the localization key. Second key: the language to lookup. Value: the resulting + // localization. + public Dictionary> LocalizationsByKey { get; set; } + } +} diff --git a/Assets/GoogleMobileAds/Editor/EditorLocalizationData.cs.meta b/Assets/GoogleMobileAds/Editor/EditorLocalizationData.cs.meta new file mode 100644 index 00000000..87ecf242 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/EditorLocalizationData.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: e7aaa882f59b8405d97e3042283cc034 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/EditorLocalizationData.cs +timeCreated: 1480838400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: + instanceID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/EditorPathUtils.cs b/Assets/GoogleMobileAds/Editor/EditorPathUtils.cs new file mode 100644 index 00000000..a24498cb --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/EditorPathUtils.cs @@ -0,0 +1,57 @@ +// Copyright (C) 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System.IO; +using UnityEditor; +using UnityEngine; + +/* + * EditorPathUtils class finds and processes the AssetPath for + * EditorPathUtils.cs within unity asset database. + */ +public class EditorPathUtils : ScriptableObject +{ + /* + * Returns the asset path of EditorPathUtils.cs + */ + private string GetFilePath() + { + return AssetDatabase.GetAssetPath(MonoScript.FromScriptableObject(this)); + } + + /* + * Returns the asset directory path of EditorPathUtils.cs + */ + public string GetDirectoryAssetPath() + { + return Path.GetDirectoryName(GetFilePath()); + } + + /* + * Returns the parent asset directory path of EditorPathUtils.cs + */ + public string GetParentDirectoryAssetPath() + { + return Path.GetDirectoryName(GetDirectoryAssetPath()); + } + + /* + * Returns true if GMA import is done via unity package manager, + * false otherwise. + */ + public bool IsPackageRootPath() + { + return GetFilePath().StartsWith("Packages"); + } +} diff --git a/Assets/GoogleMobileAds/Editor/EditorPathUtils.cs.meta b/Assets/GoogleMobileAds/Editor/EditorPathUtils.cs.meta new file mode 100644 index 00000000..3a26ae7d --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/EditorPathUtils.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: e1f0097ebfa3e416197e298c9135b6de +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/EditorPathUtils.cs +timeCreated: 1480838400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: + instanceID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/GoogleMobileAds.Editor.asmdef b/Assets/GoogleMobileAds/Editor/GoogleMobileAds.Editor.asmdef new file mode 100644 index 00000000..9cd84ca0 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleMobileAds.Editor.asmdef @@ -0,0 +1,20 @@ +{ + "name": "GoogleMobileAds.Editor", + "references": [ + "GoogleMobileAds", + "GoogleMobileAds.Core", + "GoogleMobileAds.Placement", + "GoogleMobileAds.Placement.Core" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/GoogleMobileAds/Editor/GoogleMobileAds.Editor.asmdef.meta b/Assets/GoogleMobileAds/Editor/GoogleMobileAds.Editor.asmdef.meta new file mode 100644 index 00000000..6e38880d --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleMobileAds.Editor.asmdef.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cbb42e4cfd9484f52972c8f05e1c3252 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/GoogleMobileAds.Editor.asmdef +timeCreated: 1480838400 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml new file mode 100644 index 00000000..0a297cb5 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml @@ -0,0 +1,27 @@ + + + + + https://maven.aliyun.com/repository/google + + + + + https://maven.aliyun.com/repository/google + + + + + https://maven.aliyun.com/repository/google + + + + + + + + https://github.com/CocoaPods/Specs + + + + diff --git a/Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml.meta b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml.meta new file mode 100644 index 00000000..6c43d9d2 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2c9357ed17521401bb7b6733145ebcd9 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml +timeCreated: 1504855478 +licenseType: Pro +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSKAdNetworkItems.xml b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSKAdNetworkItems.xml new file mode 100644 index 00000000..bbc9a891 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSKAdNetworkItems.xml @@ -0,0 +1,55 @@ + + + cstr6suwn9.skadnetwork + + + 4fzdc2evr5.skadnetwork + 2fnua5tdw4.skadnetwork + ydx93a7ass.skadnetwork + p78axxw29g.skadnetwork + v72qych5uu.skadnetwork + ludvb6z3bs.skadnetwork + cp8zw746q7.skadnetwork + 3sh42y64q3.skadnetwork + c6k4g5qg8m.skadnetwork + s39g8k73mm.skadnetwork + 3qy4746246.skadnetwork + f38h382jlk.skadnetwork + hs6bdukanm.skadnetwork + mlmmfzh3r3.skadnetwork + v4nxqhlyqp.skadnetwork + wzmmz9fp6w.skadnetwork + su67r6k2v3.skadnetwork + yclnxrl5pm.skadnetwork + t38b2kh725.skadnetwork + 7ug5zh24hu.skadnetwork + gta9lk7p23.skadnetwork + vutu7akeur.skadnetwork + y5ghdn5j9k.skadnetwork + v9wttpbfk9.skadnetwork + n38lu8286q.skadnetwork + 47vhws6wlr.skadnetwork + kbd757ywx3.skadnetwork + 9t245vhmpl.skadnetwork + a2p9lx4jpn.skadnetwork + 22mmun2rn5.skadnetwork + 44jx6755aq.skadnetwork + k674qkevps.skadnetwork + 4468km3ulz.skadnetwork + 2u9pt9hc89.skadnetwork + 8s468mfl3y.skadnetwork + klf5c3l5u5.skadnetwork + ppxm28t8ap.skadnetwork + kbmxgpxpgc.skadnetwork + uw77j35x4d.skadnetwork + 578prtvx9j.skadnetwork + 4dzt52r2t5.skadnetwork + tl55sbb4fm.skadnetwork + c3frkrj4fj.skadnetwork + e5fvkxwrpn.skadnetwork + 8c4e2ghe7u.skadnetwork + 3rd42ekr43.skadnetwork + 97r2b46745.skadnetwork + 3qcr597p9d.skadnetwork + diff --git a/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSKAdNetworkItems.xml.meta b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSKAdNetworkItems.xml.meta new file mode 100644 index 00000000..5a672b9b --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSKAdNetworkItems.xml.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b18ecf64be00344e7b039c69e9af56bf +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/GoogleMobileAdsSKAdNetworkItems.xml +timeCreated: 1480838400 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettings.cs b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettings.cs new file mode 100644 index 00000000..3c96473c --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettings.cs @@ -0,0 +1,115 @@ +using System; +using System.IO; +using UnityEditor; +using UnityEngine; + +namespace GoogleMobileAds.Editor +{ + internal class GoogleMobileAdsSettings : ScriptableObject + { + private const string MobileAdsSettingsResDir = "Assets/GoogleMobileAds/Resources"; + + private const string MobileAdsSettingsFile = "GoogleMobileAdsSettings"; + + private const string MobileAdsSettingsFileExtension = ".asset"; + + internal static GoogleMobileAdsSettings LoadInstance() + { + // Read from resources. + var instance = Resources.Load(MobileAdsSettingsFile); + + // Create instance if null. + if (instance == null) + { + Directory.CreateDirectory(MobileAdsSettingsResDir); + instance = ScriptableObject.CreateInstance(); + string assetPath = Path.Combine(MobileAdsSettingsResDir, + MobileAdsSettingsFile + MobileAdsSettingsFileExtension); + AssetDatabase.CreateAsset(instance, assetPath); + AssetDatabase.SaveAssets(); + } + + return instance; + } + + [SerializeField] + private string adMobAndroidAppId = string.Empty; + + [SerializeField] + private string adMobIOSAppId = string.Empty; + + [SerializeField] + private bool enableKotlinXCoroutinesPackagingOption = true; + + [SerializeField] + private bool enableGradleBuildPreProcessor = true; + + [SerializeField] + private bool disableOptimizeInitialization; + + [SerializeField] + private bool disableOptimizeAdLoading; + + [SerializeField] + private string userTrackingUsageDescription; + + [SerializeField] + private string userLanguage = "en"; + + public string GoogleMobileAdsAndroidAppId + { + get { return adMobAndroidAppId; } + + set { adMobAndroidAppId = value; } + } + + public bool EnableGradleBuildPreProcessor + { + get { return enableGradleBuildPreProcessor; } + + set { enableGradleBuildPreProcessor = value; } + } + + public bool EnableKotlinXCoroutinesPackagingOption + { + get { return enableKotlinXCoroutinesPackagingOption; } + + set { enableKotlinXCoroutinesPackagingOption = value; } + } + + public string GoogleMobileAdsIOSAppId + { + get { return adMobIOSAppId; } + + set { adMobIOSAppId = value; } + } + + public bool DisableOptimizeInitialization + { + get { return disableOptimizeInitialization; } + + set { disableOptimizeInitialization = value; } + } + + public bool DisableOptimizeAdLoading + { + get { return disableOptimizeAdLoading; } + + set { disableOptimizeAdLoading = value; } + } + + public string UserTrackingUsageDescription + { + get { return userTrackingUsageDescription; } + + set { userTrackingUsageDescription = value; } + } + + public string UserLanguage + { + get { return userLanguage; } + + set { userLanguage = value; } + } + } +} diff --git a/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettings.cs.meta b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettings.cs.meta new file mode 100644 index 00000000..21467db5 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettings.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: a187246822bbb47529482707f3e0eff8 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/GoogleMobileAdsSettings.cs +timeCreated: 1480838400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: + instanceID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettingsEditor.cs b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettingsEditor.cs new file mode 100644 index 00000000..e747759d --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettingsEditor.cs @@ -0,0 +1,164 @@ +#if UNITY_6000_0_OR_NEWER || UNITY_2023 || UNITY_2022 || UNITY_2021_3_55 || UNITY_2021_3_54 || UNITY_2021_3_53 || UNITY_2021_3_52 || UNITY_2021_3_51 || UNITY_2021_3_50 || UNITY_2021_3_49 || UNITY_2021_3_48 || UNITY_2021_3_47 || UNITY_2021_3_46 || UNITY_2021_3_45 || UNITY_2021_3_44 || UNITY_2021_3_43 || UNITY_2021_3_42 || UNITY_2021_3_41 +#define ANDROID_GRADLE_BUILD_PRE_PROCESSOR_ENABLED +#endif + +using System; +using UnityEditor; +using UnityEngine; + +namespace GoogleMobileAds.Editor +{ + [InitializeOnLoad] + [CustomEditor(typeof(GoogleMobileAdsSettings))] + public class GoogleMobileAdsSettingsEditor : UnityEditor.Editor + { + SerializedProperty _appIdAndroid; + SerializedProperty _appIdiOS; + SerializedProperty _enableGradleBuildPreProcessor; + SerializedProperty _enableKotlinXCoroutinesPackagingOption; + SerializedProperty _disableOptimizeInitialization; + SerializedProperty _disableOptimizeAdLoading; + SerializedProperty _userLanguage; + SerializedProperty _userTrackingUsageDescription; + + // Using an ordered list of languages is computationally expensive when trying to create an + // array out of them for purposes of showing a dropdown menu. Care should be taken to ensure + // these arrays are kept in sync. + string[] availableLanguages = new string[] { "English", "French"}; + string[] languageCodes = new string[] { "en", "fr" }; + int selectedIndex = 0; + + [MenuItem("Assets/Google Mobile Ads/Settings...")] + public static void OpenInspector() + { + Selection.activeObject = GoogleMobileAdsSettings.LoadInstance(); + } + + public void OnEnable() + { + _appIdAndroid = serializedObject.FindProperty("adMobAndroidAppId"); + _appIdiOS = serializedObject.FindProperty("adMobIOSAppId"); + _enableGradleBuildPreProcessor = + serializedObject.FindProperty("enableGradleBuildPreProcessor"); + _enableKotlinXCoroutinesPackagingOption = + serializedObject.FindProperty("enableKotlinXCoroutinesPackagingOption"); + _disableOptimizeInitialization = serializedObject.FindProperty("disableOptimizeInitialization"); + _disableOptimizeAdLoading = serializedObject.FindProperty("disableOptimizeAdLoading"); + _userLanguage = serializedObject.FindProperty("userLanguage"); + _userTrackingUsageDescription = + serializedObject.FindProperty("userTrackingUsageDescription"); + + selectedIndex = Array.IndexOf(languageCodes, _userLanguage.stringValue); + selectedIndex = selectedIndex >= 0 ? selectedIndex : 0; + } + + public override void OnInspectorGUI() + { + // Make sure the Settings object has all recent changes. + serializedObject.Update(); + + var settings = (GoogleMobileAdsSettings)target; + + if (settings == null) + { + UnityEngine.Debug.LogError("GoogleMobileAdsSettings is null."); + return; + } + + EditorLocalization localization = new EditorLocalization(); + EditorGUI.BeginChangeCheck(); + selectedIndex = EditorGUILayout.Popup("Language", selectedIndex, availableLanguages); + if (EditorGUI.EndChangeCheck()) + { + _userLanguage.stringValue = languageCodes[selectedIndex]; + } + + EditorGUIUtility.labelWidth = 60.0f; + EditorGUILayout.LabelField(localization.ForKey("GMA_APP_ID_LABEL"), + EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + EditorGUILayout.PropertyField(_appIdAndroid, new GUIContent("Android")); + + EditorGUILayout.PropertyField(_appIdiOS, new GUIContent("iOS")); + + EditorGUILayout.HelpBox(localization.ForKey("GMA_APP_ID_HELPBOX"), MessageType.Info); + + EditorGUI.indentLevel--; + EditorGUILayout.Separator(); + + EditorGUIUtility.labelWidth = 325.0f; + EditorGUILayout.LabelField(localization.ForKey("ANDROID_SETTINGS_LABEL"), + EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + EditorGUI.BeginChangeCheck(); + +#if ANDROID_GRADLE_BUILD_PRE_PROCESSOR_ENABLED + EditorGUILayout.PropertyField( + _enableGradleBuildPreProcessor, + new GUIContent( + localization.ForKey("ENABLE_GRADLE_BUILD_PRE_PROCESSOR_SETTING"))); + + if (settings.EnableGradleBuildPreProcessor) + { + EditorGUILayout.HelpBox( + localization.ForKey("ENABLE_GRADLE_BUILD_PRE_PROCESSOR_HELPBOX"), + MessageType.Info); + } +#endif + + EditorGUILayout.PropertyField( + _enableKotlinXCoroutinesPackagingOption, + new GUIContent( + localization.ForKey("ENABLE_KOTLINX_COROUTINES_PACKAGING_OPTION_SETTING"))); + + if (settings.EnableKotlinXCoroutinesPackagingOption) + { + EditorGUILayout.HelpBox( + localization.ForKey("ENABLE_KOTLINX_COROUTINES_PACKAGING_OPTION_HELPBOX"), + MessageType.Info); + } + + + EditorGUILayout.PropertyField( + _disableOptimizeInitialization, + new GUIContent(localization.ForKey("DISABLE_OPTIMIZE_INITIALIZATION_SETTING"))); + if (settings.DisableOptimizeInitialization) + { + EditorGUILayout.HelpBox(localization.ForKey("DISABLE_OPTIMIZE_INITIALIZATION_HELPBOX"), + MessageType.Info); + } + + EditorGUILayout.PropertyField( + _disableOptimizeAdLoading, + new GUIContent(localization.ForKey("DISABLE_OPTIMIZE_AD_LOADING_SETTING"))); + + if (settings.DisableOptimizeAdLoading) + { + EditorGUILayout.HelpBox(localization.ForKey("DISABLE_OPTIMIZE_AD_LOADING_HELPBOX"), + MessageType.Info); + } + + EditorGUI.indentLevel--; + EditorGUILayout.Separator(); + + EditorGUIUtility.labelWidth = 300.0f; + EditorGUILayout.LabelField(localization.ForKey("UMP_SPECIFIC_SETTINGS_LABEL"), + EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + EditorGUILayout.PropertyField( + _userTrackingUsageDescription, + new GUIContent(localization.ForKey("USER_TRACKING_USAGE_DESCRIPTION_SETTING"))); + + EditorGUILayout.HelpBox(localization.ForKey("USER_TRACKING_USAGE_DESCRIPTION_HELPBOX"), + MessageType.Info); + + EditorGUI.indentLevel--; + EditorGUILayout.Separator(); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettingsEditor.cs.meta b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettingsEditor.cs.meta new file mode 100644 index 00000000..62c05070 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettingsEditor.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: 8afb1338afbd34c4fac628cd6175c032 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/GoogleMobileAdsSettingsEditor.cs +timeCreated: 1480838400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: + instanceID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml b/Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml new file mode 100644 index 00000000..272f4f9e --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml @@ -0,0 +1,16 @@ + + + + + https://maven.aliyun.com/repository/google + + + + + + + https://github.com/CocoaPods/Specs + + + + diff --git a/Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml.meta b/Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml.meta new file mode 100644 index 00000000..5694d380 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f7225ce7103aa4556994e2c2be08cd37 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/GoogleUmpDependencies.xml +timeCreated: 1480838400 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/GradleProcessor.cs b/Assets/GoogleMobileAds/Editor/GradleProcessor.cs new file mode 100644 index 00000000..84f0901e --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GradleProcessor.cs @@ -0,0 +1,99 @@ +using System; +using System.IO; +using UnityEditor.Android; + +using GoogleMobileAds.Editor; + +public class GradleProcessor : IPostGenerateGradleAndroidProject +{ + public int callbackOrder { get { return 0; } } + + private const string GMA_PACKAGING_OPTIONS_LAUNCHER = + "apply from: '../unityLibrary/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'"; + + private const string GMA_PACKAGING_OPTIONS = + "apply from: 'GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'"; + + private const string GMA_VALIDATE_GRADLE_DEPENDENCIES = + "gradle.projectsEvaluated { apply from: 'GoogleMobileAdsPlugin.androidlib/validate_dependencies.gradle' }"; + + public void OnPostGenerateGradleAndroidProject(string path) + { + var rootDirinfo = new DirectoryInfo(path); + var rootPath = rootDirinfo.Parent.FullName; + var gradleList = Directory.GetFiles(rootPath, "build.gradle", SearchOption.AllDirectories); + + var packagingOptionsLauncher = GMA_PACKAGING_OPTIONS_LAUNCHER; + var packagingOptionsUnityLibrary = GMA_PACKAGING_OPTIONS; + var validateGradleDependencies = GMA_VALIDATE_GRADLE_DEPENDENCIES; + + // Windows path requires '\\' +#if UNITY_EDITOR_WIN + packagingOptionsLauncher = packagingOptionsLauncher.Replace("/","\\\\"); + packagingOptionsUnityLibrary = packagingOptionsUnityLibrary.Replace("/","\\\\"); + validateGradleDependencies = validateGradleDependencies.Replace("/","\\\\"); +#endif + + foreach (var gradlepath in gradleList) + { + if (!gradlepath.Contains("unityLibrary/build.gradle") && + !gradlepath.Contains("launcher/build.gradle") && + !gradlepath.Contains("unityLibrary\\build.gradle") && + !gradlepath.Contains("launcher\\build.gradle")) + { + continue; + } + + var contents = File.ReadAllText(gradlepath); + // Delete existing packaging_options and then set it if enabled. + if (contents.Contains("packaging_options.gradle")) + { + contents = DeleteLineContainingSubstring(contents, "packaging_options.gradle"); + } + + if (!GoogleMobileAdsSettings.LoadInstance().EnableKotlinXCoroutinesPackagingOption) + { + File.WriteAllText(gradlepath, contents); + continue; + } + + if (gradlepath.Contains("unityLibrary/build.gradle") || gradlepath.Contains("unityLibrary\\build.gradle")) + { + contents += Environment.NewLine + packagingOptionsUnityLibrary; + } + else if (gradlepath.Contains("launcher/build.gradle") || gradlepath.Contains("launcher\\build.gradle")) + { + contents += Environment.NewLine + packagingOptionsLauncher; + } + File.WriteAllText(gradlepath, contents); + } + + // TODO (b/311555203) Use delete then write approach above to update this Gradle script too. + var unityLibraryGradle = Directory.GetFiles(rootPath, "unityLibrary/build.gradle", + SearchOption.TopDirectoryOnly); + + foreach (var gradlePath in unityLibraryGradle) + { + var contents = File.ReadAllText(gradlePath); + if (contents.Contains(validateGradleDependencies)) + { + contents = DeleteLineContainingSubstring(contents, validateGradleDependencies); + File.WriteAllText(gradlePath, contents); + } + } + } + + private string DeleteLineContainingSubstring(string file, string substring) + { + string newFile = ""; + var lines = file.Split(new[] { Environment.NewLine }, StringSplitOptions.None); + foreach (var line in lines) + { + if (!line.Contains(substring)) + { + newFile += line + Environment.NewLine; + } + } + return newFile; + } +} diff --git a/Assets/GoogleMobileAds/Editor/GradleProcessor.cs.meta b/Assets/GoogleMobileAds/Editor/GradleProcessor.cs.meta new file mode 100644 index 00000000..b3a3b5c4 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/GradleProcessor.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: ee0016d28899644a9bbcb67f438d41bd +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/GradleProcessor.cs +timeCreated: 1480838400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: + instanceID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/ManifestProcessor.cs b/Assets/GoogleMobileAds/Editor/ManifestProcessor.cs new file mode 100644 index 00000000..be3d1749 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/ManifestProcessor.cs @@ -0,0 +1,249 @@ +// Copyright (C) 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if UNITY_ANDROID +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml.Linq; + +using UnityEditor; +using UnityEditor.Build; +#if UNITY_2018_1_OR_NEWER +using UnityEditor.Build.Reporting; +#endif +using UnityEngine; +using GoogleMobileAds.Editor; + +#if UNITY_2018_1_OR_NEWER +public class ManifestProcessor : IPreprocessBuildWithReport +#else +public class ManifestProcessor : IPreprocessBuild +#endif +{ + private const string MANIFEST_RELATIVE_PATH = + "Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml"; + + private const string PROPERTIES_RELATIVE_PATH = + "Plugins/Android/GoogleMobileAdsPlugin.androidlib/project.properties"; + + private const string METADATA_APPLICATION_ID = + "com.google.android.gms.ads.APPLICATION_ID"; + + private const string METADATA_DELAY_APP_MEASUREMENT_INIT = + "com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT"; + + private const string METADATA_OPTIMIZE_INITIALIZATION = + "com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION"; + + private const string METADATA_OPTIMIZE_AD_LOADING = + "com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING"; + + // LINT.IfChange + private const string METADATA_UNITY_VERSION = "com.google.unity.ads.UNITY_VERSION"; + // LINT.ThenChange(//depot/google3/javatests/com/google/android/gmscore/integ/modules/admob/tests/robolectric/src/com/google/android/gms/ads/nonagon/signals/StaticDeviceSignalSourceTest.java) + + private XNamespace ns = "http://schemas.android.com/apk/res/android"; + + public int callbackOrder { get { return 0; } } + +#if UNITY_2018_1_OR_NEWER + public void OnPreprocessBuild(BuildReport report) +#else + public void OnPreprocessBuild(BuildTarget target, string path) +#endif + { + string manifestPath = Path.Combine(Application.dataPath, MANIFEST_RELATIVE_PATH); + string propertiesPath = Path.Combine(Application.dataPath, PROPERTIES_RELATIVE_PATH); + + /* + * Handle importing GMA via Unity Package Manager. + */ + EditorPathUtils pathUtils = + ScriptableObject.CreateInstance(); + if (pathUtils.IsPackageRootPath()) + { + // pathUtils.GetParentDirectoryAssetPath() returns "Packages/.../GoogleMobileAds" but + // Plugins is at the same level of GoogleMobileAds so we go up one directory before + // appending MANIFEST_RELATIVE_PATH. + string packagesPathPrefix = + Path.GetDirectoryName(pathUtils.GetParentDirectoryAssetPath()); + manifestPath = Path.Combine(packagesPathPrefix, MANIFEST_RELATIVE_PATH); + propertiesPath = Path.Combine(packagesPathPrefix, PROPERTIES_RELATIVE_PATH); + } + + if (AssetDatabase.IsValidFolder("Packages/com.google.ads.mobile")) + { + manifestPath = Path.Combine("Packages/com.google.ads.mobile", MANIFEST_RELATIVE_PATH); + } + + if (!File.Exists(manifestPath)) + { + manifestPath = Path.Combine(Path.GetDirectoryName(manifestPath), "src", "main", + "AndroidManifest.xml"); + } + + XDocument manifest = null; + try + { + manifest = XDocument.Load(manifestPath); + } + #pragma warning disable 0168 + catch (IOException e) + #pragma warning restore 0168 + { + StopBuildWithMessage("AndroidManifest.xml is missing. Try re-importing the plugin."); + } + + XElement elemManifest = manifest.Element("manifest"); + if (elemManifest == null) + { + StopBuildWithMessage("AndroidManifest.xml is not valid. Try re-importing the plugin."); + } + + XElement elemApplication = elemManifest.Element("application"); + if (elemApplication == null) + { + StopBuildWithMessage("AndroidManifest.xml is not valid. Try re-importing the plugin."); + } + + GoogleMobileAdsSettings instance = GoogleMobileAdsSettings.LoadInstance(); + string appId = instance.GoogleMobileAdsAndroidAppId.Trim(); + + if (appId.Length == 0) + { + StopBuildWithMessage( + "Android Google Mobile Ads app ID is empty. Please enter a valid app ID to run ads properly."); + } + + IEnumerable metas = elemApplication.Descendants() + .Where( elem => elem.Name.LocalName.Equals("meta-data")); + + SetMetadataElement(elemApplication, + metas, + METADATA_APPLICATION_ID, + appId); + + SetMetadataElement(elemApplication, + metas, + METADATA_OPTIMIZE_INITIALIZATION, + !instance.DisableOptimizeInitialization, + true); + + SetMetadataElement(elemApplication, + metas, + METADATA_OPTIMIZE_AD_LOADING, + !instance.DisableOptimizeAdLoading, + true); + + SetMetadataElement(elemApplication, + metas, + METADATA_UNITY_VERSION, + Application.unityVersion); + + elemManifest.Save(manifestPath); + } + + private XElement CreateMetaElement(string name, object value) + { + return new XElement("meta-data", + new XAttribute(ns + "name", name), new XAttribute(ns + "value", value)); + } + + private XElement GetMetaElement(IEnumerable metas, string metaName) + { + foreach (XElement elem in metas) + { + IEnumerable attrs = elem.Attributes(); + foreach (XAttribute attr in attrs) + { + if (attr.Name.Namespace.Equals(ns) + && attr.Name.LocalName.Equals("name") && attr.Value.Equals(metaName)) + { + return elem; + } + } + } + return null; + } + + /// + /// Utility for setting a metadata element + /// + /// application element + /// all metadata elements + /// name of the element to set + /// value to set + private void SetMetadataElement(XElement elemApplication, + IEnumerable metas, + string metadataName, + string metadataValue) + { + XElement element = GetMetaElement(metas, metadataName); + if (element == null) + { + elemApplication.Add(CreateMetaElement(metadataName, metadataValue)); + } + else + { + element.SetAttributeValue(ns + "value", metadataValue); + } + } + + /// + /// Utility for setting a metadata element + /// + /// application element + /// all metadata elements + /// name of the element to set + /// value to set + /// If metadataValue is default, node will be removed. + private void SetMetadataElement(XElement elemApplication, + IEnumerable metas, + string metadataName, + bool metadataValue, + bool defaultValue = false) + { + XElement element = GetMetaElement(metas, metadataName); + if (metadataValue != defaultValue) + { + if (element == null) + { + elemApplication.Add(CreateMetaElement(metadataName, metadataValue)); + } + else + { + element.SetAttributeValue(ns + "value", metadataValue); + } + } + else + { + if (element != null) + { + element.Remove(); + } + } + } + + private void StopBuildWithMessage(string message) + { + string prefix = "[GoogleMobileAds] "; + #if UNITY_2017_1_OR_NEWER + throw new BuildPlayerWindow.BuildMethodException(prefix + message); + #else + throw new OperationCanceledException(prefix + message); + #endif + } +} +#endif diff --git a/Assets/GoogleMobileAds/Editor/ManifestProcessor.cs.meta b/Assets/GoogleMobileAds/Editor/ManifestProcessor.cs.meta new file mode 100644 index 00000000..192e2770 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/ManifestProcessor.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: c9ee5d47594eb43a19e795c834fdc044 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/ManifestProcessor.cs +timeCreated: 1480838400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: + instanceID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/PListProcessor.cs b/Assets/GoogleMobileAds/Editor/PListProcessor.cs new file mode 100644 index 00000000..3f71e8a4 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/PListProcessor.cs @@ -0,0 +1,232 @@ +// Copyright (C) 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#if UNITY_IPHONE || UNITY_IOS +using System; +using System.Collections.Generic; +using System.IO; +using System.Xml; + +using UnityEditor; +using UnityEditor.Callbacks; +using UnityEditor.iOS.Xcode; +using UnityEngine; + +using GoogleMobileAds.Editor; + +public static class PListProcessor +{ + private const string KEY_SK_ADNETWORK_ITEMS = "SKAdNetworkItems"; + + private const string KEY_SK_ADNETWORK_ID = "SKAdNetworkIdentifier"; + + private const string SKADNETWORKS_RELATIVE_PATH = "GoogleMobileAds/Editor/GoogleMobileAdsSKAdNetworkItems.xml"; + + private const string SKADNETWORKS_FILE_NAME = "GoogleMobileAdsSKAdNetworkItems.xml"; + + [PostProcessBuild] + public static void OnPostProcessBuild(BuildTarget buildTarget, string path) + { + string plistPath = Path.Combine(path, "Info.plist"); + PlistDocument plist = new PlistDocument(); + plist.ReadFromFile(plistPath); + + GoogleMobileAdsSettings instance = GoogleMobileAdsSettings.LoadInstance(); + string appId = instance.GoogleMobileAdsIOSAppId.Trim(); + if (appId.Length == 0) + { + NotifyBuildFailure( + "iOS Google Mobile Ads app ID is empty. Please enter a valid app ID to run ads properly."); + } + else + { + plist.root.SetString("GADApplicationIdentifier", appId); + } + + string userTrackingDescription = instance.UserTrackingUsageDescription; + if (!string.IsNullOrEmpty(userTrackingDescription)) + { + plist.root.SetString("NSUserTrackingUsageDescription", userTrackingDescription); + } + + List skNetworkIds = ReadSKAdNetworkIdentifiersFromXML(); + if (skNetworkIds.Count > 0) + { + AddSKAdNetworkIdentifier(plist, skNetworkIds); + } + + string unityVersion = Application.unityVersion; + if (!string.IsNullOrEmpty(unityVersion)) + { + plist.root.SetString("GADUUnityVersion", unityVersion); + } + + File.WriteAllText(plistPath, plist.WriteToString()); + } + + private static PlistElementArray GetSKAdNetworkItemsArray(PlistDocument document) + { + PlistElementArray array; + if (document.root.values.ContainsKey(KEY_SK_ADNETWORK_ITEMS)) + { + try + { + PlistElement element; + document.root.values.TryGetValue(KEY_SK_ADNETWORK_ITEMS, out element); + array = element.AsArray(); + } +#pragma warning disable 0168 + catch (Exception e) +#pragma warning restore 0168 + { + // The element is not an array type. + array = null; + } + } + else + { + array = document.root.CreateArray(KEY_SK_ADNETWORK_ITEMS); + } + return array; + } + + private static List ReadSKAdNetworkIdentifiersFromXML() + { + List skAdNetworkItems = new List(); + + string path = Path.Combine(Application.dataPath, SKADNETWORKS_RELATIVE_PATH); + + /* + * Handle importing GMA via Unity Package Manager. + */ + EditorPathUtils pathUtils = ScriptableObject.CreateInstance(); + if (pathUtils.IsPackageRootPath()) + { + string parentDirectoryPath = pathUtils.GetDirectoryAssetPath(); + path = Path.Combine(parentDirectoryPath, SKADNETWORKS_FILE_NAME); + } + + try + { + if (!File.Exists(path)) + { + throw new FileNotFoundException(); + } + using (FileStream fs = File.OpenRead(path)) + { + XmlDocument document = new XmlDocument(); + document.Load(fs); + + XmlNode root = document.FirstChild; + + XmlNodeList nodes = root.SelectNodes(KEY_SK_ADNETWORK_ID); + foreach (XmlNode node in nodes) + { + skAdNetworkItems.Add(node.InnerText); + } + } + } + #pragma warning disable 0168 + catch (FileNotFoundException e) + #pragma warning restore 0168 + { + NotifyBuildFailure("GoogleMobileAdsSKAdNetworkItems.xml not found", false); + } + catch (IOException e) + { + NotifyBuildFailure("Failed to read GoogleMobileAdsSKAdNetworkIds.xml: " + e.Message, false); + } + + return skAdNetworkItems; + } + + private static void AddSKAdNetworkIdentifier(PlistDocument document, List skAdNetworkIds) + { + PlistElementArray array = GetSKAdNetworkItemsArray(document); + if (array != null) + { + foreach (string id in skAdNetworkIds) + { + if (!ContainsSKAdNetworkIdentifier(array, id)) + { + PlistElementDict added = array.AddDict(); + added.SetString(KEY_SK_ADNETWORK_ID, id); + } + } + } + else + { + NotifyBuildFailure("SKAdNetworkItems element already exists in Info.plist, but is not an array.", false); + } + } + + private static bool ContainsSKAdNetworkIdentifier(PlistElementArray skAdNetworkItemsArray, string id) + { + foreach (PlistElement elem in skAdNetworkItemsArray.values) + { + try + { + PlistElementDict elemInDict = elem.AsDict(); + PlistElement value; + bool identifierExists = elemInDict.values.TryGetValue(KEY_SK_ADNETWORK_ID, out value); + + if (identifierExists && value.AsString().Equals(id)) + { + return true; + } + } +#pragma warning disable 0168 + catch (Exception e) +#pragma warning restore 0168 + { + // Do nothing + } + } + + return false; + } + + private static void NotifyBuildFailure(string message, bool showOpenSettingsButton = true) + { + string dialogTitle = "Google Mobile Ads"; + string dialogMessage = "Error: " + message; + + if (showOpenSettingsButton) + { + bool openSettings = EditorUtility.DisplayDialog( + dialogTitle, dialogMessage, "Open Settings", "Close"); + if (openSettings) + { + GoogleMobileAdsSettingsEditor.OpenInspector(); + } + } + else + { + EditorUtility.DisplayDialog(dialogTitle, dialogMessage, "Close"); + } + + ThrowBuildException("[GoogleMobileAds] " + message); + } + + private static void ThrowBuildException(string message) + { +#if UNITY_2017_1_OR_NEWER + throw new BuildPlayerWindow.BuildMethodException(message); +#else + throw new OperationCanceledException(message); +#endif + } +} + +#endif diff --git a/Assets/GoogleMobileAds/Editor/PListProcessor.cs.meta b/Assets/GoogleMobileAds/Editor/PListProcessor.cs.meta new file mode 100644 index 00000000..9e280129 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/PListProcessor.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: d1d26b084dc244c8c818f67662e51f6c +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/PListProcessor.cs +timeCreated: 1480838400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: + instanceID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources.meta b/Assets/GoogleMobileAds/Editor/Resources.meta new file mode 100644 index 00000000..2b14cb57 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ed0572a2674df6a419597cb8b46979a6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds.meta new file mode 100644 index 00000000..6784ece0 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 17f4ec0b1e0da9e47b7cd6e902fa6143 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages.meta new file mode 100644 index 00000000..def3f232 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 329d381b12b44f544b4ed3d6f613da8e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/1024x768.png b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/1024x768.png new file mode 100644 index 00000000..2c1095be Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/1024x768.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/1024x768.png.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/1024x768.png.meta new file mode 100644 index 00000000..2cb626c6 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/1024x768.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 4c69db43dbd474a2987be5807129b4cc +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/1024x768.png +timeCreated: 1480838400 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spritePixelsToUnits: 100 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/300x250.png b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/300x250.png new file mode 100644 index 00000000..7ae8fb94 Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/300x250.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/300x250.png.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/300x250.png.meta new file mode 100644 index 00000000..48b92f86 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/300x250.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 898f886a39d714db5b90d2c36676c894 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/300x250.png +timeCreated: 1480838400 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spritePixelsToUnits: 100 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x100.png b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x100.png new file mode 100644 index 00000000..3e828936 Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x100.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x100.png.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x100.png.meta new file mode 100644 index 00000000..fbcfbe4d --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x100.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 1a2723ddf964e4565a408007ab387283 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x100.png +timeCreated: 1480838400 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spritePixelsToUnits: 100 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x480.png b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x480.png new file mode 100644 index 00000000..4db44105 Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x480.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x480.png.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x480.png.meta new file mode 100644 index 00000000..291e0308 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x480.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 77d9c04b43d404f44ab60d7159b279bb +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x480.png +timeCreated: 1480838400 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spritePixelsToUnits: 100 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x50.png b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x50.png new file mode 100644 index 00000000..f01e80f6 Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x50.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x50.png.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x50.png.meta new file mode 100644 index 00000000..0aad671c --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x50.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 5a6531d4c9c484d679a2d6f9e6fefed5 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x50.png +timeCreated: 1480838400 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spritePixelsToUnits: 100 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/468x60.png b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/468x60.png new file mode 100644 index 00000000..26ec5e02 Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/468x60.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/468x60.png.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/468x60.png.meta new file mode 100644 index 00000000..ffa7235c --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/468x60.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 74358f5fb13a549aabac4a5a7ac76739 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/468x60.png +timeCreated: 1480838400 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spritePixelsToUnits: 100 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/480x320.png b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/480x320.png new file mode 100644 index 00000000..e07d3500 Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/480x320.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/480x320.png.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/480x320.png.meta new file mode 100644 index 00000000..d99c40f8 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/480x320.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: d30303c99ba3f4b9b9924da34e6d742d +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/480x320.png +timeCreated: 1480838400 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spritePixelsToUnits: 100 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/728x90.png b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/728x90.png new file mode 100644 index 00000000..8d5a3d7a Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/728x90.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/728x90.png.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/728x90.png.meta new file mode 100644 index 00000000..3322a5ad --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/728x90.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: cfead63ff9d9d48e2b4ba3c2dee7cea9 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/728x90.png +timeCreated: 1480838400 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spritePixelsToUnits: 100 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/768x1024.png b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/768x1024.png new file mode 100644 index 00000000..d28e55cd Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/768x1024.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/768x1024.png.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/768x1024.png.meta new file mode 100644 index 00000000..5f64fbe4 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/768x1024.png.meta @@ -0,0 +1,103 @@ +fileFormatVersion: 2 +guid: 8a53f9c63a5e94b14a98698a7b07365b +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/768x1024.png +timeCreated: 1480838400 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spritePixelsToUnits: 100 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/AdInspectorHome.png b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/AdInspectorHome.png new file mode 100644 index 00000000..9c97b5e3 Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/AdInspectorHome.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/AdInspectorHome.png.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/AdInspectorHome.png.meta new file mode 100644 index 00000000..958db490 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/AdInspectorHome.png.meta @@ -0,0 +1,131 @@ +fileFormatVersion: 2 +guid: d271d6a1aed6848559ecad6252e333b1 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/AdInspectorHome.png +timeCreated: 1480838400 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: + x: 0.5 + y: 0.5 + spritePixelsToUnits: 100 + spriteBorder: + x: 0 + y: 0 + z: 0 + w: 0 + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector.meta new file mode 100644 index 00000000..29fd2b4c --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 20f10f9bcaaef3f4d85b9f5e4db46f90 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector/768x1024.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector/768x1024.prefab new file mode 100644 index 00000000..7ad712a2 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector/768x1024.prefab @@ -0,0 +1,504 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1026234277025590 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224770140206732756} + - component: {fileID: 222623742081011482} + - component: {fileID: 114466248550890148} + - component: {fileID: 114214230567826922} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224770140206732756 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026234277025590} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224688741740444772} + m_Father: {fileID: 224247655386807502} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 1350, y: -100} + m_SizeDelta: {x: 150, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222623742081011482 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026234277025590} + m_CullTransparentMesh: 1 +--- !u!114 &114466248550890148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026234277025590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114214230567826922 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026234277025590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114466248550890148} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &1168051963893118 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224349703481187764} + - component: {fileID: 223920107105332924} + - component: {fileID: 114572656286436090} + - component: {fileID: 114715352366433274} + m_Layer: 5 + m_Name: 768x1024 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224349703481187764 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168051963893118} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224188954884660388} + - {fileID: 224247655386807502} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &223920107105332924 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &114572656286436090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1440, y: 2960} + m_ScreenMatchMode: 2 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &114715352366433274 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &1455544211993956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224188954884660388} + - component: {fileID: 222991998422378294} + - component: {fileID: 114288914574884706} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224188954884660388 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455544211993956} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 224349703481187764} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222991998422378294 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455544211993956} + m_CullTransparentMesh: 1 +--- !u!114 &114288914574884706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455544211993956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.80784315} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1519554490061234 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224688741740444772} + - component: {fileID: 222698607200636900} + - component: {fileID: 114090591266759776} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224688741740444772 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519554490061234} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 224770140206732756} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222698607200636900 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519554490061234} + m_CullTransparentMesh: 1 +--- !u!114 &114090591266759776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519554490061234} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: X +--- !u!1 &1919592978971710 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224247655386807502} + - component: {fileID: 222996861862976686} + - component: {fileID: 114508546300043044} + - component: {fileID: 114645982259750808} + m_Layer: 5 + m_Name: Ad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224247655386807502 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1919592978971710} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224770140206732756} + m_Father: {fileID: 224349703481187764} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222996861862976686 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1919592978971710} + m_CullTransparentMesh: 1 +--- !u!114 &114508546300043044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1919592978971710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: d271d6a1aed6848559ecad6252e333b1, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114645982259750808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1919592978971710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114508546300043044} + m_OnClick: + m_PersistentCalls: + m_Calls: [] \ No newline at end of file diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector/768x1024.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector/768x1024.prefab.meta new file mode 100644 index 00000000..c29f3503 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector/768x1024.prefab.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d09dfea4c722a4e239e771200d3639cc +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector/768x1024.prefab +timeCreated: 1480838400 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen.meta new file mode 100644 index 00000000..5bddca42 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9c16201fd149155478130c95955794d4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/1024x768.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/1024x768.prefab new file mode 100644 index 00000000..84a5e43b --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/1024x768.prefab @@ -0,0 +1,472 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1506555509391478} + m_IsPrefabParent: 1 +--- !u!1 &1048958803402864 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224396785236523192} + - component: {fileID: 222833382448378890} + - component: {fileID: 114429971286294426} + - component: {fileID: 114825474698679592} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1086316119044956 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224412111100384724} + - component: {fileID: 222123731056135654} + - component: {fileID: 114947809371510874} + - component: {fileID: 114962388913432892} + m_Layer: 5 + m_Name: Ad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1506555509391478 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224049503732257422} + - component: {fileID: 223443791425986802} + - component: {fileID: 114420769206196330} + - component: {fileID: 114535206133587424} + m_Layer: 5 + m_Name: 1024x768 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1701400232489060 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224410274476360834} + - component: {fileID: 222763382731799498} + - component: {fileID: 114000294713222290} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1761048403840336 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224408585172404824} + - component: {fileID: 222519335633903876} + - component: {fileID: 114502356579168518} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114000294713222290 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1701400232489060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 45 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Close Ad +--- !u!114 &114420769206196330 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1506555509391478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2960, y: 1440} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114429971286294426 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1048958803402864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114502356579168518 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1761048403840336} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.809} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114535206133587424 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1506555509391478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &114825474698679592 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1048958803402864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114429971286294426} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114947809371510874 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086316119044956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 4c69db43dbd474a2987be5807129b4cc, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114962388913432892 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086316119044956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114947809371510874} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &222123731056135654 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086316119044956} +--- !u!222 &222519335633903876 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1761048403840336} +--- !u!222 &222763382731799498 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1701400232489060} +--- !u!222 &222833382448378890 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1048958803402864} +--- !u!223 &223443791425986802 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1506555509391478} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224049503732257422 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1506555509391478} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224408585172404824} + - {fileID: 224412111100384724} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224396785236523192 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1048958803402864} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224410274476360834} + m_Father: {fileID: 224412111100384724} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 169.8, y: -35.9} + m_SizeDelta: {x: 339.8, y: 71.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224408585172404824 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1761048403840336} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224049503732257422} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224410274476360834 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1701400232489060} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224396785236523192} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224412111100384724 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086316119044956} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224396785236523192} + m_Father: {fileID: 224049503732257422} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 2000, y: 1436} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/1024x768.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/1024x768.prefab.meta new file mode 100644 index 00000000..4cb0aff7 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/1024x768.prefab.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 30454d768d0994255b52eafa89dad8e2 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/1024x768.prefab +timeCreated: 1480838400 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/768x1024.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/768x1024.prefab new file mode 100644 index 00000000..57e57d4f --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/768x1024.prefab @@ -0,0 +1,472 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1168051963893118} + m_IsPrefabParent: 1 +--- !u!1 &1026234277025590 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224770140206732756} + - component: {fileID: 222623742081011482} + - component: {fileID: 114466248550890148} + - component: {fileID: 114214230567826922} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1168051963893118 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224349703481187764} + - component: {fileID: 223920107105332924} + - component: {fileID: 114572656286436090} + - component: {fileID: 114715352366433274} + m_Layer: 5 + m_Name: 768x1024 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1455544211993956 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224188954884660388} + - component: {fileID: 222991998422378294} + - component: {fileID: 114288914574884706} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1519554490061234 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224688741740444772} + - component: {fileID: 222698607200636900} + - component: {fileID: 114090591266759776} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1919592978971710 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224247655386807502} + - component: {fileID: 222996861862976686} + - component: {fileID: 114508546300043044} + - component: {fileID: 114645982259750808} + m_Layer: 5 + m_Name: Ad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114090591266759776 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1519554490061234} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Close Ad +--- !u!114 &114214230567826922 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1026234277025590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114466248550890148} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114288914574884706 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1455544211993956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.80784315} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114466248550890148 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1026234277025590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114508546300043044 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1919592978971710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 8a53f9c63a5e94b14a98698a7b07365b, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114572656286436090 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1440, y: 2960} + m_ScreenMatchMode: 2 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114645982259750808 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1919592978971710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114508546300043044} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114715352366433274 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!222 &222623742081011482 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1026234277025590} +--- !u!222 &222698607200636900 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1519554490061234} +--- !u!222 &222991998422378294 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1455544211993956} +--- !u!222 &222996861862976686 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1919592978971710} +--- !u!223 &223920107105332924 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224188954884660388 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1455544211993956} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224349703481187764} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224247655386807502 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1919592978971710} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224770140206732756} + m_Father: {fileID: 224349703481187764} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1436, y: 2000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224349703481187764 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1168051963893118} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224188954884660388} + - {fileID: 224247655386807502} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224688741740444772 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1519554490061234} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224770140206732756} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 9.1, y: -5.6} + m_SizeDelta: {x: 18.2, y: 11.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224770140206732756 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1026234277025590} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224688741740444772} + m_Father: {fileID: 224247655386807502} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 172.1, y: -37.5} + m_SizeDelta: {x: 344.1, y: 75.2} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/768x1024.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/768x1024.prefab.meta new file mode 100644 index 00000000..a4e2eb9a --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/768x1024.prefab.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7d86e5c9e525f4fadbbea7ee54246b94 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/768x1024.prefab +timeCreated: 1480838400 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners.meta new file mode 100644 index 00000000..7f196daf --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 83c273847e911bc42ae46dee711c7f91 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/ADAPTIVE.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/ADAPTIVE.prefab new file mode 100644 index 00000000..92974d75 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/ADAPTIVE.prefab @@ -0,0 +1,292 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1269133880751524} + m_IsPrefabParent: 1 +--- !u!1 &1269133880751524 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224903529129881488} + - component: {fileID: 223611447948025624} + - component: {fileID: 114814154768417776} + - component: {fileID: 114782070117714080} + m_Layer: 5 + m_Name: ADAPTIVE + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1399486727572022 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224568288566307878} + - component: {fileID: 222163316230224026} + - component: {fileID: 114350348470438990} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1542249946006888 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224920579879238496} + - component: {fileID: 222908399171909076} + - component: {fileID: 114302043590274744} + - component: {fileID: 114573167377799528} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114302043590274744 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1542249946006888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114350348470438990 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1399486727572022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 20 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: This is a Test Adaptive Banner +--- !u!114 &114573167377799528 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1542249946006888} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114302043590274744} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114782070117714080 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1269133880751524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2960, y: 1440} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114814154768417776 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1269133880751524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!222 &222163316230224026 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1399486727572022} +--- !u!222 &222908399171909076 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1542249946006888} +--- !u!223 &223611447948025624 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1269133880751524} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224568288566307878 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1399486727572022} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224920579879238496} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 2.4, y: 0.000043869} + m_SizeDelta: {x: 362.7, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224903529129881488 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1269133880751524} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224920579879238496} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224920579879238496 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1542249946006888} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224568288566307878} + m_Father: {fileID: 224903529129881488} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -800} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/ADAPTIVE.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/ADAPTIVE.prefab.meta new file mode 100644 index 00000000..02fe8359 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/ADAPTIVE.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: b2a3ea2f1837847d9981501e0eeca085 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/ADAPTIVE.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/BANNER.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/BANNER.prefab new file mode 100644 index 00000000..598e792d --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/BANNER.prefab @@ -0,0 +1,217 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1922916089534430} + m_IsPrefabParent: 1 +--- !u!1 &1746883794458476 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224102598220924924} + - component: {fileID: 222746751799034550} + - component: {fileID: 114085332113477484} + - component: {fileID: 114158516453251810} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1922916089534430 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224975965904302652} + - component: {fileID: 223151453590684250} + - component: {fileID: 114308861063183428} + - component: {fileID: 114122664426735340} + m_Layer: 5 + m_Name: BANNER + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114085332113477484 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1746883794458476} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 5a6531d4c9c484d679a2d6f9e6fefed5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114122664426735340 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1922916089534430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1280, y: 800} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114158516453251810 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1746883794458476} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114085332113477484} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114308861063183428 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1922916089534430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!222 &222746751799034550 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1746883794458476} +--- !u!223 &223151453590684250 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1922916089534430} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224102598220924924 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1746883794458476} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224975965904302652} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -20} + m_SizeDelta: {x: 260, y: 40} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224975965904302652 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1922916089534430} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224102598220924924} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/BANNER.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/BANNER.prefab.meta new file mode 100644 index 00000000..c9a7ca70 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/BANNER.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: b2a8ac187bcca47a286cb00c8094da36 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/BANNER.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/CENTER.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/CENTER.prefab new file mode 100644 index 00000000..97586f9e --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/CENTER.prefab @@ -0,0 +1,292 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1416738728138556} + m_IsPrefabParent: 1 +--- !u!1 &1136984565866652 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224716041920118618} + - component: {fileID: 222921256881353822} + - component: {fileID: 114680691601076658} + - component: {fileID: 114238919180307928} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1367349203345002 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224396676929103998} + - component: {fileID: 222812030589784238} + - component: {fileID: 114064202109378262} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1416738728138556 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224556414654429204} + - component: {fileID: 223868036777227868} + - component: {fileID: 114335156126952382} + - component: {fileID: 114348016595591796} + m_Layer: 5 + m_Name: CENTER + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114064202109378262 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1367349203345002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 20 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: This is a Test Smart Banner +--- !u!114 &114238919180307928 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1136984565866652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114680691601076658} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114335156126952382 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1416738728138556} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &114348016595591796 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1416738728138556} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2960, y: 1440} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114680691601076658 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1136984565866652} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &222812030589784238 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1367349203345002} +--- !u!222 &222921256881353822 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1136984565866652} +--- !u!223 &223868036777227868 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1416738728138556} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224396676929103998 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1367349203345002} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224716041920118618} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 2.4, y: 0.000043869} + m_SizeDelta: {x: 362.7, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224556414654429204 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1416738728138556} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224716041920118618} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224716041920118618 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1136984565866652} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224396676929103998} + m_Father: {fileID: 224556414654429204} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/CENTER.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/CENTER.prefab.meta new file mode 100644 index 00000000..767d184f --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/CENTER.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 452d0eeb28d68420d95c05a6712689be +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/CENTER.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/FULL_BANNER.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/FULL_BANNER.prefab new file mode 100644 index 00000000..e22051e0 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/FULL_BANNER.prefab @@ -0,0 +1,217 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1693671887655770} + m_IsPrefabParent: 1 +--- !u!1 &1289376599481394 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224722748174579388} + - component: {fileID: 222144676729818894} + - component: {fileID: 114315551303721412} + - component: {fileID: 114421075155369980} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1693671887655770 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224276549256597394} + - component: {fileID: 223952169128518932} + - component: {fileID: 114696334858063158} + - component: {fileID: 114239890049580038} + m_Layer: 5 + m_Name: FULL_BANNER + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114239890049580038 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1693671887655770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2690, y: 1440} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114315551303721412 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1289376599481394} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 74358f5fb13a549aabac4a5a7ac76739, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114421075155369980 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1289376599481394} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114315551303721412} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114696334858063158 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1693671887655770} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!222 &222144676729818894 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1289376599481394} +--- !u!223 &223952169128518932 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1693671887655770} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224276549256597394 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1693671887655770} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224722748174579388} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224722748174579388 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1289376599481394} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224276549256597394} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 675, y: 85} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/FULL_BANNER.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/FULL_BANNER.prefab.meta new file mode 100644 index 00000000..b98e1435 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/FULL_BANNER.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: a01bd5a6d0f504aecb61dad504950abd +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/FULL_BANNER.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LARGE_BANNER.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LARGE_BANNER.prefab new file mode 100644 index 00000000..baa2cbd2 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LARGE_BANNER.prefab @@ -0,0 +1,217 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1689999242186388} + m_IsPrefabParent: 1 +--- !u!1 &1260121452411016 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224967535306520620} + - component: {fileID: 222213910864577190} + - component: {fileID: 114252159333637556} + - component: {fileID: 114791891126826622} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1689999242186388 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224970415831850420} + - component: {fileID: 223744438911749882} + - component: {fileID: 114831681655494918} + - component: {fileID: 114428819205255628} + m_Layer: 5 + m_Name: LARGE_BANNER + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114252159333637556 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1260121452411016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 1a2723ddf964e4565a408007ab387283, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114428819205255628 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1689999242186388} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1440, y: 2960} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114791891126826622 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1260121452411016} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114252159333637556} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114831681655494918 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1689999242186388} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!222 &222213910864577190 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1260121452411016} +--- !u!223 &223744438911749882 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1689999242186388} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224967535306520620 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1260121452411016} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224970415831850420} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 950, y: 295} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224970415831850420 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1689999242186388} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224967535306520620} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LARGE_BANNER.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LARGE_BANNER.prefab.meta new file mode 100644 index 00000000..48f22971 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LARGE_BANNER.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 2758392ec5c0c413886eaf50350c125e +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LARGE_BANNER.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LEADERBOARD.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LEADERBOARD.prefab new file mode 100644 index 00000000..5a586aca --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LEADERBOARD.prefab @@ -0,0 +1,217 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1972469136070810} + m_IsPrefabParent: 1 +--- !u!1 &1183579264172830 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224697483211628194} + - component: {fileID: 222129017442517786} + - component: {fileID: 114721459383001118} + - component: {fileID: 114677129427402038} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1972469136070810 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224006990116994490} + - component: {fileID: 223012850224642572} + - component: {fileID: 114471196217915594} + - component: {fileID: 114399773188946396} + m_Layer: 5 + m_Name: LEADERBOARD + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114399773188946396 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1972469136070810} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2960, y: 1440} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114471196217915594 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1972469136070810} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &114677129427402038 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1183579264172830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114721459383001118} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114721459383001118 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1183579264172830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: cfead63ff9d9d48e2b4ba3c2dee7cea9, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &222129017442517786 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1183579264172830} +--- !u!223 &223012850224642572 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1972469136070810} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224006990116994490 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1972469136070810} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224697483211628194} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224697483211628194 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1183579264172830} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224006990116994490} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1050, y: 130} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LEADERBOARD.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LEADERBOARD.prefab.meta new file mode 100644 index 00000000..cf36ed91 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LEADERBOARD.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 60a76727b740d485fa446352e56931c5 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LEADERBOARD.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/MEDIUM_RECTANGLE.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/MEDIUM_RECTANGLE.prefab new file mode 100644 index 00000000..a6edd0f9 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/MEDIUM_RECTANGLE.prefab @@ -0,0 +1,217 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1512588571484440} + m_IsPrefabParent: 1 +--- !u!1 &1512588571484440 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224538654718470302} + - component: {fileID: 223629559242470952} + - component: {fileID: 114983991128439442} + - component: {fileID: 114372880593303924} + m_Layer: 5 + m_Name: MEDIUM_RECTANGLE + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1995456870296158 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224894678874208494} + - component: {fileID: 222075172098901274} + - component: {fileID: 114038968471933872} + - component: {fileID: 114975822294336148} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114038968471933872 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1995456870296158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 898f886a39d714db5b90d2c36676c894, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114372880593303924 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1512588571484440} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2160, y: 1080} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114975822294336148 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1995456870296158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114038968471933872} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114983991128439442 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1512588571484440} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!222 &222075172098901274 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1995456870296158} +--- !u!223 &223629559242470952 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1512588571484440} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224538654718470302 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1512588571484440} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224894678874208494} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224894678874208494 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1995456870296158} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224538654718470302} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 135} + m_SizeDelta: {x: 322, y: 270} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/MEDIUM_RECTANGLE.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/MEDIUM_RECTANGLE.prefab.meta new file mode 100644 index 00000000..0e00443b --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/MEDIUM_RECTANGLE.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: da3156337d5ca4d529cf72f8b467823b +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/MEDIUM_RECTANGLE.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/SMART_BANNER.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/SMART_BANNER.prefab new file mode 100644 index 00000000..8221f02c --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/SMART_BANNER.prefab @@ -0,0 +1,292 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1853606194061450} + m_IsPrefabParent: 1 +--- !u!1 &1343426381164082 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224490741999108352} + - component: {fileID: 222779771472130718} + - component: {fileID: 114916822656868938} + - component: {fileID: 114959255499348754} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1369006202624816 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224233332446998570} + - component: {fileID: 222910655472497136} + - component: {fileID: 114193057462813808} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1853606194061450 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224156852809508418} + - component: {fileID: 223985404539061306} + - component: {fileID: 114034781880355044} + - component: {fileID: 114616652852970184} + m_Layer: 5 + m_Name: SMART_BANNER + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114034781880355044 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1853606194061450} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &114193057462813808 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1369006202624816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 1 + m_BestFit: 1 + m_MinSize: 20 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: This is a Test Smart Banner +--- !u!114 &114616652852970184 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1853606194061450} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2960, y: 1440} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114916822656868938 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1343426381164082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114959255499348754 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1343426381164082} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114916822656868938} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &222779771472130718 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1343426381164082} +--- !u!222 &222910655472497136 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1369006202624816} +--- !u!223 &223985404539061306 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1853606194061450} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224156852809508418 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1853606194061450} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224490741999108352} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224233332446998570 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1369006202624816} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224490741999108352} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 2.4, y: 0.000043869} + m_SizeDelta: {x: 362.7, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224490741999108352 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1343426381164082} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224233332446998570} + m_Father: {fileID: 224156852809508418} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 50} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/SMART_BANNER.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/SMART_BANNER.prefab.meta new file mode 100644 index 00000000..7049afaa --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/SMART_BANNER.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 15069cdc38e2b41f7836116419a9187c +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/SMART_BANNER.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials.meta new file mode 100644 index 00000000..ecf5838d --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d78ddcb3b0cbd14418fb7c84e547256f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab new file mode 100644 index 00000000..84a5e43b --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab @@ -0,0 +1,472 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1506555509391478} + m_IsPrefabParent: 1 +--- !u!1 &1048958803402864 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224396785236523192} + - component: {fileID: 222833382448378890} + - component: {fileID: 114429971286294426} + - component: {fileID: 114825474698679592} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1086316119044956 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224412111100384724} + - component: {fileID: 222123731056135654} + - component: {fileID: 114947809371510874} + - component: {fileID: 114962388913432892} + m_Layer: 5 + m_Name: Ad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1506555509391478 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224049503732257422} + - component: {fileID: 223443791425986802} + - component: {fileID: 114420769206196330} + - component: {fileID: 114535206133587424} + m_Layer: 5 + m_Name: 1024x768 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1701400232489060 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224410274476360834} + - component: {fileID: 222763382731799498} + - component: {fileID: 114000294713222290} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1761048403840336 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224408585172404824} + - component: {fileID: 222519335633903876} + - component: {fileID: 114502356579168518} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114000294713222290 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1701400232489060} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 45 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Close Ad +--- !u!114 &114420769206196330 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1506555509391478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2960, y: 1440} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114429971286294426 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1048958803402864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114502356579168518 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1761048403840336} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.809} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114535206133587424 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1506555509391478} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &114825474698679592 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1048958803402864} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114429971286294426} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114947809371510874 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086316119044956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 4c69db43dbd474a2987be5807129b4cc, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114962388913432892 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086316119044956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114947809371510874} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &222123731056135654 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086316119044956} +--- !u!222 &222519335633903876 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1761048403840336} +--- !u!222 &222763382731799498 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1701400232489060} +--- !u!222 &222833382448378890 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1048958803402864} +--- !u!223 &223443791425986802 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1506555509391478} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224049503732257422 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1506555509391478} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224408585172404824} + - {fileID: 224412111100384724} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224396785236523192 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1048958803402864} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224410274476360834} + m_Father: {fileID: 224412111100384724} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 169.8, y: -35.9} + m_SizeDelta: {x: 339.8, y: 71.8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224408585172404824 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1761048403840336} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224049503732257422} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224410274476360834 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1701400232489060} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224396785236523192} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224412111100384724 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1086316119044956} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224396785236523192} + m_Father: {fileID: 224049503732257422} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 2000, y: 1436} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab.meta new file mode 100644 index 00000000..328ebdd8 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 53084846ca7a14a878485a5db71fda00 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/768x1024.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/768x1024.prefab new file mode 100644 index 00000000..57e57d4f --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/768x1024.prefab @@ -0,0 +1,472 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1168051963893118} + m_IsPrefabParent: 1 +--- !u!1 &1026234277025590 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224770140206732756} + - component: {fileID: 222623742081011482} + - component: {fileID: 114466248550890148} + - component: {fileID: 114214230567826922} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1168051963893118 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224349703481187764} + - component: {fileID: 223920107105332924} + - component: {fileID: 114572656286436090} + - component: {fileID: 114715352366433274} + m_Layer: 5 + m_Name: 768x1024 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1455544211993956 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224188954884660388} + - component: {fileID: 222991998422378294} + - component: {fileID: 114288914574884706} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1519554490061234 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224688741740444772} + - component: {fileID: 222698607200636900} + - component: {fileID: 114090591266759776} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1919592978971710 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224247655386807502} + - component: {fileID: 222996861862976686} + - component: {fileID: 114508546300043044} + - component: {fileID: 114645982259750808} + m_Layer: 5 + m_Name: Ad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114090591266759776 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1519554490061234} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 50 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Close Ad +--- !u!114 &114214230567826922 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1026234277025590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114466248550890148} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114288914574884706 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1455544211993956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.80784315} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114466248550890148 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1026234277025590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114508546300043044 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1919592978971710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 8a53f9c63a5e94b14a98698a7b07365b, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114572656286436090 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1440, y: 2960} + m_ScreenMatchMode: 2 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114645982259750808 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1919592978971710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114508546300043044} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114715352366433274 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!222 &222623742081011482 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1026234277025590} +--- !u!222 &222698607200636900 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1519554490061234} +--- !u!222 &222991998422378294 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1455544211993956} +--- !u!222 &222996861862976686 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1919592978971710} +--- !u!223 &223920107105332924 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224188954884660388 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1455544211993956} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224349703481187764} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224247655386807502 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1919592978971710} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224770140206732756} + m_Father: {fileID: 224349703481187764} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1436, y: 2000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224349703481187764 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1168051963893118} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224188954884660388} + - {fileID: 224247655386807502} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224688741740444772 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1519554490061234} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224770140206732756} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 9.1, y: -5.6} + m_SizeDelta: {x: 18.2, y: 11.2} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224770140206732756 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1026234277025590} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224688741740444772} + m_Father: {fileID: 224247655386807502} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 172.1, y: -37.5} + m_SizeDelta: {x: 344.1, y: 75.2} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/768x1024.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/768x1024.prefab.meta new file mode 100644 index 00000000..c51b40de --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/768x1024.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 9e579ef4793d34e79be6a216c0b67d78 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/768x1024.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded.meta new file mode 100644 index 00000000..f51a94e1 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1301929017fd57f42a619189cfdf92a1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab new file mode 100644 index 00000000..90748af7 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab @@ -0,0 +1,547 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1372156606540976} + m_IsPrefabParent: 1 +--- !u!1 &1128573709916514 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224613362496813788} + - component: {fileID: 222982220858172370} + - component: {fileID: 114531233940747562} + - component: {fileID: 114252552421956380} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1266630977519298 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224230749014027406} + - component: {fileID: 222796572593907422} + - component: {fileID: 114058432909893366} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1372156606540976 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224692589100518744} + - component: {fileID: 223553207263892384} + - component: {fileID: 114758204355010086} + - component: {fileID: 114768781952071512} + m_Layer: 5 + m_Name: 1024x768 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1776151137375062 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224516481964458542} + - component: {fileID: 222969686989629696} + - component: {fileID: 114818721744753168} + - component: {fileID: 114637091538056986} + m_Layer: 5 + m_Name: Ad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1839101188223610 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224920559942719848} + - component: {fileID: 222848794251129344} + - component: {fileID: 114380357142010322} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1940818438327928 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224061913340101242} + - component: {fileID: 222966908609815736} + - component: {fileID: 114332259168256334} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114058432909893366 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1266630977519298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.80784315} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114252552421956380 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1128573709916514} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114531233940747562} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114332259168256334 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1940818438327928} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 45 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 45 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 5 second(s) remaining +--- !u!114 &114380357142010322 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1839101188223610} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 45 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 50 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Close Ad +--- !u!114 &114531233940747562 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1128573709916514} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114637091538056986 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1776151137375062} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114818721744753168} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114758204355010086 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1372156606540976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2960, y: 1440} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114768781952071512 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1372156606540976} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &114818721744753168 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1776151137375062} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 4c69db43dbd474a2987be5807129b4cc, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!222 &222796572593907422 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1266630977519298} +--- !u!222 &222848794251129344 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1839101188223610} +--- !u!222 &222966908609815736 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1940818438327928} +--- !u!222 &222969686989629696 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1776151137375062} +--- !u!222 &222982220858172370 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1128573709916514} +--- !u!223 &223553207263892384 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1372156606540976} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224061913340101242 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1940818438327928} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224516481964458542} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 290, y: -42.7} + m_SizeDelta: {x: 493, y: 51.4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224230749014027406 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1266630977519298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224692589100518744} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224516481964458542 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1776151137375062} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224613362496813788} + - {fileID: 224061913340101242} + m_Father: {fileID: 224692589100518744} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 2000, y: 1436} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224613362496813788 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1128573709916514} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224920559942719848} + m_Father: {fileID: 224516481964458542} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 161.38, y: -34.2} + m_SizeDelta: {x: 323, y: 68.4} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224692589100518744 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1372156606540976} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224230749014027406} + - {fileID: 224516481964458542} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224920559942719848 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1839101188223610} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224613362496813788} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab.meta new file mode 100644 index 00000000..156ebc1f --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: ac0a546bb4fb349229fc5824b288ec00 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/768x1024.prefab b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/768x1024.prefab new file mode 100644 index 00000000..3435626a --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/768x1024.prefab @@ -0,0 +1,547 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1632466019560500} + m_IsPrefabParent: 1 +--- !u!1 &1145201493799244 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224859375040150520} + - component: {fileID: 222539723179981582} + - component: {fileID: 114644123904461240} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1440340526681520 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224646837243202000} + - component: {fileID: 222062092593612000} + - component: {fileID: 114435428706387640} + - component: {fileID: 114820238492461956} + m_Layer: 5 + m_Name: Ad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1632466019560500 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224858207565310680} + - component: {fileID: 223253263155428692} + - component: {fileID: 114432944070235470} + - component: {fileID: 114257052656689914} + m_Layer: 5 + m_Name: 768x1024 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1641665161670648 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224559117849289246} + - component: {fileID: 222246365610716666} + - component: {fileID: 114514696656541846} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1652198827308984 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224172518945175052} + - component: {fileID: 222229915290430514} + - component: {fileID: 114777983548721902} + - component: {fileID: 114638760954846786} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1728821091649996 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 224102788109289026} + - component: {fileID: 222431000284531562} + - component: {fileID: 114197769342207226} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &114197769342207226 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1728821091649996} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.80784315} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114257052656689914 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1632466019560500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &114432944070235470 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1632466019560500} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1440, y: 2960} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0.495 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!114 &114435428706387640 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1440340526681520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 21300000, guid: 8a53f9c63a5e94b14a98698a7b07365b, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114514696656541846 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1641665161670648} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Close Ad +--- !u!114 &114638760954846786 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1652198827308984} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114777983548721902} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &114644123904461240 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1145201493799244} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 5 second(s) remaining +--- !u!114 &114777983548721902 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1652198827308984} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 +--- !u!114 &114820238492461956 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1440340526681520} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114435428706387640} + m_OnClick: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!222 &222062092593612000 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1440340526681520} +--- !u!222 &222229915290430514 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1652198827308984} +--- !u!222 &222246365610716666 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1641665161670648} +--- !u!222 &222431000284531562 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1728821091649996} +--- !u!222 &222539723179981582 +CanvasRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1145201493799244} +--- !u!223 &223253263155428692 +Canvas: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1632466019560500} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &224102788109289026 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1728821091649996} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224858207565310680} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224172518945175052 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1652198827308984} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224559117849289246} + m_Father: {fileID: 224646837243202000} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 149.4, y: -35.1} + m_SizeDelta: {x: 298.7, y: 70.3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224559117849289246 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1641665161670648} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224172518945175052} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224646837243202000 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1440340526681520} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 224172518945175052} + - {fileID: 224859375040150520} + m_Father: {fileID: 224858207565310680} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1436, y: 2000} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!224 &224858207565310680 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1632466019560500} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 224102788109289026} + - {fileID: 224646837243202000} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!224 &224859375040150520 +RectTransform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1145201493799244} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 224646837243202000} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 237.9, y: -43.363} + m_SizeDelta: {x: 432.3, y: 53.775} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/768x1024.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/768x1024.prefab.meta new file mode 100644 index 00000000..10319f07 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/768x1024.prefab.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 4e3dd9a9607da46da8125b4b59a18db2 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/768x1024.prefab +timeCreated: 1480838400 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 100100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/Ump.meta b/Assets/GoogleMobileAds/Editor/Resources/Ump.meta new file mode 100644 index 00000000..9622c5f9 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/Ump.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b150aa0031b3f64da1e82b31dd2b8b1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.png b/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.png new file mode 100644 index 00000000..d8198519 Binary files /dev/null and b/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.png differ diff --git a/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.png.meta b/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.png.meta new file mode 100644 index 00000000..e3789c17 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.png.meta @@ -0,0 +1,145 @@ +fileFormatVersion: 2 +guid: cb0d255b8cd434556a80e3ae50b24b9c +labels: +- gvh +- gvh_version-7.2.1 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/DummyAds/AdImages/AdInspectorHome.png +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/Ump/ConsentForm.png +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.prefab b/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.prefab new file mode 100644 index 00000000..3da58b4b --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.prefab @@ -0,0 +1,525 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1026234277025590 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224770140206732756} + - component: {fileID: 222623742081011482} + - component: {fileID: 114466248550890148} + - component: {fileID: 114214230567826922} + - component: {fileID: 5577847591443948799} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224770140206732756 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026234277025590} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224688741740444772} + m_Father: {fileID: 224247655386807502} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 280} + m_SizeDelta: {x: 800, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222623742081011482 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026234277025590} + m_CullTransparentMesh: 1 +--- !u!114 &114466248550890148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026234277025590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.23921569, g: 0.40784314, b: 0.76862746, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: f795a5541737a4c09a571dc953a23ba5, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114214230567826922 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026234277025590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114466248550890148} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &5577847591443948799 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1026234277025590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 150 + m_MinHeight: 150 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &1168051963893118 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224349703481187764} + - component: {fileID: 223920107105332924} + - component: {fileID: 114572656286436090} + - component: {fileID: 114715352366433274} + m_Layer: 5 + m_Name: ConsentForm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224349703481187764 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168051963893118} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224188954884660388} + - {fileID: 224247655386807502} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &223920107105332924 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &114572656286436090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1440, y: 2960} + m_ScreenMatchMode: 2 + m_MatchWidthOrHeight: 0.5 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &114715352366433274 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1168051963893118} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &1455544211993956 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224188954884660388} + - component: {fileID: 222991998422378294} + - component: {fileID: 114288914574884706} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224188954884660388 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455544211993956} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 224349703481187764} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222991998422378294 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455544211993956} + m_CullTransparentMesh: 1 +--- !u!114 &114288914574884706 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455544211993956} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.80784315} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &1519554490061234 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224688741740444772} + - component: {fileID: 222698607200636900} + - component: {fileID: 114090591266759776} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224688741740444772 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519554490061234} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 224770140206732756} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222698607200636900 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519554490061234} + m_CullTransparentMesh: 1 +--- !u!114 &114090591266759776 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519554490061234} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 56 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Consent +--- !u!1 &1919592978971710 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224247655386807502} + - component: {fileID: 222996861862976686} + - component: {fileID: 114508546300043044} + - component: {fileID: 114645982259750808} + m_Layer: 5 + m_Name: Ad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &224247655386807502 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1919592978971710} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 224770140206732756} + m_Father: {fileID: 224349703481187764} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1000, y: 1650} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &222996861862976686 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1919592978971710} + m_CullTransparentMesh: 1 +--- !u!114 &114508546300043044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1919592978971710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: cb0d255b8cd434556a80e3ae50b24b9c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &114645982259750808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1919592978971710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Highlighted + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 114508546300043044} + m_OnClick: + m_PersistentCalls: + m_Calls: [] diff --git a/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.prefab.meta b/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.prefab.meta new file mode 100644 index 00000000..558f2ec4 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.prefab.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 32087445d9e7f4577ae9170a6b11f114 +labels: +- gvh +- gvh_version-7.2.1 +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/DummyAds/AdInspector/768x1024.prefab +- gvhp_exportpath-GoogleMobileAds/Editor/Resources/Ump/ConsentForm.prefab +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/Utils.cs b/Assets/GoogleMobileAds/Editor/Utils.cs new file mode 100644 index 00000000..3b463f38 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Utils.cs @@ -0,0 +1,91 @@ +// Copyright (C) 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; + +namespace GoogleMobileAds.Editor +{ + /* + * Utils class that contains helper methods. + */ + public static class Utils + { + internal static string GradleTemplatePath = + Path.Combine(AndroidPluginsDir, "baseProjectTemplate.gradle"); + + // Android library plugins directory that contains custom gradle templates. + internal const string AndroidPluginsDir = "Assets/Plugins/Android"; + + // Extracts an Android Gradle Plugin version number from the contents of a *.gradle file. + // This should work for Unity 2022.1 and below. + // Ex. + // classpath 'com.android.tools.build:gradle:4.0.1' + private static Regex androidGradlePluginVersionExtract_legacy = + new Regex(@"^\s*classpath\s+['""]com\.android\.tools\.build:gradle:([^'""]+)['""]$"); + + // Extracts an Android Gradle Plugin version number from the contents of a *.gradle file for + // Unity 2022.2+ or 2023.1+. + // Ex. + // id 'com.android.application' version '7.1.2' apply false + private static Regex androidGradlePluginVersionExtract = + new Regex(@"^\s*id\s+['""]com\.android\.application['""] version ['""]([^'""]+)['""]"); + + /// + /// Get the Android Gradle Plugin version used by the Unity project. + /// + public static string AndroidGradlePluginVersion + { + private set {} + get + { + if (!Directory.Exists(AndroidPluginsDir) || !File.Exists(GradleTemplatePath)) + { + return DefaultAndroidGradlePlugin(); + } + var gradleTemplates = Directory.GetFiles(AndroidPluginsDir, "*.gradle", + SearchOption.TopDirectoryOnly); + foreach (var path in gradleTemplates) + { + foreach (var line in File.ReadAllLines(path)) + { + var match = androidGradlePluginVersionExtract_legacy.Match(line); + if (match != null && match.Success) + { + return match.Result("$1"); + } + match = androidGradlePluginVersionExtract.Match(line); + if (match != null && match.Success) + { + return match.Result("$1"); + } + } + } + return DefaultAndroidGradlePlugin(); + } + } + + // TODO(@vkini): read from default Unity baseProjectTemplate.gradle file + private static string DefaultAndroidGradlePlugin() + { +#if UNITY_2022_3_OR_NEWER + return "7.1.2"; +#else + return "4.0.1"; +#endif + } + } +} \ No newline at end of file diff --git a/Assets/GoogleMobileAds/Editor/Utils.cs.meta b/Assets/GoogleMobileAds/Editor/Utils.cs.meta new file mode 100644 index 00000000..e37200ab --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/Utils.cs.meta @@ -0,0 +1,17 @@ +fileFormatVersion: 2 +guid: 7d7678b2375fe4456b0ab2b506c2240c +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/Utils.cs +timeCreated: 1480838400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: + instanceID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Editor/gma_settings_editor_localization_data.json b/Assets/GoogleMobileAds/Editor/gma_settings_editor_localization_data.json new file mode 100644 index 00000000..762bff3f --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/gma_settings_editor_localization_data.json @@ -0,0 +1,72 @@ +{ + "LocalizationsByKey": { + "KEY_ANALYTICS_ENABLED_HELPBOX": { + "en": "Sends the usage statistics to Google to gather reports on the failures and to inform future improvements of the Google Mobile Ads Unity plugin.", + "fr": "Envoie les données d'utilisation à Google pour collecter des rapports d'erreurs et participer aux futures améliorations du plugin Google Mobile Ads Unity." + }, + "KEY_ANALYTICS_ENABLED_SETTING": { + "en": "Send plugin usage statistics", + "fr": "Envoyer les données d'utilisation et de diagnostic du plugin" + }, + "KEY_ANDROID_SETTINGS_LABEL": { + "en": "Android settings", + "fr": "Paramètres Android" + }, + "KEY_ENABLE_GRADLE_BUILD_PRE_PROCESSOR_HELPBOX": { + "en": "Modifies the /Plugin/Android/ Gradle files to fix common build errors seen on older Unity versions, see https://developers.google.com/admob/unity/android", + "fr": "Modifie les fichiers Gradle de /Plugin/Android/ pour corriger les erreurs de compilation les plus courantes sur des versions antérieures d'Unity, voir https://developers.google.com/admob/unity/android?hl=fr" + }, + "KEY_ENABLE_GRADLE_BUILD_PRE_PROCESSOR_SETTING": { + "en": "Enable Gradle build pre-processor", + "fr": "Activer le pre-processeur de compilation Gradle" + }, + "KEY_ENABLE_KOTLINX_COROUTINES_PACKAGING_OPTION_HELPBOX": { + "en": "Adds an instruction to fix the build.gradle build error with message '2 files found with path 'META-INF/kotlinx_coroutines_core.version''. For more details, see https://developers.google.com/admob/unity/gradle", + "fr": "Ajoute une instruction pour corriger l'erreur de compilation de build.gradle '2 files found with path 'META-INF/kotlinx_coroutines_core.version''. Pour plus d'informations, visitez https://developers.google.com/admob/unity/gradle?hl=fr" + }, + "KEY_ENABLE_KOTLINX_COROUTINES_PACKAGING_OPTION_SETTING": { + "en": "Enable kotlinx.coroutines packaging option", + "fr": "Activer l'option de packaging kotlinx.coroutines" + }, + "KEY_GMA_APP_ID_HELPBOX": { + "en": "Google Mobile Ads App ID will look similar to this sample ID: ca-app-pub-3940256099942544~3347511713", + "fr": "L'ID de votre application Google Mobile Ads sera similaire à cet exemple: ca-app-pub-3940256099942544~3347511713" + }, + "KEY_GMA_APP_ID_LABEL": { + "en": "Google Mobile Ads App ID", + "fr": "ID d'application Google Mobile Ads" + }, + "KEY_MISC_LABEL": { + "en": "Misc", + "fr": "Divers" + }, + "KEY_DISABLE_OPTIMIZE_AD_LOADING_HELPBOX": { + "en": "This disables using a background thread to offload Ad loading tasks", + "fr": "Cela désactive l'utilisation d'un thread d'arrière-plan pour décharger les tâches de chargement des publicités." + }, + "KEY_DISABLE_OPTIMIZE_AD_LOADING_SETTING": { + "en": "Disable ad loading optimization", + "fr": "Désactiver l'optimisation du chargement des annonces" + }, + "KEY_DISABLE_OPTIMIZE_INITIALIZATION_HELPBOX": { + "en": "Disable offloading initialization to a background thread.", + "fr": "L'initialisation ne sera pas transférée vers un thread d'arrière-plan." + }, + "KEY_DISABLE_OPTIMIZE_INITIALIZATION_SETTING": { + "en": "Disable initialization optimization", + "fr": "Désactiver l'optimisation de l'initialisation" + }, + "KEY_UMP_SPECIFIC_SETTINGS_LABEL": { + "en": "UMP-specific settings", + "fr": "Paramètres spécifiques UMP" + }, + "KEY_USER_TRACKING_USAGE_DESCRIPTION_HELPBOX": { + "en": "A message that informs the user why an iOS app is requesting permission to use data for tracking the user or the device.", + "fr": "Un message qui informe l'utilisateur pourquoi une application iOS demande l'autorisation d'utiliser des données pour suivre l'utilisateur ou l'appareil." + }, + "KEY_USER_TRACKING_USAGE_DESCRIPTION_SETTING": { + "en": "User Tracking Usage Description", + "fr": "Description de l'utilisation du suivi des utilisateurs" + } + } +} diff --git a/Assets/GoogleMobileAds/Editor/gma_settings_editor_localization_data.json.meta b/Assets/GoogleMobileAds/Editor/gma_settings_editor_localization_data.json.meta new file mode 100644 index 00000000..16f08183 --- /dev/null +++ b/Assets/GoogleMobileAds/Editor/gma_settings_editor_localization_data.json.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 83a3846a658ae46219b050c8451aabfe +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/Editor/gma_settings_editor_localization_data.json +timeCreated: 1480838400 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Android.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Android.dll new file mode 100644 index 00000000..403627e0 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Android.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Android.dll.meta b/Assets/GoogleMobileAds/GoogleMobileAds.Android.dll.meta new file mode 100644 index 00000000..8b8f67fa --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds.Android.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 9daf61812a464faa90dec7f977094a88 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds.Android.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Common.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Common.dll new file mode 100644 index 00000000..f9c62d2a Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Common.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Common.dll.meta b/Assets/GoogleMobileAds/GoogleMobileAds.Common.dll.meta new file mode 100644 index 00000000..1627342a --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds.Common.dll.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91a5b07cc3384f86a88d7c29698e058b +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds.Common.dll +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Core.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Core.dll new file mode 100644 index 00000000..bdebf3a1 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Core.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Core.dll.meta b/Assets/GoogleMobileAds/GoogleMobileAds.Core.dll.meta new file mode 100644 index 00000000..19be895d --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds.Core.dll.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 36487fa6a5984d3a80bc98eca8a2b9e6 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds.Core.dll +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Android.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Android.dll new file mode 100644 index 00000000..e4dd5e34 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Android.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Android.dll.meta b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Android.dll.meta new file mode 100644 index 00000000..4bc1392e --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Android.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: bf90317f8c2e41979b0be47e1b17c528 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds.Ump.Android.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll new file mode 100644 index 00000000..42227243 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll.meta b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll.meta new file mode 100644 index 00000000..74c0c4e3 --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: a86d988d5f444cd9a999bd434cef8a51 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.dll new file mode 100644 index 00000000..ce50f7ff Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.dll.meta b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.dll.meta new file mode 100644 index 00000000..28bfcc98 --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.dll.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f84de9af142947eeb3522e42d9487838 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds.Ump.dll +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.iOS.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.iOS.dll new file mode 100644 index 00000000..4a4fb0b0 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.iOS.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Ump.iOS.dll.meta b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.iOS.dll.meta new file mode 100644 index 00000000..247d88f8 --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds.Ump.iOS.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: d18ea87e83804d1eadf467931aabe099 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds.Ump.iOS.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Unity.dll b/Assets/GoogleMobileAds/GoogleMobileAds.Unity.dll new file mode 100644 index 00000000..d61a0cad Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.Unity.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.Unity.dll.meta b/Assets/GoogleMobileAds/GoogleMobileAds.Unity.dll.meta new file mode 100644 index 00000000..7041b7cd --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds.Unity.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 3bce71ee5c7c4e0fbbb4d836c01a35a2 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds.Unity.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.dll b/Assets/GoogleMobileAds/GoogleMobileAds.dll new file mode 100644 index 00000000..bd2ef8f1 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.dll.meta b/Assets/GoogleMobileAds/GoogleMobileAds.dll.meta new file mode 100644 index 00000000..ecf95338 --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds.dll.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b251d35e618a42e085fb4a5a888d05cd +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds.dll +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.iOS.dll b/Assets/GoogleMobileAds/GoogleMobileAds.iOS.dll new file mode 100644 index 00000000..53c39454 Binary files /dev/null and b/Assets/GoogleMobileAds/GoogleMobileAds.iOS.dll differ diff --git a/Assets/GoogleMobileAds/GoogleMobileAds.iOS.dll.meta b/Assets/GoogleMobileAds/GoogleMobileAds.iOS.dll.meta new file mode 100644 index 00000000..1b97e492 --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds.iOS.dll.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 735ca9cf259f453abac02f4573d8a420 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds.iOS.dll +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/GoogleMobileAds_version-10.6.0_manifest.txt b/Assets/GoogleMobileAds/GoogleMobileAds_version-10.6.0_manifest.txt new file mode 100644 index 00000000..bcd4b7fc --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds_version-10.6.0_manifest.txt @@ -0,0 +1,78 @@ +Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.dll +Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.pdb +Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.dll +Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.pdb +Assets/ExternalDependencyManager/Editor/CHANGELOG.md +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll +Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb +Assets/ExternalDependencyManager/Editor/LICENSE +Assets/ExternalDependencyManager/Editor/README.md +Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.186_manifest.txt +Assets/GoogleMobileAds/CHANGELOG.md +Assets/GoogleMobileAds/Editor/AndroidBuildPreProcessor.cs +Assets/GoogleMobileAds/Editor/BuildPreProcessor.cs +Assets/GoogleMobileAds/Editor/EditorLocalization.cs +Assets/GoogleMobileAds/Editor/EditorLocalizationData.cs +Assets/GoogleMobileAds/Editor/EditorPathUtils.cs +Assets/GoogleMobileAds/Editor/GoogleMobileAds.Editor.asmdef +Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml +Assets/GoogleMobileAds/Editor/GoogleMobileAdsSKAdNetworkItems.xml +Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettings.cs +Assets/GoogleMobileAds/Editor/GoogleMobileAdsSettingsEditor.cs +Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml +Assets/GoogleMobileAds/Editor/GradleProcessor.cs +Assets/GoogleMobileAds/Editor/ManifestProcessor.cs +Assets/GoogleMobileAds/Editor/PListProcessor.cs +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/1024x768.png +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/300x250.png +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x100.png +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x480.png +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/320x50.png +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/468x60.png +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/480x320.png +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/728x90.png +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/768x1024.png +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdImages/AdInspectorHome.png +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AdInspector/768x1024.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/1024x768.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/AppOpen/768x1024.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/ADAPTIVE.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/BANNER.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/CENTER.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/FULL_BANNER.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LARGE_BANNER.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/LEADERBOARD.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/MEDIUM_RECTANGLE.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Banners/SMART_BANNER.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/1024x768.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Interstitials/768x1024.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/1024x768.prefab +Assets/GoogleMobileAds/Editor/Resources/PlaceholderAds/Rewarded/768x1024.prefab +Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.png +Assets/GoogleMobileAds/Editor/Resources/Ump/ConsentForm.prefab +Assets/GoogleMobileAds/Editor/Utils.cs +Assets/GoogleMobileAds/Editor/gma_settings_editor_localization_data.json +Assets/GoogleMobileAds/GoogleMobileAds.Android.dll +Assets/GoogleMobileAds/GoogleMobileAds.Common.dll +Assets/GoogleMobileAds/GoogleMobileAds.Core.dll +Assets/GoogleMobileAds/GoogleMobileAds.Ump.Android.dll +Assets/GoogleMobileAds/GoogleMobileAds.Ump.Unity.dll +Assets/GoogleMobileAds/GoogleMobileAds.Ump.dll +Assets/GoogleMobileAds/GoogleMobileAds.Ump.iOS.dll +Assets/GoogleMobileAds/GoogleMobileAds.Unity.dll +Assets/GoogleMobileAds/GoogleMobileAds.dll +Assets/GoogleMobileAds/GoogleMobileAds.iOS.dll +Assets/GoogleMobileAds/LICENSE +Assets/GoogleMobileAds/link.xml +Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml +Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle +Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/project.properties +Assets/Plugins/Android/googlemobileads-unity.aar +Assets/Plugins/iOS/GADUAdNetworkExtras.h +Assets/Plugins/iOS/NativeTemplates/GADTMediumTemplateView.xib +Assets/Plugins/iOS/NativeTemplates/GADTSmallTemplateView.xib +Assets/Plugins/iOS/unity-plugin-library.a diff --git a/Assets/GoogleMobileAds/GoogleMobileAds_version-10.6.0_manifest.txt.meta b/Assets/GoogleMobileAds/GoogleMobileAds_version-10.6.0_manifest.txt.meta new file mode 100644 index 00000000..ce59d029 --- /dev/null +++ b/Assets/GoogleMobileAds/GoogleMobileAds_version-10.6.0_manifest.txt.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f3f62747da9144319f7849f3fc6997be +labels: +- gvh +- gvh_manifest +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/GoogleMobileAds_version-10.6.0_manifest.txt +- gvhp_manifestname-0Google Mobile Ads for Unity +- gvhp_manifestname-1GoogleMobileAds +timeCreated: 0 diff --git a/Assets/GoogleMobileAds/LICENSE b/Assets/GoogleMobileAds/LICENSE new file mode 100644 index 00000000..b7c9ed18 --- /dev/null +++ b/Assets/GoogleMobileAds/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2013 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Assets/GoogleMobileAds/LICENSE.meta b/Assets/GoogleMobileAds/LICENSE.meta new file mode 100644 index 00000000..4e34d558 --- /dev/null +++ b/Assets/GoogleMobileAds/LICENSE.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: DCED4676809D4FD080DC99CC6B32B2AB +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/LICENSE +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Resources.meta b/Assets/GoogleMobileAds/Resources.meta new file mode 100644 index 00000000..3f07e72a --- /dev/null +++ b/Assets/GoogleMobileAds/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f77409e5fc90b6b4493cf25873774524 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/Resources/GoogleMobileAdsSettings.asset b/Assets/GoogleMobileAds/Resources/GoogleMobileAdsSettings.asset new file mode 100644 index 00000000..9d33e3c2 --- /dev/null +++ b/Assets/GoogleMobileAds/Resources/GoogleMobileAdsSettings.asset @@ -0,0 +1,22 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a187246822bbb47529482707f3e0eff8, type: 3} + m_Name: GoogleMobileAdsSettings + m_EditorClassIdentifier: + adMobAndroidAppId: ca-app-pub-3940256099942544~3347511713 + adMobIOSAppId: ca-app-pub-3940256099942544~1458002511 + enableKotlinXCoroutinesPackagingOption: 1 + enableGradleBuildPreProcessor: 1 + disableOptimizeInitialization: 0 + disableOptimizeAdLoading: 0 + userTrackingUsageDescription: + userLanguage: en diff --git a/Assets/GoogleMobileAds/Resources/GoogleMobileAdsSettings.asset.meta b/Assets/GoogleMobileAds/Resources/GoogleMobileAdsSettings.asset.meta new file mode 100644 index 00000000..8ac51d5f --- /dev/null +++ b/Assets/GoogleMobileAds/Resources/GoogleMobileAdsSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c5cf16432cb301347875a0b6fd27ab93 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GoogleMobileAds/link.xml b/Assets/GoogleMobileAds/link.xml new file mode 100644 index 00000000..1302803d --- /dev/null +++ b/Assets/GoogleMobileAds/link.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Assets/GoogleMobileAds/link.xml.meta b/Assets/GoogleMobileAds/link.xml.meta new file mode 100644 index 00000000..fdeac0ea --- /dev/null +++ b/Assets/GoogleMobileAds/link.xml.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d6461f9591d240498f49453b73a48552 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-GoogleMobileAds/link.xml +timeCreated: 1480838400 +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/BidMachine.meta b/Assets/MaxSdk/Mediation/BidMachine.meta new file mode 100644 index 00000000..03fa6742 --- /dev/null +++ b/Assets/MaxSdk/Mediation/BidMachine.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f9593958d76e04a9fa0ca3653e293eea +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/BidMachine/Editor.meta b/Assets/MaxSdk/Mediation/BidMachine/Editor.meta new file mode 100644 index 00000000..0f3541e9 --- /dev/null +++ b/Assets/MaxSdk/Mediation/BidMachine/Editor.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 527c65004f8c84edbb4c14b8a2a04c5d +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/BidMachine/Editor +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml b/Assets/MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml new file mode 100644 index 00000000..312247ec --- /dev/null +++ b/Assets/MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml @@ -0,0 +1,13 @@ + + + + + + https://artifactory.bidmachine.io/bidmachine + + + + + + + diff --git a/Assets/MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml.meta b/Assets/MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..81f22af2 --- /dev/null +++ b/Assets/MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 98a383532dccb495aa31190874842cbe +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/BigoAds.meta b/Assets/MaxSdk/Mediation/BigoAds.meta new file mode 100644 index 00000000..45d4b6dc --- /dev/null +++ b/Assets/MaxSdk/Mediation/BigoAds.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 057f3a425e2354240921c2e1b1da8f25 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/BigoAds/Editor.meta b/Assets/MaxSdk/Mediation/BigoAds/Editor.meta new file mode 100644 index 00000000..39a31408 --- /dev/null +++ b/Assets/MaxSdk/Mediation/BigoAds/Editor.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1235281c630214a8999b2185ceba6388 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/BigoAds/Editor +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/BigoAds/Editor/Dependencies.xml b/Assets/MaxSdk/Mediation/BigoAds/Editor/Dependencies.xml new file mode 100644 index 00000000..90c1f1f0 --- /dev/null +++ b/Assets/MaxSdk/Mediation/BigoAds/Editor/Dependencies.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Assets/MaxSdk/Mediation/BigoAds/Editor/Dependencies.xml.meta b/Assets/MaxSdk/Mediation/BigoAds/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..521ce000 --- /dev/null +++ b/Assets/MaxSdk/Mediation/BigoAds/Editor/Dependencies.xml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: fba397d5cac8648fea9b0fe82e201e63 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/BigoAds/Editor/Dependencies.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/ByteDance.meta b/Assets/MaxSdk/Mediation/ByteDance.meta new file mode 100644 index 00000000..8bcbd933 --- /dev/null +++ b/Assets/MaxSdk/Mediation/ByteDance.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 939bfc929854b45f78fb8e3caec1f2f8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/ByteDance/Editor.meta b/Assets/MaxSdk/Mediation/ByteDance/Editor.meta new file mode 100644 index 00000000..e54a7664 --- /dev/null +++ b/Assets/MaxSdk/Mediation/ByteDance/Editor.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ef8467ffb0e4447b79a8804884a7520a +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/ByteDance/Editor +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml b/Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml new file mode 100644 index 00000000..5efb9528 --- /dev/null +++ b/Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml @@ -0,0 +1,13 @@ + + + + + + https://artifact.bytedance.com/repository/pangle + + + + + + + diff --git a/Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml.meta b/Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..52052332 --- /dev/null +++ b/Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0828555cb1ce94702a4af6f3dce3d735 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Chartboost.meta b/Assets/MaxSdk/Mediation/Chartboost.meta new file mode 100644 index 00000000..31cafe3b --- /dev/null +++ b/Assets/MaxSdk/Mediation/Chartboost.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f473c184d2564d5da3060bde69424aa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Chartboost/Editor.meta b/Assets/MaxSdk/Mediation/Chartboost/Editor.meta new file mode 100644 index 00000000..38bff8d5 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Chartboost/Editor.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a90f13141c35746f5a2996c8ad068fe9 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Chartboost/Editor +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml b/Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml new file mode 100644 index 00000000..d3c7e144 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml @@ -0,0 +1,14 @@ + + + + + + https://cboost.jfrog.io/artifactory/chartboost-ads/ + + + + + + + + diff --git a/Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml.meta b/Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..02628eb0 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 93b0a4618bd884871af0981a7867bb2f +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Facebook.meta b/Assets/MaxSdk/Mediation/Facebook.meta new file mode 100644 index 00000000..a2008af8 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Facebook.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b30ea37ccd95b42d8a51d03ab3c644fb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Facebook/Editor.meta b/Assets/MaxSdk/Mediation/Facebook/Editor.meta new file mode 100644 index 00000000..4beff5e4 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Facebook/Editor.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 28880992a399a48b7abe95b66649d711 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Facebook/Editor +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml b/Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml new file mode 100644 index 00000000..9c2d3618 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml.meta b/Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..69b5d2c8 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: aea9bdf974328420db5ae118ef0d2b87 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Facebook/Editor/Dependencies.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Fyber.meta b/Assets/MaxSdk/Mediation/Fyber.meta new file mode 100644 index 00000000..7924127e --- /dev/null +++ b/Assets/MaxSdk/Mediation/Fyber.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b202e2f4f19d249c79cdd63e5abe4a87 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Fyber/Editor.meta b/Assets/MaxSdk/Mediation/Fyber/Editor.meta new file mode 100644 index 00000000..315e8c8e --- /dev/null +++ b/Assets/MaxSdk/Mediation/Fyber/Editor.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e076e4ef7e2874ba69b108cc7a346c2a +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Fyber/Editor +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml b/Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml new file mode 100644 index 00000000..bba2782b --- /dev/null +++ b/Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml.meta b/Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..fd0bbbf2 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 5e123cdc08e804dffb2c40c4fbc83caf +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Fyber/Editor/Dependencies.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Google.meta b/Assets/MaxSdk/Mediation/Google.meta new file mode 100644 index 00000000..469c65c9 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Google.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 64176641aa4214f18881c7888b2f4187 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Google/Editor.meta b/Assets/MaxSdk/Mediation/Google/Editor.meta new file mode 100644 index 00000000..ea8dd557 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Google/Editor.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e8015bd045cea462c8f39c8a05867d08 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Google/Editor +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml b/Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml new file mode 100644 index 00000000..a921ad0a --- /dev/null +++ b/Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml.meta b/Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..36bef722 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 053b810d3594744e38b6fd0fa378fb57 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Google/Editor/Dependencies.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/IronSource.meta b/Assets/MaxSdk/Mediation/IronSource.meta new file mode 100644 index 00000000..6747e845 --- /dev/null +++ b/Assets/MaxSdk/Mediation/IronSource.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72048a5214d234cd1b850250f4dceb8e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/IronSource/Editor.meta b/Assets/MaxSdk/Mediation/IronSource/Editor.meta new file mode 100644 index 00000000..327f5d6b --- /dev/null +++ b/Assets/MaxSdk/Mediation/IronSource/Editor.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 531d860cac61f47d19e32f526470ae43 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/IronSource/Editor +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml b/Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml new file mode 100644 index 00000000..9965576a --- /dev/null +++ b/Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml.meta b/Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..f77e6f04 --- /dev/null +++ b/Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 19262406303f04f05b14b31b3c734d35 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/IronSource/Editor/Dependencies.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Mintegral.meta b/Assets/MaxSdk/Mediation/Mintegral.meta new file mode 100644 index 00000000..9e8f58a0 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Mintegral.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: daa6d88ad14e64ab69057674530502e0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Mintegral/Editor.meta b/Assets/MaxSdk/Mediation/Mintegral/Editor.meta new file mode 100644 index 00000000..d189ce00 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Mintegral/Editor.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: db1de4066dc4e4290b3879b34fa87de2 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Mintegral/Editor +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml b/Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml new file mode 100644 index 00000000..7cb4e966 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml @@ -0,0 +1,14 @@ + + + + + + https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea + + + + + + + + diff --git a/Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml.meta b/Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..415c4aba --- /dev/null +++ b/Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 221b2a20a58a04f2cb4afb0779587206 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Vungle.meta b/Assets/MaxSdk/Mediation/Vungle.meta new file mode 100644 index 00000000..60f9da53 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Vungle.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a0abaf97c8c4846fb86e98da7dc31004 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Vungle/Editor.meta b/Assets/MaxSdk/Mediation/Vungle/Editor.meta new file mode 100644 index 00000000..1ea75cce --- /dev/null +++ b/Assets/MaxSdk/Mediation/Vungle/Editor.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 77b6ea05736a9458f8ef8762ee9b64bb +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Vungle/Editor +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml b/Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml new file mode 100644 index 00000000..8262be77 --- /dev/null +++ b/Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml.meta b/Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..7038186f --- /dev/null +++ b/Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0d8ad3a6ddc4f44fab2efe607fe14f26 +labels: +- al_max +- al_max_export_path-MaxSdk/Mediation/Vungle/Editor/Dependencies.xml +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MaxSdk/Resources/AppLovinSettings.asset b/Assets/MaxSdk/Resources/AppLovinSettings.asset index 9267e98c..77261779 100644 --- a/Assets/MaxSdk/Resources/AppLovinSettings.asset +++ b/Assets/MaxSdk/Resources/AppLovinSettings.asset @@ -16,5 +16,5 @@ MonoBehaviour: sdkKey: LHx_tPFslZpTTiIPABmS24T7Ev1QEVOUVOzirpkxLUuTwJTVZGCKAk9L3Tm3FwuM5LxHK3q1EIbAemJB5sNpX2 customGradleVersionUrl: customGradleToolsVersion: - adMobAndroidAppId: - adMobIosAppId: ca-app-pub-2906302905781078~8167500404 + adMobAndroidAppId: ca-app-pub-3940256099942544~3347511713 + adMobIosAppId: ca-app-pub-3940256099942544~1458002511 diff --git a/Assets/MaxSdk/Resources/AppLovinSettings.asset.meta b/Assets/MaxSdk/Resources/AppLovinSettings.asset.meta index e7bf2f43..0b1b24ae 100644 --- a/Assets/MaxSdk/Resources/AppLovinSettings.asset.meta +++ b/Assets/MaxSdk/Resources/AppLovinSettings.asset.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: de88106520eade04093d2dbe212bb37d +guid: 95645d8e09bd1744589b1ef54dc41982 NativeFormatImporter: externalObjects: {} - mainObjectFileID: 11400000 + mainObjectFileID: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/MaxSdk/Resources/Images/error_icon.png.meta b/Assets/MaxSdk/Resources/Images/error_icon.png.meta index dc9942f0..9d58299c 100644 --- a/Assets/MaxSdk/Resources/Images/error_icon.png.meta +++ b/Assets/MaxSdk/Resources/Images/error_icon.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d59f5579a5b8c4b4c87de418f3edd7fa +guid: 572fee4574afa4f6dbf2846e0c152fe8 labels: - al_max - al_max_export_path-MaxSdk/Resources/Images/error_icon.png diff --git a/Assets/OPS/Obfuscator/Settings/Obfuscator_Settings.json b/Assets/OPS/Obfuscator/Settings/Obfuscator_Settings.json index 2387dc03..4902de57 100644 --- a/Assets/OPS/Obfuscator/Settings/Obfuscator_Settings.json +++ b/Assets/OPS/Obfuscator/Settings/Obfuscator_Settings.json @@ -1,536 +1,551 @@ -{ - "ComponentSettings_Array" : [ - { - "Settings_Name" : "Default_Compatibility_Component_DotNet", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_Unity", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_Obfuscator", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_Chartboost", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_Facebook_Sdk", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_Google_Sdk", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_Json_Sdk", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_Photon_Sdk", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_PlayMaker_Sdk", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Assembly", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Obfuscate_Assembly_AssemblyCSharp", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Assembly_AssemblyCSharpFirstPass", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Assembly_In_Assets_AssemblyDefinitionFiles", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Assembly_In_Packages_AssemblyDefinitionFiles", - "Value" : "False", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Find_Unity_Animation_MethodReferences", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Enable_Try_Find_Inspector_Animation_Methods", - "Value" : "False", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Find_Unity_Gui_MethodReferences", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Enable_Try_Find_Inspector_Gui_Methods", - "Value" : "True", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_String_Reflection_And_Coroutine", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Enable_Try_Find_String_Reflection_And_Coroutine", - "Value" : "False", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Logging", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Namespace", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Obfuscate_Namespaces", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Skip_Namespace_ViceVersa", - "Value" : "False", - "Values" : null - }, - { - "Type" : "Array_String", - "Key" : "Skip_Namespace_Array", - "Value" : null, - "Values" : [ - "IgnoreOPS", - "AdjustSdk" - ] - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Class", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Obfuscate_Classes", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_Internal", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_Private", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_Protected", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_Public", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_Abstract", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_Generic", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_MonoBehaviour", - "Value" : "False", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_MonoBehaviour_Not_Obfuscatable", - "Value" : "False", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_MonoBehaviour_Extern", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_MonoBehaviour_Not_Obfuscatable_Extern", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_ScriptableObject", - "Value" : "False", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_Playable", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_Serializable", - "Value" : "True", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Method", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Obfuscate_Methods", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Method_Internal", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Method_Private", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Method_Protected", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Method_Public", - "Value" : "False", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Parameter", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Obfuscate_Method_Parameter", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Class_Parameter", - "Value" : "True", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Field", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Obfuscate_Fields", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Field_Internal", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Field_Private", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Field_Protected", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Field_Public", - "Value" : "False", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Field_Serializable", - "Value" : "False", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Field_Public_Unity", - "Value" : "False", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Field_Enums", - "Value" : "False", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Property", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Obfuscate_Properties", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Property_Internal", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Property_Private", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Property_Protected", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Property_Public", - "Value" : "True", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Event", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Obfuscate_Events", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Event_Internal", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Event_Private", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Event_Protected", - "Value" : "True", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Obfuscate_Event_Public", - "Value" : "True", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Custom_Attributes", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Renaming", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Enable_Save_Mapping", - "Value" : "True", - "Values" : null - }, - { - "Type" : "String", - "Key" : "Save_Mapping_FilePath", - "Value" : "anti-obfuscation/1.0.0.txt", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Add_Random_Code", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Enable_Add_Random_Code", - "Value" : "True", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Method_ControlFlow", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Enable_Method_ControlFlow", - "Value" : "True", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_String", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Enable_String_Obfuscation", - "Value" : "False", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Assembly_Suppress_ILDasm", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Enable_Assembly_Suppress_ILDasm", - "Value" : "True", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_AntiTampering", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Enable_AntiTampering_Protection", - "Value" : "True", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Obfuscation_Component_Find_Unity_Event_MethodReferences", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Enable_Try_Find_Inspector_Unity_Event_Methods", - "Value" : "False", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_PlayFab_Sdk", - "SettingElement_Array" : [ - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_Meta", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Skip_Meta_Assemblies", - "Value" : "False", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Skip_Facebook_Assemblies", - "Value" : "False", - "Values" : null - }, - { - "Type" : "Bool", - "Key" : "Skip_Oculus_Assemblies", - "Value" : "False", - "Values" : null - } - ] - }, - { - "Settings_Name" : "Default_Compatibility_Component_Realms_Sdk", - "SettingElement_Array" : [ - ] - } - ], - "Version" : "5.1.7", - "SettingElement_Array" : [ - { - "Type" : "Bool", - "Key" : "Global_Enable_Obfuscation", - "Value" : "True", - "Values" : null - } - ] +{ + "ComponentSettings_Array" : [ + { + "Settings_Name" : "Default_Compatibility_Component_DotNet", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_Unity", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_Obfuscator", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_Chartboost", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_Facebook_Sdk", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_Google_Sdk", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_Json_Sdk", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_Photon_Sdk", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_PlayMaker_Sdk", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Assembly", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Obfuscate_Assembly_AssemblyCSharp", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Assembly_AssemblyCSharpFirstPass", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Assembly_In_Assets_AssemblyDefinitionFiles", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Assembly_In_Packages_AssemblyDefinitionFiles", + "Value" : "False", + "Values" : null + }, + { + "Type" : "Array_String", + "Key" : "Obfuscate_Assembly_Additional_Assembly_Array", + "Value" : null, + "Values" : [ + "SRKZBz0SDK.dll" + ] + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Find_Unity_Animation_MethodReferences", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Enable_Try_Find_Inspector_Animation_Methods", + "Value" : "False", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Find_Unity_Gui_MethodReferences", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Enable_Try_Find_Inspector_Gui_Methods", + "Value" : "True", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_String_Reflection_And_Coroutine", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Enable_Try_Find_String_Reflection_And_Coroutine", + "Value" : "False", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Logging", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Namespace", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Obfuscate_Namespaces", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Skip_Namespace_ViceVersa", + "Value" : "False", + "Values" : null + }, + { + "Type" : "Array_String", + "Key" : "Skip_Namespace_Array", + "Value" : null, + "Values" : [ + "IgnoreOPS", + "AdjustSdk", + "SRKZBz0SDK", + "AppsFlyerSDK", + "BigoAds", + "SDK_IAP", + "KwaiAds", + "AD", + "Firebase" + ] + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Class", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Obfuscate_Classes", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_Internal", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_Private", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_Protected", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_Public", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_Abstract", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_Generic", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_MonoBehaviour", + "Value" : "False", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_MonoBehaviour_Not_Obfuscatable", + "Value" : "False", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_MonoBehaviour_Extern", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_MonoBehaviour_Not_Obfuscatable_Extern", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_ScriptableObject", + "Value" : "False", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_Playable", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_Serializable", + "Value" : "True", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Method", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Obfuscate_Methods", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Method_Internal", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Method_Private", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Method_Protected", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Method_Public", + "Value" : "False", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Parameter", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Obfuscate_Method_Parameter", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Class_Parameter", + "Value" : "True", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Field", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Obfuscate_Fields", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Field_Internal", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Field_Private", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Field_Protected", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Field_Public", + "Value" : "False", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Field_Serializable", + "Value" : "False", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Field_Public_Unity", + "Value" : "False", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Field_Enums", + "Value" : "False", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Property", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Obfuscate_Properties", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Property_Internal", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Property_Private", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Property_Protected", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Property_Public", + "Value" : "True", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Event", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Obfuscate_Events", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Event_Internal", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Event_Private", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Event_Protected", + "Value" : "True", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Obfuscate_Event_Public", + "Value" : "True", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Custom_Attributes", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Renaming", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Enable_Save_Mapping", + "Value" : "True", + "Values" : null + }, + { + "Type" : "String", + "Key" : "Save_Mapping_FilePath", + "Value" : "anti-obfuscation/1.0.0.txt", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Add_Random_Code", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Enable_Add_Random_Code", + "Value" : "True", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Method_ControlFlow", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Enable_Method_ControlFlow", + "Value" : "True", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_String", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Enable_String_Obfuscation", + "Value" : "False", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Assembly_Suppress_ILDasm", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Enable_Assembly_Suppress_ILDasm", + "Value" : "True", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_AntiTampering", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Enable_AntiTampering_Protection", + "Value" : "True", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Obfuscation_Component_Find_Unity_Event_MethodReferences", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Enable_Try_Find_Inspector_Unity_Event_Methods", + "Value" : "False", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_PlayFab_Sdk", + "SettingElement_Array" : [ + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_Meta", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Skip_Meta_Assemblies", + "Value" : "False", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Skip_Facebook_Assemblies", + "Value" : "False", + "Values" : null + }, + { + "Type" : "Bool", + "Key" : "Skip_Oculus_Assemblies", + "Value" : "False", + "Values" : null + } + ] + }, + { + "Settings_Name" : "Default_Compatibility_Component_Realms_Sdk", + "SettingElement_Array" : [ + ] + } + ], + "Version" : "5.1.7", + "SettingElement_Array" : [ + { + "Type" : "Bool", + "Key" : "Global_Enable_Obfuscation", + "Value" : "True", + "Values" : null + } + ] } \ No newline at end of file diff --git a/Assets/Plugins/Android.meta b/Assets/Plugins/Android.meta new file mode 100644 index 00000000..317e3610 --- /dev/null +++ b/Assets/Plugins/Android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f17f821972abb374a806227be73d7fe6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/AndroidManifest.xml b/Assets/Plugins/Android/AndroidManifest.xml new file mode 100644 index 00000000..8e9002b3 --- /dev/null +++ b/Assets/Plugins/Android/AndroidManifest.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + diff --git a/Assets/Plugins/Android/AndroidManifest.xml.meta b/Assets/Plugins/Android/AndroidManifest.xml.meta new file mode 100644 index 00000000..4e0d0366 --- /dev/null +++ b/Assets/Plugins/Android/AndroidManifest.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5eea3d4fa71d3594ebc484be36832997 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/FirebaseApp.androidlib.meta b/Assets/Plugins/Android/FirebaseApp.androidlib.meta new file mode 100644 index 00000000..7ea0a462 --- /dev/null +++ b/Assets/Plugins/Android/FirebaseApp.androidlib.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 480ab794634c2944d944c5f3ac5cf15e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/FirebaseApp.androidlib/AndroidManifest.xml b/Assets/Plugins/Android/FirebaseApp.androidlib/AndroidManifest.xml new file mode 100644 index 00000000..fa692b98 --- /dev/null +++ b/Assets/Plugins/Android/FirebaseApp.androidlib/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Assets/Plugins/Android/FirebaseApp.androidlib/project.properties b/Assets/Plugins/Android/FirebaseApp.androidlib/project.properties new file mode 100644 index 00000000..37b95ede --- /dev/null +++ b/Assets/Plugins/Android/FirebaseApp.androidlib/project.properties @@ -0,0 +1,2 @@ +target=android-9 +android.library=true \ No newline at end of file diff --git a/Assets/Plugins/Android/FirebaseApp.androidlib/res/values/google-services.xml b/Assets/Plugins/Android/FirebaseApp.androidlib/res/values/google-services.xml new file mode 100644 index 00000000..2278bac9 --- /dev/null +++ b/Assets/Plugins/Android/FirebaseApp.androidlib/res/values/google-services.xml @@ -0,0 +1,3 @@ + + + diff --git a/Assets/Plugins/Android/FirebaseCrashlytics.androidlib.meta b/Assets/Plugins/Android/FirebaseCrashlytics.androidlib.meta new file mode 100644 index 00000000..a2498f25 --- /dev/null +++ b/Assets/Plugins/Android/FirebaseCrashlytics.androidlib.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 49cafa14e5e14ad4399fe1dd0918f35c +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/AndroidManifest.xml b/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/AndroidManifest.xml new file mode 100644 index 00000000..52845716 --- /dev/null +++ b/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/project.properties b/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/project.properties new file mode 100644 index 00000000..37b95ede --- /dev/null +++ b/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/project.properties @@ -0,0 +1,2 @@ +target=android-9 +android.library=true \ No newline at end of file diff --git a/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/res/values/crashlytics_build_id.xml b/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/res/values/crashlytics_build_id.xml new file mode 100644 index 00000000..6b73b185 --- /dev/null +++ b/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/res/values/crashlytics_build_id.xml @@ -0,0 +1 @@ +b4724b9c-b83b-4372-88a5-d2ce6fa34105 diff --git a/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/res/values/crashlytics_unity_version.xml b/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/res/values/crashlytics_unity_version.xml new file mode 100644 index 00000000..d4460ac4 --- /dev/null +++ b/Assets/Plugins/Android/FirebaseCrashlytics.androidlib/res/values/crashlytics_unity_version.xml @@ -0,0 +1 @@ +2022.3.62f2 diff --git a/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib.meta b/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib.meta new file mode 100644 index 00000000..00652c3e --- /dev/null +++ b/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: bc7ca36701d22f14ab56cac8b3fd7d74 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml b/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml new file mode 100644 index 00000000..b5592191 --- /dev/null +++ b/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle b/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle new file mode 100644 index 00000000..7a99a3a5 --- /dev/null +++ b/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle @@ -0,0 +1,5 @@ +android { + packagingOptions { + pickFirst "META-INF/kotlinx_coroutines_core.version" + } +} diff --git a/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/project.properties b/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/project.properties new file mode 100644 index 00000000..37f1a3b7 --- /dev/null +++ b/Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/project.properties @@ -0,0 +1,2 @@ +target=android-31 +android.library=true diff --git a/Assets/Plugins/Android/LauncherManifest.xml b/Assets/Plugins/Android/LauncherManifest.xml new file mode 100644 index 00000000..c89dd82c --- /dev/null +++ b/Assets/Plugins/Android/LauncherManifest.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/Assets/Plugins/Android/LauncherManifest.xml.meta b/Assets/Plugins/Android/LauncherManifest.xml.meta new file mode 100644 index 00000000..34477f03 --- /dev/null +++ b/Assets/Plugins/Android/LauncherManifest.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7409fae52bf1254479ea33489af7c957 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/MessagingUnityPlayerActivity.java b/Assets/Plugins/Android/MessagingUnityPlayerActivity.java new file mode 100644 index 00000000..31d7fc0b --- /dev/null +++ b/Assets/Plugins/Android/MessagingUnityPlayerActivity.java @@ -0,0 +1,82 @@ +/* + * This file is generated by the FirebaseMessagingActivityGenerator script. + * Refer to that script for more information. + */ + +package com.google.firebase; + +import android.content.Intent; +import android.os.Bundle; +import com.google.firebase.messaging.MessageForwardingService; +import com.unity3d.player.UnityPlayerActivity; + +/** + * MessagingUnityPlayerActivity is a UnityPlayerActivity that updates its intent when new intents + * are sent to it. + * + * This is a workaround for a known issue that prevents Firebase Cloud Messaging from responding to + * data payloads when both a data and notification payload are sent to the app while it is in the + * background. + */ +public class MessagingUnityPlayerActivity extends UnityPlayerActivity { + // The key in the intent's extras that maps to the incoming message's message ID. Only sent by + // the server, GmsCore sends EXTRA_MESSAGE_ID_KEY below. Server can't send that as it would get + // stripped by the client. + private static final String EXTRA_MESSAGE_ID_KEY_SERVER = "message_id"; + + // An alternate key value in the intent's extras that also maps to the incoming message's message + // ID. Used by upstream, and set by GmsCore. + private static final String EXTRA_MESSAGE_ID_KEY = "google.message_id"; + + // The key in the intent's extras that maps to the incoming message's sender value. + private static final String EXTRA_FROM = "google.message_id"; + + /** + * Workaround for when a message is sent containing both a Data and Notification payload. + * + *

When the app is in the background, if a message with both a data and notification payload is + * received the data payload is stored on the Intent passed to onNewIntent. By default, that + * intent does not get set as the Intent that started the app, so when the app comes back online + * it doesn't see a new FCM message to respond to. As a workaround, we override onNewIntent so + * that it sends the intent to the MessageForwardingService which forwards the message to the + * FirebaseMessagingService which in turn sends the message to the application. + */ + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + + // If we do not have a 'from' field this intent was not a message and should not be handled. It + // probably means this intent was fired by tapping on the app icon. + Bundle extras = intent.getExtras(); + if (extras == null) { + return; + } + String from = extras.getString(EXTRA_FROM); + String messageId = extras.getString(EXTRA_MESSAGE_ID_KEY); + if (messageId == null) { + messageId = extras.getString(EXTRA_MESSAGE_ID_KEY_SERVER); + } + if (from != null && messageId != null) { + Intent message = new Intent(this, MessageForwardingService.class); + message.setAction(MessageForwardingService.ACTION_REMOTE_INTENT); + message.putExtras(intent); + message.setData(intent.getData()); + MessageForwardingService.enqueueWork(this, message); + } + setIntent(intent); + } + + /** + * Dispose of the mUnityPlayer when restarting the app. + * + *

This ensures that when the app starts up again it does not start with stale data. + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + if (mUnityPlayer != null) { + mUnityPlayer.quit(); + mUnityPlayer = null; + } + super.onCreate(savedInstanceState); + } +} \ No newline at end of file diff --git a/Assets/Plugins/Android/MessagingUnityPlayerActivity.java.meta b/Assets/Plugins/Android/MessagingUnityPlayerActivity.java.meta new file mode 100644 index 00000000..45725970 --- /dev/null +++ b/Assets/Plugins/Android/MessagingUnityPlayerActivity.java.meta @@ -0,0 +1,34 @@ +fileFormatVersion: 2 +guid: 2bfe1e2f6ccf50649b6b50becea1293f +labels: +- FirebaseMessagingActivityGenerated +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl b/Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl new file mode 100644 index 00000000..ff041ec6 Binary files /dev/null and b/Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl differ diff --git a/Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl.meta b/Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl.meta new file mode 100644 index 00000000..18d15d70 --- /dev/null +++ b/Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 59b3f9343bdac42318926c7944365bb9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl b/Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl new file mode 100644 index 00000000..58859069 Binary files /dev/null and b/Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl differ diff --git a/Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl.meta b/Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl.meta new file mode 100644 index 00000000..83c2313f --- /dev/null +++ b/Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ea6387b3379b4458498b339bcd316c7c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/core-1.6.0.aar.tmpl b/Assets/Plugins/Android/core-1.6.0.aar.tmpl new file mode 100644 index 00000000..cdf16635 Binary files /dev/null and b/Assets/Plugins/Android/core-1.6.0.aar.tmpl differ diff --git a/Assets/Plugins/Android/core-1.6.0.aar.tmpl.meta b/Assets/Plugins/Android/core-1.6.0.aar.tmpl.meta new file mode 100644 index 00000000..666d046e --- /dev/null +++ b/Assets/Plugins/Android/core-1.6.0.aar.tmpl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 70fc6af576ac24f6aa283eecbf393621 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/googlemobileads-unity.aar b/Assets/Plugins/Android/googlemobileads-unity.aar new file mode 100644 index 00000000..34c2d008 Binary files /dev/null and b/Assets/Plugins/Android/googlemobileads-unity.aar differ diff --git a/Assets/Plugins/Android/googlemobileads-unity.aar.meta b/Assets/Plugins/Android/googlemobileads-unity.aar.meta new file mode 100644 index 00000000..f8731ee3 --- /dev/null +++ b/Assets/Plugins/Android/googlemobileads-unity.aar.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: c318684db3e949ee938fbe37ab78acbb +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-Plugins/Android/googlemobileads-unity.aar +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 1 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/gradleTemplate.properties b/Assets/Plugins/Android/gradleTemplate.properties new file mode 100644 index 00000000..936d178e --- /dev/null +++ b/Assets/Plugins/Android/gradleTemplate.properties @@ -0,0 +1,12 @@ +org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M +org.gradle.parallel=true +unityStreamingAssets=**STREAMING_ASSETS** +# Android Resolver Properties Start +android.useAndroidX=true +android.enableJetifier=true +# Android Resolver Properties End +**ADDITIONAL_PROPERTIES** + +android.jetifier.ignorelist=annotation-experimental-1.4.0.aar +android.enableLint=false +android.lint.disableLintTasks=true \ No newline at end of file diff --git a/Assets/Plugins/Android/gradleTemplate.properties.meta b/Assets/Plugins/Android/gradleTemplate.properties.meta new file mode 100644 index 00000000..cd359ed0 --- /dev/null +++ b/Assets/Plugins/Android/gradleTemplate.properties.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 40825427c859b6746a5509597a58a1f2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/launcherTemplate.gradle b/Assets/Plugins/Android/launcherTemplate.gradle new file mode 100644 index 00000000..3b2bd7fe --- /dev/null +++ b/Assets/Plugins/Android/launcherTemplate.gradle @@ -0,0 +1,64 @@ +apply plugin: 'com.android.application' + +dependencies { + implementation 'androidx.multidex:multidex:2.0.1' + implementation project(':unityLibrary') + } + +android { + namespace "**NAMESPACE**" + ndkPath "**NDKPATH**" + + compileSdkVersion **APIVERSION** + buildToolsVersion '**BUILDTOOLS**' + + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } + + defaultConfig { + minSdkVersion **MINSDKVERSION** + targetSdkVersion **TARGETSDKVERSION** + applicationId '**APPLICATIONID**' + ndk { + abiFilters **ABIFILTERS** + } + versionCode **VERSIONCODE** + versionName '**VERSIONNAME**' + multiDexEnabled true // 添加 + } + + aaptOptions { + noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ') + ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~" + }**SIGN** + + lintOptions { + abortOnError false + } + + buildTypes { + debug { + minifyEnabled **MINIFY_DEBUG** + proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG** + jniDebuggable true + } + release { + minifyEnabled **MINIFY_RELEASE** + proguardFiles getDefaultProguardFile('proguard-android.txt')**SIGNCONFIG** + } + }**PACKAGING_OPTIONS****PLAY_ASSET_PACKS****SPLITS** +**BUILT_APK_LOCATION** + bundle { + language { + enableSplit = false + } + density { + enableSplit = false + } + abi { + enableSplit = true + } + } +}**SPLITS_VERSION_CODE****LAUNCHER_SOURCE_BUILD_SETUP** diff --git a/Assets/Plugins/Android/launcherTemplate.gradle.meta b/Assets/Plugins/Android/launcherTemplate.gradle.meta new file mode 100644 index 00000000..1eb129aa --- /dev/null +++ b/Assets/Plugins/Android/launcherTemplate.gradle.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9e912912ee5108e4992059f4898a1c5d +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/mainTemplate.gradle b/Assets/Plugins/Android/mainTemplate.gradle new file mode 100644 index 00000000..0e68cf40 --- /dev/null +++ b/Assets/Plugins/Android/mainTemplate.gradle @@ -0,0 +1,119 @@ +apply plugin: 'com.android.library' +**APPLY_PLUGINS** + +configurations.all { + resolutionStrategy { + force "androidx.core:core-ktx:1.9.0" + force "androidx.lifecycle:lifecycle-common:2.6.2" + force "androidx.lifecycle:lifecycle-runtime:2.6.2" + force "androidx.lifecycle:lifecycle-runtime-ktx:2.6.2" + force "androidx.lifecycle:lifecycle-process:2.6.2" + force "androidx.compose.ui:ui:1.5.4" + force "androidx.compose.ui:ui-graphics:1.5.4" + force "androidx.compose.animation:animation-core:1.5.4" + force "androidx.activity:activity:1.7.2" + force "androidx.activity:activity-compose:1.7.2" + force "androidx.annotation:annotation-experimental:1.3.1" + } +} + + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + +// Android Resolver Dependencies Start + implementation 'androidx.annotation:annotation:1.2.0' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:7 + implementation 'androidx.appcompat:appcompat:1.2.0' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:5 + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:12 + implementation 'androidx.lifecycle:lifecycle-process:2.6.2' // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:17 + implementation 'androidx.media3:media3-exoplayer:1.0.0-alpha01' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:4 + implementation 'androidx.recyclerview:recyclerview:1.2.1' // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:9 + implementation 'com.android.installreferrer:installreferrer:2.1' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/AppsFlyer/Editor/AppsFlyerDependencies.xml:7 + implementation 'com.android.support:customtabs:28.+' // Assets/MaxSdk/Mediation/InMobi/Editor/Dependencies.xml:7 + implementation 'com.android.support:recyclerview-v7:28.+' // Assets/MaxSdk/Mediation/InMobi/Editor/Dependencies.xml:6 + implementation 'com.applovin.mediation:bidmachine-adapter:3.6.1.0' // Assets/MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml:8 + implementation 'com.applovin.mediation:bigoads-adapter:5.8.2.0' // Assets/MaxSdk/Mediation/BigoAds/Editor/Dependencies.xml:4 + implementation 'com.applovin.mediation:bytedance-adapter:7.9.1.3.0' // Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml:8 + implementation 'com.applovin.mediation:chartboost-adapter:9.11.1.0' // Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml:8 + implementation 'com.applovin.mediation:facebook-adapter:[6.11.0.0]' // Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml:8 + implementation 'com.applovin.mediation:fyber-adapter:8.4.4.0' // Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml:4 + implementation 'com.applovin.mediation:google-adapter:[25.2.0.0]' // Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml:5 + implementation 'com.applovin.mediation:google-ad-manager-adapter:[25.2.0.0]' // Assets/MaxSdk/Mediation/GoogleAdManager/Editor/Dependencies.xml:5 + implementation 'com.applovin.mediation:inmobi-adapter:11.2.0.0' // Assets/MaxSdk/Mediation/InMobi/Editor/Dependencies.xml:4 + implementation 'com.applovin.mediation:ironsource-adapter:9.4.0.0.0' // Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml:4 + implementation 'com.applovin.mediation:mintegral-adapter:17.1.51.0' // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:8 + implementation 'com.applovin.mediation:moloco-adapter:4.8.0.0' // Assets/MaxSdk/Mediation/Moloco/Editor/Dependencies.xml:4 + implementation 'com.applovin.mediation:unityads-adapter:4.17.0.0' // Assets/MaxSdk/Mediation/UnityAds/Editor/Dependencies.xml:4 + implementation 'com.applovin.mediation:vungle-adapter:7.7.3.0' // Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml:4 + implementation 'com.applovin:applovin-sdk:13.6.2' // Assets/MaxSdk/AppLovin/Editor/Dependencies.xml:4 + implementation 'com.appsflyer:af-android-sdk:6.17.6' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/AppsFlyer/Editor/AppsFlyerDependencies.xml:5 + implementation 'com.appsflyer:purchase-connector:2.2.0' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/AppsFlyer/Editor/AppsFlyerDependencies.xml:8 + implementation 'com.appsflyer:unity-wrapper:6.17.91' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/AppsFlyer/Editor/AppsFlyerDependencies.xml:6 + implementation 'com.bigossp:bigo-ads:5.3.0' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/BigoAdsAll/BigoSDK/Editor/Dependencies.xml:11 + implementation 'com.google.android.gms:play-services-ads:24.5.0' // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7 + implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:9 + // implementation 'com.google.android.gms:play-services-base:16.1.0' // Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml:9 + implementation 'com.google.android.gms:play-services-base:18.6.0' // Assets/Firebase/Editor/AppDependencies.xml:17 + implementation 'com.google.android.material:material:1.2.1' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:6 + implementation 'com.google.android.ump:user-messaging-platform:3.2.0' // Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml:7 + implementation 'com.google.firebase:firebase-analytics:22.4.0' // Assets/Firebase/Editor/MessagingDependencies.xml:15 + implementation 'com.google.firebase:firebase-analytics-unity:12.8.0' // Assets/Firebase/Editor/AnalyticsDependencies.xml:18 + implementation 'com.google.firebase:firebase-app-unity:12.8.0' // Assets/Firebase/Editor/AppDependencies.xml:22 + implementation 'com.google.firebase:firebase-common:21.0.0' // Assets/Firebase/Editor/AppDependencies.xml:13 + implementation 'com.google.firebase:firebase-crashlytics-ndk:19.4.2' // Assets/Firebase/Editor/CrashlyticsDependencies.xml:13 + implementation 'com.google.firebase:firebase-crashlytics-unity:12.8.0' // Assets/Firebase/Editor/CrashlyticsDependencies.xml:20 + implementation 'com.google.firebase:firebase-iid:21.1.0' // Assets/Firebase/Editor/MessagingDependencies.xml:17 + implementation 'com.google.firebase:firebase-messaging:24.1.1' // Assets/Firebase/Editor/MessagingDependencies.xml:13 + implementation 'com.google.firebase:firebase-messaging-unity:12.8.0' // Assets/Firebase/Editor/MessagingDependencies.xml:24 + implementation 'com.google.flatbuffers:flatbuffers-java:1.12.0' // Assets/Firebase/Editor/MessagingDependencies.xml:19 + implementation 'com.squareup.picasso:picasso:2.71828' // Assets/MaxSdk/Mediation/InMobi/Editor/Dependencies.xml:5 + implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10' // Assets/WwaMqLUP7HfmMSDK/ThirdParty/KwaiAds/Editor/Dependencies.xml:8 +// Android Resolver Dependencies End +**DEPS**} + +// Android Resolver Exclusions Start +android { + packagingOptions { + exclude ('/lib/armeabi/*' + '*') + exclude ('/lib/mips/*' + '*') + exclude ('/lib/mips64/*' + '*') + exclude ('/lib/x86/*' + '*') + exclude ('/lib/x86_64/*' + '*') + } +} +// Android Resolver Exclusions End +android { + namespace "com.unity3d.player" + ndkPath "**NDKPATH**" + compileSdkVersion **APIVERSION** + buildToolsVersion '**BUILDTOOLS**' + + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } + + defaultConfig { + minSdkVersion **MINSDKVERSION** + targetSdkVersion **TARGETSDKVERSION** + ndk { + abiFilters **ABIFILTERS** + } + versionCode **VERSIONCODE** + versionName '**VERSIONNAME**' + consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD** + } + + lintOptions { + checkReleaseBuilds false + abortOnError false + } + + aaptOptions { + noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ') + ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~" + }**PACKAGING_OPTIONS** +} +**IL_CPP_BUILD_SETUP** +**SOURCE_BUILD_SETUP** +**EXTERNAL_SOURCES** diff --git a/Assets/Plugins/Android/mainTemplate.gradle.meta b/Assets/Plugins/Android/mainTemplate.gradle.meta new file mode 100644 index 00000000..ad9b599c --- /dev/null +++ b/Assets/Plugins/Android/mainTemplate.gradle.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ce27eea5dc4d2994090175237f56e154 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Android/settingsTemplate.gradle b/Assets/Plugins/Android/settingsTemplate.gradle new file mode 100644 index 00000000..7d7a8f74 --- /dev/null +++ b/Assets/Plugins/Android/settingsTemplate.gradle @@ -0,0 +1,48 @@ +pluginManagement { + repositories { + **ARTIFACTORYREPOSITORY** + gradlePluginPortal() + google() + mavenCentral() + } +} + +include ':launcher', ':unityLibrary' +**INCLUDES** + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + repositories { + **ARTIFACTORYREPOSITORY** + google() + mavenCentral() +// Android Resolver Repos Start + def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/") + maven { + url (unityProjectPath + "/Assets/GeneratedLocalRepo/Firebase/m2repository") // Assets/Firebase/Editor/AnalyticsDependencies.xml:18, Assets/Firebase/Editor/AppDependencies.xml:22, Assets/Firebase/Editor/CrashlyticsDependencies.xml:20, Assets/Firebase/Editor/MessagingDependencies.xml:24 + } + maven { + url "https://maven.aliyun.com/repository/google" // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7, Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:12, Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:17, Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml:7 + } + maven { + url "https://artifactory.bidmachine.io/bidmachine" // Assets/MaxSdk/Mediation/BidMachine/Editor/Dependencies.xml:8 + } + maven { + url "https://artifact.bytedance.com/repository/pangle" // Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml:8 + } + maven { + url "https://cboost.jfrog.io/artifactory/chartboost-ads/" // Assets/MaxSdk/Mediation/Chartboost/Editor/Dependencies.xml:8 + } + maven { + url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:8 + } + maven { + url "https://repo1.maven.org/maven2/" // Assets/WwaMqLUP7HfmMSDK/ThirdParty/BigoAdsAll/BigoSDK/Editor/Dependencies.xml:11 + } + mavenLocal() +// Android Resolver Repos End + flatDir { + dirs "${project(':unityLibrary').projectDir}/libs" + } + } +} diff --git a/Assets/Plugins/Android/settingsTemplate.gradle.meta b/Assets/Plugins/Android/settingsTemplate.gradle.meta new file mode 100644 index 00000000..4f911a53 --- /dev/null +++ b/Assets/Plugins/Android/settingsTemplate.gradle.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a08fd354071782f4fb8aa5efd09c9867 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Editor.meta b/Assets/Plugins/Editor.meta new file mode 100644 index 00000000..4afc4293 --- /dev/null +++ b/Assets/Plugins/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5415c2bc4488c42739b36767bc7f8c83 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Editor/UnityWebViewPostprocessBuild.cs b/Assets/Plugins/Editor/UnityWebViewPostprocessBuild.cs new file mode 100644 index 00000000..19d9a961 --- /dev/null +++ b/Assets/Plugins/Editor/UnityWebViewPostprocessBuild.cs @@ -0,0 +1,539 @@ +#if UNITY_EDITOR +using System.Collections.Generic; +using System.Collections; +using System.IO; +using System.Reflection; +using System.Text.RegularExpressions; +using System.Text; +using System.Xml; +using System; +using UnityEditor.Android; +#if UNITY_2018_1_OR_NEWER +using UnityEditor.Build; +#endif +using UnityEditor.Callbacks; +using UnityEditor; +using UnityEngine; + +#if UNITY_2018_1_OR_NEWER +public class UnityWebViewPostprocessBuild : IPreprocessBuild, IPostGenerateGradleAndroidProject +#else +public class UnityWebViewPostprocessBuild +#endif +{ + private static bool nofragment = false; + + //// for android/unity 2018.1 or newer + //// cf. https://forum.unity.com/threads/android-hardwareaccelerated-is-forced-false-in-all-activities.532786/ + //// cf. https://github.com/Over17/UnityAndroidManifestCallback + +#if UNITY_2018_1_OR_NEWER + public void OnPreprocessBuild(BuildTarget buildTarget, string path) { + if (buildTarget == BuildTarget.Android) { + var dev = "Packages/net.gree.unity-webview/Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl"; + var rel = "Packages/net.gree.unity-webview/Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl"; + if (!File.Exists(dev) || !File.Exists(rel)) { + dev = "Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl"; + rel = "Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl"; + } + var src = (EditorUserBuildSettings.development) ? dev : rel; + //Directory.CreateDirectory("Temp/StagingArea/aar"); + //File.Copy(src, "Temp/StagingArea/aar/WebViewPlugin.aar", true); + Directory.CreateDirectory("Assets/Plugins/Android"); + File.Copy(src, "Assets/Plugins/Android/WebViewPlugin.aar", true); + } + } + + public void OnPostGenerateGradleAndroidProject(string basePath) { + var changed = false; + var androidManifest = new AndroidManifest(GetManifestPath(basePath)); + if (!nofragment) { + changed = (androidManifest.AddFileProvider(basePath) || changed); + { + var path = GetBuildGradlePath(basePath); + var lines0 = File.ReadAllText(path).Replace("\r\n", "\n").Replace("\r", "\n").Split(new[]{'\n'}); + { + var lines = new List(); + var independencies = false; + foreach (var line in lines0) { + if (line == "dependencies {") { + independencies = true; + } else if (independencies && line == "}") { + independencies = false; + lines.Add(" implementation 'androidx.core:core:1.6.0'"); + } else if (independencies) { + if (line.Contains("implementation(name: 'core") + || line.Contains("implementation(name: 'androidx.core.core") + || line.Contains("implementation 'androidx.core:core")) { + break; + } + } + lines.Add(line); + } + if (lines.Count > lines0.Length) { + File.WriteAllText(path, string.Join("\n", lines) + "\n"); + } + } + } + { + var path = GetGradlePropertiesPath(basePath); + var lines0 = ""; + var lines = ""; + if (File.Exists(path)) { + lines0 = File.ReadAllText(path).Replace("\r\n", "\n").Replace("\r", "\n") + "\n"; + lines = lines0; + } + if (!lines.Contains("android.useAndroidX=true")) { + lines += "android.useAndroidX=true\n"; + } + if (!lines.Contains("android.enableJetifier=true")) { + lines += "android.enableJetifier=true\n"; + } + if (lines != lines0) { + File.WriteAllText(path, lines); + } + } + } + changed = (androidManifest.SetExported(true) || changed); + changed = (androidManifest.SetWindowSoftInputMode("adjustPan") || changed); + changed = (androidManifest.SetHardwareAccelerated(true) || changed); +#if UNITYWEBVIEW_ANDROID_USES_CLEARTEXT_TRAFFIC + changed = (androidManifest.SetUsesCleartextTraffic(true) || changed); +#endif +#if UNITYWEBVIEW_ANDROID_ENABLE_CAMERA + changed = (androidManifest.AddCamera() || changed); + changed = (androidManifest.AddGallery() || changed); +#endif +#if UNITYWEBVIEW_ANDROID_ENABLE_MICROPHONE + changed = (androidManifest.AddMicrophone() || changed); +#endif + if (changed) { + androidManifest.Save(); + Debug.Log("unitywebview: adjusted AndroidManifest.xml."); + } + } +#endif + + public int callbackOrder { + get { + return 1; + } + } + + private string GetManifestPath(string basePath) { + var pathBuilder = new StringBuilder(basePath); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("src"); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("main"); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("AndroidManifest.xml"); + return pathBuilder.ToString(); + } + + private string GetBuildGradlePath(string basePath) { + var pathBuilder = new StringBuilder(basePath); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("build.gradle"); + return pathBuilder.ToString(); + } + + private string GetGradlePropertiesPath(string basePath) { + var pathBuilder = new StringBuilder(basePath); + if (basePath.EndsWith("unityLibrary")) { + pathBuilder.Append(Path.DirectorySeparatorChar).Append(".."); + } + pathBuilder.Append(Path.DirectorySeparatorChar).Append("gradle.properties"); + return pathBuilder.ToString(); + } + + //// for others + + [PostProcessBuild(100)] + public static void OnPostprocessBuild(BuildTarget buildTarget, string path) { +#if UNITY_2018_1_OR_NEWER + try { + File.Delete("Assets/Plugins/Android/WebViewPlugin.aar"); + File.Delete("Assets/Plugins/Android/WebViewPlugin.aar.meta"); + Directory.Delete("Assets/Plugins/Android"); + File.Delete("Assets/Plugins/Android.meta"); + Directory.Delete("Assets/Plugins"); + File.Delete("Assets/Plugins.meta"); + } catch (Exception) { + } +#else + if (buildTarget == BuildTarget.Android) { + string manifest = Path.Combine(Application.dataPath, "Plugins/Android/AndroidManifest.xml"); + if (!File.Exists(manifest)) { + string manifest0 = Path.Combine(Application.dataPath, "../Temp/StagingArea/AndroidManifest-main.xml"); + if (!File.Exists(manifest0)) { + Debug.LogError("unitywebview: cannot find both Assets/Plugins/Android/AndroidManifest.xml and Temp/StagingArea/AndroidManifest-main.xml. please build the app to generate Assets/Plugins/Android/AndroidManifest.xml and then rebuild it again."); + return; + } else { + File.Copy(manifest0, manifest, true); + } + } + var changed = false; + if (EditorUserBuildSettings.development) { + if (!File.Exists("Assets/Plugins/Android/WebView.aar") + || !File.ReadAllBytes("Assets/Plugins/Android/WebView.aar").SequenceEqual(File.ReadAllBytes("Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl"))) { + File.Copy("Assets/Plugins/Android/WebViewPlugin-development.aar.tmpl", "Assets/Plugins/Android/WebView.aar", true); + changed = true; + } + } else { + if (!File.Exists("Assets/Plugins/Android/WebView.aar") + || !File.ReadAllBytes("Assets/Plugins/Android/WebView.aar").SequenceEqual(File.ReadAllBytes("Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl"))) { + File.Copy("Assets/Plugins/Android/WebViewPlugin-release.aar.tmpl", "Assets/Plugins/Android/WebView.aar", true); + changed = true; + } + } + var androidManifest = new AndroidManifest(manifest); + if (!nofragment) { + changed = (androidManifest.AddFileProvider("Assets/Plugins/Android") || changed); + var files = Directory.GetFiles("Assets/Plugins/Android/"); + var found = false; + foreach (var file in files) { + if (Regex.IsMatch(file, @"^Assets/Plugins/Android/(androidx\.core\.)?core-.*.aar$")) { + found = true; + break; + } + } + if (!found) { + foreach (var file in files) { + var match = Regex.Match(file, @"^Assets/Plugins/Android/(core.*.aar).tmpl$"); + if (match.Success) { + var name = match.Groups[1].Value; + File.Copy(file, "Assets/Plugins/Android/" + name, true); + break; + } + } + } + } + changed = (androidManifest.SetWindowSoftInputMode("adjustPan") || changed); + changed = (androidManifest.SetHardwareAccelerated(true) || changed); +#if UNITYWEBVIEW_ANDROID_USES_CLEARTEXT_TRAFFIC + changed = (androidManifest.SetUsesCleartextTraffic(true) || changed); +#endif +#if UNITYWEBVIEW_ANDROID_ENABLE_CAMERA + changed = (androidManifest.AddCamera() || changed); + changed = (androidManifest.AddGallery() || changed); +#endif +#if UNITYWEBVIEW_ANDROID_ENABLE_MICROPHONE + changed = (androidManifest.AddMicrophone() || changed); +#endif +#if UNITY_5_6_0 || UNITY_5_6_1 + changed = (androidManifest.SetActivityName("net.gree.unitywebview.CUnityPlayerActivity") || changed); +#endif + if (changed) { + androidManifest.Save(); + Debug.LogError("unitywebview: adjusted AndroidManifest.xml and/or WebView.aar. Please rebuild the app."); + } + } +#endif + if (buildTarget == BuildTarget.iOS) { + string projPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj"; + var type = Type.GetType("UnityEditor.iOS.Xcode.PBXProject, UnityEditor.iOS.Extensions.Xcode"); + if (type == null) + { + Debug.LogError("unitywebview: failed to get PBXProject. please install iOS build support."); + return; + } + var src = File.ReadAllText(projPath); + //dynamic proj = type.GetConstructor(Type.EmptyTypes).Invoke(null); + var proj = type.GetConstructor(Type.EmptyTypes).Invoke(null); + //proj.ReadFromString(src); + { + var method = type.GetMethod("ReadFromString"); + method.Invoke(proj, new object[]{src}); + } + var target = ""; +#if UNITY_2019_3_OR_NEWER + //target = proj.GetUnityFrameworkTargetGuid(); + { + var method = type.GetMethod("GetUnityFrameworkTargetGuid"); + target = (string)method.Invoke(proj, null); + } +#else + //target = proj.TargetGuidByName("Unity-iPhone"); + { + var method = type.GetMethod("TargetGuidByName"); + target = (string)method.Invoke(proj, new object[]{"Unity-iPhone"}); + } +#endif + //proj.AddFrameworkToProject(target, "WebKit.framework", false); + { + var method = type.GetMethod("AddFrameworkToProject"); + method.Invoke(proj, new object[]{target, "WebKit.framework", false}); + } + var cflags = ""; + if (EditorUserBuildSettings.development) { + cflags += " -DUNITYWEBVIEW_DEVELOPMENT"; + } +#if UNITYWEBVIEW_IOS_ALLOW_FILE_URLS + cflags += " -DUNITYWEBVIEW_IOS_ALLOW_FILE_URLS"; +#endif + cflags = cflags.Trim(); + if (!string.IsNullOrEmpty(cflags)) { + // proj.AddBuildProperty(target, "OTHER_LDFLAGS", cflags); + var method = type.GetMethod("AddBuildProperty", new Type[]{typeof(string), typeof(string), typeof(string)}); + method.Invoke(proj, new object[]{target, "OTHER_CFLAGS", cflags}); + } + var dst = ""; + //dst = proj.WriteToString(); + { + var method = type.GetMethod("WriteToString"); + dst = (string)method.Invoke(proj, null); + } + File.WriteAllText(projPath, dst); + } + } +} + +internal class AndroidXmlDocument : XmlDocument { + private string m_Path; + protected XmlNamespaceManager nsMgr; + public readonly string AndroidXmlNamespace = "http://schemas.android.com/apk/res/android"; + + public AndroidXmlDocument(string path) { + m_Path = path; + using (var reader = new XmlTextReader(m_Path)) { + reader.Read(); + Load(reader); + } + nsMgr = new XmlNamespaceManager(NameTable); + nsMgr.AddNamespace("android", AndroidXmlNamespace); + } + + public string Save() { + return SaveAs(m_Path); + } + + public string SaveAs(string path) { + using (var writer = new XmlTextWriter(path, new UTF8Encoding(false))) { + writer.Formatting = Formatting.Indented; + Save(writer); + } + return path; + } +} + +internal class AndroidManifest : AndroidXmlDocument { + private readonly XmlElement ManifestElement; + private readonly XmlElement ApplicationElement; + + public AndroidManifest(string path) : base(path) { + ManifestElement = SelectSingleNode("/manifest") as XmlElement; + ApplicationElement = SelectSingleNode("/manifest/application") as XmlElement; + } + + private XmlAttribute CreateAndroidAttribute(string key, string value) { + XmlAttribute attr = CreateAttribute("android", key, AndroidXmlNamespace); + attr.Value = value; + return attr; + } + + internal XmlNode GetActivityWithLaunchIntent() { + return + SelectSingleNode( + "/manifest/application/activity[intent-filter/action/@android:name='android.intent.action.MAIN' and " + + "intent-filter/category/@android:name='android.intent.category.LAUNCHER']", + nsMgr); + } + + internal bool SetUsesCleartextTraffic(bool enabled) { + // android:usesCleartextTraffic + bool changed = false; + if (ApplicationElement.GetAttribute("usesCleartextTraffic", AndroidXmlNamespace) != ((enabled) ? "true" : "false")) { + ApplicationElement.SetAttribute("usesCleartextTraffic", AndroidXmlNamespace, (enabled) ? "true" : "false"); + changed = true; + } + return changed; + } + + // for api level 33 + internal bool SetExported(bool enabled) { + bool changed = false; + var activity = GetActivityWithLaunchIntent() as XmlElement; + if (activity.GetAttribute("exported", AndroidXmlNamespace) != ((enabled) ? "true" : "false")) { + activity.SetAttribute("exported", AndroidXmlNamespace, (enabled) ? "true" : "false"); + changed = true; + } + return changed; + } + + internal bool SetWindowSoftInputMode(string mode) { + bool changed = false; + var activity = GetActivityWithLaunchIntent() as XmlElement; + if (activity.GetAttribute("windowSoftInputMode", AndroidXmlNamespace) != mode) { + activity.SetAttribute("windowSoftInputMode", AndroidXmlNamespace, mode); + changed = true; + } + return changed; + } + + internal bool SetHardwareAccelerated(bool enabled) { + bool changed = false; + var activity = GetActivityWithLaunchIntent() as XmlElement; + if (activity.GetAttribute("hardwareAccelerated", AndroidXmlNamespace) != ((enabled) ? "true" : "false")) { + activity.SetAttribute("hardwareAccelerated", AndroidXmlNamespace, (enabled) ? "true" : "false"); + changed = true; + } + return changed; + } + + internal bool SetActivityName(string name) { + bool changed = false; + var activity = GetActivityWithLaunchIntent() as XmlElement; + if (activity.GetAttribute("name", AndroidXmlNamespace) != name) { + activity.SetAttribute("name", AndroidXmlNamespace, name); + changed = true; + } + return changed; + } + + internal bool AddFileProvider(string basePath) { + bool changed = false; + var authorities = PlayerSettings.applicationIdentifier + ".unitywebview.fileprovider"; + if (SelectNodes("/manifest/application/provider[@android:authorities='" + authorities + "']", nsMgr).Count == 0) { + var elem = CreateElement("provider"); + elem.Attributes.Append(CreateAndroidAttribute("name", "androidx.core.content.FileProvider")); + elem.Attributes.Append(CreateAndroidAttribute("authorities", authorities)); + elem.Attributes.Append(CreateAndroidAttribute("exported", "false")); + elem.Attributes.Append(CreateAndroidAttribute("grantUriPermissions", "true")); + var meta = CreateElement("meta-data"); + meta.Attributes.Append(CreateAndroidAttribute("name", "android.support.FILE_PROVIDER_PATHS")); + meta.Attributes.Append(CreateAndroidAttribute("resource", "@xml/unitywebview_file_provider_paths")); + elem.AppendChild(meta); + ApplicationElement.AppendChild(elem); + changed = true; + var xml = GetFileProviderSettingPath(basePath); + if (!File.Exists(xml)) { + Directory.CreateDirectory(Path.GetDirectoryName(xml)); + File.WriteAllText( + xml, + "\n" + + " \n" + + "\n"); + } + } + return changed; + } + + private string GetFileProviderSettingPath(string basePath) { + var pathBuilder = new StringBuilder(basePath); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("src"); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("main"); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("res"); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("xml"); + pathBuilder.Append(Path.DirectorySeparatorChar).Append("unitywebview_file_provider_paths.xml"); + return pathBuilder.ToString(); + } + + internal bool AddCamera() { + bool changed = false; + if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.CAMERA']", nsMgr).Count == 0) { + var elem = CreateElement("uses-permission"); + elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.CAMERA")); + ManifestElement.AppendChild(elem); + changed = true; + } + if (SelectNodes("/manifest/uses-feature[@android:name='android.hardware.camera']", nsMgr).Count == 0) { + var elem = CreateElement("uses-feature"); + elem.Attributes.Append(CreateAndroidAttribute("name", "android.hardware.camera")); + ManifestElement.AppendChild(elem); + changed = true; + } + // cf. https://developer.android.com/training/data-storage/shared/media#media-location-permission + if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.ACCESS_MEDIA_LOCATION']", nsMgr).Count == 0) { + var elem = CreateElement("uses-permission"); + elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.ACCESS_MEDIA_LOCATION")); + ManifestElement.AppendChild(elem); + changed = true; + } + // cf. https://developer.android.com/training/package-visibility/declaring + if (SelectNodes("/manifest/queries", nsMgr).Count == 0) { + var elem = CreateElement("queries"); + ManifestElement.AppendChild(elem); + changed = true; + } + if (SelectNodes("/manifest/queries/intent/action[@android:name='android.media.action.IMAGE_CAPTURE']", nsMgr).Count == 0) { + var action = CreateElement("action"); + action.Attributes.Append(CreateAndroidAttribute("name", "android.media.action.IMAGE_CAPTURE")); + var intent = CreateElement("intent"); + intent.AppendChild(action); + var queries = SelectSingleNode("/manifest/queries") as XmlElement; + queries.AppendChild(intent); + changed = true; + } + return changed; + } + + internal bool AddGallery() { + bool changed = false; + // for api level 33 + if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.READ_MEDIA_IMAGES']", nsMgr).Count == 0) { + var elem = CreateElement("uses-permission"); + elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.READ_MEDIA_IMAGES")); + ManifestElement.AppendChild(elem); + changed = true; + } + if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.READ_MEDIA_VIDEO']", nsMgr).Count == 0) { + var elem = CreateElement("uses-permission"); + elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.READ_MEDIA_VIDEO")); + ManifestElement.AppendChild(elem); + changed = true; + } + if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.READ_MEDIA_AUDIO']", nsMgr).Count == 0) { + var elem = CreateElement("uses-permission"); + elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.READ_MEDIA_AUDIO")); + ManifestElement.AppendChild(elem); + changed = true; + } + // cf. https://developer.android.com/training/package-visibility/declaring + if (SelectNodes("/manifest/queries", nsMgr).Count == 0) { + var elem = CreateElement("queries"); + ManifestElement.AppendChild(elem); + changed = true; + } + if (SelectNodes("/manifest/queries/intent/action[@android:name='android.media.action.GET_CONTENT']", nsMgr).Count == 0) { + var action = CreateElement("action"); + action.Attributes.Append(CreateAndroidAttribute("name", "android.media.action.GET_CONTENT")); + var intent = CreateElement("intent"); + intent.AppendChild(action); + var queries = SelectSingleNode("/manifest/queries") as XmlElement; + queries.AppendChild(intent); + changed = true; + } + return changed; + } + + internal bool AddMicrophone() { + bool changed = false; + if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.MICROPHONE']", nsMgr).Count == 0) { + var elem = CreateElement("uses-permission"); + elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.MICROPHONE")); + ManifestElement.AppendChild(elem); + changed = true; + } + if (SelectNodes("/manifest/uses-feature[@android:name='android.hardware.microphone']", nsMgr).Count == 0) { + var elem = CreateElement("uses-feature"); + elem.Attributes.Append(CreateAndroidAttribute("name", "android.hardware.microphone")); + ManifestElement.AppendChild(elem); + changed = true; + } + // cf. https://github.com/gree/unity-webview/issues/679 + // cf. https://github.com/fluttercommunity/flutter_webview_plugin/issues/138#issuecomment-559307558 + // cf. https://stackoverflow.com/questions/38917751/webview-webrtc-not-working/68024032#68024032 + // cf. https://stackoverflow.com/questions/40236925/allowing-microphone-accesspermission-in-webview-android-studio-java/47410311#47410311 + if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.MODIFY_AUDIO_SETTINGS']", nsMgr).Count == 0) { + var elem = CreateElement("uses-permission"); + elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.MODIFY_AUDIO_SETTINGS")); + ManifestElement.AppendChild(elem); + changed = true; + } + if (SelectNodes("/manifest/uses-permission[@android:name='android.permission.RECORD_AUDIO']", nsMgr).Count == 0) { + var elem = CreateElement("uses-permission"); + elem.Attributes.Append(CreateAndroidAttribute("name", "android.permission.RECORD_AUDIO")); + ManifestElement.AppendChild(elem); + changed = true; + } + return changed; + } +} +#endif diff --git a/Assets/Plugins/Editor/UnityWebViewPostprocessBuild.cs.meta b/Assets/Plugins/Editor/UnityWebViewPostprocessBuild.cs.meta new file mode 100644 index 00000000..2d862b52 --- /dev/null +++ b/Assets/Plugins/Editor/UnityWebViewPostprocessBuild.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0b2f5f306eb6e4afcbc074e6efccc188 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/DeviceIdentifierNative.mm b/Assets/Plugins/iOS/DeviceIdentifierNative.mm new file mode 100644 index 00000000..59f4b803 --- /dev/null +++ b/Assets/Plugins/iOS/DeviceIdentifierNative.mm @@ -0,0 +1,61 @@ +#import +#import // iOS 14及以上需要 +#import + +extern "C" { + + // 获取IDFA的函数 + const char* _GetIDFA() { + // 检查iOS版本 + if (@available(iOS 14, *)) { + // 检查当前追踪授权状态。注意:实际请求权限的弹窗应在合适时机主动调用,这里仅获取当前状态下的IDFA。 + ATTrackingManagerAuthorizationStatus status = [ATTrackingManager trackingAuthorizationStatus]; + if (status == ATTrackingManagerAuthorizationStatusAuthorized) { + // 用户已授权 + NSString *idfaString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; + return strdup([idfaString UTF8String]); + } else { + // 用户未授权、拒绝或受限 + NSLog(@"用户未授权广告追踪。状态: %ld", (long)status); + return strdup(""); + } + } else { + // Fallback on earlier versions - iOS 14以下版本 + if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) { + NSString *idfaString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; + return strdup([idfaString UTF8String]); + } else { + NSLog(@"用户限制了广告追踪。"); + return strdup(""); + } + } + } + + // 请求追踪权限的函数 (应在C#端选择合适的时机调用,例如用户点击同意隐私协议后) + void _RequestTrackingPermission() { + if (@available(iOS 14, *)) { + [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { + // 此回调在用户做出选择后执行 + NSString *idfaString = @""; + if (status == ATTrackingManagerAuthorizationStatusAuthorized) { + idfaString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; + } + // 可以使用UnitySendMessage将结果异步回传给Unity + // UnitySendMessage("GameObjectName", "MethodName", [idfaString UTF8String]); + }]; + } else { + // iOS 13或更低版本,无需请求权限,直接检查isAdvertisingTrackingEnabled + // 这里可以不做处理,或者也通过UnitySendMessage通知Unity + } + } + + // 获取IDFV的函数 + const char* _GetIDFV() { + NSString *idfvString = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; + if (idfvString) { + return strdup([idfvString UTF8String]); + } else { + return strdup(""); + } + } +} \ No newline at end of file diff --git a/Assets/Plugins/iOS/DeviceIdentifierNative.mm.meta b/Assets/Plugins/iOS/DeviceIdentifierNative.mm.meta new file mode 100644 index 00000000..7eff0758 --- /dev/null +++ b/Assets/Plugins/iOS/DeviceIdentifierNative.mm.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 6ca1a33377b43c4448729e3052dbb58a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: + AddToEmbeddedBinaries: false + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/Firebase.meta b/Assets/Plugins/iOS/Firebase.meta new file mode 100644 index 00000000..627831e5 --- /dev/null +++ b/Assets/Plugins/iOS/Firebase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6d1cb4664beff64595976ffb1f68ca0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a b/Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a new file mode 100644 index 00000000..35b1286b Binary files /dev/null and b/Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a differ diff --git a/Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a.meta b/Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a.meta new file mode 100644 index 00000000..1757712c --- /dev/null +++ b/Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: bf523cc64d194963aa7661e7d2944feb +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppAnalytics.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a b/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a new file mode 100644 index 00000000..8d4739c7 Binary files /dev/null and b/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a differ diff --git a/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a.meta b/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a.meta new file mode 100644 index 00000000..64cb9ae4 --- /dev/null +++ b/Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 601e8e1d2d2744929ede33676cbeccc0 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppApp.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a b/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a new file mode 100644 index 00000000..dfc8851e Binary files /dev/null and b/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a differ diff --git a/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a.meta b/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a.meta new file mode 100644 index 00000000..ae9c5797 --- /dev/null +++ b/Assets/Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: c9a5f5c47ed44459ae2c09b918d44344 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppCrashlytics.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/Firebase/libFirebaseCppMessaging.a b/Assets/Plugins/iOS/Firebase/libFirebaseCppMessaging.a new file mode 100644 index 00000000..af41eea1 Binary files /dev/null and b/Assets/Plugins/iOS/Firebase/libFirebaseCppMessaging.a differ diff --git a/Assets/Plugins/iOS/Firebase/libFirebaseCppMessaging.a.meta b/Assets/Plugins/iOS/Firebase/libFirebaseCppMessaging.a.meta new file mode 100644 index 00000000..d36251bc --- /dev/null +++ b/Assets/Plugins/iOS/Firebase/libFirebaseCppMessaging.a.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 33ee8d6580a8412d811e9c6eab8c2cb9 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppMessaging.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/GADUAdNetworkExtras.h b/Assets/Plugins/iOS/GADUAdNetworkExtras.h new file mode 100644 index 00000000..c9358e73 --- /dev/null +++ b/Assets/Plugins/iOS/GADUAdNetworkExtras.h @@ -0,0 +1,10 @@ +// Copyright 2016 Google Inc. All Rights Reserved. + +#import + +@protocol GADUAdNetworkExtras + +- (nonnull id)adNetworkExtrasWithDictionary: + (nonnull NSDictionary *)extras; + +@end diff --git a/Assets/Plugins/iOS/GADUAdNetworkExtras.h.meta b/Assets/Plugins/iOS/GADUAdNetworkExtras.h.meta new file mode 100644 index 00000000..7cd00e33 --- /dev/null +++ b/Assets/Plugins/iOS/GADUAdNetworkExtras.h.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 1c0d8a6c9b36440eaa4c01518670217f +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-Plugins/iOS/GADUAdNetworkExtras.h +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/GoogleService-Info.plist b/Assets/Plugins/iOS/GoogleService-Info.plist new file mode 100644 index 00000000..e830d547 --- /dev/null +++ b/Assets/Plugins/iOS/GoogleService-Info.plist @@ -0,0 +1,30 @@ + + + + + API_KEY + AIzaSyAEcjOsyeEtGUsH-tBWk1CXEDvlg6mRAjY + GCM_SENDER_ID + 967150620904 + PLIST_VERSION + 1 + BUNDLE_ID + com.tronwingame.redhotroast + PROJECT_ID + red-hot-roast + STORAGE_BUCKET + red-hot-roast.firebasestorage.app + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:967150620904:ios:134951a0bdf5c8685c395d + + \ No newline at end of file diff --git a/Assets/Plugins/iOS/GoogleService-Info.plist.meta b/Assets/Plugins/iOS/GoogleService-Info.plist.meta new file mode 100644 index 00000000..04509899 --- /dev/null +++ b/Assets/Plugins/iOS/GoogleService-Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 96421b99679efce429f0d1af4fd77501 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/NativeTemplates.meta b/Assets/Plugins/iOS/NativeTemplates.meta new file mode 100644 index 00000000..0ba5e308 --- /dev/null +++ b/Assets/Plugins/iOS/NativeTemplates.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 28c983f67bd71da4bbd4883eda7f2855 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/NativeTemplates/GADTMediumTemplateView.xib b/Assets/Plugins/iOS/NativeTemplates/GADTMediumTemplateView.xib new file mode 100644 index 00000000..eda492c7 --- /dev/null +++ b/Assets/Plugins/iOS/NativeTemplates/GADTMediumTemplateView.xib @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assets/Plugins/iOS/NativeTemplates/GADTMediumTemplateView.xib.meta b/Assets/Plugins/iOS/NativeTemplates/GADTMediumTemplateView.xib.meta new file mode 100644 index 00000000..014af982 --- /dev/null +++ b/Assets/Plugins/iOS/NativeTemplates/GADTMediumTemplateView.xib.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 766f36c9503c48e5915b2dbb1b312f64 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-Plugins/iOS/NativeTemplates/GADTMediumTemplateView.xib +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/NativeTemplates/GADTSmallTemplateView.xib b/Assets/Plugins/iOS/NativeTemplates/GADTSmallTemplateView.xib new file mode 100644 index 00000000..f819f1d7 --- /dev/null +++ b/Assets/Plugins/iOS/NativeTemplates/GADTSmallTemplateView.xib @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Assets/Plugins/iOS/NativeTemplates/GADTSmallTemplateView.xib.meta b/Assets/Plugins/iOS/NativeTemplates/GADTSmallTemplateView.xib.meta new file mode 100644 index 00000000..9715b79e --- /dev/null +++ b/Assets/Plugins/iOS/NativeTemplates/GADTSmallTemplateView.xib.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 6af78782470b4da9994fc4cf04f03183 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-Plugins/iOS/NativeTemplates/GADTSmallTemplateView.xib +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/WebView.mm b/Assets/Plugins/iOS/WebView.mm new file mode 100644 index 00000000..4620012e --- /dev/null +++ b/Assets/Plugins/iOS/WebView.mm @@ -0,0 +1,1218 @@ +/* + * Copyright (C) 2011 Keijiro Takahashi + * Copyright (C) 2012 GREE, Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + */ + +#if !(__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0) + +#import +#import + +// NOTE: we need extern without "C" before unity 4.5 +//extern UIViewController *UnityGetGLViewController(); +extern "C" UIViewController *UnityGetGLViewController(); +extern "C" void UnitySendMessage(const char *, const char *, const char *); + +// cf. https://stackoverflow.com/questions/26383031/wkwebview-causes-my-view-controller-to-leak/33365424#33365424 +@interface WeakScriptMessageDelegate : NSObject + +@property (nonatomic, weak) id scriptDelegate; + +- (instancetype)initWithDelegate:(id)scriptDelegate; + +@end + +@implementation WeakScriptMessageDelegate + +- (instancetype)initWithDelegate:(id)scriptDelegate +{ + self = [super init]; + if (self) { + _scriptDelegate = scriptDelegate; + } + return self; +} + +- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message +{ + [self.scriptDelegate userContentController:userContentController didReceiveScriptMessage:message]; +} + +@end + +@protocol WebViewProtocol +@property (nonatomic, getter=isOpaque) BOOL opaque; +@property (nullable, nonatomic, copy) UIColor *backgroundColor UI_APPEARANCE_SELECTOR; +@property (nonatomic, getter=isHidden) BOOL hidden; +@property (nonatomic) CGRect frame; +@property (nullable, nonatomic, weak) id navigationDelegate; +@property (nullable, nonatomic, weak) id UIDelegate; +@property (nullable, nonatomic, readonly, copy) NSURL *URL; +- (void)load:(NSURLRequest *)request; +- (void)loadHTML:(NSString *)html baseURL:(NSURL *)baseUrl; +- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^ __nullable)(__nullable id, NSError * __nullable error))completionHandler; +@property (nonatomic, readonly) BOOL canGoBack; +@property (nonatomic, readonly) BOOL canGoForward; +- (void)goBack; +- (void)goForward; +- (void)reload; +- (void)stopLoading; +- (void)setScrollbarsVisibility:(BOOL)visibility; +- (void)setScrollBounce:(BOOL)enable; +@end + +@interface WKWebView(WebViewProtocolConformed) +@end + +@implementation WKWebView(WebViewProtocolConformed) + +- (void)load:(NSURLRequest *)request +{ + WKWebView *webView = (WKWebView *)self; + NSURL *url = [request URL]; + if ([url.absoluteString hasPrefix:@"file:"]) { + NSURL *top = [NSURL URLWithString:[[url absoluteString] stringByDeletingLastPathComponent]]; + [webView loadFileURL:url allowingReadAccessToURL:top]; + } else { + [webView loadRequest:request]; + } +} + +- (NSURLRequest *)constructionCustomHeader:(NSURLRequest *)originalRequest with:(NSDictionary *)headerDictionary +{ + NSMutableURLRequest *convertedRequest = originalRequest.mutableCopy; + for (NSString *key in [headerDictionary allKeys]) { + [convertedRequest setValue:headerDictionary[key] forHTTPHeaderField:key]; + } + return (NSURLRequest *)[convertedRequest copy]; +} + +- (void)loadHTML:(NSString *)html baseURL:(NSURL *)baseUrl +{ + WKWebView *webView = (WKWebView *)self; + [webView loadHTMLString:html baseURL:baseUrl]; +} + +- (void)setScrollbarsVisibility:(BOOL)visibility +{ + WKWebView *webView = (WKWebView *)self; + webView.scrollView.showsHorizontalScrollIndicator = visibility; + webView.scrollView.showsVerticalScrollIndicator = visibility; +} + +- (void)setScrollBounce:(BOOL)enable +{ + WKWebView *webView = (WKWebView *)self; + webView.scrollView.bounces = enable; +} + +@end + +@interface CWebViewPlugin : NSObject +{ + UIView *webView; + NSString *gameObjectName; + NSMutableDictionary *customRequestHeader; + BOOL alertDialogEnabled; + NSRegularExpression *allowRegex; + NSRegularExpression *denyRegex; + NSRegularExpression *hookRegex; + NSString *basicAuthUserName; + NSString *basicAuthPassword; +} +@end + +@implementation CWebViewPlugin + +static WKProcessPool *_sharedProcessPool; +static NSMutableArray *_instances = [[NSMutableArray alloc] init]; + +- (BOOL)isInitialized +{ + return webView != nil; +} + +- (id)initWithGameObjectName:(const char *)gameObjectName_ transparent:(BOOL)transparent zoom:(BOOL)zoom ua:(const char *)ua enableWKWebView:(BOOL)enableWKWebView contentMode:(WKContentMode)contentMode allowsLinkPreview:(BOOL)allowsLinkPreview allowsBackForwardNavigationGestures:(BOOL)allowsBackForwardNavigationGestures radius:(int)radius +{ + self = [super init]; + + gameObjectName = [NSString stringWithUTF8String:gameObjectName_]; + customRequestHeader = [[NSMutableDictionary alloc] init]; + alertDialogEnabled = true; + allowRegex = nil; + denyRegex = nil; + hookRegex = nil; + basicAuthUserName = nil; + basicAuthPassword = nil; + UIView *view = UnityGetGLViewController().view; + if (enableWKWebView && [WKWebView class]) { + if (_sharedProcessPool == NULL) { + _sharedProcessPool = [[WKProcessPool alloc] init]; + } + WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; + WKUserContentController *controller = [[WKUserContentController alloc] init]; + [controller addScriptMessageHandler:[[WeakScriptMessageDelegate alloc] initWithDelegate:self] name:@"unityControl"]; + [controller addScriptMessageHandler:[[WeakScriptMessageDelegate alloc] initWithDelegate:self] name:@"saveDataURL"]; + NSString *str = @"\ +window.Unity = { \ + call: function(msg) { \ + window.webkit.messageHandlers.unityControl.postMessage(msg); \ + }, \ + saveDataURL: function(fileName, dataURL) { \ + window.webkit.messageHandlers.saveDataURL.postMessage(fileName + '\t' + dataURL); \ + } \ +}; \ +"; + if (!zoom) { + str = [str stringByAppendingString:@"\ +(function() { \ + var meta = document.querySelector('meta[name=viewport]'); \ + if (meta == null) { \ + meta = document.createElement('meta'); \ + meta.name = 'viewport'; \ + } \ + meta.content += ((meta.content.length > 0) ? ',' : '') + 'user-scalable=no'; \ + var head = document.getElementsByTagName('head')[0]; \ + head.appendChild(meta); \ +})(); \ +" + ]; + } + WKUserScript *script + = [[WKUserScript alloc] initWithSource:str injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES]; + [controller addUserScript:script]; + configuration.userContentController = controller; + configuration.allowsInlineMediaPlayback = true; + if (@available(iOS 10.0, *)) { + configuration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone; + } else { + if (@available(iOS 9.0, *)) { + configuration.requiresUserActionForMediaPlayback = NO; + } else { + configuration.mediaPlaybackRequiresUserAction = NO; + } + } + configuration.websiteDataStore = [WKWebsiteDataStore defaultDataStore]; + configuration.processPool = _sharedProcessPool; + if (@available(iOS 13.0, *)) { + configuration.defaultWebpagePreferences.preferredContentMode = contentMode; + } +#if UNITYWEBVIEW_IOS_ALLOW_FILE_URLS + // cf. https://stackoverflow.com/questions/35554814/wkwebview-xmlhttprequest-with-file-url/44365081#44365081 + try { + [configuration.preferences setValue:@TRUE forKey:@"allowFileAccessFromFileURLs"]; + } + catch (NSException *ex) { + } + try { + [configuration setValue:@TRUE forKey:@"allowUniversalAccessFromFileURLs"]; + } + catch (NSException *ex) { + } +#endif + WKWebView *wkwebView = [[WKWebView alloc] initWithFrame:view.frame configuration:configuration]; +#if UNITYWEBVIEW_DEVELOPMENT + NSOperatingSystemVersion version = { 16, 4, 0 }; + if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:version]) { + wkwebView.inspectable = true; + } +#endif + wkwebView.allowsLinkPreview = allowsLinkPreview; + wkwebView.allowsBackForwardNavigationGestures = allowsBackForwardNavigationGestures; + webView = wkwebView; + webView.UIDelegate = self; + webView.navigationDelegate = self; + if (radius > 0) { + webView.layer.cornerRadius = radius; + webView.layer.masksToBounds = YES; + } + if (ua != NULL && strcmp(ua, "") != 0) { + ((WKWebView *)webView).customUserAgent = [[NSString alloc] initWithUTF8String:ua]; + } + // cf. https://rick38yip.medium.com/wkwebview-weird-spacing-issue-in-ios-13-54a4fc686f72 + // cf. https://stackoverflow.com/questions/44390971/automaticallyadjustsscrollviewinsets-was-deprecated-in-ios-11-0 + if (@available(iOS 11.0, *)) { + ((WKWebView *)webView).scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } else { + //UnityGetGLViewController().automaticallyAdjustsScrollViewInsets = false; + } + } else { + webView = nil; + return self; + } + if (transparent) { + webView.opaque = NO; + webView.backgroundColor = [UIColor clearColor]; + } + webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + webView.hidden = YES; + + [webView addObserver:self forKeyPath: @"loading" options: NSKeyValueObservingOptionNew context:nil]; + + [view addSubview:webView]; + + return self; +} + +- (void)dispose +{ + if (webView != nil) { + UIView *webView0 = webView; + webView = nil; + if ([webView0 isKindOfClass:[WKWebView class]]) { + webView0.UIDelegate = nil; + webView0.navigationDelegate = nil; + [((WKWebView *)webView0).configuration.userContentController removeScriptMessageHandlerForName:@"saveDataURL"]; + [((WKWebView *)webView0).configuration.userContentController removeScriptMessageHandlerForName:@"unityControl"]; + } + [webView0 stopLoading]; + [webView0 removeFromSuperview]; + [webView0 removeObserver:self forKeyPath:@"loading"]; + } + basicAuthPassword = nil; + basicAuthUserName = nil; + hookRegex = nil; + denyRegex = nil; + allowRegex = nil; + customRequestHeader = nil; + gameObjectName = nil; +} + ++ (void)resetSharedProcessPool +{ + // cf. https://stackoverflow.com/questions/33156567/getting-all-cookies-from-wkwebview/49744695#49744695 + _sharedProcessPool = [[WKProcessPool alloc] init]; + [_instances enumerateObjectsUsingBlock:^(CWebViewPlugin *obj, NSUInteger idx, BOOL *stop) { + if ([obj->webView isKindOfClass:[WKWebView class]]) { + WKWebView *webView = (WKWebView *)obj->webView; + webView.configuration.processPool = _sharedProcessPool; + } + }]; +} + ++ (void)clearCookies +{ + [CWebViewPlugin resetSharedProcessPool]; + + // cf. https://dev.classmethod.jp/smartphone/remove-webview-cookies/ + NSString *libraryPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject; + NSString *cookiesPath = [libraryPath stringByAppendingPathComponent:@"Cookies"]; + NSString *webKitPath = [libraryPath stringByAppendingPathComponent:@"WebKit"]; + [[NSFileManager defaultManager] removeItemAtPath:cookiesPath error:nil]; + [[NSFileManager defaultManager] removeItemAtPath:webKitPath error:nil]; + + NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; + if (cookieStorage == nil) { + // cf. https://stackoverflow.com/questions/33876295/nshttpcookiestorage-sharedhttpcookiestorage-comes-up-empty-in-10-11 + cookieStorage = [NSHTTPCookieStorage sharedCookieStorageForGroupContainerIdentifier:@"Cookies"]; + } + [[cookieStorage cookies] enumerateObjectsUsingBlock:^(NSHTTPCookie *cookie, NSUInteger idx, BOOL *stop) { + [cookieStorage deleteCookie:cookie]; + }]; + + NSOperatingSystemVersion version = { 9, 0, 0 }; + if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:version]) { + // cf. https://stackoverflow.com/questions/46465070/how-to-delete-cookies-from-wkhttpcookiestore/47928399#47928399 + NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes]; + NSDate *date = [NSDate dateWithTimeIntervalSince1970:0]; + [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes + modifiedSince:date + completionHandler:^{}]; + } +} + ++ saveCookies +{ + [CWebViewPlugin resetSharedProcessPool]; +} + +- (void)getCookies:(const char *)url +{ + NSOperatingSystemVersion version = { 9, 0, 0 }; + if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:version]) { + NSURL *nsurl = [NSURL URLWithString:[[NSString alloc] initWithUTF8String:url]]; + WKHTTPCookieStore *cookieStore = WKWebsiteDataStore.defaultDataStore.httpCookieStore; + [cookieStore + getAllCookies:^(NSArray *array) { + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]; + [formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"]; + NSMutableString *result = [NSMutableString string]; + [array enumerateObjectsUsingBlock:^(NSHTTPCookie *cookie, NSUInteger idx, BOOL *stop) { + if ([cookie.domain isEqualToString:nsurl.host]) { + [result appendString:[NSString stringWithFormat:@"%@=%@", cookie.name, cookie.value]]; + if ([cookie.domain length] > 0) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Domain=%@", cookie.domain]]; + } + if ([cookie.path length] > 0) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Path=%@", cookie.path]]; + } + if (cookie.expiresDate != nil) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Expires=%@", [formatter stringFromDate:cookie.expiresDate]]]; + } + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Version=%zd", cookie.version]]; + [result appendString:[NSString stringWithFormat:@"\n"]]; + } + }]; + UnitySendMessage([gameObjectName UTF8String], "CallOnCookies", [result UTF8String]); + }]; + } else { + [CWebViewPlugin resetSharedProcessPool]; + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]; + [formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"]; + NSMutableString *result = [NSMutableString string]; + NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; + if (cookieStorage == nil) { + // cf. https://stackoverflow.com/questions/33876295/nshttpcookiestorage-sharedhttpcookiestorage-comes-up-empty-in-10-11 + cookieStorage = [NSHTTPCookieStorage sharedCookieStorageForGroupContainerIdentifier:@"Cookies"]; + } + [[cookieStorage cookiesForURL:[NSURL URLWithString:[[NSString alloc] initWithUTF8String:url]]] + enumerateObjectsUsingBlock:^(NSHTTPCookie *cookie, NSUInteger idx, BOOL *stop) { + [result appendString:[NSString stringWithFormat:@"%@=%@", cookie.name, cookie.value]]; + if ([cookie.domain length] > 0) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Domain=%@", cookie.domain]]; + } + if ([cookie.path length] > 0) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Path=%@", cookie.path]]; + } + if (cookie.expiresDate != nil) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Expires=%@", [formatter stringFromDate:cookie.expiresDate]]]; + } + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Version=%zd", cookie.version]]; + [result appendString:[NSString stringWithFormat:@"\n"]]; + }]; + UnitySendMessage([gameObjectName UTF8String], "CallOnCookies", [result UTF8String]); + } +} + +- (void)userContentController:(WKUserContentController *)userContentController + didReceiveScriptMessage:(WKScriptMessage *)message { + + // Log out the message received + //NSLog(@"Received event %@", message.body); + if ([message.name isEqualToString:@"unityControl"]) { + UnitySendMessage([gameObjectName UTF8String], "CallFromJS", [[NSString stringWithFormat:@"%@", message.body] UTF8String]); + } else if ([message.name isEqualToString:@"saveDataURL"]) { + NSRange range = [message.body rangeOfString:@"\t"]; + if (range.location == NSNotFound) { + return; + } + NSString *fileName = [[message.body substringWithRange:NSMakeRange(0, range.location)] lastPathComponent]; + NSString *dataURL = [message.body substringFromIndex:(range.location + 1)]; + range = [dataURL rangeOfString:@"data:"]; + if (range.location != 0) { + return; + } + NSString *tmp = [dataURL substringFromIndex:[@"data:" length]]; + range = [tmp rangeOfString:@";"]; + if (range.location == NSNotFound) { + return; + } + NSString *base64data = [tmp substringFromIndex:(range.location + 1 + [@"base64," length])]; + NSString *type = [tmp substringWithRange:NSMakeRange(0, range.location)]; + NSData *data = [[NSData alloc] initWithBase64EncodedString:base64data options:0]; + NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; + path = [path stringByAppendingString:@"/Downloads"]; + BOOL isDir; + NSError *err = nil; + if ([[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDir]) { + if (!isDir) { + return; + } + } else { + [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&err]; + if (err != nil) { + return; + } + } + NSString *prefix = [path stringByAppendingString:@"/"]; + path = [prefix stringByAppendingString:fileName]; + int count = 0; + while ([[NSFileManager defaultManager] fileExistsAtPath:path]) { + count++; + NSString *name = [fileName stringByDeletingPathExtension]; + NSString *ext = [fileName pathExtension]; + if (ext.length == 0) { + path = [NSString stringWithFormat:@"%@%@ (%d)", prefix, name, count]; + } else { + path = [NSString stringWithFormat:@"%@%@ (%d).%@", prefix, name, count, ext]; + } + } + [data writeToFile:path atomically:YES]; + } + + /* + // Then pull something from the device using the message body + NSString *version = [[UIDevice currentDevice] valueForKey:message.body]; + + // Execute some JavaScript using the result? + NSString *exec_template = @"set_headline(\"received: %@\");"; + NSString *exec = [NSString stringWithFormat:exec_template, version]; + [webView evaluateJavaScript:exec completionHandler:nil]; + */ +} + +- (void)observeValueForKeyPath:(NSString *)keyPath + ofObject:(id)object + change:(NSDictionary *)change + context:(void *)context { + if (webView == nil) + return; + + if ([keyPath isEqualToString:@"loading"] && [[change objectForKey:NSKeyValueChangeNewKey] intValue] == 0 + && [webView URL] != nil) { + UnitySendMessage( + [gameObjectName UTF8String], + "CallOnLoaded", + [[[webView URL] absoluteString] UTF8String]); + + } +} + +- (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView +{ + UnitySendMessage([gameObjectName UTF8String], "CallOnError", "webViewWebContentProcessDidTerminate"); +} + +- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error +{ + UnitySendMessage([gameObjectName UTF8String], "CallOnError", [[error description] UTF8String]); +} + +- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error +{ + UnitySendMessage([gameObjectName UTF8String], "CallOnError", [[error description] UTF8String]); +} + +- (WKWebView *)webView:(WKWebView *)wkWebView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures +{ + // cf. for target="_blank", cf. http://qiita.com/ShingoFukuyama/items/b3a1441025a36ab7659c + if (!navigationAction.targetFrame.isMainFrame) { + [wkWebView loadRequest:navigationAction.request]; + } + return nil; +} + +- (void)webView:(WKWebView *)wkWebView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler +{ + if (webView == nil) { + decisionHandler(WKNavigationActionPolicyCancel); + return; + } + NSURL *nsurl = [navigationAction.request URL]; + NSString *url = [nsurl absoluteString]; + BOOL pass = YES; + if (allowRegex != nil && [allowRegex firstMatchInString:url options:0 range:NSMakeRange(0, url.length)]) { + pass = YES; + } else if (denyRegex != nil && [denyRegex firstMatchInString:url options:0 range:NSMakeRange(0, url.length)]) { + pass = NO; + } + if (!pass) { + decisionHandler(WKNavigationActionPolicyCancel); + return; + } + if ([url rangeOfString:@"//itunes.apple.com/"].location != NSNotFound) { + [[UIApplication sharedApplication] openURL:nsurl]; + decisionHandler(WKNavigationActionPolicyCancel); + return; + } else if ([url hasPrefix:@"unity:"]) { + UnitySendMessage([gameObjectName UTF8String], "CallFromJS", [[url substringFromIndex:6] UTF8String]); + decisionHandler(WKNavigationActionPolicyCancel); + return; + } else if (hookRegex != nil && [hookRegex firstMatchInString:url options:0 range:NSMakeRange(0, url.length)]) { + UnitySendMessage([gameObjectName UTF8String], "CallOnHooked", [url UTF8String]); + decisionHandler(WKNavigationActionPolicyCancel); + return; + } else if (![url hasPrefix:@"about:blank"] // for loadHTML(), cf. #365 + && ![url hasPrefix:@"about:srcdoc"] // for iframe srcdoc attribute + && ![url hasPrefix:@"file:"] + && ![url hasPrefix:@"http:"] + && ![url hasPrefix:@"https:"]) { + if([[UIApplication sharedApplication] canOpenURL:nsurl]) { + [[UIApplication sharedApplication] openURL:nsurl]; + } + decisionHandler(WKNavigationActionPolicyCancel); + return; + } else if (navigationAction.navigationType == WKNavigationTypeLinkActivated + && (!navigationAction.targetFrame || !navigationAction.targetFrame.isMainFrame)) { + // cf. for target="_blank", cf. http://qiita.com/ShingoFukuyama/items/b3a1441025a36ab7659c + [webView load:navigationAction.request]; + decisionHandler(WKNavigationActionPolicyCancel); + return; + } else { + if (navigationAction.targetFrame != nil && navigationAction.targetFrame.isMainFrame) { + // If the custom header is not attached, give it and make a request again. + if (![self isSetupedCustomHeader:[navigationAction request]]) { + NSLog(@"navi ... %@", navigationAction); + [wkWebView loadRequest:[self constructionCustomHeader:navigationAction.request]]; + decisionHandler(WKNavigationActionPolicyCancel); + return; + } + } + } + UnitySendMessage([gameObjectName UTF8String], "CallOnStarted", [url UTF8String]); + decisionHandler(WKNavigationActionPolicyAllow); +} + +- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler { + + if ([navigationResponse.response isKindOfClass:[NSHTTPURLResponse class]]) { + + NSHTTPURLResponse * response = (NSHTTPURLResponse *)navigationResponse.response; + if (response.statusCode >= 400) { + UnitySendMessage([gameObjectName UTF8String], "CallOnHttpError", [[NSString stringWithFormat:@"%d", response.statusCode] UTF8String]); + } + + } + decisionHandler(WKNavigationResponsePolicyAllow); +} + +// alert +- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler +{ + if (!alertDialogEnabled) { + completionHandler(); + return; + } + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" + message:message + preferredStyle:UIAlertControllerStyleAlert]; + [alertController addAction: [UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleCancel + handler:^(UIAlertAction *action) { + completionHandler(); + }]]; + [UnityGetGLViewController() presentViewController:alertController animated:YES completion:^{}]; +} + +// confirm +- (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL))completionHandler +{ + if (!alertDialogEnabled) { + completionHandler(NO); + return; + } + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" + message:message + preferredStyle:UIAlertControllerStyleAlert]; + [alertController addAction:[UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action) { + completionHandler(YES); + }]]; + [alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" + style:UIAlertActionStyleCancel + handler:^(UIAlertAction *action) { + completionHandler(NO); + }]]; + [UnityGetGLViewController() presentViewController:alertController animated:YES completion:^{}]; +} + +// prompt +- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString *))completionHandler +{ + if (!alertDialogEnabled) { + completionHandler(nil); + return; + } + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" + message:prompt + preferredStyle:UIAlertControllerStyleAlert]; + [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { + textField.text = defaultText; + }]; + [alertController addAction:[UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action) { + NSString *input = ((UITextField *)alertController.textFields.firstObject).text; + completionHandler(input); + }]]; + [alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" + style:UIAlertActionStyleCancel + handler:^(UIAlertAction *action) { + completionHandler(nil); + }]]; + [UnityGetGLViewController() presentViewController:alertController animated:YES completion:^{}]; +} + +- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler +{ + NSURLSessionAuthChallengeDisposition disposition; + NSURLCredential *credential; + if (basicAuthUserName && basicAuthPassword && [challenge previousFailureCount] == 0) { + disposition = NSURLSessionAuthChallengeUseCredential; + credential = [NSURLCredential credentialWithUser:basicAuthUserName password:basicAuthPassword persistence:NSURLCredentialPersistenceForSession]; + } else { + disposition = NSURLSessionAuthChallengePerformDefaultHandling; + credential = nil; + } + completionHandler(disposition, credential); +} + +- (BOOL)isSetupedCustomHeader:(NSURLRequest *)targetRequest +{ + // Check for additional custom header. + for (NSString *key in [customRequestHeader allKeys]) { + if (![[[targetRequest allHTTPHeaderFields] objectForKey:key] isEqualToString:[customRequestHeader objectForKey:key]]) { + return NO; + } + } + return YES; +} + +- (NSURLRequest *)constructionCustomHeader:(NSURLRequest *)originalRequest +{ + NSMutableURLRequest *convertedRequest = originalRequest.mutableCopy; + for (NSString *key in [customRequestHeader allKeys]) { + [convertedRequest setValue:customRequestHeader[key] forHTTPHeaderField:key]; + } + return (NSURLRequest *)[convertedRequest copy]; +} + +- (void)setMargins:(float)left top:(float)top right:(float)right bottom:(float)bottom relative:(BOOL)relative +{ + if (webView == nil) + return; + UIView *view = UnityGetGLViewController().view; + CGRect frame = webView.frame; + CGRect screen = view.bounds; + if (relative) { + frame.size.width = floor(screen.size.width * (1.0f - left - right)); + frame.size.height = floor(screen.size.height * (1.0f - top - bottom)); + frame.origin.x = floor(screen.size.width * left); + frame.origin.y = floor(screen.size.height * top); + } else { + CGFloat scale = 1.0f / [self getScale:view]; + frame.size.width = floor(screen.size.width - scale * (left + right)); + frame.size.height = floor(screen.size.height - scale * (top + bottom)); + frame.origin.x = floor(scale * left); + frame.origin.y = floor(scale * top); + } + webView.frame = frame; +} + +- (CGFloat)getScale:(UIView *)view +{ + if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) + return view.window.screen.nativeScale; + return view.contentScaleFactor; +} + +- (void)setVisibility:(BOOL)visibility +{ + if (webView == nil) + return; + webView.hidden = visibility ? NO : YES; +} + +- (void)setInteractionEnabled:(BOOL)enabled +{ + if (webView == nil) + return; + webView.userInteractionEnabled = enabled; +} + +- (void)setAlertDialogEnabled:(BOOL)enabled +{ + alertDialogEnabled = enabled; +} + +- (void)setScrollbarsVisibility:(BOOL)visibility +{ + if (webView == nil) + return; + [webView setScrollbarsVisibility:visibility]; +} + +- (void)setScrollBounceEnabled:(BOOL)enabled +{ + if (webView == nil) + return; + [webView setScrollBounce:enabled]; +} + +- (BOOL)setURLPattern:(const char *)allowPattern and:(const char *)denyPattern and:(const char *)hookPattern +{ + NSError *err = nil; + NSRegularExpression *allow = nil; + NSRegularExpression *deny = nil; + NSRegularExpression *hook = nil; + if (allowPattern == nil || *allowPattern == '\0') { + allow = nil; + } else { + allow + = [NSRegularExpression + regularExpressionWithPattern:[NSString stringWithUTF8String:allowPattern] + options:0 + error:&err]; + if (err != nil) { + return NO; + } + } + if (denyPattern == nil || *denyPattern == '\0') { + deny = nil; + } else { + deny + = [NSRegularExpression + regularExpressionWithPattern:[NSString stringWithUTF8String:denyPattern] + options:0 + error:&err]; + if (err != nil) { + return NO; + } + } + if (hookPattern == nil || *hookPattern == '\0') { + hook = nil; + } else { + hook + = [NSRegularExpression + regularExpressionWithPattern:[NSString stringWithUTF8String:hookPattern] + options:0 + error:&err]; + if (err != nil) { + return NO; + } + } + allowRegex = allow; + denyRegex = deny; + hookRegex = hook; + return YES; +} + +- (void)loadURL:(const char *)url +{ + if (webView == nil) + return; + NSString *urlStr = [NSString stringWithUTF8String:url]; + NSURL *nsurl = [NSURL URLWithString:urlStr]; + NSURLRequest *request = [NSURLRequest requestWithURL:nsurl]; + [webView load:request]; +} + +- (void)loadHTML:(const char *)html baseURL:(const char *)baseUrl +{ + if (webView == nil) + return; + NSString *htmlStr = [NSString stringWithUTF8String:html]; + NSString *baseStr = [NSString stringWithUTF8String:baseUrl]; + NSURL *baseNSUrl = [NSURL URLWithString:baseStr]; + [webView loadHTML:htmlStr baseURL:baseNSUrl]; +} + +- (void)evaluateJS:(const char *)js +{ + if (webView == nil) + return; + NSString *jsStr = [NSString stringWithUTF8String:js]; + [webView evaluateJavaScript:jsStr completionHandler:^(NSString *result, NSError *error) {}]; +} + +- (int)progress +{ + if (webView == nil) + return 0; + if ([webView isKindOfClass:[WKWebView class]]) { + return (int)([(WKWebView *)webView estimatedProgress] * 100); + } else { + return 0; + } +} + +- (BOOL)canGoBack +{ + if (webView == nil) + return false; + return [webView canGoBack]; +} + +- (BOOL)canGoForward +{ + if (webView == nil) + return false; + return [webView canGoForward]; +} + +- (void)goBack +{ + if (webView == nil) + return; + [webView goBack]; +} + +- (void)goForward +{ + if (webView == nil) + return; + [webView goForward]; +} + +- (void)reload +{ + if (webView == nil) + return; + [webView reload]; +} + +- (void)addCustomRequestHeader:(const char *)headerKey value:(const char *)headerValue +{ + NSString *keyString = [NSString stringWithUTF8String:headerKey]; + NSString *valueString = [NSString stringWithUTF8String:headerValue]; + + [customRequestHeader setObject:valueString forKey:keyString]; +} + +- (void)removeCustomRequestHeader:(const char *)headerKey +{ + NSString *keyString = [NSString stringWithUTF8String:headerKey]; + + if ([[customRequestHeader allKeys]containsObject:keyString]) { + [customRequestHeader removeObjectForKey:keyString]; + } +} + +- (void)clearCustomRequestHeader +{ + [customRequestHeader removeAllObjects]; +} + +- (const char *)getCustomRequestHeaderValue:(const char *)headerKey +{ + NSString *keyString = [NSString stringWithUTF8String:headerKey]; + NSString *result = [customRequestHeader objectForKey:keyString]; + if (!result) { + return NULL; + } + + const char *s = [result UTF8String]; + char *r = (char *)malloc(strlen(s) + 1); + strcpy(r, s); + return r; +} + +- (void)setBasicAuthInfo:(const char *)userName password:(const char *)password +{ + basicAuthUserName = [NSString stringWithUTF8String:userName]; + basicAuthPassword = [NSString stringWithUTF8String:password]; +} + +- (void)clearCache:(BOOL)includeDiskFiles +{ + if (webView == nil) + return; + NSMutableSet *types = [NSMutableSet setWithArray:@[WKWebsiteDataTypeMemoryCache]]; + if (includeDiskFiles) { + [types addObject:WKWebsiteDataTypeDiskCache]; + } + NSDate *date = [NSDate dateWithTimeIntervalSince1970:0]; + [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:types modifiedSince:date completionHandler:^{}]; +} + +- (void)setAllMediaPlaybackSuspended:(BOOL)suspended +{ + NSOperatingSystemVersion version = { 15, 0, 0 }; + if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:version]) { + if ([webView isKindOfClass:[WKWebView class]]) { + [(WKWebView *)webView setAllMediaPlaybackSuspended:suspended completionHandler:nil]; + } + } +} +@end + +extern "C" { + BOOL _CWebViewPlugin_IsInitialized(void *instance); + void *_CWebViewPlugin_Init(const char *gameObjectName, BOOL transparent, BOOL zoom, const char *ua, BOOL enableWKWebView, int contentMode, BOOL allowsLinkPreview, BOOL allowsBackForwardNavigationGestures, int radius); + void _CWebViewPlugin_Destroy(void *instance); + void _CWebViewPlugin_SetMargins( + void *instance, float left, float top, float right, float bottom, BOOL relative); + void _CWebViewPlugin_SetVisibility(void *instance, BOOL visibility); + void _CWebViewPlugin_SetInteractionEnabled(void *instance, BOOL enabled); + void _CWebViewPlugin_SetAlertDialogEnabled(void *instance, BOOL visibility); + void _CWebViewPlugin_SetScrollbarsVisibility(void *instance, BOOL visibility); + void _CWebViewPlugin_SetScrollBounceEnabled(void *instance, BOOL enabled); + BOOL _CWebViewPlugin_SetURLPattern(void *instance, const char *allowPattern, const char *denyPattern, const char *hookPattern); + void _CWebViewPlugin_LoadURL(void *instance, const char *url); + void _CWebViewPlugin_LoadHTML(void *instance, const char *html, const char *baseUrl); + void _CWebViewPlugin_EvaluateJS(void *instance, const char *url); + int _CWebViewPlugin_Progress(void *instance); + BOOL _CWebViewPlugin_CanGoBack(void *instance); + BOOL _CWebViewPlugin_CanGoForward(void *instance); + void _CWebViewPlugin_GoBack(void *instance); + void _CWebViewPlugin_GoForward(void *instance); + void _CWebViewPlugin_Reload(void *instance); + void _CWebViewPlugin_AddCustomHeader(void *instance, const char *headerKey, const char *headerValue); + void _CWebViewPlugin_RemoveCustomHeader(void *instance, const char *headerKey); + void _CWebViewPlugin_ClearCustomHeader(void *instance); + void _CWebViewPlugin_ClearCookies(); + void _CWebViewPlugin_SaveCookies(); + void _CWebViewPlugin_GetCookies(void *instance, const char *url); + const char *_CWebViewPlugin_GetCustomHeaderValue(void *instance, const char *headerKey); + void _CWebViewPlugin_SetBasicAuthInfo(void *instance, const char *userName, const char *password); + void _CWebViewPlugin_ClearCache(void *instance, BOOL includeDiskFiles); + void _CWebViewPlugin_SetSuspended(void *instance, BOOL suspended); +} + +BOOL _CWebViewPlugin_IsInitialized(void *instance) +{ + if (instance == NULL) + return NO; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin isInitialized]; +} + +void *_CWebViewPlugin_Init(const char *gameObjectName, BOOL transparent, BOOL zoom, const char *ua, BOOL enableWKWebView, int contentMode, BOOL allowsLinkPreview, BOOL allowsBackForwardNavigationGestures, int radius) +{ + if (! (enableWKWebView && [WKWebView class])) + return nil; + WKContentMode wkContentMode = WKContentModeRecommended; + switch (contentMode) { + case 1: + wkContentMode = WKContentModeMobile; + break; + case 2: + wkContentMode = WKContentModeDesktop; + break; + default: + wkContentMode = WKContentModeRecommended; + break; + } + CWebViewPlugin *webViewPlugin = [[CWebViewPlugin alloc] initWithGameObjectName:gameObjectName transparent:transparent zoom:zoom ua:ua enableWKWebView:enableWKWebView contentMode:wkContentMode allowsLinkPreview:allowsLinkPreview allowsBackForwardNavigationGestures:allowsBackForwardNavigationGestures radius:radius]; + [_instances addObject:webViewPlugin]; + return (__bridge_retained void *)webViewPlugin; +} + +void _CWebViewPlugin_Destroy(void *instance) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge_transfer CWebViewPlugin *)instance; + [_instances removeObject:webViewPlugin]; + [webViewPlugin dispose]; + webViewPlugin = nil; +} + +void _CWebViewPlugin_SetMargins( + void *instance, float left, float top, float right, float bottom, BOOL relative) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setMargins:left top:top right:right bottom:bottom relative:relative]; +} + +void _CWebViewPlugin_SetVisibility(void *instance, BOOL visibility) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setVisibility:visibility]; +} + +void _CWebViewPlugin_SetInteractionEnabled(void *instance, BOOL enabled) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setInteractionEnabled:enabled]; +} + +void _CWebViewPlugin_SetAlertDialogEnabled(void *instance, BOOL enabled) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setAlertDialogEnabled:enabled]; +} + +void _CWebViewPlugin_SetScrollbarsVisibility(void *instance, BOOL visibility) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setScrollbarsVisibility:visibility]; +} + +void _CWebViewPlugin_SetScrollBounceEnabled(void *instance, BOOL enabled) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setScrollBounceEnabled:enabled]; +} + +BOOL _CWebViewPlugin_SetURLPattern(void *instance, const char *allowPattern, const char *denyPattern, const char *hookPattern) +{ + if (instance == NULL) + return NO; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin setURLPattern:allowPattern and:denyPattern and:hookPattern]; +} + +void _CWebViewPlugin_LoadURL(void *instance, const char *url) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin loadURL:url]; +} + +void _CWebViewPlugin_LoadHTML(void *instance, const char *html, const char *baseUrl) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin loadHTML:html baseURL:baseUrl]; +} + +void _CWebViewPlugin_EvaluateJS(void *instance, const char *js) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin evaluateJS:js]; +} + +int _CWebViewPlugin_Progress(void *instance) +{ + if (instance == NULL) + return 0; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin progress]; +} + +BOOL _CWebViewPlugin_CanGoBack(void *instance) +{ + if (instance == NULL) + return false; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin canGoBack]; +} + +BOOL _CWebViewPlugin_CanGoForward(void *instance) +{ + if (instance == NULL) + return false; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin canGoForward]; +} + +void _CWebViewPlugin_GoBack(void *instance) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin goBack]; +} + +void _CWebViewPlugin_GoForward(void *instance) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin goForward]; +} + +void _CWebViewPlugin_Reload(void *instance) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin reload]; +} + +void _CWebViewPlugin_AddCustomHeader(void *instance, const char *headerKey, const char *headerValue) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin addCustomRequestHeader:headerKey value:headerValue]; +} + +void _CWebViewPlugin_RemoveCustomHeader(void *instance, const char *headerKey) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin removeCustomRequestHeader:headerKey]; +} + +void _CWebViewPlugin_ClearCustomHeader(void *instance) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin clearCustomRequestHeader]; +} + +void _CWebViewPlugin_ClearCookies() +{ + [CWebViewPlugin clearCookies]; +} + +void _CWebViewPlugin_SaveCookies() +{ + [CWebViewPlugin saveCookies]; +} + +void _CWebViewPlugin_GetCookies(void *instance, const char *url) +{ + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin getCookies:url]; +} + +const char *_CWebViewPlugin_GetCustomHeaderValue(void *instance, const char *headerKey) +{ + if (instance == NULL) + return NULL; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin getCustomRequestHeaderValue:headerKey]; +} + +void _CWebViewPlugin_SetBasicAuthInfo(void *instance, const char *userName, const char *password) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setBasicAuthInfo:userName password:password]; +} + +void _CWebViewPlugin_ClearCache(void *instance, BOOL includeDiskFiles) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin clearCache:includeDiskFiles]; +} + +void _CWebViewPlugin_SetSuspended(void *instance, BOOL suspended) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setAllMediaPlaybackSuspended:suspended]; +} +#endif // !(__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0) diff --git a/Assets/Plugins/iOS/WebView.mm.meta b/Assets/Plugins/iOS/WebView.mm.meta new file mode 100644 index 00000000..fb91d132 --- /dev/null +++ b/Assets/Plugins/iOS/WebView.mm.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 2cabb4f60971742a28f3bd04e65de504 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: + AddToEmbeddedBinaries: false + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/WebViewWithUIWebView.mm b/Assets/Plugins/iOS/WebViewWithUIWebView.mm new file mode 100644 index 00000000..1f288658 --- /dev/null +++ b/Assets/Plugins/iOS/WebViewWithUIWebView.mm @@ -0,0 +1,1303 @@ +/* + * Copyright (C) 2011 Keijiro Takahashi + * Copyright (C) 2012 GREE, Inc. + * + * This software is provided 'as-is', without any express or implied + * warranty. In no event will the authors be held liable for any damages + * arising from the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would be + * appreciated but is not required. + * 2. Altered source versions must be plainly marked as such, and must not be + * misrepresented as being the original software. + * 3. This notice may not be removed or altered from any source distribution. + */ + +#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0 + +#import +#import + +// NOTE: we need extern without "C" before unity 4.5 +//extern UIViewController *UnityGetGLViewController(); +extern "C" UIViewController *UnityGetGLViewController(); +extern "C" void UnitySendMessage(const char *, const char *, const char *); + +// cf. https://stackoverflow.com/questions/26383031/wkwebview-causes-my-view-controller-to-leak/33365424#33365424 +@interface WeakScriptMessageDelegate : NSObject + +@property (nonatomic, weak) id scriptDelegate; + +- (instancetype)initWithDelegate:(id)scriptDelegate; + +@end + +@implementation WeakScriptMessageDelegate + +- (instancetype)initWithDelegate:(id)scriptDelegate +{ + self = [super init]; + if (self) { + _scriptDelegate = scriptDelegate; + } + return self; +} + +- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message +{ + [self.scriptDelegate userContentController:userContentController didReceiveScriptMessage:message]; +} + +@end + +@protocol WebViewProtocol +@property (nonatomic, getter=isOpaque) BOOL opaque; +@property (nullable, nonatomic, copy) UIColor *backgroundColor UI_APPEARANCE_SELECTOR; +@property (nonatomic, getter=isHidden) BOOL hidden; +@property (nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled; +@property (nonatomic) CGRect frame; +@property (nonatomic, readonly, strong) UIScrollView *scrollView; +@property (nullable, nonatomic, assign) id delegate; +@property (nullable, nonatomic, weak) id navigationDelegate; +@property (nullable, nonatomic, weak) id UIDelegate; +@property (nullable, nonatomic, readonly, copy) NSURL *URL; +- (void)load:(NSURLRequest *)request; +- (void)loadHTML:(NSString *)html baseURL:(NSURL *)baseUrl; +- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^ __nullable)(__nullable id, NSError * __nullable error))completionHandler; +@property (nonatomic, readonly) BOOL canGoBack; +@property (nonatomic, readonly) BOOL canGoForward; +- (void)goBack; +- (void)goForward; +- (void)reload; +- (void)stopLoading; +- (void)setScrollbarsVisibility:(BOOL)visibility; +- (void)setScrollBounce:(BOOL)enable; +@end + +@interface WKWebView(WebViewProtocolConformed) +@end + +@implementation WKWebView(WebViewProtocolConformed) + +@dynamic delegate; + +- (void)load:(NSURLRequest *)request +{ + WKWebView *webView = (WKWebView *)self; + NSURL *url = [request URL]; + if ([url.absoluteString hasPrefix:@"file:"]) { + NSURL *top = [NSURL URLWithString:[[url absoluteString] stringByDeletingLastPathComponent]]; + [webView loadFileURL:url allowingReadAccessToURL:top]; + } else { + [webView loadRequest:request]; + } +} + +- (NSURLRequest *)constructionCustomHeader:(NSURLRequest *)originalRequest with:(NSDictionary *)headerDictionary +{ + NSMutableURLRequest *convertedRequest = originalRequest.mutableCopy; + for (NSString *key in [headerDictionary allKeys]) { + [convertedRequest setValue:headerDictionary[key] forHTTPHeaderField:key]; + } + return (NSURLRequest *)[convertedRequest copy]; +} + +- (void)loadHTML:(NSString *)html baseURL:(NSURL *)baseUrl +{ + WKWebView *webView = (WKWebView *)self; + [webView loadHTMLString:html baseURL:baseUrl]; +} + +- (void)setScrollbarsVisibility:(BOOL)visibility +{ + WKWebView *webView = (WKWebView *)self; + webView.scrollView.showsHorizontalScrollIndicator = visibility; + webView.scrollView.showsVerticalScrollIndicator = visibility; +} + +- (void)setScrollBounce:(BOOL)enable +{ + WKWebView *webView = (WKWebView *)self; + webView.scrollView.bounces = enable; +} + +@end + +@interface UIWebView(WebViewProtocolConformed) +@end + +@implementation UIWebView(WebViewProtocolConformed) + +@dynamic navigationDelegate; +@dynamic UIDelegate; + +- (NSURL *)URL +{ + return [NSURL URLWithString:[self stringByEvaluatingJavaScriptFromString:@"document.URL"]]; +} + +- (void)load:(NSURLRequest *)request +{ + UIWebView *webView = (UIWebView *)self; + [webView loadRequest:request]; +} + +- (void)loadHTML:(NSString *)html baseURL:(NSURL *)baseUrl +{ + UIWebView *webView = (UIWebView *)self; + [webView loadHTMLString:html baseURL:baseUrl]; +} + +- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^ __nullable)(__nullable id, NSError * __nullable error))completionHandler +{ + NSString *result = [self stringByEvaluatingJavaScriptFromString:javaScriptString]; + if (completionHandler) { + completionHandler(result, nil); + } +} + +- (void)setScrollbarsVisibility:(BOOL)visibility +{ + UIWebView *webView = (UIWebView *)self; + webView.scrollView.showsHorizontalScrollIndicator = visibility; + webView.scrollView.showsVerticalScrollIndicator = visibility; +} + +- (void)setScrollBounce:(BOOL)enable +{ + UIWebView *webView = (UIWebView *)self; + webView.scrollView.bounces = enable; +} + +@end + +@interface CWebViewPlugin : NSObject +{ + UIView *webView; + NSString *gameObjectName; + NSMutableDictionary *customRequestHeader; + BOOL alertDialogEnabled; + NSRegularExpression *allowRegex; + NSRegularExpression *denyRegex; + NSRegularExpression *hookRegex; + NSString *basicAuthUserName; + NSString *basicAuthPassword; +} +@end + +@implementation CWebViewPlugin + +static WKProcessPool *_sharedProcessPool; +static NSMutableArray *_instances = [[NSMutableArray alloc] init]; + +- (BOOL)isInitialized +{ + return webView != nil; +} + +- (id)initWithGameObjectName:(const char *)gameObjectName_ transparent:(BOOL)transparent zoom:(BOOL)zoom ua:(const char *)ua enableWKWebView:(BOOL)enableWKWebView contentMode:(WKContentMode)contentMode allowsLinkPreview:(BOOL)allowsLinkPreview allowsBackForwardNavigationGestures:(BOOL)allowsBackForwardNavigationGestures radius:(int)radius +{ + self = [super init]; + + gameObjectName = [NSString stringWithUTF8String:gameObjectName_]; + customRequestHeader = [[NSMutableDictionary alloc] init]; + alertDialogEnabled = true; + allowRegex = nil; + denyRegex = nil; + hookRegex = nil; + basicAuthUserName = nil; + basicAuthPassword = nil; + UIView *view = UnityGetGLViewController().view; + if (enableWKWebView && [WKWebView class]) { + if (_sharedProcessPool == NULL) { + _sharedProcessPool = [[WKProcessPool alloc] init]; + } + WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; + WKUserContentController *controller = [[WKUserContentController alloc] init]; + [controller addScriptMessageHandler:[[WeakScriptMessageDelegate alloc] initWithDelegate:self] name:@"unityControl"]; + [controller addScriptMessageHandler:[[WeakScriptMessageDelegate alloc] initWithDelegate:self] name:@"saveDataURL"]; + NSString *str = @"\ +window.Unity = { \ + call: function(msg) { \ + window.webkit.messageHandlers.unityControl.postMessage(msg); \ + }, \ + saveDataURL: function(fileName, dataURL) { \ + window.webkit.messageHandlers.saveDataURL.postMessage(fileName + '\t' + dataURL); \ + } \ +}; \ +"; + if (!zoom) { + str = [str stringByAppendingString:@"\ +(function() { \ + var meta = document.querySelector('meta[name=viewport]'); \ + if (meta == null) { \ + meta = document.createElement('meta'); \ + meta.name = 'viewport'; \ + } \ + meta.content += ((meta.content.length > 0) ? ',' : '') + 'user-scalable=no'; \ + var head = document.getElementsByTagName('head')[0]; \ + head.appendChild(meta); \ +})(); \ +" + ]; + } + WKUserScript *script + = [[WKUserScript alloc] initWithSource:str injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES]; + [controller addUserScript:script]; + configuration.userContentController = controller; + configuration.allowsInlineMediaPlayback = true; + if (@available(iOS 10.0, *)) { + configuration.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone; + } else { + if (@available(iOS 9.0, *)) { + configuration.requiresUserActionForMediaPlayback = NO; + } else { + configuration.mediaPlaybackRequiresUserAction = NO; + } + } + configuration.websiteDataStore = [WKWebsiteDataStore defaultDataStore]; + configuration.processPool = _sharedProcessPool; + if (@available(iOS 13.0, *)) { + configuration.defaultWebpagePreferences.preferredContentMode = contentMode; + } +#if UNITYWEBVIEW_IOS_ALLOW_FILE_URLS + // cf. https://stackoverflow.com/questions/35554814/wkwebview-xmlhttprequest-with-file-url/44365081#44365081 + try { + [configuration.preferences setValue:@TRUE forKey:@"allowFileAccessFromFileURLs"]; + } + catch (NSException *ex) { + } + try { + [configuration setValue:@TRUE forKey:@"allowUniversalAccessFromFileURLs"]; + } + catch (NSException *ex) { + } +#endif + WKWebView *wkwebView = [[WKWebView alloc] initWithFrame:view.frame configuration:configuration]; +#if UNITYWEBVIEW_DEVELOPMENT + NSOperatingSystemVersion version = { 16, 4, 0 }; + if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:version]) { + wkwebView.inspectable = true; + } +#endif + wkwebView.allowsLinkPreview = allowsLinkPreview; + wkwebView.allowsBackForwardNavigationGestures = allowsBackForwardNavigationGestures; + webView = wkwebView; + webView.UIDelegate = self; + webView.navigationDelegate = self; + if (ua != NULL && strcmp(ua, "") != 0) { + ((WKWebView *)webView).customUserAgent = [[NSString alloc] initWithUTF8String:ua]; + } + // cf. https://rick38yip.medium.com/wkwebview-weird-spacing-issue-in-ios-13-54a4fc686f72 + // cf. https://stackoverflow.com/questions/44390971/automaticallyadjustsscrollviewinsets-was-deprecated-in-ios-11-0 + if (@available(iOS 11.0, *)) { + ((WKWebView *)webView).scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } else { + //UnityGetGLViewController().automaticallyAdjustsScrollViewInsets = false; + } + } else { + if (ua != NULL && strcmp(ua, "") != 0) { + [[NSUserDefaults standardUserDefaults] + registerDefaults:@{ @"UserAgent": [[NSString alloc] initWithUTF8String:ua] }]; + } + UIWebView *uiwebview = [[UIWebView alloc] initWithFrame:view.frame]; + uiwebview.allowsInlineMediaPlayback = YES; + uiwebview.mediaPlaybackRequiresUserAction = NO; + webView = uiwebview; + webView.delegate = self; + } + if (transparent) { + webView.opaque = NO; + webView.backgroundColor = [UIColor clearColor]; + } + if (radius > 0) { + webView.layer.cornerRadius = radius; + webView.layer.masksToBounds = YES; + } + webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + webView.hidden = YES; + + [webView addObserver:self forKeyPath: @"loading" options: NSKeyValueObservingOptionNew context:nil]; + + [view addSubview:webView]; + + return self; +} + +- (void)dispose +{ + if (webView != nil) { + UIView *webView0 = webView; + webView = nil; + if ([webView0 isKindOfClass:[WKWebView class]]) { + webView0.UIDelegate = nil; + webView0.navigationDelegate = nil; + [((WKWebView *)webView0).configuration.userContentController removeScriptMessageHandlerForName:@"saveDataURL"]; + [((WKWebView *)webView0).configuration.userContentController removeScriptMessageHandlerForName:@"unityControl"]; + } else { + webView0.delegate = nil; + } + [webView0 stopLoading]; + [webView0 removeFromSuperview]; + [webView0 removeObserver:self forKeyPath:@"loading"]; + } + basicAuthPassword = nil; + basicAuthUserName = nil; + hookRegex = nil; + denyRegex = nil; + allowRegex = nil; + customRequestHeader = nil; + gameObjectName = nil; +} + ++ (void)resetSharedProcessPool +{ + // cf. https://stackoverflow.com/questions/33156567/getting-all-cookies-from-wkwebview/49744695#49744695 + _sharedProcessPool = [[WKProcessPool alloc] init]; + [_instances enumerateObjectsUsingBlock:^(CWebViewPlugin *obj, NSUInteger idx, BOOL *stop) { + if ([obj->webView isKindOfClass:[WKWebView class]]) { + WKWebView *webView = (WKWebView *)obj->webView; + webView.configuration.processPool = _sharedProcessPool; + } + }]; +} + ++ (void)clearCookies +{ + [CWebViewPlugin resetSharedProcessPool]; + + // cf. https://dev.classmethod.jp/smartphone/remove-webview-cookies/ + NSString *libraryPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES).firstObject; + NSString *cookiesPath = [libraryPath stringByAppendingPathComponent:@"Cookies"]; + NSString *webKitPath = [libraryPath stringByAppendingPathComponent:@"WebKit"]; + [[NSFileManager defaultManager] removeItemAtPath:cookiesPath error:nil]; + [[NSFileManager defaultManager] removeItemAtPath:webKitPath error:nil]; + + NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; + if (cookieStorage == nil) { + // cf. https://stackoverflow.com/questions/33876295/nshttpcookiestorage-sharedhttpcookiestorage-comes-up-empty-in-10-11 + cookieStorage = [NSHTTPCookieStorage sharedCookieStorageForGroupContainerIdentifier:@"Cookies"]; + } + [[cookieStorage cookies] enumerateObjectsUsingBlock:^(NSHTTPCookie *cookie, NSUInteger idx, BOOL *stop) { + [cookieStorage deleteCookie:cookie]; + }]; + + NSOperatingSystemVersion version = { 9, 0, 0 }; + if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:version]) { + // cf. https://stackoverflow.com/questions/46465070/how-to-delete-cookies-from-wkhttpcookiestore/47928399#47928399 + NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes]; + NSDate *date = [NSDate dateWithTimeIntervalSince1970:0]; + [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes + modifiedSince:date + completionHandler:^{}]; + } +} + ++ saveCookies +{ + [CWebViewPlugin resetSharedProcessPool]; +} + +- (void)getCookies:(const char *)url +{ + NSOperatingSystemVersion version = { 9, 0, 0 }; + if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:version]) { + NSURL *nsurl = [NSURL URLWithString:[[NSString alloc] initWithUTF8String:url]]; + WKHTTPCookieStore *cookieStore = WKWebsiteDataStore.defaultDataStore.httpCookieStore; + [cookieStore + getAllCookies:^(NSArray *array) { + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]; + [formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"]; + NSMutableString *result = [NSMutableString string]; + [array enumerateObjectsUsingBlock:^(NSHTTPCookie *cookie, NSUInteger idx, BOOL *stop) { + if ([cookie.domain isEqualToString:nsurl.host]) { + [result appendString:[NSString stringWithFormat:@"%@=%@", cookie.name, cookie.value]]; + if ([cookie.domain length] > 0) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Domain=%@", cookie.domain]]; + } + if ([cookie.path length] > 0) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Path=%@", cookie.path]]; + } + if (cookie.expiresDate != nil) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Expires=%@", [formatter stringFromDate:cookie.expiresDate]]]; + } + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Version=%zd", cookie.version]]; + [result appendString:[NSString stringWithFormat:@"\n"]]; + } + }]; + UnitySendMessage([gameObjectName UTF8String], "CallOnCookies", [result UTF8String]); + }]; + } else { + [CWebViewPlugin resetSharedProcessPool]; + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + formatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]; + [formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"]; + NSMutableString *result = [NSMutableString string]; + NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; + if (cookieStorage == nil) { + // cf. https://stackoverflow.com/questions/33876295/nshttpcookiestorage-sharedhttpcookiestorage-comes-up-empty-in-10-11 + cookieStorage = [NSHTTPCookieStorage sharedCookieStorageForGroupContainerIdentifier:@"Cookies"]; + } + [[cookieStorage cookiesForURL:[NSURL URLWithString:[[NSString alloc] initWithUTF8String:url]]] + enumerateObjectsUsingBlock:^(NSHTTPCookie *cookie, NSUInteger idx, BOOL *stop) { + [result appendString:[NSString stringWithFormat:@"%@=%@", cookie.name, cookie.value]]; + if ([cookie.domain length] > 0) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Domain=%@", cookie.domain]]; + } + if ([cookie.path length] > 0) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Path=%@", cookie.path]]; + } + if (cookie.expiresDate != nil) { + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Expires=%@", [formatter stringFromDate:cookie.expiresDate]]]; + } + [result appendString:[NSString stringWithFormat:@"; "]]; + [result appendString:[NSString stringWithFormat:@"Version=%zd", cookie.version]]; + [result appendString:[NSString stringWithFormat:@"\n"]]; + }]; + UnitySendMessage([gameObjectName UTF8String], "CallOnCookies", [result UTF8String]); + } +} + +- (void)userContentController:(WKUserContentController *)userContentController + didReceiveScriptMessage:(WKScriptMessage *)message { + + // Log out the message received + //NSLog(@"Received event %@", message.body); + if ([message.name isEqualToString:@"unityControl"]) { + UnitySendMessage([gameObjectName UTF8String], "CallFromJS", [[NSString stringWithFormat:@"%@", message.body] UTF8String]); + } else if ([message.name isEqualToString:@"saveDataURL"]) { + NSRange range = [message.body rangeOfString:@"\t"]; + if (range.location == NSNotFound) { + return; + } + NSString *fileName = [[message.body substringWithRange:NSMakeRange(0, range.location)] lastPathComponent]; + NSString *dataURL = [message.body substringFromIndex:(range.location + 1)]; + range = [dataURL rangeOfString:@"data:"]; + if (range.location != 0) { + return; + } + NSString *tmp = [dataURL substringFromIndex:[@"data:" length]]; + range = [tmp rangeOfString:@";"]; + if (range.location == NSNotFound) { + return; + } + NSString *base64data = [tmp substringFromIndex:(range.location + 1 + [@"base64," length])]; + NSString *type = [tmp substringWithRange:NSMakeRange(0, range.location)]; + NSData *data = [[NSData alloc] initWithBase64EncodedString:base64data options:0]; + NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]; + path = [path stringByAppendingString:@"/Downloads"]; + BOOL isDir; + NSError *err = nil; + if ([[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDir]) { + if (!isDir) { + return; + } + } else { + [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&err]; + if (err != nil) { + return; + } + } + NSString *prefix = [path stringByAppendingString:@"/"]; + path = [prefix stringByAppendingString:fileName]; + int count = 0; + while ([[NSFileManager defaultManager] fileExistsAtPath:path]) { + count++; + NSString *name = [fileName stringByDeletingPathExtension]; + NSString *ext = [fileName pathExtension]; + if (ext.length == 0) { + path = [NSString stringWithFormat:@"%@%@ (%d)", prefix, name, count]; + } else { + path = [NSString stringWithFormat:@"%@%@ (%d).%@", prefix, name, count, ext]; + } + } + [data writeToFile:path atomically:YES]; + } + + /* + // Then pull something from the device using the message body + NSString *version = [[UIDevice currentDevice] valueForKey:message.body]; + + // Execute some JavaScript using the result? + NSString *exec_template = @"set_headline(\"received: %@\");"; + NSString *exec = [NSString stringWithFormat:exec_template, version]; + [webView evaluateJavaScript:exec completionHandler:nil]; + */ +} + +- (void)observeValueForKeyPath:(NSString *)keyPath + ofObject:(id)object + change:(NSDictionary *)change + context:(void *)context { + if (webView == nil) + return; + + if ([keyPath isEqualToString:@"loading"] && [[change objectForKey:NSKeyValueChangeNewKey] intValue] == 0 + && [webView URL] != nil) { + UnitySendMessage( + [gameObjectName UTF8String], + "CallOnLoaded", + [[[webView URL] absoluteString] UTF8String]); + + } +} + +- (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView +{ + UnitySendMessage([gameObjectName UTF8String], "CallOnError", "webViewWebContentProcessDidTerminate"); +} + +- (void)webView:(UIWebView *)uiWebView didFailLoadWithError:(NSError *)error +{ + UnitySendMessage([gameObjectName UTF8String], "CallOnError", [[error description] UTF8String]); +} + +- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error +{ + UnitySendMessage([gameObjectName UTF8String], "CallOnError", [[error description] UTF8String]); +} + +- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error +{ + UnitySendMessage([gameObjectName UTF8String], "CallOnError", [[error description] UTF8String]); +} + +- (void)webViewDidFinishLoad:(UIWebView *)uiWebView { + if (webView == nil) + return; + // cf. http://stackoverflow.com/questions/10996028/uiwebview-when-did-a-page-really-finish-loading/15916853#15916853 + if ([[uiWebView stringByEvaluatingJavaScriptFromString:@"document.readyState"] isEqualToString:@"complete"] + && [webView URL] != nil) { + UnitySendMessage( + [gameObjectName UTF8String], + "CallOnLoaded", + [[[webView URL] absoluteString] UTF8String]); + } +} + +- (BOOL)webView:(UIWebView *)uiWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType +{ + if (webView == nil) + return YES; + + NSURL *nsurl = [request URL]; + NSString *url = [nsurl absoluteString]; + BOOL pass = YES; + if (allowRegex != nil && [allowRegex firstMatchInString:url options:0 range:NSMakeRange(0, url.length)]) { + pass = YES; + } else if (denyRegex != nil && [denyRegex firstMatchInString:url options:0 range:NSMakeRange(0, url.length)]) { + pass = NO; + } + if (!pass) { + return NO; + } + if ([url rangeOfString:@"//itunes.apple.com/"].location != NSNotFound) { + [[UIApplication sharedApplication] openURL:nsurl]; + return NO; + } else if ([url hasPrefix:@"unity:"]) { + UnitySendMessage([gameObjectName UTF8String], "CallFromJS", [[url substringFromIndex:6] UTF8String]); + return NO; + } else if (hookRegex != nil && [hookRegex firstMatchInString:url options:0 range:NSMakeRange(0, url.length)]) { + UnitySendMessage([gameObjectName UTF8String], "CallOnHooked", [url UTF8String]); + return NO; + } else { + if (![self isSetupedCustomHeader:request]) { + [uiWebView loadRequest:[self constructionCustomHeader:request]]; + return NO; + } + UnitySendMessage([gameObjectName UTF8String], "CallOnStarted", [url UTF8String]); + return YES; + } +} + +- (WKWebView *)webView:(WKWebView *)wkWebView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures +{ + // cf. for target="_blank", cf. http://qiita.com/ShingoFukuyama/items/b3a1441025a36ab7659c + if (!navigationAction.targetFrame.isMainFrame) { + [wkWebView loadRequest:navigationAction.request]; + } + return nil; +} + +- (void)webView:(WKWebView *)wkWebView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler +{ + if (webView == nil) { + decisionHandler(WKNavigationActionPolicyCancel); + return; + } + NSURL *nsurl = [navigationAction.request URL]; + NSString *url = [nsurl absoluteString]; + BOOL pass = YES; + if (allowRegex != nil && [allowRegex firstMatchInString:url options:0 range:NSMakeRange(0, url.length)]) { + pass = YES; + } else if (denyRegex != nil && [denyRegex firstMatchInString:url options:0 range:NSMakeRange(0, url.length)]) { + pass = NO; + } + if (!pass) { + decisionHandler(WKNavigationActionPolicyCancel); + return; + } + if ([url rangeOfString:@"//itunes.apple.com/"].location != NSNotFound) { + [[UIApplication sharedApplication] openURL:nsurl]; + decisionHandler(WKNavigationActionPolicyCancel); + return; + } else if ([url hasPrefix:@"unity:"]) { + UnitySendMessage([gameObjectName UTF8String], "CallFromJS", [[url substringFromIndex:6] UTF8String]); + decisionHandler(WKNavigationActionPolicyCancel); + return; + } else if (hookRegex != nil && [hookRegex firstMatchInString:url options:0 range:NSMakeRange(0, url.length)]) { + UnitySendMessage([gameObjectName UTF8String], "CallOnHooked", [url UTF8String]); + decisionHandler(WKNavigationActionPolicyCancel); + return; + } else if (![url hasPrefix:@"about:blank"] // for loadHTML(), cf. #365 + && ![url hasPrefix:@"about:srcdoc"] // for iframe srcdoc attribute + && ![url hasPrefix:@"file:"] + && ![url hasPrefix:@"http:"] + && ![url hasPrefix:@"https:"]) { + if([[UIApplication sharedApplication] canOpenURL:nsurl]) { + [[UIApplication sharedApplication] openURL:nsurl]; + } + decisionHandler(WKNavigationActionPolicyCancel); + return; + } else if (navigationAction.navigationType == WKNavigationTypeLinkActivated + && (!navigationAction.targetFrame || !navigationAction.targetFrame.isMainFrame)) { + // cf. for target="_blank", cf. http://qiita.com/ShingoFukuyama/items/b3a1441025a36ab7659c + [webView load:navigationAction.request]; + decisionHandler(WKNavigationActionPolicyCancel); + return; + } else { + if (navigationAction.targetFrame != nil && navigationAction.targetFrame.isMainFrame) { + // If the custom header is not attached, give it and make a request again. + if (![self isSetupedCustomHeader:[navigationAction request]]) { + NSLog(@"navi ... %@", navigationAction); + [wkWebView loadRequest:[self constructionCustomHeader:navigationAction.request]]; + decisionHandler(WKNavigationActionPolicyCancel); + return; + } + } + } + UnitySendMessage([gameObjectName UTF8String], "CallOnStarted", [url UTF8String]); + decisionHandler(WKNavigationActionPolicyAllow); +} + +- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler { + + if ([navigationResponse.response isKindOfClass:[NSHTTPURLResponse class]]) { + + NSHTTPURLResponse * response = (NSHTTPURLResponse *)navigationResponse.response; + if (response.statusCode >= 400) { + UnitySendMessage([gameObjectName UTF8String], "CallOnHttpError", [[NSString stringWithFormat:@"%d", response.statusCode] UTF8String]); + } + + } + decisionHandler(WKNavigationResponsePolicyAllow); +} + +// alert +- (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler +{ + if (!alertDialogEnabled) { + completionHandler(); + return; + } + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" + message:message + preferredStyle:UIAlertControllerStyleAlert]; + [alertController addAction: [UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleCancel + handler:^(UIAlertAction *action) { + completionHandler(); + }]]; + [UnityGetGLViewController() presentViewController:alertController animated:YES completion:^{}]; +} + +// confirm +- (void)webView:(WKWebView *)webView runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(BOOL))completionHandler +{ + if (!alertDialogEnabled) { + completionHandler(NO); + return; + } + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" + message:message + preferredStyle:UIAlertControllerStyleAlert]; + [alertController addAction:[UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action) { + completionHandler(YES); + }]]; + [alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" + style:UIAlertActionStyleCancel + handler:^(UIAlertAction *action) { + completionHandler(NO); + }]]; + [UnityGetGLViewController() presentViewController:alertController animated:YES completion:^{}]; +} + +// prompt +- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString *))completionHandler +{ + if (!alertDialogEnabled) { + completionHandler(nil); + return; + } + UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"" + message:prompt + preferredStyle:UIAlertControllerStyleAlert]; + [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { + textField.text = defaultText; + }]; + [alertController addAction:[UIAlertAction actionWithTitle:@"OK" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction *action) { + NSString *input = ((UITextField *)alertController.textFields.firstObject).text; + completionHandler(input); + }]]; + [alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" + style:UIAlertActionStyleCancel + handler:^(UIAlertAction *action) { + completionHandler(nil); + }]]; + [UnityGetGLViewController() presentViewController:alertController animated:YES completion:^{}]; +} + +- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler +{ + NSURLSessionAuthChallengeDisposition disposition; + NSURLCredential *credential; + if (basicAuthUserName && basicAuthPassword && [challenge previousFailureCount] == 0) { + disposition = NSURLSessionAuthChallengeUseCredential; + credential = [NSURLCredential credentialWithUser:basicAuthUserName password:basicAuthPassword persistence:NSURLCredentialPersistenceForSession]; + } else { + disposition = NSURLSessionAuthChallengePerformDefaultHandling; + credential = nil; + } + completionHandler(disposition, credential); +} + +- (BOOL)isSetupedCustomHeader:(NSURLRequest *)targetRequest +{ + // Check for additional custom header. + for (NSString *key in [customRequestHeader allKeys]) { + if (![[[targetRequest allHTTPHeaderFields] objectForKey:key] isEqualToString:[customRequestHeader objectForKey:key]]) { + return NO; + } + } + return YES; +} + +- (NSURLRequest *)constructionCustomHeader:(NSURLRequest *)originalRequest +{ + NSMutableURLRequest *convertedRequest = originalRequest.mutableCopy; + for (NSString *key in [customRequestHeader allKeys]) { + [convertedRequest setValue:customRequestHeader[key] forHTTPHeaderField:key]; + } + return (NSURLRequest *)[convertedRequest copy]; +} + +- (void)setMargins:(float)left top:(float)top right:(float)right bottom:(float)bottom relative:(BOOL)relative +{ + if (webView == nil) + return; + UIView *view = UnityGetGLViewController().view; + CGRect frame = webView.frame; + CGRect screen = view.bounds; + if (relative) { + frame.size.width = floor(screen.size.width * (1.0f - left - right)); + frame.size.height = floor(screen.size.height * (1.0f - top - bottom)); + frame.origin.x = floor(screen.size.width * left); + frame.origin.y = floor(screen.size.height * top); + } else { + CGFloat scale = 1.0f / [self getScale:view]; + frame.size.width = floor(screen.size.width - scale * (left + right)); + frame.size.height = floor(screen.size.height - scale * (top + bottom)); + frame.origin.x = floor(scale * left); + frame.origin.y = floor(scale * top); + } + webView.frame = frame; +} + +- (CGFloat)getScale:(UIView *)view +{ + if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) + return view.window.screen.nativeScale; + return view.contentScaleFactor; +} + +- (void)setVisibility:(BOOL)visibility +{ + if (webView == nil) + return; + webView.hidden = visibility ? NO : YES; +} + +- (void)setInteractionEnabled:(BOOL)enabled +{ + if (webView == nil) + return; + webView.userInteractionEnabled = enabled; +} + +- (void)setAlertDialogEnabled:(BOOL)enabled +{ + alertDialogEnabled = enabled; +} + +- (void)setScrollbarsVisibility:(BOOL)visibility +{ + if (webView == nil) + return; + [webView setScrollbarsVisibility:visibility]; +} + +- (void)setScrollBounceEnabled:(BOOL)enabled +{ + if (webView == nil) + return; + [webView setScrollBounce:enabled]; +} + +- (BOOL)setURLPattern:(const char *)allowPattern and:(const char *)denyPattern and:(const char *)hookPattern +{ + NSError *err = nil; + NSRegularExpression *allow = nil; + NSRegularExpression *deny = nil; + NSRegularExpression *hook = nil; + if (allowPattern == nil || *allowPattern == '\0') { + allow = nil; + } else { + allow + = [NSRegularExpression + regularExpressionWithPattern:[NSString stringWithUTF8String:allowPattern] + options:0 + error:&err]; + if (err != nil) { + return NO; + } + } + if (denyPattern == nil || *denyPattern == '\0') { + deny = nil; + } else { + deny + = [NSRegularExpression + regularExpressionWithPattern:[NSString stringWithUTF8String:denyPattern] + options:0 + error:&err]; + if (err != nil) { + return NO; + } + } + if (hookPattern == nil || *hookPattern == '\0') { + hook = nil; + } else { + hook + = [NSRegularExpression + regularExpressionWithPattern:[NSString stringWithUTF8String:hookPattern] + options:0 + error:&err]; + if (err != nil) { + return NO; + } + } + allowRegex = allow; + denyRegex = deny; + hookRegex = hook; + return YES; +} + +- (void)loadURL:(const char *)url +{ + if (webView == nil) + return; + NSString *urlStr = [NSString stringWithUTF8String:url]; + NSURL *nsurl = [NSURL URLWithString:urlStr]; + NSURLRequest *request = [NSURLRequest requestWithURL:nsurl]; + [webView load:request]; +} + +- (void)loadHTML:(const char *)html baseURL:(const char *)baseUrl +{ + if (webView == nil) + return; + NSString *htmlStr = [NSString stringWithUTF8String:html]; + NSString *baseStr = [NSString stringWithUTF8String:baseUrl]; + NSURL *baseNSUrl = [NSURL URLWithString:baseStr]; + [webView loadHTML:htmlStr baseURL:baseNSUrl]; +} + +- (void)evaluateJS:(const char *)js +{ + if (webView == nil) + return; + NSString *jsStr = [NSString stringWithUTF8String:js]; + [webView evaluateJavaScript:jsStr completionHandler:^(NSString *result, NSError *error) {}]; +} + +- (int)progress +{ + if (webView == nil) + return 0; + if ([webView isKindOfClass:[WKWebView class]]) { + return (int)([(WKWebView *)webView estimatedProgress] * 100); + } else { + return 0; + } +} + +- (BOOL)canGoBack +{ + if (webView == nil) + return false; + return [webView canGoBack]; +} + +- (BOOL)canGoForward +{ + if (webView == nil) + return false; + return [webView canGoForward]; +} + +- (void)goBack +{ + if (webView == nil) + return; + [webView goBack]; +} + +- (void)goForward +{ + if (webView == nil) + return; + [webView goForward]; +} + +- (void)reload +{ + if (webView == nil) + return; + [webView reload]; +} + +- (void)addCustomRequestHeader:(const char *)headerKey value:(const char *)headerValue +{ + NSString *keyString = [NSString stringWithUTF8String:headerKey]; + NSString *valueString = [NSString stringWithUTF8String:headerValue]; + + [customRequestHeader setObject:valueString forKey:keyString]; +} + +- (void)removeCustomRequestHeader:(const char *)headerKey +{ + NSString *keyString = [NSString stringWithUTF8String:headerKey]; + + if ([[customRequestHeader allKeys]containsObject:keyString]) { + [customRequestHeader removeObjectForKey:keyString]; + } +} + +- (void)clearCustomRequestHeader +{ + [customRequestHeader removeAllObjects]; +} + +- (const char *)getCustomRequestHeaderValue:(const char *)headerKey +{ + NSString *keyString = [NSString stringWithUTF8String:headerKey]; + NSString *result = [customRequestHeader objectForKey:keyString]; + if (!result) { + return NULL; + } + + const char *s = [result UTF8String]; + char *r = (char *)malloc(strlen(s) + 1); + strcpy(r, s); + return r; +} + +- (void)setBasicAuthInfo:(const char *)userName password:(const char *)password +{ + basicAuthUserName = [NSString stringWithUTF8String:userName]; + basicAuthPassword = [NSString stringWithUTF8String:password]; +} +@end + +extern "C" { + BOOL _CWebViewPlugin_IsInitialized(void *instance); + void *_CWebViewPlugin_Init(const char *gameObjectName, BOOL transparent, BOOL zoom, const char *ua, BOOL enableWKWebView, int contentMode, BOOL allowsLinkPreview, BOOL allowsBackForwardNavigationGestures, int radius); + void _CWebViewPlugin_Destroy(void *instance); + void _CWebViewPlugin_SetMargins( + void *instance, float left, float top, float right, float bottom, BOOL relative); + void _CWebViewPlugin_SetVisibility(void *instance, BOOL visibility); + void _CWebViewPlugin_SetInteractionEnabled(void *instance, BOOL enabled); + void _CWebViewPlugin_SetAlertDialogEnabled(void *instance, BOOL visibility); + void _CWebViewPlugin_SetScrollbarsVisibility(void *instance, BOOL visibility); + void _CWebViewPlugin_SetScrollBounceEnabled(void *instance, BOOL enabled); + BOOL _CWebViewPlugin_SetURLPattern(void *instance, const char *allowPattern, const char *denyPattern, const char *hookPattern); + void _CWebViewPlugin_LoadURL(void *instance, const char *url); + void _CWebViewPlugin_LoadHTML(void *instance, const char *html, const char *baseUrl); + void _CWebViewPlugin_EvaluateJS(void *instance, const char *url); + int _CWebViewPlugin_Progress(void *instance); + BOOL _CWebViewPlugin_CanGoBack(void *instance); + BOOL _CWebViewPlugin_CanGoForward(void *instance); + void _CWebViewPlugin_GoBack(void *instance); + void _CWebViewPlugin_GoForward(void *instance); + void _CWebViewPlugin_Reload(void *instance); + void _CWebViewPlugin_AddCustomHeader(void *instance, const char *headerKey, const char *headerValue); + void _CWebViewPlugin_RemoveCustomHeader(void *instance, const char *headerKey); + void _CWebViewPlugin_ClearCustomHeader(void *instance); + void _CWebViewPlugin_ClearCookies(); + void _CWebViewPlugin_SaveCookies(); + void _CWebViewPlugin_GetCookies(void *instance, const char *url); + const char *_CWebViewPlugin_GetCustomHeaderValue(void *instance, const char *headerKey); + void _CWebViewPlugin_SetBasicAuthInfo(void *instance, const char *userName, const char *password); + void _CWebViewPlugin_ClearCache(void *instance, BOOL includeDiskFiles); + void _CWebViewPlugin_SetSuspended(void *instance, BOOL suspended); +} + +BOOL _CWebViewPlugin_IsInitialized(void *instance) +{ + if (instance == NULL) + return NO; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin isInitialized]; +} + +void *_CWebViewPlugin_Init(const char *gameObjectName, BOOL transparent, BOOL zoom, const char *ua, BOOL enableWKWebView, int contentMode, BOOL allowsLinkPreview, BOOL allowsBackForwardNavigationGestures, int radius) +{ + WKContentMode wkContentMode = WKContentModeRecommended; + switch (contentMode) { + case 1: + wkContentMode = WKContentModeMobile; + break; + case 2: + wkContentMode = WKContentModeDesktop; + break; + default: + wkContentMode = WKContentModeRecommended; + break; + } + CWebViewPlugin *webViewPlugin = [[CWebViewPlugin alloc] initWithGameObjectName:gameObjectName transparent:transparent zoom:zoom ua:ua enableWKWebView:enableWKWebView contentMode:wkContentMode allowsLinkPreview:allowsLinkPreview allowsBackForwardNavigationGestures:allowsBackForwardNavigationGestures radius:radius]; + [_instances addObject:webViewPlugin]; + return (__bridge_retained void *)webViewPlugin; +} + +void _CWebViewPlugin_Destroy(void *instance) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge_transfer CWebViewPlugin *)instance; + [_instances removeObject:webViewPlugin]; + [webViewPlugin dispose]; + webViewPlugin = nil; +} + +void _CWebViewPlugin_SetMargins( + void *instance, float left, float top, float right, float bottom, BOOL relative) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setMargins:left top:top right:right bottom:bottom relative:relative]; +} + +void _CWebViewPlugin_SetVisibility(void *instance, BOOL visibility) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setVisibility:visibility]; +} + +void _CWebViewPlugin_SetInteractionEnabled(void *instance, BOOL enabled) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setInteractionEnabled:enabled]; +} + +void _CWebViewPlugin_SetAlertDialogEnabled(void *instance, BOOL enabled) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setAlertDialogEnabled:enabled]; +} + +void _CWebViewPlugin_SetScrollbarsVisibility(void *instance, BOOL visibility) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setScrollbarsVisibility:visibility]; +} + +void _CWebViewPlugin_SetScrollBounceEnabled(void *instance, BOOL enabled) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setScrollBounceEnabled:enabled]; +} + +BOOL _CWebViewPlugin_SetURLPattern(void *instance, const char *allowPattern, const char *denyPattern, const char *hookPattern) +{ + if (instance == NULL) + return NO; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin setURLPattern:allowPattern and:denyPattern and:hookPattern]; +} + +void _CWebViewPlugin_LoadURL(void *instance, const char *url) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin loadURL:url]; +} + +void _CWebViewPlugin_LoadHTML(void *instance, const char *html, const char *baseUrl) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin loadHTML:html baseURL:baseUrl]; +} + +void _CWebViewPlugin_EvaluateJS(void *instance, const char *js) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin evaluateJS:js]; +} + +int _CWebViewPlugin_Progress(void *instance) +{ + if (instance == NULL) + return 0; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin progress]; +} + +BOOL _CWebViewPlugin_CanGoBack(void *instance) +{ + if (instance == NULL) + return false; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin canGoBack]; +} + +BOOL _CWebViewPlugin_CanGoForward(void *instance) +{ + if (instance == NULL) + return false; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin canGoForward]; +} + +void _CWebViewPlugin_GoBack(void *instance) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin goBack]; +} + +void _CWebViewPlugin_GoForward(void *instance) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin goForward]; +} + +void _CWebViewPlugin_Reload(void *instance) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin reload]; +} + +void _CWebViewPlugin_AddCustomHeader(void *instance, const char *headerKey, const char *headerValue) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin addCustomRequestHeader:headerKey value:headerValue]; +} + +void _CWebViewPlugin_RemoveCustomHeader(void *instance, const char *headerKey) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin removeCustomRequestHeader:headerKey]; +} + +void _CWebViewPlugin_ClearCustomHeader(void *instance) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin clearCustomRequestHeader]; +} + +void _CWebViewPlugin_ClearCookies() +{ + [CWebViewPlugin clearCookies]; +} + +void _CWebViewPlugin_SaveCookies() +{ + [CWebViewPlugin saveCookies]; +} + +void _CWebViewPlugin_GetCookies(void *instance, const char *url) +{ + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin getCookies:url]; +} + +const char *_CWebViewPlugin_GetCustomHeaderValue(void *instance, const char *headerKey) +{ + if (instance == NULL) + return NULL; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + return [webViewPlugin getCustomRequestHeaderValue:headerKey]; +} + +void _CWebViewPlugin_SetBasicAuthInfo(void *instance, const char *userName, const char *password) +{ + if (instance == NULL) + return; + CWebViewPlugin *webViewPlugin = (__bridge CWebViewPlugin *)instance; + [webViewPlugin setBasicAuthInfo:userName password:password]; +} + +void _CWebViewPlugin_ClearCache(void *instance, BOOL includeDiskFiles) +{ + // no op +} + +void _CWebViewPlugin_SetSuspended(void *instance, BOOL suspended) +{ + // no op +} +#endif // __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_9_0 diff --git a/Assets/Plugins/iOS/WebViewWithUIWebView.mm.meta b/Assets/Plugins/iOS/WebViewWithUIWebView.mm.meta new file mode 100644 index 00000000..f5e0fb85 --- /dev/null +++ b/Assets/Plugins/iOS/WebViewWithUIWebView.mm.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: fc99cbfa2b53248b18d60e327b478581 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: + AddToEmbeddedBinaries: false + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/iOS/unity-plugin-library.a b/Assets/Plugins/iOS/unity-plugin-library.a new file mode 100644 index 00000000..bc300799 Binary files /dev/null and b/Assets/Plugins/iOS/unity-plugin-library.a differ diff --git a/Assets/Plugins/iOS/unity-plugin-library.a.meta b/Assets/Plugins/iOS/unity-plugin-library.a.meta new file mode 100644 index 00000000..ca6792f4 --- /dev/null +++ b/Assets/Plugins/iOS/unity-plugin-library.a.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 52c76a20e90b4b26b396c50aea983ab5 +labels: +- gvh +- gvh_version-10.6.0 +- gvhp_exportpath-Plugins/iOS/unity-plugin-library.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 1 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 1 + settings: + CPU: x86 + Linux64: + enabled: 1 + settings: + CPU: x86_64 + LinuxUniversal: + enabled: 1 + settings: + CPU: AnyCPU + OSXIntel: + enabled: 1 + settings: + CPU: x86 + OSXIntel64: + enabled: 1 + settings: + CPU: x86_64 + OSXUniversal: + enabled: 1 + settings: + CPU: AnyCPU + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 1 + settings: + CPU: x86 + Win64: + enabled: 1 + settings: + CPU: x86_64 + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/tvOS.meta b/Assets/Plugins/tvOS.meta new file mode 100644 index 00000000..e21baaca --- /dev/null +++ b/Assets/Plugins/tvOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e1f7b4425a2abd545a1d66bf92555b95 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/tvOS/Firebase.meta b/Assets/Plugins/tvOS/Firebase.meta new file mode 100644 index 00000000..0261e4bb --- /dev/null +++ b/Assets/Plugins/tvOS/Firebase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 01fe1d6c88612d14b9f222d41ab2075b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/tvOS/Firebase/libFirebaseCppAnalytics.a b/Assets/Plugins/tvOS/Firebase/libFirebaseCppAnalytics.a new file mode 100644 index 00000000..eacecaa9 Binary files /dev/null and b/Assets/Plugins/tvOS/Firebase/libFirebaseCppAnalytics.a differ diff --git a/Assets/Plugins/tvOS/Firebase/libFirebaseCppAnalytics.a.meta b/Assets/Plugins/tvOS/Firebase/libFirebaseCppAnalytics.a.meta new file mode 100644 index 00000000..c8b270c9 --- /dev/null +++ b/Assets/Plugins/tvOS/Firebase/libFirebaseCppAnalytics.a.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 8aa59edc9bec4e45acabc30173a8beaa +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Plugins/tvOS/Firebase/libFirebaseCppAnalytics.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a b/Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a new file mode 100644 index 00000000..084d413e Binary files /dev/null and b/Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a differ diff --git a/Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a.meta b/Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a.meta new file mode 100644 index 00000000..f1113d2d --- /dev/null +++ b/Assets/Plugins/tvOS/Firebase/libFirebaseCppApp.a.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: 46cff64d2cc446bb8fb0137f39fbbf57 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Plugins/tvOS/Firebase/libFirebaseCppApp.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/tvOS/Firebase/libFirebaseCppCrashlytics.a b/Assets/Plugins/tvOS/Firebase/libFirebaseCppCrashlytics.a new file mode 100644 index 00000000..09a55629 Binary files /dev/null and b/Assets/Plugins/tvOS/Firebase/libFirebaseCppCrashlytics.a differ diff --git a/Assets/Plugins/tvOS/Firebase/libFirebaseCppCrashlytics.a.meta b/Assets/Plugins/tvOS/Firebase/libFirebaseCppCrashlytics.a.meta new file mode 100644 index 00000000..83634509 --- /dev/null +++ b/Assets/Plugins/tvOS/Firebase/libFirebaseCppCrashlytics.a.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: b78f32d3909244bc819df359420806fb +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Plugins/tvOS/Firebase/libFirebaseCppCrashlytics.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/tvOS/Firebase/libFirebaseCppMessaging.a b/Assets/Plugins/tvOS/Firebase/libFirebaseCppMessaging.a new file mode 100644 index 00000000..f4b4c5d4 Binary files /dev/null and b/Assets/Plugins/tvOS/Firebase/libFirebaseCppMessaging.a differ diff --git a/Assets/Plugins/tvOS/Firebase/libFirebaseCppMessaging.a.meta b/Assets/Plugins/tvOS/Firebase/libFirebaseCppMessaging.a.meta new file mode 100644 index 00000000..58a1dac5 --- /dev/null +++ b/Assets/Plugins/tvOS/Firebase/libFirebaseCppMessaging.a.meta @@ -0,0 +1,81 @@ +fileFormatVersion: 2 +guid: ea0c43792a004d2b969890decb0dbc93 +labels: +- gvh +- gvh_version-12.8.0 +- gvhp_exportpath-Plugins/tvOS/Firebase/libFirebaseCppMessaging.a +timeCreated: 1480838400 +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Android: + enabled: 0 + settings: + CPU: AnyCPU + Any: + enabled: 0 + settings: {} + Editor: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + Linux: + enabled: 0 + settings: + CPU: None + Linux64: + enabled: 0 + settings: + CPU: None + LinuxUniversal: + enabled: 0 + settings: + CPU: None + OSXIntel: + enabled: 0 + settings: + CPU: None + OSXIntel64: + enabled: 0 + settings: + CPU: None + OSXUniversal: + enabled: 0 + settings: + CPU: None + Web: + enabled: 0 + settings: {} + WebStreamed: + enabled: 0 + settings: {} + Win: + enabled: 0 + settings: + CPU: None + Win64: + enabled: 0 + settings: + CPU: None + WindowsStoreApps: + enabled: 0 + settings: + CPU: AnyCPU + iOS: + enabled: 0 + settings: + CompileFlags: + FrameworkDependencies: + tvOS: + enabled: 1 + settings: + CompileFlags: + FrameworkDependencies: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/unity-webview-webgl-plugin.jslib b/Assets/Plugins/unity-webview-webgl-plugin.jslib new file mode 100644 index 00000000..95777383 --- /dev/null +++ b/Assets/Plugins/unity-webview-webgl-plugin.jslib @@ -0,0 +1,31 @@ +mergeInto(LibraryManager.library, { + _gree_unity_webview_init: function(name) { + var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString; + unityWebView.init(stringify(name)); + }, + + _gree_unity_webview_setMargins: function (name, left, top, right, bottom) { + var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString; + unityWebView.setMargins(stringify(name), left, top, right, bottom); + }, + + _gree_unity_webview_setVisibility: function(name, visible) { + var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString; + unityWebView.setVisibility(stringify(name), visible); + }, + + _gree_unity_webview_loadURL: function(name, url) { + var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString; + unityWebView.loadURL(stringify(name), stringify(url)); + }, + + _gree_unity_webview_evaluateJS: function(name, js) { + var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString; + unityWebView.evaluateJS(stringify(name), stringify(js)); + }, + + _gree_unity_webview_destroy: function(name) { + var stringify = (UTF8ToString === undefined) ? Pointer_stringify : UTF8ToString; + unityWebView.destroy(stringify(name)); + }, +}); diff --git a/Assets/Plugins/unity-webview-webgl-plugin.jslib.meta b/Assets/Plugins/unity-webview-webgl-plugin.jslib.meta new file mode 100644 index 00000000..2e24b029 --- /dev/null +++ b/Assets/Plugins/unity-webview-webgl-plugin.jslib.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 1353be0798ab043d992cd72e4d92970b +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + WebGL: WebGL + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/RedHotRoast/Helper/GameHelper.cs b/Assets/RedHotRoast/Helper/GameHelper.cs index edf5bc13..00562069 100644 --- a/Assets/RedHotRoast/Helper/GameHelper.cs +++ b/Assets/RedHotRoast/Helper/GameHelper.cs @@ -351,7 +351,7 @@ namespace RedHotRoast // return false; - return true; //zhushi + // return true; //zhushi return GetLoginModel().IsMagic; } diff --git a/Assets/Resources/BillingMode.json.meta b/Assets/Resources/BillingMode.json.meta index 5c51cbd7..16b757cf 100644 --- a/Assets/Resources/BillingMode.json.meta +++ b/Assets/Resources/BillingMode.json.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f257e681a67f54f38b0d15c5d35805b3 +guid: 243950e48ec17bc45bda59b19d6e72a8 TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/Resources/RedHotRoastAssets/FGUI/ZM_Common_01_fui.bytes b/Assets/Resources/RedHotRoastAssets/FGUI/ZM_Common_01_fui.bytes index 55af53ee..f9d8131e 100644 Binary files a/Assets/Resources/RedHotRoastAssets/FGUI/ZM_Common_01_fui.bytes and b/Assets/Resources/RedHotRoastAssets/FGUI/ZM_Common_01_fui.bytes differ diff --git a/Assets/Resources/RedHotRoastAssets/FGUI/ZM_Lobby_03_fui.bytes b/Assets/Resources/RedHotRoastAssets/FGUI/ZM_Lobby_03_fui.bytes index febc2b1c..c64de0fe 100644 Binary files a/Assets/Resources/RedHotRoastAssets/FGUI/ZM_Lobby_03_fui.bytes and b/Assets/Resources/RedHotRoastAssets/FGUI/ZM_Lobby_03_fui.bytes differ diff --git a/Assets/Resources/SDKConfig.asset b/Assets/Resources/SDKConfig.asset new file mode 100644 index 00000000..4d431253 --- /dev/null +++ b/Assets/Resources/SDKConfig.asset @@ -0,0 +1,42 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6e4857e9d117e764490d38ceb6820095, type: 3} + m_Name: SDKConfig + m_EditorClassIdentifier: + appsFlyerDevKey: gXAwH5fuQQ7Ws2u6Rj5qhb + appsFlyerIosAppleAppId: 6764027337 + appKey: 9ED1D82AE75244D6A4F2E111D44C6AF2 + appSecret: 3F4DF55A91334AE6A4E0099CC1ABDAE8 + logReportUrl: npw.reddhotcompangost.com + maxAppKey: LHx_tPFslZpTTiIPABmS24T7Ev1QEVOUVOzirpkxLUuTwJTVZGCKAk9L3Tm3FwuM5LxHK3q1EIbAemJB5sNpX2 + splashUnitId: + bannerUnitId: + interUnitId: 8971dfc98065c2c0 + videoUnitId: 13c3601021e6a8b9 + kwaiAppId: + kwaiVideoUnitId: [] + kwaiInterUnitId: [] + bigoAppId: + bigoVideoUnitId: [] + bigoInterUnitId: [] + bigoSplashUnitId: + toponAppId: + toponAppkey: + toponVideoUnitId: + toponInterUnitId: + admobAppId: + admobVideoUnitId: + admobInterUnitId: + admobSplashUnitId: + isDebug: 1 + isPrintLog: 1 + isUseAdmobSplash: 0 diff --git a/Assets/Resources/SDKConfig.asset.meta b/Assets/Resources/SDKConfig.asset.meta new file mode 100644 index 00000000..e28a31ce --- /dev/null +++ b/Assets/Resources/SDKConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fe518f3825efad24eb1701a01c8c1b7c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SGModule/DataStorage/SGModule/Plugins/Easy Save 3/Resources/ES3/ES3Defaults.asset b/Assets/SGModule/DataStorage/SGModule/Plugins/Easy Save 3/Resources/ES3/ES3Defaults.asset index 1bad87b0..cd40b04a 100644 --- a/Assets/SGModule/DataStorage/SGModule/Plugins/Easy Save 3/Resources/ES3/ES3Defaults.asset +++ b/Assets/SGModule/DataStorage/SGModule/Plugins/Easy Save 3/Resources/ES3/ES3Defaults.asset @@ -32,15 +32,21 @@ MonoBehaviour: assemblyNames: - AppsFlyer - Assembly-CSharp + - BigoAds - DOTween.Modules - DOTweenPro.Scripts - endel.nativewebsocket - IngameDebugConsole.Runtime + - KwaiAds - MaxSdk.Scripts - OPS.Obfuscator + - SDKConfig - spine-unity + - Tests - Unity.Advertisement.IosSupport - Unity.Advertisement.IosSupport.Tests + - VosacoSDK + - WebView showAdvancedSettings: 0 addMgrToSceneAutomatically: 0 autoUpdateReferences: 1 diff --git a/Assets/SRKZBz0SDK.meta b/Assets/SRKZBz0SDK.meta new file mode 100644 index 00000000..278360cb --- /dev/null +++ b/Assets/SRKZBz0SDK.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d253afffd7699c44981f03cf5c48df5c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Demo.meta b/Assets/SRKZBz0SDK/Demo.meta new file mode 100644 index 00000000..30f672c1 --- /dev/null +++ b/Assets/SRKZBz0SDK/Demo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 42b11239795a857438cebb0b42577408 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Demo/Canvas.prefab b/Assets/SRKZBz0SDK/Demo/Canvas.prefab new file mode 100644 index 00000000..31917c18 --- /dev/null +++ b/Assets/SRKZBz0SDK/Demo/Canvas.prefab @@ -0,0 +1,1621 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &247289662654341969 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2186578608974745122} + - component: {fileID: 1915380833576099152} + m_Layer: 5 + m_Name: Btns_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2186578608974745122 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 247289662654341969} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2114339503071180276} + - {fileID: 6386247163610881328} + - {fileID: 7421123915051953226} + m_Father: {fileID: 3814336198664204231} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 300} + m_SizeDelta: {x: 0, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1915380833576099152 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 247289662654341969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &374282632372128772 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5263133496851294189} + - component: {fileID: 4413009211153563760} + - component: {fileID: 1082509387802029583} + - component: {fileID: 5280069374268115974} + m_Layer: 5 + m_Name: Button_splash + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5263133496851294189 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374282632372128772} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1320549599529069869} + m_Father: {fileID: 2309657635319882206} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4413009211153563760 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374282632372128772} + m_CullTransparentMesh: 1 +--- !u!114 &1082509387802029583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374282632372128772} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5280069374268115974 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374282632372128772} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1082509387802029583} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6147603117923645731} + m_TargetAssemblyTypeName: TXXSDKDemo, Assembly-CSharp + m_MethodName: CheckSplash + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 1082509387802029583} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Image, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &871561312035611753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8078846575455493895} + - component: {fileID: 7778772907728132549} + - component: {fileID: 8048899328929339997} + - component: {fileID: 51037568750415047} + m_Layer: 5 + m_Name: Button_video + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8078846575455493895 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 871561312035611753} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7207412852729209054} + m_Father: {fileID: 2309657635319882206} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7778772907728132549 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 871561312035611753} + m_CullTransparentMesh: 1 +--- !u!114 &8048899328929339997 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 871561312035611753} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &51037568750415047 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 871561312035611753} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8048899328929339997} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6147603117923645731} + m_TargetAssemblyTypeName: TXXSDKDemo, Assembly-CSharp + m_MethodName: CheckReward + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 8048899328929339997} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Image, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &1057232852885327108 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2114339503071180276} + - component: {fileID: 701906088969942400} + - component: {fileID: 6516697084468721236} + - component: {fileID: 5229623939237214052} + m_Layer: 5 + m_Name: Button_video + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2114339503071180276 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1057232852885327108} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3155729959236665959} + m_Father: {fileID: 2186578608974745122} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &701906088969942400 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1057232852885327108} + m_CullTransparentMesh: 1 +--- !u!114 &6516697084468721236 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1057232852885327108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &5229623939237214052 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1057232852885327108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6516697084468721236} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6147603117923645731} + m_TargetAssemblyTypeName: TXXSDKDemo, Assembly-CSharp + m_MethodName: ShowReward + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &1129433504447830547 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7207412852729209054} + - component: {fileID: 9163546795248234934} + - component: {fileID: 3981730049102639300} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7207412852729209054 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1129433504447830547} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8078846575455493895} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9163546795248234934 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1129433504447830547} + m_CullTransparentMesh: 1 +--- !u!114 &3981730049102639300 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1129433504447830547} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u89C6\u9891ready?" +--- !u!1 &1274082055292461939 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5433208044156239605} + - component: {fileID: 7233200712829872637} + - component: {fileID: 6576387300318430563} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5433208044156239605 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1274082055292461939} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7421123915051953226} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7233200712829872637 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1274082055292461939} + m_CullTransparentMesh: 1 +--- !u!114 &6576387300318430563 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1274082055292461939} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u5F00\u5C4F" +--- !u!1 &1470164605704797392 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6055302853728915273} + - component: {fileID: 6897099642644240591} + - component: {fileID: 3953240985225444270} + - component: {fileID: 9218745861528478038} + m_Layer: 5 + m_Name: Button_inter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6055302853728915273 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1470164605704797392} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5879659302016511695} + m_Father: {fileID: 2309657635319882206} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6897099642644240591 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1470164605704797392} + m_CullTransparentMesh: 1 +--- !u!114 &3953240985225444270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1470164605704797392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &9218745861528478038 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1470164605704797392} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3953240985225444270} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6147603117923645731} + m_TargetAssemblyTypeName: TXXSDKDemo, Assembly-CSharp + m_MethodName: CheckInter + m_Mode: 2 + m_Arguments: + m_ObjectArgument: {fileID: 3953240985225444270} + m_ObjectArgumentAssemblyTypeName: UnityEngine.UI.Image, UnityEngine.UI + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &1773880965652319719 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3047827094130688118} + - component: {fileID: 8805665133166091484} + - component: {fileID: 836177114871363730} + m_Layer: 5 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3047827094130688118 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1773880965652319719} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3814336198664204231} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8805665133166091484 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1773880965652319719} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!114 &836177114871363730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1773880965652319719} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!1 &1851783444536761142 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5870506162399608540} + - component: {fileID: 5977857075755120021} + - component: {fileID: 1065934884972764730} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5870506162399608540 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1851783444536761142} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6386247163610881328} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5977857075755120021 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1851783444536761142} + m_CullTransparentMesh: 1 +--- !u!114 &1065934884972764730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1851783444536761142} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u63D2\u5C4F" +--- !u!1 &2258479920111071275 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6386247163610881328} + - component: {fileID: 33303646435982000} + - component: {fileID: 3709050320292666399} + - component: {fileID: 6474089087819971336} + m_Layer: 5 + m_Name: Button_inter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6386247163610881328 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2258479920111071275} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5870506162399608540} + m_Father: {fileID: 2186578608974745122} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &33303646435982000 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2258479920111071275} + m_CullTransparentMesh: 1 +--- !u!114 &3709050320292666399 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2258479920111071275} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6474089087819971336 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2258479920111071275} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3709050320292666399} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6147603117923645731} + m_TargetAssemblyTypeName: TXXSDKDemo, Assembly-CSharp + m_MethodName: ShowInter + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &2494615750025654997 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7421123915051953226} + - component: {fileID: 1235256825791595106} + - component: {fileID: 6690812882586864819} + - component: {fileID: 3512666246441764720} + m_Layer: 5 + m_Name: Button_splash + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7421123915051953226 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2494615750025654997} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5433208044156239605} + m_Father: {fileID: 2186578608974745122} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1235256825791595106 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2494615750025654997} + m_CullTransparentMesh: 1 +--- !u!114 &6690812882586864819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2494615750025654997} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &3512666246441764720 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2494615750025654997} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 6690812882586864819} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6147603117923645731} + m_TargetAssemblyTypeName: TXXSDKDemo, Assembly-CSharp + m_MethodName: ShowSplash + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &3993425241739893078 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6165632457974456317} + - component: {fileID: 6147603117923645731} + m_Layer: 0 + m_Name: Demo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6165632457974456317 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3993425241739893078} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -360, y: -640, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3814336198664204231} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &6147603117923645731 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3993425241739893078} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d8774234e57432246b6a0759b8ef695a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &5276044070817228816 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3814336198664204231} + - component: {fileID: 3767656123001148601} + - component: {fileID: 7104908342640413437} + - component: {fileID: 8919042661587609366} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3814336198664204231 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5276044070817228816} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2186578608974745122} + - {fileID: 2309657635319882206} + - {fileID: 3047827094130688118} + - {fileID: 6165632457974456317} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &3767656123001148601 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5276044070817228816} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &7104908342640413437 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5276044070817228816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &8919042661587609366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5276044070817228816} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &5499898375600897921 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5879659302016511695} + - component: {fileID: 1262070443735396263} + - component: {fileID: 6099349652833753084} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5879659302016511695 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5499898375600897921} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6055302853728915273} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &1262070443735396263 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5499898375600897921} + m_CullTransparentMesh: 1 +--- !u!114 &6099349652833753084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5499898375600897921} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u63D2\u5C4Fready?" +--- !u!1 &6002140994012719198 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1320549599529069869} + - component: {fileID: 3524675111442863565} + - component: {fileID: 5777339551399410459} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1320549599529069869 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6002140994012719198} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5263133496851294189} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3524675111442863565 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6002140994012719198} + m_CullTransparentMesh: 1 +--- !u!114 &5777339551399410459 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6002140994012719198} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u5F00\u5C4Fready?" +--- !u!1 &7187179808451312703 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2309657635319882206} + - component: {fileID: 6223048036171551623} + m_Layer: 5 + m_Name: Btns_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2309657635319882206 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7187179808451312703} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8078846575455493895} + - {fileID: 6055302853728915273} + - {fileID: 5263133496851294189} + m_Father: {fileID: 3814336198664204231} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 200} + m_SizeDelta: {x: 0, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6223048036171551623 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7187179808451312703} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 4 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &8249781748356899463 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3155729959236665959} + - component: {fileID: 98453067105818748} + - component: {fileID: 857160171482335875} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3155729959236665959 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8249781748356899463} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2114339503071180276} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &98453067105818748 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8249781748356899463} + m_CullTransparentMesh: 1 +--- !u!114 &857160171482335875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8249781748356899463} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 26 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u6FC0\u52B1\u89C6\u9891" diff --git a/Assets/SRKZBz0SDK/Demo/Canvas.prefab.meta b/Assets/SRKZBz0SDK/Demo/Canvas.prefab.meta new file mode 100644 index 00000000..e7ddba98 --- /dev/null +++ b/Assets/SRKZBz0SDK/Demo/Canvas.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 51f8b691978644845a59d4da09bb72e3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Demo/Demo.prefab b/Assets/SRKZBz0SDK/Demo/Demo.prefab new file mode 100644 index 00000000..5a1e7f83 --- /dev/null +++ b/Assets/SRKZBz0SDK/Demo/Demo.prefab @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &7999829969770386720 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 520568642914021788} + m_Layer: 0 + m_Name: Demo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &520568642914021788 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7999829969770386720} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/SRKZBz0SDK/Demo/Demo.prefab.meta b/Assets/SRKZBz0SDK/Demo/Demo.prefab.meta new file mode 100644 index 00000000..951ac22b --- /dev/null +++ b/Assets/SRKZBz0SDK/Demo/Demo.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5597cf0c8207a4448a9e84a8800d5cad +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Demo/SRKZBz0SDKDemo.cs b/Assets/SRKZBz0SDK/Demo/SRKZBz0SDKDemo.cs new file mode 100644 index 00000000..f3efa3bc --- /dev/null +++ b/Assets/SRKZBz0SDK/Demo/SRKZBz0SDKDemo.cs @@ -0,0 +1,231 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using Newtonsoft.Json; +using SRKZBz0SDK; +using UnityEngine; +using UnityEngine.UI; +using Random = UnityEngine.Random; + +public class SRKZBz0SDKDemo : MonoBehaviour +{ + public void ShowReward() + { + SRKZBz0SDK_Utility.Instance.ShowRewardVideo("TAG", b => + { + Debug.LogError($"reward result = {b}"); + },(() => + { + Debug.LogError($"reward close!!!"); + })); + } + + public void ShowInter() + { + SRKZBz0SDK_Utility.Instance.ShowInter("TAG", () => + { + Debug.LogError("inter hide"); + }); + } + + public void ShowAdmobInter() + { + SRKZBz0SDK_Utility.Instance.ShowAdmobInter("TAG", () => + { + Debug.LogError("inter hide"); + }); + } + + public void ShowSplash() + { + SRKZBz0SDK_Utility.Instance.ShowSplash(); + } + + public void CheckReward(Image btnImg) + { + var isReady = SRKZBz0SDK_Utility.Instance.IsVideoReady(); + btnImg.color = isReady ? Color.green : Color.white; + Debug.Log($"Reward : {isReady}"); + } + + public void CheckInter(Image btnImg) + { + var isReady = SRKZBz0SDK_Utility.Instance.IsInterReady(); + btnImg.color = isReady ? Color.green : Color.white; + Debug.Log($"Inter : {isReady}"); + } + + public void CheckSplash(Image btnImg) + { + var isReady = SRKZBz0SDK_Utility.Instance.IsSplashReady(); + btnImg.color = isReady ? Color.green : Color.white; + Debug.Log($"Splash : {isReady}"); + } + + public void Track() + { + SRKZBz0SDK_Utility.Instance.Track("test", new Dictionary() + { + {"evt1", "1"}, + {"evt2", "2"}, + {"evt3", "3"}, + {"evt4", "4"}, + {"evt5", "5"}, + {"evt6", "6"}, + {"evt7", "7"}, + {"evt8", "8"}, + {"evt9", "9"}, + }); + + + } + + public void GetCountryCode() + { + + var code = SRKZBz0SDK_Utility.Instance.GetCountryCode(); + Debug.Log($"country : {code}"); + } + + public void ShowH5() + { + SRKZBz0SDK_Utility.Instance.H5.ShowH5((() => + { + Debug.Log("H5 close"); + }), () => + { + Debug.Log($"H5 show failed!"); + }); + } + + public void ShowH5(RectTransform rectTransform) + { + SRKZBz0SDK_Utility.Instance.H5.ShowH5(rectTransform); + } + + public void HideH5() + { + SRKZBz0SDK_Utility.Instance.H5.HideH5(); + } + + public void CheckShowH5(Image btnImg) + { + var show = SRKZBz0SDK_Utility.Instance.H5.IsShowH5(); + btnImg.color = show ? Color.green : Color.red; + Debug.Log($"CheckShowH5 : {show}"); + } + + private int _level = 1; + public void TrackLevel() + { + SRKZBz0SDK_Utility.Instance.TrackLevelUp(_level); + if (Random.Range(0, 100) < 50) + { + _level++; + } + } + + private string withDrawSceneId = ""; + public void GetWithDrawConfigs() + { + SRKZBz0SDK_Utility.Instance.GetWithDrawConfigs(((b, s) => + { + Debug.Log($"GetWithDrawConfigs result : {b}, data : {s}"); + if (b) + { + var cfgs = JsonConvert.DeserializeObject>(s); + int idx = 0; + foreach (WithDrawConfig config in cfgs) + { + Debug.Log($"index = {idx}, {config.ToString()}"); + if (idx == 0) + withDrawSceneId = config.SecneId; + idx++; + } + } + + })); + } + + private int payIndex = 0; + public void CreateWithDrawOrder() + { + string taxNo = ""; + string payAccount = "tom@gmail.com"; + string accountType = "E"; + PaymentTypeCode payCode = PaymentTypeCode.GOPAY; + //GOPAY DANA 收款账号需要为电话号码 + if (payIndex == 1 || payIndex == 0) + { + payCode = payIndex == 1 ? PaymentTypeCode.DANA : payCode; + payAccount = "0881234567890"; + accountType = "P"; + } + if (payIndex == 2) + { + // PIX 需要填写税号 + payCode = PaymentTypeCode.PIX; + taxNo = "99999999999"; + } + if (payIndex == 3) payCode = PaymentTypeCode.MERCADOPAGO; + SRKZBz0SDK_Utility.Instance.CreateWithDrawOrder(withDrawSceneId, payCode, payAccount, accountType, "testName", taxNo, b => + { + Debug.Log($"CreateWithDrawOrder result : {b}"); + }); + + payIndex++; + payIndex = payIndex > 3 ? 0 : payIndex; + } + + public void GetWithDrawOrders() + { + SRKZBz0SDK_Utility.Instance.GetWithDrawOrders(((b, s) => + { + Debug.Log($"GetWithDrawOrders result : {b}, data : {s}"); + if (b) + { + var cfgs = JsonConvert.DeserializeObject>(s); + int idx = 0; + foreach (WithDrawOrder config in cfgs) + { + Debug.Log($"index = {idx}, {config.ToString()}"); + idx++; + } + } + })); + } + + // Start is called before the first frame update + void Start() + { + Init(); + + Invoke("ShowSplash", 5); + } + + // Update is called once per frame + void Update() + { + + } + + private void Init() + { + SRKZBz0SDK_Utility.Instance.RegistIosParam((i => + { + Debug.Log($"ios ab param : {i}"); + })); + + void GameConfig(bool result, string config) + { + Debug.Log($"************* game config result : {result}, config : {config}"); + } + + SRKZBz0SDK_Utility.Instance.Init(null, "app_config", GameConfig); + } + + public static string GetSdkVersion() + { + return SRKZBz0SDK_Utility.SdkVersion; + } +} diff --git a/Assets/SRKZBz0SDK/Demo/SRKZBz0SDKDemo.cs.meta b/Assets/SRKZBz0SDK/Demo/SRKZBz0SDKDemo.cs.meta new file mode 100644 index 00000000..dcfc2590 --- /dev/null +++ b/Assets/SRKZBz0SDK/Demo/SRKZBz0SDKDemo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 959ec24a7131c9d488e5007fa82612be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Editor.meta b/Assets/SRKZBz0SDK/Editor.meta new file mode 100644 index 00000000..0a8ee570 --- /dev/null +++ b/Assets/SRKZBz0SDK/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 730a988606a036b4b92d1abb57c9d112 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Editor/SRKZBz0SDKConfigEditor.cs b/Assets/SRKZBz0SDK/Editor/SRKZBz0SDKConfigEditor.cs new file mode 100644 index 00000000..ed55d041 --- /dev/null +++ b/Assets/SRKZBz0SDK/Editor/SRKZBz0SDKConfigEditor.cs @@ -0,0 +1,601 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using SRKZBz0SDK; +using UnityEditor; +using UnityEngine; + +public class SRKZBz0SDKConfigEditor : EditorWindow +{ + private static SRKZBz0SDKConfigEditor _view; + +private int _emptyKwInterIdCount = 1; +private int _emptyKwVideoIdCount = 1; + +private int _emptyBigoInterIdCount = 1; +private int _emptyBigoVideoIdCount = 1; + +[MenuItem("Tools/设置 &G")] +public static void ShowWin() +{ + if (_view != null) + { + CloseView(); + return; + } + + var win = GetWindow(); + win.minSize = new Vector2(790, 872); + _view = win; + RemoveExtraEmptyStrings(SDKConfig.KwaiInterUnitId, _view._emptyKwInterIdCount); + RemoveExtraEmptyStrings(SDKConfig.KwaiVideoUnitId, _view._emptyKwVideoIdCount); + RemoveExtraEmptyStrings(SDKConfig.BigoInterUnitId, _view._emptyBigoInterIdCount); + RemoveExtraEmptyStrings(SDKConfig.BigoVideoUnitId, _view._emptyBigoVideoIdCount); + win.Show(); + +} + +static void CloseView() +{ + _view.Close(); + _view = null; +} + +private void OnGUI() +{ + DrawWindow(); + EditorUtility.SetDirty(SDKConfig.Instance); +} + +private void DrawWindow() +{ + TextLabel("基础配置"); + EditorGUILayout.BeginVertical("frameBox"); +#if UNITY_IOS + SDKConfig.Instance.appsFlyerDevKey = DrawTextField("appsFlyerDevKey", SDKConfig.Instance.appsFlyerDevKey); + SDKConfig.Instance.appsFlyerIosAppleAppId = DrawTextField("appsFlyerIosAppleAppId", SDKConfig.Instance.appsFlyerIosAppleAppId); +#elif UNITY_ANDROID + SDKConfig.Instance.appsFlyerDevKey = DrawTextField("appsFlyerDevKey", SDKConfig.Instance.appsFlyerDevKey); +#endif + SDKConfig.Instance.logReportUrl = DrawTextField("配置域名", SDKConfig.Instance.logReportUrl); + SDKConfig.Instance.appKey = DrawTextField("appKey", SDKConfig.Instance.appKey); + SDKConfig.Instance.appSecret = DrawTextField("appSecret", SDKConfig.Instance.appSecret); + + EditorGUILayout.EndVertical(); + + TextLabel("广告配置"); + + + #region MAX + + EditorGUILayout.BeginVertical("frameBox"); + TextLabel("MAX", Color.cyan); + SDKConfig.Instance.maxAppKey = DrawTextField("MaxSdkKey", SDKConfig.Instance.maxAppKey); + SDKConfig.Instance.videoUnitId = DrawTextField("激励视频 ID", SDKConfig.Instance.videoUnitId); + SDKConfig.Instance.interUnitId = DrawTextField("插屏 ID", SDKConfig.Instance.interUnitId); + SDKConfig.Instance.bannerUnitId = DrawTextField("Banner ID", SDKConfig.Instance.bannerUnitId); + SDKConfig.Instance.splashUnitId = DrawTextField("开屏 ID", SDKConfig.Instance.splashUnitId); + EditorGUILayout.EndVertical(); + + AppLovinSettings.Instance.SdkKey = SDKConfig.Instance.maxAppKey; + + #endregion + + + #region Topon + + // EditorGUILayout.BeginVertical("frameBox"); + // TextLabel("Topon", Color.cyan); + // SDKConfig.Instance.toponAppId = DrawTextField("AppId", SDKConfig.Instance.toponAppId); + // SDKConfig.Instance.toponAppkey = DrawTextField("Appkey", SDKConfig.Instance.toponAppkey); + // SDKConfig.Instance.toponVideoUnitId = DrawTextField("激励视频 ID", SDKConfig.Instance.toponVideoUnitId); + // SDKConfig.Instance.toponInterUnitId = DrawTextField("插屏 ID", SDKConfig.Instance.toponInterUnitId); + // EditorGUILayout.EndVertical(); + + #endregion + +#if UNITY_ANDROID + + EditorGUILayout.BeginVertical("frameBox"); + EditorGUILayout.BeginHorizontal("frameBox"); + TextLabel("KWai", Color.cyan); + DrawButton("插屏ID +", AddInterId); + //DrawButton("插屏ID -", DelInterId); + DrawButton("激励视频ID +", AddRewardId); + //DrawButton("激励视频ID -", DelRewardId); + EditorGUILayout.EndHorizontal(); + SDKConfig.Instance.kwaiAppId = DrawTextField("AppId", SDKConfig.Instance.kwaiAppId); + + for (int i = 0; i < SDKConfig.Instance.kwaiInterUnitId.Count; i++) + { + var index = i; + GUILayout.BeginHorizontal(); + SDKConfig.Instance.kwaiInterUnitId[i] = + DrawTextField("插屏ID - " + (i + 1), SDKConfig.Instance.kwaiInterUnitId[i]); + DrawButtonX("X", () => DelInterId(index)); + GUILayout.EndHorizontal(); + + } + + for (int i = 0; i < SDKConfig.Instance.kwaiVideoUnitId.Count; i++) + { + var index = i; + GUILayout.BeginHorizontal(); + SDKConfig.Instance.kwaiVideoUnitId[i] = + DrawTextField("激励视频ID - " + (i + 1), SDKConfig.Instance.kwaiVideoUnitId[i]); + DrawButtonX("X", () => DelRewardId(index)); + GUILayout.EndHorizontal(); + + } + + EditorGUILayout.EndVertical(); + + EditorGUILayout.BeginVertical("frameBox"); + EditorGUILayout.BeginHorizontal("frameBox"); + TextLabel("Bigo", Color.cyan); + DrawButton("插屏ID +", AddBigoInterId); + DrawButton("激励视频ID +", AddBigoRewardId); + EditorGUILayout.EndHorizontal(); + SDKConfig.Instance.bigoAppId = DrawTextField("AppId", SDKConfig.Instance.bigoAppId); + SDKConfig.Instance.bigoSplashUnitId = DrawTextField("开屏 ID", SDKConfig.Instance.bigoSplashUnitId); + + for (int i = 0; i < SDKConfig.Instance.bigoInterUnitId.Count; i++) + { + //SDKConfig.Instance.bigoInterUnitId = DrawTextField("插屏 ID", SDKConfig.Instance.bigoInterUnitId); + var index = i; + GUILayout.BeginHorizontal(); + SDKConfig.Instance.bigoInterUnitId[i] = + DrawTextField("插屏ID - " + (i + 1), SDKConfig.Instance.bigoInterUnitId[i]); + DrawButtonX("X", () => DelBigoInterId(index)); + GUILayout.EndHorizontal(); + } + + for (int i = 0; i < SDKConfig.Instance.bigoVideoUnitId.Count; i++) + { + //SDKConfig.Instance.bigoVideoUnitId = DrawTextField("激励视频 ID", SDKConfig.Instance.bigoVideoUnitId); + var index = i; + GUILayout.BeginHorizontal(); + SDKConfig.Instance.bigoVideoUnitId[i] = + DrawTextField("激励视频ID - " + (i + 1), SDKConfig.Instance.bigoVideoUnitId[i]); + DrawButtonX("X", () => DelBigoRewardId(index)); + GUILayout.EndHorizontal(); + } + + EditorGUILayout.EndVertical(); +#endif + + + EditorGUILayout.BeginVertical("frameBox"); + SDKConfig.Instance.isUseAdmobSplash = DrawBoolField("启用开屏优化", SDKConfig.Instance.isUseAdmobSplash, ""); + if (SDKConfig.Instance.isUseAdmobSplash) + { + EditorGUILayout.BeginVertical("frameBox"); + TextLabel("Admob", Color.cyan); + SDKConfig.Instance.admobAppId = DrawTextField("AppId", SDKConfig.Instance.admobAppId); + SDKConfig.Instance.admobSplashUnitId = DrawTextField("开屏 ID", SDKConfig.Instance.admobSplashUnitId); + //SDKConfig.Instance.admobInterUnitId = DrawTextField("插屏 ID", SDKConfig.Instance.admobInterUnitId); + //SDKConfig.Instance.admobVideoUnitId = DrawTextField("激励视频 ID", SDKConfig.Instance.admobVideoUnitId); + + EditorGUILayout.EndVertical(); + } + else + { + SDKConfig.Instance.admobSplashUnitId = string.Empty; + } + EditorGUILayout.EndVertical(); + + TextLabel("Debug"); + EditorGUILayout.BeginVertical("frameBox"); + SDKConfig.Instance.isDebug = DrawBoolField("测试模式", SDKConfig.Instance.isDebug, "正式发布时请勿勾选"); + SDKConfig.Instance.isPrintLog = DrawBoolField("日志打印", SDKConfig.Instance.isPrintLog, "正式发布时请勿勾选"); + EditorGUILayout.EndVertical(); + + // 水平布局实现按钮靠右 + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); // 左侧填充弹性空间 + if (GUILayout.Button(new GUIContent("从剪贴板获取参数", _tooltipText), + GUILayout.Width(120), + GUILayout.Height(30) + )) + { + ParseClipboard(); + } + GUILayout.EndHorizontal(); + + + var sdkVersion = SRKZBz0SDK_Utility.SdkVersion; + GUI.Label(new Rect(10, position.height - 40, 400, 40), "@version: " + sdkVersion); + + EditorPrefs.SetString("sdk_version", sdkVersion); +} + +private string DrawTextField(string title, string content) +{ + EditorGUILayout.BeginHorizontal(); + GUILayout.Label(title, GUILayout.MinWidth(90), GUILayout.ExpandWidth(false)); + content = GUILayout.TextField(content); + EditorGUILayout.EndHorizontal(); + return content; +} + +private bool DrawBoolField(string title, bool content, string warn = "") +{ + EditorGUILayout.BeginHorizontal(); + GUILayout.Label(title, GUILayout.MinWidth(80), GUILayout.ExpandWidth(false)); + content = EditorGUILayout.Toggle(content); + if (content) + { + TextLabelWarn(warn); + } + EditorGUILayout.EndHorizontal(); + return content; +} + +private void TextLabel(string content, Color color = new Color()) +{ + if (color.Equals(Color.clear)) + { + color = Color.gray; + } + GUIStyle style = new GUIStyle(); + style.contentOffset = new Vector2(8, 0); + style.normal.textColor = color; + style.fontSize = 14; + style.padding = new RectOffset(0, 0, 3, 0); + GUILayout.Label(content, style); +} + +private void TextLabelWarn(string content) +{ + GUIStyle style = new GUIStyle(); + style.contentOffset = new Vector2(8, 0); + style.normal.textColor = Color.red; + style.fontSize = 14; + style.padding = new RectOffset(0, 0, 3, 0); + GUILayout.Label(content, style); +} + +private void DrawButton(string btnName, Action clickAction) +{ + if (GUILayout.Button(btnName, GUILayout.Width(100), GUILayout.Height(30))) + { + clickAction?.Invoke(); + } +} + +private void DrawButtonX(string btnName, Action clickAction) +{ + var originalBackgroundColor = GUI.backgroundColor; + + // 设置按钮的背景颜色 + GUI.backgroundColor = Color.red; + if (GUILayout.Button(btnName, GUILayout.Width(40), GUILayout.Height(18))) + { + clickAction?.Invoke(); + } + + GUI.backgroundColor = originalBackgroundColor; +} + +private void AddInterId() +{ + _emptyKwInterIdCount++; + SDKConfig.KwaiInterUnitId.Add(""); +} + +private void DelInterId(int index) +{ + _emptyKwInterIdCount--; + SDKConfig.KwaiInterUnitId.RemoveAt(index); +} + +private void AddRewardId() +{ + _emptyKwVideoIdCount++; + SDKConfig.KwaiVideoUnitId.Add(""); +} + +private void DelRewardId(int index) +{ + _emptyKwVideoIdCount--; + SDKConfig.KwaiVideoUnitId.RemoveAt(index); +} + +private void AddBigoInterId() +{ + _emptyBigoInterIdCount++; + SDKConfig.BigoInterUnitId.Add(""); +} + +private void DelBigoInterId(int index) +{ + _emptyBigoInterIdCount--; + SDKConfig.BigoInterUnitId.RemoveAt(index); +} + +private void AddBigoRewardId() +{ + _emptyBigoVideoIdCount++; + SDKConfig.BigoVideoUnitId.Add(""); +} + +private void DelBigoRewardId(int index) +{ + _emptyBigoVideoIdCount--; + SDKConfig.BigoVideoUnitId.RemoveAt(index); +} + +static void RemoveExtraEmptyStrings(List list, int count) +{ + int emptyCount = count; + if (list == null) return; + // 先统计空字符串的数量 + for (int i = list.Count - 1; i >= 0; i--) + { + if (string.IsNullOrEmpty(list[i])) + { + emptyCount++; + if (emptyCount > 1) + { + // 若空字符串数量超过 1,移除该元素 + list.RemoveAt(i); + } + } + } +} + +// ---------------------------- 参数解析 ------------------------------ +private string clipboardText = ""; +private Dictionary parsedParameters = new Dictionary(); +private readonly string _tooltipText = "需提前在参数列表界面 Ctrl + A 全选,然后再 Ctrl + C 复制"; + + +// 正则表达式模式字典,用于匹配不同类型的广告参数 +private static readonly Dictionary parameterPatterns = new Dictionary + { + // App基本信息 + { "App名称", @"App name\s*([^\n]+)" }, + { "AF Dev key", @"AF Dev key(?:[\s-]*iOS)?\s*([^\n]+)"}, + { "APP KEY", @"a\s*p\s*p\s*k\s*e\s*y\s*([^\n]+)"}, + { "APP Secret", @"a\s*p\s*p\s*s\s*e\s*c\s*r\s*e\s*t\s*([^\n]+)" }, + { "包名", @"(?:正式包名|测试包名|包名)\*?\s+([^\n]+)"}, + { "广告源", @"广告源\s*([^\n]+)" }, + { "开发者邮箱", @"开发者邮箱\s*([^\n]+)" }, + { "谷歌商店链接", @"谷歌商店链接\s*([^\n]+)" }, + { "官网链接", @"官网链接\s*([^\n]+)" }, + { "隐私协议", @"隐私协议\s*([^\n]+)" }, + { "业务上报域名", @"(?:业务上报域名|业务域名)\s*([^\n]+)" }, + { "appkey", @"appkey\s*([^\n]+)" }, + { "appsecret", @"appsecret\s*([^\n]+)" }, + {"AF Apple Appid", @"(?i)app\s*id(?:\s+id)*\s*[=:]*\s*([^\n]*)"}, + + // MAX (兼容多种格式) + { "MAX 激励视频", @"MAX参数(?:-[^\s]+)?[\s\S]*?(?:激励视频|激励1|激励2|客户端激励|bidding激励广告位ID|激励)\s*[""\r\n]*([^""\s\r\n]+)"}, + { "MAX 插屏", @"MAX参数(?:-[^\s]+)?[\s\S]*?(?:插屏|插屏1|插屏2|客户端插屏|bidding插屏广告位ID)\s*[""\r\n]*([^""\s\r\n]+)" }, + { "MAX SDK Key", @"MAX参数[\s\S]*?SDK key\*?\s*([^\n]+)" }, + { "MAX ad review key", @"MAX参数[\s\S]*?ad review key\*?\s*([^\n]+)" }, + + // BIGO (兼容多种格式) + { "BIGO 应用ID", @"BIGO参数[\s\S]*?(?:应用ID|appid)\s*([^\n]+)" }, + { "BIGO 激励", @"BIGO参数[\s\S]*?(?:激励|激励1|激励2|客户端激励|bidding激励广告位ID)\s*([^\n]+)" }, + { "BIGO 插屏", @"BIGO参数[\s\S]*?(?:插屏|插屏1|插屏2|客户端插屏|bidding插屏广告位ID)\s*([^\n]+)" }, + + // Kwai (兼容多种格式) + { "Kwai 应用ID", @"kwai参数[\s\S]*?(?:应用ID|appid)\s*([^\n]+)" }, + { "Kwai 激励", @"kwai参数[\s\S]*?(?:激励|激励1|激励2|客户端激励|bidding激励广告位ID)\s*([^\n]+)" }, + { "Kwai 插屏", @"kwai参数[\s\S]*?(?:插屏|插屏1|插屏2|客户端插屏|bidding插屏广告位ID)\s*([^\n]+)" }, + + // Admob (兼容多种格式) + { "Admob 应用ID", @"admob参数[\s\S]*?(?:应用ID|App ID)\s*([^\n]+)" }, + { "Admob 激励", @"admob参数[\s\S]*?(?:激励1|激励)\s*([^\n]+)" }, + { "Admob 插屏", @"admob参数[\s\S]*?(?:插屏1|插屏)\s*([^\n]+)" }, + { "Admob txt", @"admob参数[\s\S]*?txt\s*([^\n]+)" }, + + // Facebook (兼容多种格式) + { "FB appid", @"fb参数[\s\S]*?appid\s*([^\n]+)" }, + { "FB property_id", @"fb参数[\s\S]*?property_id\s*([^\n]+)" }, + { "FB 激励", @"fb参数[\s\S]*?激励\s*([^\n]+)" }, + { "FB 插屏", @"fb参数[\s\S]*?插屏\s*([^\n]+)" }, + { "FB txt", @"fb参数[\s\S]*?txt\s*([^\n]+)" }, + + // Topon (兼容多种格式) + { "Topon ID", @"Topon[\s\S]*?ID\s*([^\n]+)" }, + { "Topon KEY", @"Topon[\s\S]*?KEY\s*([^\n]+)" }, + { "Topon 激励", @"Topon[\s\S]*?激励\s*([^\n]+)" }, + { "Topon 插屏", @"Topon[\s\S]*?插屏\s*([^\n]+)" } + }; + +private void ParseClipboard() +{ + if (string.IsNullOrEmpty(clipboardText.Trim())) + { + clipboardText = EditorGUIUtility.systemCopyBuffer; + } + + parsedParameters.Clear(); + + foreach (var pattern in parameterPatterns) + { + Match match = Regex.Match(clipboardText, pattern.Value, RegexOptions.IgnoreCase); + if (match.Success) + { + // 处理可能有多个捕获组的情况(如BIGO和Kwai的两种格式) + for (int i = 1; i < match.Groups.Count; i++) + { + if (!string.IsNullOrEmpty(match.Groups[i].Value)) + { + parsedParameters[pattern.Key] = match.Groups[i].Value.Trim(); + break; + } + } + } + } + + UpdateConfig(); + EditorUtility.DisplayDialog("解析完成", + $"成功解析 {parsedParameters.Count} 个参数", "确定"); +} + +private void UpdateConfig() +{ + SDKConfig.Instance.bigoVideoUnitId ??= new List(); + SDKConfig.Instance.bigoVideoUnitId.Clear(); + SDKConfig.Instance.bigoInterUnitId ??= new List(); + SDKConfig.Instance.bigoInterUnitId.Clear(); + + SDKConfig.Instance.kwaiVideoUnitId ??= new List(); + SDKConfig.Instance.kwaiVideoUnitId.Clear(); + SDKConfig.Instance.kwaiInterUnitId ??= new List(); + SDKConfig.Instance.kwaiInterUnitId.Clear(); + + foreach (KeyValuePair pair in parsedParameters) + { + //Debug.Log($"KEY : {pair.Key}, VALUE : {pair.Value}"); + if (pair.Key.Contains("包名")) + { +#if UNITY_IOS + PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.iOS, pair.Value); +#elif UNITY_ANDROID + PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, pair.Value); +#endif + + Debug.Log($"包名设置 : {pair.Value}"); + } + + if (pair.Key.Contains("AF Dev key")) + { + Debug.Log($"AF Dev key: {pair.Value}"); + SDKConfig.Instance.appsFlyerDevKey = pair.Value; + } + +#if UNITY_IOS + + if (pair.Key.Contains("AF Apple Appid")) + { + Debug.Log($"AF Apple Appid: {pair.Value}"); + SDKConfig.Instance.appsFlyerIosAppleAppId = pair.Value; + } +#endif + + if (pair.Key.Contains("APP KEY")) + { + Debug.Log($"BI APP KEY: {pair.Value}"); + SDKConfig.Instance.appKey = pair.Value; + } + + if (pair.Key.Contains("APP Secret")) + { + Debug.Log($"BI APP Secret: {pair.Value}"); + SDKConfig.Instance.appSecret = pair.Value; + } + + if (pair.Key.Contains("域名")) + { + Debug.Log($"业务域名: {pair.Value}"); + SDKConfig.Instance.logReportUrl = pair.Value; + } + + if (pair.Key.Contains("Topon ID")) + { + Debug.Log($"Topon APP ID: {pair.Value}"); + SDKConfig.Instance.toponAppId = pair.Value; + } + + if (pair.Key.Contains("Topon KEY")) + { + Debug.Log($"Topon APP KEY: {pair.Value}"); + SDKConfig.Instance.toponAppkey = pair.Value; + } + + if (pair.Key.Contains("Topon 激励")) + { + Debug.Log($"Topon 激励: {pair.Value}"); + SDKConfig.Instance.toponVideoUnitId = pair.Value; + } + + if (pair.Key.Contains("Topon 插屏")) + { + Debug.Log($"Topon 插屏: {pair.Value}"); + SDKConfig.Instance.toponInterUnitId = pair.Value; + } + + if (pair.Key.Contains("MAX SDK Key")) + { + Debug.Log($"MAX SDK Key: {pair.Value}"); + SDKConfig.Instance.maxAppKey = pair.Value; + } + + if (pair.Key.Contains("MAX 激励视频")) + { + Debug.Log($"MAX 激励视频: {pair.Value}"); + SDKConfig.Instance.videoUnitId = pair.Value; + } + + if (pair.Key.Contains("MAX 插屏")) + { + Debug.Log($"MAX 插屏: {pair.Value}"); + SDKConfig.Instance.interUnitId = pair.Value; + } + + if (pair.Key.Contains("BIGO 应用ID")) + { + Debug.Log($"BIGO 应用ID: {pair.Value}"); + SDKConfig.Instance.bigoAppId = pair.Value; + } + + if (pair.Key.Contains("BIGO 激励")) + { + Debug.Log($"BIGO 激励: {pair.Value}"); + //SDKConfig.Instance.bigoVideoUnitId = pair.Value; + SDKConfig.Instance.bigoVideoUnitId ??= new List(); + SDKConfig.Instance.bigoVideoUnitId.Add(pair.Value); + } + + if (pair.Key.Contains("BIGO 插屏")) + { + Debug.Log($"BIGO 插屏: {pair.Value}"); + //SDKConfig.Instance.bigoInterUnitId = pair.Value; + SDKConfig.Instance.bigoInterUnitId ??= new List(); + SDKConfig.Instance.bigoInterUnitId.Add(pair.Value); + } + + if (pair.Key.Contains("Admob 应用ID")) + { + Debug.Log($"Admob 应用ID: {pair.Value}"); + //SDKConfig.Instance.admobAppId = pair.Value; + } + + if (pair.Key.Contains("Admob 激励")) + { + Debug.Log($"Admob 激励: {pair.Value}"); + } + + if (pair.Key.Contains("Admob 插屏")) + { + Debug.Log($"Admob 插屏: {pair.Value}"); + } + + if (pair.Key.Contains("Kwai 应用ID")) + { + Debug.Log($"Kwai 应用ID: {pair.Value}"); + SDKConfig.Instance.kwaiAppId = pair.Value; + } + + if (pair.Key.Contains("Kwai 激励")) + { + Debug.Log($"Kwai 激励: {pair.Value}"); + SDKConfig.Instance.kwaiVideoUnitId ??= new List(); + SDKConfig.Instance.kwaiVideoUnitId.Add(pair.Value); + } + + if (pair.Key.Contains("Kwai 插屏")) + { + Debug.Log($"Kwai 插屏: {pair.Value}"); + SDKConfig.Instance.kwaiInterUnitId ??= new List(); + SDKConfig.Instance.kwaiInterUnitId.Add(pair.Value); + } + } +} + +} diff --git a/Assets/SRKZBz0SDK/Editor/SRKZBz0SDKConfigEditor.cs.meta b/Assets/SRKZBz0SDK/Editor/SRKZBz0SDKConfigEditor.cs.meta new file mode 100644 index 00000000..047bd6bc --- /dev/null +++ b/Assets/SRKZBz0SDK/Editor/SRKZBz0SDKConfigEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c0f90b7a6375c2646b29a8b709166c17 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Plugins.meta b/Assets/SRKZBz0SDK/Plugins.meta new file mode 100644 index 00000000..f684ca1a --- /dev/null +++ b/Assets/SRKZBz0SDK/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4df08fba7905adf48876bcfff4f5704f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Plugins/AcquireCountryCode.java b/Assets/SRKZBz0SDK/Plugins/AcquireCountryCode.java new file mode 100644 index 00000000..c4a8d5bb --- /dev/null +++ b/Assets/SRKZBz0SDK/Plugins/AcquireCountryCode.java @@ -0,0 +1,17 @@ +package com.tool.countrycode; +import android.app.Activity; +import java.util.Locale; +public class AcquireCountryCode { + // 获取国家码 + public static String getCountryCode() + { + Locale locale = Locale.getDefault(); + return locale.getCountry(); + } + + public static String getCountryCode3() { + Locale currentLocale = Locale.getDefault(); + return currentLocale.getISO3Country(); + } + +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/Plugins/AcquireCountryCode.java.meta b/Assets/SRKZBz0SDK/Plugins/AcquireCountryCode.java.meta new file mode 100644 index 00000000..00bb3879 --- /dev/null +++ b/Assets/SRKZBz0SDK/Plugins/AcquireCountryCode.java.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 439c7d376883ccb4da22414c75510b24 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Plugins/BouncyCastle.Cryptography.dll b/Assets/SRKZBz0SDK/Plugins/BouncyCastle.Cryptography.dll new file mode 100644 index 00000000..24a1dee6 Binary files /dev/null and b/Assets/SRKZBz0SDK/Plugins/BouncyCastle.Cryptography.dll differ diff --git a/Assets/SRKZBz0SDK/Plugins/BouncyCastle.Cryptography.dll.meta b/Assets/SRKZBz0SDK/Plugins/BouncyCastle.Cryptography.dll.meta new file mode 100644 index 00000000..f60d3ffb --- /dev/null +++ b/Assets/SRKZBz0SDK/Plugins/BouncyCastle.Cryptography.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 6e3da5c7fe21c1347a563e64e8f305d4 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Plugins/JsonNet.meta b/Assets/SRKZBz0SDK/Plugins/JsonNet.meta new file mode 100644 index 00000000..e9cb01a2 --- /dev/null +++ b/Assets/SRKZBz0SDK/Plugins/JsonNet.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d95a0f1f59b85b14d95ac7fa16356627 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Plugins/JsonNet/Newtonsoft.Json.dll b/Assets/SRKZBz0SDK/Plugins/JsonNet/Newtonsoft.Json.dll new file mode 100644 index 00000000..82b10c4f Binary files /dev/null and b/Assets/SRKZBz0SDK/Plugins/JsonNet/Newtonsoft.Json.dll differ diff --git a/Assets/SRKZBz0SDK/Plugins/JsonNet/Newtonsoft.Json.dll.meta b/Assets/SRKZBz0SDK/Plugins/JsonNet/Newtonsoft.Json.dll.meta new file mode 100644 index 00000000..015b124c --- /dev/null +++ b/Assets/SRKZBz0SDK/Plugins/JsonNet/Newtonsoft.Json.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 7bc122d7ecc60a94581cd8d1fa8a00d1 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Plugins/SRKZBz0SDK.dll b/Assets/SRKZBz0SDK/Plugins/SRKZBz0SDK.dll new file mode 100644 index 00000000..df0dafe9 Binary files /dev/null and b/Assets/SRKZBz0SDK/Plugins/SRKZBz0SDK.dll differ diff --git a/Assets/SRKZBz0SDK/Plugins/SRKZBz0SDK.dll.meta b/Assets/SRKZBz0SDK/Plugins/SRKZBz0SDK.dll.meta new file mode 100644 index 00000000..dd4e2324 --- /dev/null +++ b/Assets/SRKZBz0SDK/Plugins/SRKZBz0SDK.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 861d4606623a4b14ca145b771904d9ec +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Plugins/iOS.meta b/Assets/SRKZBz0SDK/Plugins/iOS.meta new file mode 100644 index 00000000..0386cb3a --- /dev/null +++ b/Assets/SRKZBz0SDK/Plugins/iOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 62cd95d3cdb46984ab747afbce81d5a0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Plugins/iOS/CountryInfo.mm b/Assets/SRKZBz0SDK/Plugins/iOS/CountryInfo.mm new file mode 100644 index 00000000..09d2bec6 --- /dev/null +++ b/Assets/SRKZBz0SDK/Plugins/iOS/CountryInfo.mm @@ -0,0 +1,12 @@ +#import + +extern "C" { + __attribute__((visibility("default"))) + const char* _GetDeviceCountryCode() { + @autoreleasepool { + NSLocale *currentLocale = [NSLocale currentLocale]; + NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode]; + return strdup([countryCode UTF8String]); // 使用strdup确保内存安全 + } + } +} diff --git a/Assets/SRKZBz0SDK/Plugins/iOS/CountryInfo.mm.meta b/Assets/SRKZBz0SDK/Plugins/iOS/CountryInfo.mm.meta new file mode 100644 index 00000000..338072e8 --- /dev/null +++ b/Assets/SRKZBz0SDK/Plugins/iOS/CountryInfo.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 63f1a672ae2b65f478662e01b0b67d7b +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Scripts.meta b/Assets/SRKZBz0SDK/Scripts.meta new file mode 100644 index 00000000..d45cc55c --- /dev/null +++ b/Assets/SRKZBz0SDK/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 96d3bb1be45827f47a83034c9908c005 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Scripts/Config.meta b/Assets/SRKZBz0SDK/Scripts/Config.meta new file mode 100644 index 00000000..63c505c3 --- /dev/null +++ b/Assets/SRKZBz0SDK/Scripts/Config.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ea7ef46cf2ade545b68fd32b9c4b8b6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.asmdef b/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.asmdef new file mode 100644 index 00000000..bd836f17 --- /dev/null +++ b/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.asmdef @@ -0,0 +1,14 @@ +{ + "name": "SDKConfig", + "rootNamespace": "", + "references": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.asmdef.meta b/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.asmdef.meta new file mode 100644 index 00000000..7e1dac26 --- /dev/null +++ b/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8b6da46957b38914aa097a61bd86a16d +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.cs b/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.cs new file mode 100644 index 00000000..9256eda0 --- /dev/null +++ b/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.cs @@ -0,0 +1,234 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace SRKZBz0SDK +{ + [System.Serializable] + public class SDKConfig : ScriptableObject + { + + public string appsFlyerDevKey; + + public string appsFlyerIosAppleAppId; + + public string appKey; + + public string appSecret; + + public string logReportUrl; + + public string maxAppKey; + + public string splashUnitId; + + public string bannerUnitId; + + public string interUnitId; + + public string videoUnitId; + + public string kwaiAppId; + + public List kwaiVideoUnitId = new(); + + public List kwaiInterUnitId = new(); + + public string bigoAppId; + + public List bigoVideoUnitId = new(); + + public List bigoInterUnitId = new(); + + public string bigoSplashUnitId; + + public string toponAppId; + + public string toponAppkey; + + public string toponVideoUnitId; + + public string toponInterUnitId; + + public string admobAppId; + + public string admobVideoUnitId; + + public string admobInterUnitId; + + public string admobSplashUnitId; + + public bool isDebug = false; + + public bool isPrintLog = false; + + public bool isUseAdmobSplash = false; + + private static SDKConfig _instance; + + public static SDKConfig Instance + { + get + { + if (_instance != null) return _instance; + _instance = AssetUtils.GetScriptableObject(typeof(SDKConfig).Name, "Assets/Resources", false, false); + return _instance; + } + set + { + _instance = value; + } + } + + public static string AppsFlyerDevKey + { + get { return Instance.appsFlyerDevKey; } + } + + public static string AppsFlyerIosAppleAppId + { + get { return Instance.appsFlyerIosAppleAppId; } + } + + public static string AppKey + { + get { return Instance.appKey; } + } + + public static string AppSecret + { + get { return Instance.appSecret; } + } + + public static string LogReportUrl + { + get + { + if (!Instance.logReportUrl.StartsWith("http")) + { + return "https://" + Instance.logReportUrl.Replace(" ", ""); ; + } + return Instance.logReportUrl.Replace(" ", ""); ; + } + } + + public static string MaxAppKey + { + get { return Instance.maxAppKey; } + } + + public static string SplashUnitID + { + get { return Instance.splashUnitId; } + } + + public static string BannerUnitId + { + get { return Instance.bannerUnitId; } + } + + public static string InterUnitId + { + get { return Instance.interUnitId; } + } + + public static string VideoUnitId + { + get { return Instance.videoUnitId; } + } + + public static string KwaiAppId + { + get => Instance.kwaiAppId; + set => Instance.kwaiAppId = value; + } + + public static List KwaiVideoUnitId + { + get => Instance.kwaiVideoUnitId; + set => Instance.kwaiVideoUnitId = value; + } + + public static List KwaiInterUnitId + { + get => Instance.kwaiInterUnitId; + set => Instance.kwaiInterUnitId = value; + } + + public static string BigoAppId + { + get => Instance.bigoAppId; + set => Instance.bigoAppId = value; + } + + public static List BigoVideoUnitId + { + get => Instance.bigoVideoUnitId; + set => Instance.bigoVideoUnitId = value; + } + + public static List BigoInterUnitId + { + get => Instance.bigoInterUnitId; + set => Instance.bigoInterUnitId = value; + } + + public static string BigoSplashUnitId + { + get => Instance.bigoSplashUnitId; + set => Instance.bigoSplashUnitId = value; + } + + public static string ToponAppId + { + get { return Instance.toponAppId; } + } + + public static string ToponAppkey + { + get { return Instance.toponAppkey; } + } + + public static string ToponVideoUnitId + { + get { return Instance.toponVideoUnitId; } + } + + public static string ToponInterUnitId + { + get { return Instance.toponInterUnitId; } + } + + public static string AdmobAppId + { + get => Instance.admobAppId; + set => Instance.admobAppId = value; + } + + public static string AdmobVideoUnitId + { + get => Instance.admobVideoUnitId; + set => Instance.admobVideoUnitId = value; + } + + public static string AdmobSplashUnitId + { + get => Instance.admobSplashUnitId; + set => Instance.admobSplashUnitId = value; + } + + public static string AdmobInterUnitId + { + get => Instance.admobInterUnitId; + set => Instance.admobInterUnitId = value; + } + + public static bool IsDebug => Instance.isDebug; + + public static bool IsPrintLog => Instance.isPrintLog; + + public static bool IsUseAdmobSplash => Instance.isUseAdmobSplash; + + } +} + diff --git a/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.cs.meta b/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.cs.meta new file mode 100644 index 00000000..5e714f75 --- /dev/null +++ b/Assets/SRKZBz0SDK/Scripts/Config/SDKConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e4857e9d117e764490d38ceb6820095 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Scripts/Config/Utils.meta b/Assets/SRKZBz0SDK/Scripts/Config/Utils.meta new file mode 100644 index 00000000..7eae1d68 --- /dev/null +++ b/Assets/SRKZBz0SDK/Scripts/Config/Utils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0d9293c0ca40cd41ba02042aeb78b89 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/Scripts/Config/Utils/AssetUtils.cs b/Assets/SRKZBz0SDK/Scripts/Config/Utils/AssetUtils.cs new file mode 100644 index 00000000..012f6ab3 --- /dev/null +++ b/Assets/SRKZBz0SDK/Scripts/Config/Utils/AssetUtils.cs @@ -0,0 +1,152 @@ + +using System; +using System.IO; +using UnityEngine; + +#if UNITY_EDITOR +using System.Collections.Generic; +using UnityEditor; +#endif + +namespace SRKZBz0SDK +{ + public static class AssetUtils + { + ///

+ /// Returns a reference to a scriptable object of type T with the given fileName at the relative resourcesPath. + /// If the asset is not found, one will get created automatically (in the Editor only) + /// + /// + /// + /// + /// + /// + /// + public static T GetScriptableObject(string fileName, + string resourcesPath, + bool saveAssetDatabase, + bool refreshAssetDatabase) + where T : ScriptableObject + { + if (string.IsNullOrEmpty(resourcesPath)) return null; + if (string.IsNullOrEmpty(fileName)) return null; + // ReSharper disable once SuspiciousTypeConversion.Global + // if (!resourcesPath[resourcesPath.Length - 1].Equals(@"\")) resourcesPath += @"\"; + // resourcesPath = resourcesPath.Replace(@"\", "/"); + resourcesPath = CleanPath(resourcesPath); + + var obj = (T)Resources.Load(fileName, typeof(T)); + + if (obj == null) + { + string simpleResourcesPath = resourcesPath.Replace(resourcesPath.Substring(0, resourcesPath.LastIndexOf("Resources", StringComparison.Ordinal)), ""); + simpleResourcesPath = simpleResourcesPath.Replace("Resources", "").Remove(0, 1); + obj = (T)Resources.Load(Path.Combine(simpleResourcesPath, fileName), typeof(T)); + } + +#if UNITY_EDITOR + if (obj != null) return obj; + if (!Directory.Exists("Assets/Resources")) + { + Directory.CreateDirectory("Assets/Resources"); + } + obj = CreateAsset(resourcesPath, fileName, ".asset", saveAssetDatabase, refreshAssetDatabase); +#endif + return obj; + } + + public static T GetResource(string resourcesPath, string fileName) where T : ScriptableObject + { + if (string.IsNullOrEmpty(resourcesPath)) return null; + if (string.IsNullOrEmpty(fileName)) return null; + resourcesPath = CleanPath(resourcesPath); + // ReSharper disable once SuspiciousTypeConversion.Global + // if (!resourcesPath[resourcesPath.Length - 1].Equals(@"\")) resourcesPath += @"\"; + // resourcesPath = resourcesPath.Replace(@"\", "/"); + + return (T)Resources.Load(resourcesPath + fileName, typeof(T)); + } + + public static string CleanPath(string path) + { + // ReSharper disable once SuspiciousTypeConversion.Global + if (!path[path.Length - 1].Equals(@"\")) path += @"\"; + path = path.Replace(@"\\", @"\"); + path = path.Replace(@"\", "/"); + return path; + } + +#if UNITY_EDITOR + public static T CreateAsset(string relativePath, + string fileName, + string extension = ".asset", + bool saveAssetDatabase = true, + bool refreshAssetDatabase = true) + where T : ScriptableObject + { + if (string.IsNullOrEmpty(relativePath)) return null; + if (string.IsNullOrEmpty(fileName)) return null; + relativePath = CleanPath(relativePath); + // ReSharper disable once SuspiciousTypeConversion.Global + // if (!relativePath[relativePath.Length - 1].Equals(@"\")) relativePath += @"\"; + // relativePath = relativePath.Replace(@"\\", @"\"); + var asset = ScriptableObject.CreateInstance(); + AssetDatabase.CreateAsset(asset, relativePath + fileName + extension); + EditorUtility.SetDirty(asset); + if (saveAssetDatabase) AssetDatabase.SaveAssets(); + if (refreshAssetDatabase) AssetDatabase.Refresh(); + return asset; + } + + public static List GetAssets() where T : ScriptableObject + { + var list = new List(); + string[] guids = AssetDatabase.FindAssets("t:" + typeof(T).Name); + foreach (string guid in guids) + { + var asset = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(guid)); + if (asset == null) continue; + list.Add(asset); + } + + return list; + } + + public static void MoveAssetToTrash(string relativePath, string fileName, bool saveAssetDatabase = true, + bool refreshAssetDatabase = true, bool printDebugMessage = true) + { + if (string.IsNullOrEmpty(relativePath)) return; + if (string.IsNullOrEmpty(fileName)) return; + // ReSharper disable once SuspiciousTypeConversion.Global + // if (!relativePath[relativePath.Length - 1].Equals(@"\")) relativePath += @"\"; + relativePath = CleanPath(relativePath); + if (!AssetDatabase.MoveAssetToTrash(relativePath + fileName + ".asset")) return; + if (printDebugMessage) Debug.Log("The " + fileName + ".asset file has been moved to trash."); + if (saveAssetDatabase) AssetDatabase.SaveAssets(); + if (refreshAssetDatabase) AssetDatabase.Refresh(); + } + + public static Texture GetTexture(string filePath, string fileName, string fileExtension = ".png") + { + if (string.IsNullOrEmpty(filePath)) return null; + if (string.IsNullOrEmpty(fileName)) return null; + // ReSharper disable once SuspiciousTypeConversion.Global + // if (!filePath[filePath.Length - 1].Equals(@"\")) filePath += @"\"; + filePath = CleanPath(filePath); + return AssetDatabase.LoadAssetAtPath(filePath + fileName + fileExtension); + } + + public static Texture2D GetTexture2D(string filePath, string fileName, string fileExtension = ".png") + { + if (string.IsNullOrEmpty(filePath)) return null; + if (string.IsNullOrEmpty(fileName)) return null; + // ReSharper disable once SuspiciousTypeConversion.Global + // if (!filePath[filePath.Length - 1].Equals(@"\")) filePath += @"\"; + filePath = CleanPath(filePath); + return AssetDatabase.LoadAssetAtPath(filePath + fileName + fileExtension); + } +#endif + } + +} + diff --git a/Assets/SRKZBz0SDK/Scripts/Config/Utils/AssetUtils.cs.meta b/Assets/SRKZBz0SDK/Scripts/Config/Utils/AssetUtils.cs.meta new file mode 100644 index 00000000..be730236 --- /dev/null +++ b/Assets/SRKZBz0SDK/Scripts/Config/Utils/AssetUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a6cff4f16b2f10d499cfd019dc05cf9f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty.meta b/Assets/SRKZBz0SDK/ThirdParty.meta new file mode 100644 index 00000000..2fe6f732 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d0a2dd547ed87a64a8c6e3d3a12a3d91 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer.meta new file mode 100644 index 00000000..2a71bd20 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7863556d88b814e09ba9cfc75a91d655 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/AppsFlyerPurchaseConnector.cs b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/AppsFlyerPurchaseConnector.cs new file mode 100644 index 00000000..ee43009b --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/AppsFlyerPurchaseConnector.cs @@ -0,0 +1,426 @@ +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; +using System; + +namespace AppsFlyerSDK +{ + + public interface IAppsFlyerPurchaseRevenueDataSource + { + Dictionary PurchaseRevenueAdditionalParametersForProducts(HashSet products, HashSet transactions); + } + + public interface IAppsFlyerPurchaseRevenueDataSourceStoreKit2 + { + Dictionary PurchaseRevenueAdditionalParametersStoreKit2ForProducts(HashSet products, HashSet transactions); + } + + public class AppsFlyerPurchaseRevenueBridge : MonoBehaviour + { + #if UNITY_IOS && !UNITY_EDITOR +[DllImport("__Internal")] +private static extern void RegisterUnityPurchaseRevenueParamsCallback(Func callback); + +[DllImport("__Internal")] +private static extern void RegisterUnityPurchaseRevenueParamsCallbackSK2(Func callback); +#endif + + private static IAppsFlyerPurchaseRevenueDataSource _dataSource; + private static IAppsFlyerPurchaseRevenueDataSourceStoreKit2 _dataSourceSK2; + + public static void RegisterDataSource(IAppsFlyerPurchaseRevenueDataSource dataSource) + { + _dataSource = dataSource; + #if UNITY_IOS && !UNITY_EDITOR + RegisterUnityPurchaseRevenueParamsCallback(GetAdditionalParameters); + #elif UNITY_ANDROID && !UNITY_EDITOR + using (AndroidJavaClass jc = new AndroidJavaClass("com.appsflyer.unity.PurchaseRevenueBridge")) + { + jc.CallStatic("setUnityBridge", new UnityPurchaseRevenueBridgeProxy()); + } + #endif + } + + public static void RegisterDataSourceStoreKit2(IAppsFlyerPurchaseRevenueDataSourceStoreKit2 dataSource) + { + #if UNITY_IOS && !UNITY_EDITOR + _dataSourceSK2 = dataSource; + RegisterUnityPurchaseRevenueParamsCallbackSK2(GetAdditionalParametersSK2); + #endif + } + + public static Dictionary GetAdditionalParametersForAndroid(HashSet products, HashSet transactions) + { + return _dataSource?.PurchaseRevenueAdditionalParametersForProducts(products, transactions) + ?? new Dictionary(); + } + + #if UNITY_IOS && !UNITY_EDITOR + [AOT.MonoPInvokeCallback(typeof(Func))] + public static string GetAdditionalParameters(string productsJson, string transactionsJson) + { + try + { + HashSet products = new HashSet(); + HashSet transactions = new HashSet(); + + if (!string.IsNullOrEmpty(productsJson)) + { + var dict = AFMiniJSON.Json.Deserialize(productsJson) as Dictionary; + if (dict != null) + { + if (dict.TryGetValue("products", out var productsObj) && productsObj is List productList) + products = new HashSet(productList); + + if (dict.TryGetValue("transactions", out var transactionsObj) && transactionsObj is List transactionList) + transactions = new HashSet(transactionList); + } + } + + var parameters = _dataSource?.PurchaseRevenueAdditionalParametersForProducts(products, transactions) + ?? new Dictionary(); + return AFMiniJSON.Json.Serialize(parameters); + } + catch (Exception e) + { + Debug.LogError($"[AppsFlyer] Exception in GetAdditionalParameters: {e}"); + return "{}"; + } + } + #endif + + #if UNITY_IOS && !UNITY_EDITOR + [AOT.MonoPInvokeCallback(typeof(Func))] + public static string GetAdditionalParametersSK2(string productsJson, string transactionsJson) + { + try + { + HashSet products = new HashSet(); + HashSet transactions = new HashSet(); + + if (!string.IsNullOrEmpty(productsJson)) + { + var dict = AFMiniJSON.Json.Deserialize(productsJson) as Dictionary; + if (dict != null && dict.TryGetValue("products", out var productsObj) && productsObj is List productList) + products = new HashSet(productList); + } + if (!string.IsNullOrEmpty(transactionsJson)) + { + var dict = AFMiniJSON.Json.Deserialize(transactionsJson) as Dictionary; + if (dict != null && dict.TryGetValue("transactions", out var transactionsObj) && transactionsObj is List transactionList) + transactions = new HashSet(transactionList); + } + + var parameters = _dataSourceSK2?.PurchaseRevenueAdditionalParametersStoreKit2ForProducts(products, transactions) + ?? new Dictionary(); + return AFMiniJSON.Json.Serialize(parameters); + } + catch (Exception e) + { + Debug.LogError($"[AppsFlyer] Exception in GetAdditionalParametersSK2: {e}"); + return "{}"; + } + } + #endif + } + + public class UnityPurchaseRevenueBridgeProxy : AndroidJavaProxy + { + public UnityPurchaseRevenueBridgeProxy() : base("com.appsflyer.unity.PurchaseRevenueBridge$UnityPurchaseRevenueBridge") { } + + public string getAdditionalParameters(string productsJson, string transactionsJson) + { + try + { + // Create empty sets if JSON is null or empty + HashSet products = new HashSet(); + HashSet transactions = new HashSet(); + + // Only try to parse if we have valid JSON + if (!string.IsNullOrEmpty(productsJson)) + { + try + { + // First try to parse as a simple array + var parsedProducts = AFMiniJSON.Json.Deserialize(productsJson); + if (parsedProducts is List productList) + { + products = new HashSet(productList); + } + else if (parsedProducts is Dictionary dict) + { + if (dict.ContainsKey("events") && dict["events"] is List eventsList) + { + products = new HashSet(eventsList); + } + else + { + // If it's a dictionary but doesn't have events, add the whole dict + products.Add(dict); + } + } + } + catch (Exception e) + { + Debug.LogError($"Error parsing products JSON: {e.Message}\nJSON: {productsJson}"); + } + } + + if (!string.IsNullOrEmpty(transactionsJson)) + { + try + { + // First try to parse as a simple array + var parsedTransactions = AFMiniJSON.Json.Deserialize(transactionsJson); + if (parsedTransactions is List transactionList) + { + transactions = new HashSet(transactionList); + } + else if (parsedTransactions is Dictionary dict) + { + if (dict.ContainsKey("events") && dict["events"] is List eventsList) + { + transactions = new HashSet(eventsList); + } + else + { + // If it's a dictionary but doesn't have events, add the whole dict + transactions.Add(dict); + } + } + } + catch (Exception e) + { + Debug.LogError($"Error parsing transactions JSON: {e.Message}\nJSON: {transactionsJson}"); + } + } + + var parameters = AppsFlyerPurchaseRevenueBridge.GetAdditionalParametersForAndroid(products, transactions); + return AFMiniJSON.Json.Serialize(parameters); + } + catch (Exception e) + { + Debug.LogError($"Error in getAdditionalParameters: {e.Message}\nProducts JSON: {productsJson}\nTransactions JSON: {transactionsJson}"); + return "{}"; + } + } + } + + + public class AppsFlyerPurchaseConnector : MonoBehaviour { + + private static AppsFlyerPurchaseConnector instance; + private Dictionary pendingParameters; + private Action> pendingCallback; + + public static AppsFlyerPurchaseConnector Instance + { + get + { + if (instance == null) + { + GameObject go = new GameObject("AppsFlyerPurchaseConnector"); + instance = go.AddComponent(); + DontDestroyOnLoad(go); + } + return instance; + } + } + + private void Awake() + { + if (instance == null) + { + instance = this; + DontDestroyOnLoad(gameObject); + } + else + { + Destroy(gameObject); + } + } + +#if UNITY_ANDROID && !UNITY_EDITOR + private static AndroidJavaClass appsFlyerAndroidConnector = new AndroidJavaClass("com.appsflyer.unity.AppsFlyerAndroidWrapper"); +#endif + + public static void init(MonoBehaviour unityObject, Store s) { +#if UNITY_IOS && !UNITY_EDITOR + _initPurchaseConnector(unityObject.name); +#elif UNITY_ANDROID && !UNITY_EDITOR + int store = mapStoreToInt(s); + appsFlyerAndroidConnector.CallStatic("initPurchaseConnector", unityObject ? unityObject.name : null, store); +#endif + } + + public static void build() { +#if UNITY_IOS && !UNITY_EDITOR + //not for iOS +#elif UNITY_ANDROID && !UNITY_EDITOR + appsFlyerAndroidConnector.CallStatic("build"); + +#else +#endif + } + + public static void startObservingTransactions() { +#if UNITY_IOS && !UNITY_EDITOR + _startObservingTransactions(); +#elif UNITY_ANDROID && !UNITY_EDITOR + appsFlyerAndroidConnector.CallStatic("startObservingTransactions"); +#else +#endif + } + + public static void stopObservingTransactions() { +#if UNITY_IOS && !UNITY_EDITOR + _stopObservingTransactions(); +#elif UNITY_ANDROID && !UNITY_EDITOR + appsFlyerAndroidConnector.CallStatic("stopObservingTransactions"); +#else +#endif + } + + public static void setIsSandbox(bool isSandbox) { +#if UNITY_IOS && !UNITY_EDITOR + _setIsSandbox(isSandbox); +#elif UNITY_ANDROID && !UNITY_EDITOR + appsFlyerAndroidConnector.CallStatic("setIsSandbox", isSandbox); +#else +#endif + } + + public static void setPurchaseRevenueValidationListeners(bool enableCallbacks) { +#if UNITY_IOS && !UNITY_EDITOR + _setPurchaseRevenueDelegate(); +#elif UNITY_ANDROID && !UNITY_EDITOR + appsFlyerAndroidConnector.CallStatic("setPurchaseRevenueValidationListeners", enableCallbacks); +#else +#endif + } + + public static void setAutoLogPurchaseRevenue(params AppsFlyerAutoLogPurchaseRevenueOptions[] autoLogPurchaseRevenueOptions) { +#if UNITY_IOS && !UNITY_EDITOR + int option = 0; + foreach (AppsFlyerAutoLogPurchaseRevenueOptions op in autoLogPurchaseRevenueOptions) { + option = option | (int)op; + } + _setAutoLogPurchaseRevenue(option); +#elif UNITY_ANDROID && !UNITY_EDITOR + if (autoLogPurchaseRevenueOptions.Length == 0) { + return; + } + foreach (AppsFlyerAutoLogPurchaseRevenueOptions op in autoLogPurchaseRevenueOptions) { + switch(op) { + case AppsFlyerAutoLogPurchaseRevenueOptions.AppsFlyerAutoLogPurchaseRevenueOptionsDisabled: + break; + case AppsFlyerAutoLogPurchaseRevenueOptions.AppsFlyerAutoLogPurchaseRevenueOptionsAutoRenewableSubscriptions: + appsFlyerAndroidConnector.CallStatic("setAutoLogSubscriptions", true); + break; + case AppsFlyerAutoLogPurchaseRevenueOptions.AppsFlyerAutoLogPurchaseRevenueOptionsInAppPurchases: + appsFlyerAndroidConnector.CallStatic("setAutoLogInApps", true); + break; + default: + break; + } + } +#else +#endif + } + + public static void setPurchaseRevenueDataSource(IAppsFlyerPurchaseRevenueDataSource dataSource) + { +#if UNITY_IOS && !UNITY_EDITOR + + if (dataSource != null) + { + _setPurchaseRevenueDataSource(dataSource.GetType().Name); + AppsFlyerPurchaseRevenueBridge.RegisterDataSource(dataSource); + } +#elif UNITY_ANDROID && !UNITY_EDITOR + if (dataSource != null) + { + AppsFlyerPurchaseRevenueBridge.RegisterDataSource(dataSource); + } +#endif + } + + + public static void setPurchaseRevenueDataSourceStoreKit2(IAppsFlyerPurchaseRevenueDataSourceStoreKit2 dataSourceSK2) + { +#if UNITY_IOS && !UNITY_EDITOR + if (dataSourceSK2 != null) + { + AppsFlyerPurchaseRevenueBridge.RegisterDataSourceStoreKit2(dataSourceSK2); + _setPurchaseRevenueDataSource("AppsFlyerObjectScript_StoreKit2"); + } +#endif + } + + + private static int mapStoreToInt(Store s) { + switch(s) { + case(Store.GOOGLE): + return 0; + default: + return -1; + } + } + + public static void setStoreKitVersion(StoreKitVersion storeKitVersion) { +#if UNITY_IOS && !UNITY_EDITOR + _setStoreKitVersion((int)storeKitVersion); +#elif UNITY_ANDROID && !UNITY_EDITOR + // Android doesn't use StoreKit +#else +#endif + } + + public static void logConsumableTransaction(string transactionJson) { +#if UNITY_IOS && !UNITY_EDITOR + _logConsumableTransaction(transactionJson); +#elif UNITY_ANDROID && !UNITY_EDITOR + // Android doesn't use StoreKit +#else +#endif + } + +#if UNITY_IOS && !UNITY_EDITOR + + [DllImport("__Internal")] + private static extern void _startObservingTransactions(); + [DllImport("__Internal")] + private static extern void _stopObservingTransactions(); + [DllImport("__Internal")] + private static extern void _setIsSandbox(bool isSandbox); + [DllImport("__Internal")] + private static extern void _setPurchaseRevenueDelegate(); + [DllImport("__Internal")] + private static extern void _setPurchaseRevenueDataSource(string dataSourceName); + [DllImport("__Internal")] + private static extern void _setAutoLogPurchaseRevenue(int option); + [DllImport("__Internal")] + private static extern void _initPurchaseConnector(string objectName); + [DllImport("__Internal")] + private static extern void _setStoreKitVersion(int storeKitVersion); + [DllImport("__Internal")] + private static extern void _logConsumableTransaction(string transactionJson); + +#endif + } + public enum Store { + GOOGLE = 0 + } + public enum AppsFlyerAutoLogPurchaseRevenueOptions + { + AppsFlyerAutoLogPurchaseRevenueOptionsDisabled = 0, + AppsFlyerAutoLogPurchaseRevenueOptionsAutoRenewableSubscriptions = 1 << 0, + AppsFlyerAutoLogPurchaseRevenueOptionsInAppPurchases = 1 << 1 + } + + public enum StoreKitVersion { + SK1 = 0, + SK2 = 1 + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/AppsFlyerPurchaseConnector.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/AppsFlyerPurchaseConnector.cs.meta new file mode 100644 index 00000000..dd85a758 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/AppsFlyerPurchaseConnector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0636ea07d370d437183f3762280c08ce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/IAppsFlyerPurchaseValidation.cs b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/IAppsFlyerPurchaseValidation.cs new file mode 100644 index 00000000..73591a3e --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/IAppsFlyerPurchaseValidation.cs @@ -0,0 +1,8 @@ +namespace AppsFlyerSDK +{ + public interface IAppsFlyerPurchaseValidation + { + void didReceivePurchaseRevenueValidationInfo(string validationInfo); + void didReceivePurchaseRevenueError(string error); + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/IAppsFlyerPurchaseValidation.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/IAppsFlyerPurchaseValidation.cs.meta new file mode 100644 index 00000000..3e453b75 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/IAppsFlyerPurchaseValidation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c60f499ae0d048b1be8ffd6878a184c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac.meta new file mode 100644 index 00000000..fd182bd5 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 96a328019e42349aabc478b546b8605e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle.meta new file mode 100644 index 00000000..a7aa6da5 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 682114f7790724ab3b9410e89bbc076c +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + DefaultValueInitialized: true + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/Info.plist b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/Info.plist new file mode 100644 index 00000000..3303ccd8 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/Info.plist @@ -0,0 +1,48 @@ + + + + + BuildMachineOSBuild + 20G417 + CFBundleDevelopmentRegion + en + CFBundleExecutable + AppsFlyerBundle + CFBundleIdentifier + com.appsflyer.support.two.AppsFlyerBundle + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + AppsFlyerBundle + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 1 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 13A1030d + DTPlatformName + macosx + DTPlatformVersion + 12.0 + DTSDKBuild + 21A344 + DTSDKName + macosx12.0 + DTXcode + 1310 + DTXcodeBuild + 13A1030d + LSMinimumSystemVersion + 11.6 + NSHumanReadableCopyright + + + diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS/AppsFlyerBundle b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS/AppsFlyerBundle new file mode 100644 index 00000000..3376a474 Binary files /dev/null and b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/MacOS/AppsFlyerBundle differ diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature/CodeResources b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature/CodeResources new file mode 100644 index 00000000..d5d0fd74 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Mac/AppsFlyerBundle.bundle/Contents/_CodeSignature/CodeResources @@ -0,0 +1,115 @@ + + + + + files + + files2 + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/ProductPurchase.cs b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/ProductPurchase.cs new file mode 100644 index 00000000..536190f1 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/ProductPurchase.cs @@ -0,0 +1,184 @@ +#nullable enable + +using System.Collections; +using System.Collections.Generic; +using System; +using UnityEngine; + +[System.Serializable] +public class InAppPurchaseValidationResult : EventArgs +{ + public bool success; + public ProductPurchase? productPurchase; + public ValidationFailureData? failureData; + public string? token; +} + +[System.Serializable] +public class ProductPurchase +{ + public string? kind; + public string? purchaseTimeMillis; + public int purchaseState; + public int consumptionState; + public string? developerPayload; + public string? orderId; + public int purchaseType; + public int acknowledgementState; + public string? purchaseToken; + public string? productId; + public int quantity; + public string? obfuscatedExternalAccountId; + public string? obfuscatedExternalProfil; + public string? regionCode; +} + +[System.Serializable] +public class ValidationFailureData +{ + public int status; + public string? description; +} + +[System.Serializable] +public class SubscriptionValidationResult +{ + public bool success; + public SubscriptionPurchase? subscriptionPurchase; + public ValidationFailureData? failureData; + public string? token; +} + +[System.Serializable] +public class SubscriptionPurchase +{ + public string? acknowledgementState; + public CanceledStateContext? canceledStateContext; + public ExternalAccountIdentifiers? externalAccountIdentifiers; + public string? kind; + public string? latestOrderId; + public List? lineItems; + public string? linkedPurchaseToken; + public PausedStateContext? pausedStateContext; + public string? regionCode; + public string? startTime; + public SubscribeWithGoogleInfo? subscribeWithGoogleInfo; + public string? subscriptionState; + public TestPurchase? testPurchase; +} + +[System.Serializable] +public class CanceledStateContext +{ + public DeveloperInitiatedCancellation? developerInitiatedCancellation; + public ReplacementCancellation? replacementCancellation; + public SystemInitiatedCancellation? systemInitiatedCancellation; + public UserInitiatedCancellation? userInitiatedCancellation; + +} + +[System.Serializable] +public class ExternalAccountIdentifiers +{ + public string? externalAccountId; + public string? obfuscatedExternalAccountId; + public string? obfuscatedExternalProfileId; +} + +[System.Serializable] +public class SubscriptionPurchaseLineItem +{ + public AutoRenewingPlan? autoRenewingPlan; + public DeferredItemReplacement? deferredItemReplacement; + public string? expiryTime; + public OfferDetails? offerDetails; + public PrepaidPlan? prepaidPlan; + public string? productId; +} + +[System.Serializable] +public class PausedStateContext +{ + public string? autoResumeTime; +} + +[System.Serializable] +public class SubscribeWithGoogleInfo +{ + public string? emailAddress; + public string? familyName; + public string? givenName; + public string? profileId; + public string? profileName; +} + +[System.Serializable] +public class TestPurchase{} + +[System.Serializable] +public class DeveloperInitiatedCancellation{} + +[System.Serializable] +public class ReplacementCancellation{} + +[System.Serializable] +public class SystemInitiatedCancellation{} + +[System.Serializable] +public class UserInitiatedCancellation +{ + public CancelSurveyResult? cancelSurveyResult; + public string? cancelTime; +} + +[System.Serializable] +public class AutoRenewingPlan +{ + public string? autoRenewEnabled; + public SubscriptionItemPriceChangeDetails? priceChangeDetails; +} + +[System.Serializable] +public class DeferredItemReplacement +{ + public string? productId; +} + +[System.Serializable] +public class OfferDetails +{ + public List? offerTags; + public string? basePlanId; + public string? offerId; +} + +[System.Serializable] +public class PrepaidPlan +{ + public string? allowExtendAfterTime; +} + +[System.Serializable] +public class CancelSurveyResult +{ + public string? reason; + public string? reasonUserInput; +} + +[System.Serializable] +public class SubscriptionItemPriceChangeDetails +{ + public string? expectedNewPriceChargeTime; + public Money? newPrice; + public string? priceChangeMode; + public string? priceChangeState; +} + +[System.Serializable] + public class Money + { + public string? currencyCode; + public long nanos; + public long units; + } + \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/ProductPurchase.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/ProductPurchase.cs.meta new file mode 100644 index 00000000..7fdbf378 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/ProductPurchase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9a1435104a69d4c8ebcc6f237cc29a54 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests.meta new file mode 100644 index 00000000..8217a6a3 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1f19f272c71674582bed1d93925da003 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Castle.Core.dll b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Castle.Core.dll new file mode 100644 index 00000000..268e311c Binary files /dev/null and b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Castle.Core.dll differ diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Castle.Core.dll.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Castle.Core.dll.meta new file mode 100644 index 00000000..14cc646e --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Castle.Core.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 7b5b4579db85b4cfd8395bfb19aa309e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/NSubstitute.dll b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/NSubstitute.dll new file mode 100644 index 00000000..f32e4919 Binary files /dev/null and b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/NSubstitute.dll differ diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/NSubstitute.dll.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/NSubstitute.dll.meta new file mode 100644 index 00000000..b716f6a2 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/NSubstitute.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 642cf65ed2573419bab7e7d44fc73181 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 00000000..c5ba4e40 Binary files /dev/null and b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll.meta new file mode 100644 index 00000000..fca37704 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Runtime.CompilerServices.Unsafe.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 3a5ccbd864ba94a9a9ba47895ff14922 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Threading.Tasks.Extensions.dll b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Threading.Tasks.Extensions.dll new file mode 100644 index 00000000..dfc4cdf6 Binary files /dev/null and b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Threading.Tasks.Extensions.dll differ diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Threading.Tasks.Extensions.dll.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Threading.Tasks.Extensions.dll.meta new file mode 100644 index 00000000..cb661cab --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/System.Threading.Tasks.Extensions.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: ee45ae2608f3c44d08fc6e21a94d133f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests.asmdef b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests.asmdef new file mode 100644 index 00000000..4d103636 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests.asmdef @@ -0,0 +1,24 @@ +{ + "name": "Tests", + "references": [ + "UnityEngine.TestRunner", + "UnityEditor.TestRunner", + "AppsFlyer" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": true, + "precompiledReferences": [ + "nunit.framework.dll", + "NSubstitute.dll", + "Castle.Core.dll", + "System.Threading.Tasks.Extensions.dll" + ], + "autoReferenced": false, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests.asmdef.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests.asmdef.meta new file mode 100644 index 00000000..27780081 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1f155a0e4c9ab48eeb4b54b2dc0aeba7 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests_Suite.cs b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests_Suite.cs new file mode 100644 index 00000000..95231315 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests_Suite.cs @@ -0,0 +1,810 @@ +using System.Collections.Generic; +using NUnit.Framework; +using UnityEngine; +using NSubstitute; + +namespace AppsFlyerSDK.Tests +{ + public class NewTestScript + { + + [Test] + public void test_startSDK_called() + { + var AppsFlyerMOCKInterface = Substitute.For(); + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.startSDK(); + AppsFlyerMOCKInterface.Received().startSDK(Arg.Any(), Arg.Any()); + + } + + [Test] + public void test_sendEvent_withValues() + { + var AppsFlyerMOCKInterface = Substitute.For(); + AppsFlyer.instance = AppsFlyerMOCKInterface; + var eventParams = new Dictionary(); + eventParams.Add("key", "value"); + AppsFlyer.sendEvent("testevent", eventParams); + AppsFlyerMOCKInterface.Received().sendEvent("testevent", eventParams, false, null); + } + + [Test] + public void test_sendEvent_withNullParams() + { + var AppsFlyerMOCKInterface = Substitute.For(); + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.sendEvent("testevent", null); + AppsFlyerMOCKInterface.Received().sendEvent("testevent", null,false, null); + } + + + [Test] + public void test_isSDKStopped_true() + { + var AppsFlyerMOCKInterface = Substitute.For(); + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.stopSDK(true); + + AppsFlyerMOCKInterface.Received().stopSDK(true); + + } + + [Test] + public void test_isSDKStopped_false() + { + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + + AppsFlyer.stopSDK(false); + + AppsFlyerMOCKInterface.Received().stopSDK(false); + + } + + [Test] + public void test_isSDKStopped_called() + { + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + + var isSDKStopped = AppsFlyer.isSDKStopped(); + + AppsFlyerMOCKInterface.Received().isSDKStopped(); + + } + + [Test] + public void test_isSDKStopped_receveivedFalse() + { + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + + var isSDKStopped = AppsFlyer.isSDKStopped(); + + Assert.AreEqual(AppsFlyerMOCKInterface.Received().isSDKStopped(), false); + + + } + + + [Test] + public void test_getSdkVersion_called() + { + var AppsFlyerMOCKInterface = Substitute.For(); + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.getSdkVersion(); + AppsFlyerMOCKInterface.Received().getSdkVersion(); + } + + [Test] + public void test_setCustomerUserId_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setCustomerUserId("test"); + AppsFlyerMOCKInterface.Received().setCustomerUserId("test"); + + } + + [Test] + public void Test_setAppInviteOneLinkID_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setAppInviteOneLinkID("2f36"); + AppsFlyerMOCKInterface.Received().setAppInviteOneLinkID("2f36"); + + } + + [Test] + public void Test_setAdditionalData_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + var customData = new Dictionary(); + customData.Add("test", "test"); + AppsFlyer.setAdditionalData(customData); + AppsFlyerMOCKInterface.Received().setAdditionalData(customData); + } + + [Test] + public void Test_setResolveDeepLinkURLs_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setResolveDeepLinkURLs("url1", "url2"); + AppsFlyerMOCKInterface.Received().setResolveDeepLinkURLs("url1", "url2"); + + } + + [Test] + public void Test_setOneLinkCustomDomain_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setOneLinkCustomDomain("url1", "url2"); + AppsFlyerMOCKInterface.Received().setOneLinkCustomDomain("url1", "url2"); + + } + + [Test] + public void Test_setCurrencyCode_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setCurrencyCode("usd"); + AppsFlyerMOCKInterface.Received().setCurrencyCode("usd"); + + } + + [Test] + public void Test_recordLocation_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.recordLocation(0.3, 5.2); + AppsFlyerMOCKInterface.Received().recordLocation(0.3, 5.2); + + } + + [Test] + public void Test_anonymizeUser_true() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.anonymizeUser(true); + AppsFlyerMOCKInterface.Received().anonymizeUser(true); + + } + + [Test] + public void Test_anonymizeUser_false() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.anonymizeUser(false); + AppsFlyerMOCKInterface.Received().anonymizeUser(false); + + } + + [Test] + public void Test_getAppsFlyerId_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.getAppsFlyerId(); + AppsFlyerMOCKInterface.Received().getAppsFlyerId(); + + } + + [Test] + public void Test_setMinTimeBetweenSessions_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setMinTimeBetweenSessions(3); + AppsFlyerMOCKInterface.Received().setMinTimeBetweenSessions(3); + + } + + [Test] + public void Test_setHost_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setHost("prefix", "name"); + AppsFlyerMOCKInterface.Received().setHost("prefix", "name"); + + } + + [Test] + public void Test_setPhoneNumber_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setPhoneNumber("002"); + AppsFlyerMOCKInterface.Received().setPhoneNumber("002"); + + } + + + [Test] + [System.Obsolete] + public void Test_setSharingFilterForAllPartners_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setSharingFilterForAllPartners(); + AppsFlyerMOCKInterface.Received().setSharingFilterForAllPartners(); + + } + + [Test] + [System.Obsolete] + public void Test_setSharingFilter_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + + + AppsFlyer.setSharingFilter("filter1", "filter2"); + AppsFlyerMOCKInterface.Received().setSharingFilter("filter1", "filter2"); + + } + + [Test] + public void Test_getConversionData_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + + AppsFlyer.getConversionData("ObjectName"); + AppsFlyerMOCKInterface.Received().getConversionData("ObjectName"); + + } + + [Test] + public void Test_attributeAndOpenStore_called_withParams() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + Dictionary parameters = new Dictionary(); + parameters.Add("af_sub1", "val"); + parameters.Add("custom_param", "val2"); + AppsFlyer.attributeAndOpenStore("appid", "campaign", parameters, new MonoBehaviour()); + AppsFlyerMOCKInterface.Received().attributeAndOpenStore("appid", "campaign", parameters, Arg.Any()); + + } + + [Test] + public void Test_attributeAndOpenStore_called_nullParams() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + + AppsFlyer.attributeAndOpenStore("appid", "campaign", null, new MonoBehaviour()); + AppsFlyerMOCKInterface.Received().attributeAndOpenStore("appid", "campaign", null, Arg.Any()); + + } + + [Test] + public void Test_recordCrossPromoteImpression_calledWithParameters() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + Dictionary parameters = new Dictionary(); + parameters.Add("af_sub1", "val"); + parameters.Add("custom_param", "val2"); + AppsFlyer.recordCrossPromoteImpression("appid", "campaign", parameters); + AppsFlyerMOCKInterface.Received().recordCrossPromoteImpression("appid", "campaign", parameters); + + } + + + + [Test] + public void Test_recordCrossPromoteImpression_calledWithoutParameters() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.recordCrossPromoteImpression("appid", "campaign", null); + AppsFlyerMOCKInterface.Received().recordCrossPromoteImpression("appid", "campaign", null); + + } + + [Test] + public void Test_generateUserInviteLink_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + + AppsFlyer.generateUserInviteLink(new Dictionary(), new MonoBehaviour()); + AppsFlyerMOCKInterface.Received().generateUserInviteLink(Arg.Any>(), Arg.Any()); + + } + + + [Test] + public void Test_addPushNotificationDeepLinkPath_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.addPushNotificationDeepLinkPath("path1", "path2"); + AppsFlyerMOCKInterface.Received().addPushNotificationDeepLinkPath("path1", "path2"); + + } + +#if UNITY_ANDROID + [Test] + public void updateServerUninstallToken_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.updateServerUninstallToken("tokenTest"); + AppsFlyerMOCKInterface.Received().updateServerUninstallToken("tokenTest"); + + } + + [Test] + public void setImeiData_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setImeiData("imei"); + AppsFlyerMOCKInterface.Received().setImeiData("imei"); + + } + + [Test] + public void setAndroidIdData_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setAndroidIdData("androidId"); + AppsFlyerMOCKInterface.Received().setAndroidIdData("androidId"); + + } + + [Test] + public void waitForCustomerUserId_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.waitForCustomerUserId(true); + AppsFlyerMOCKInterface.Received().waitForCustomerUserId(true); + + } + + [Test] + public void setCustomerIdAndStartSDK_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setCustomerIdAndStartSDK("01234"); + AppsFlyerMOCKInterface.Received().setCustomerIdAndStartSDK("01234"); + + } + + + [Test] + public void getOutOfStore_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.getOutOfStore(); + AppsFlyerMOCKInterface.Received().getOutOfStore(); + + } + + [Test] + public void setOutOfStore_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setOutOfStore("test"); + AppsFlyerMOCKInterface.Received().setOutOfStore("test"); + + } + + [Test] + public void setCollectAndroidID_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setCollectAndroidID(true); + AppsFlyerMOCKInterface.Received().setCollectAndroidID(true); + + } + + [Test] + public void setCollectIMEI_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setCollectIMEI(true); + AppsFlyerMOCKInterface.Received().setCollectIMEI(true); + + } + + [Test] + public void setIsUpdate_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setIsUpdate(true); + AppsFlyerMOCKInterface.Received().setIsUpdate(true); + + } + + [Test] + public void setPreinstallAttribution_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setPreinstallAttribution("mediaSourceTestt", "campaign", "sideId"); + AppsFlyerMOCKInterface.Received().setPreinstallAttribution("mediaSourceTestt", "campaign", "sideId"); + + } + + [Test] + public void isPreInstalledApp_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.isPreInstalledApp(); + AppsFlyerMOCKInterface.Received().isPreInstalledApp(); + + } + + [Test] + public void getAttributionId_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.getAttributionId(); + AppsFlyerMOCKInterface.Received().getAttributionId(); + + } + + [Test] + public void handlePushNotifications_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.handlePushNotifications(); + AppsFlyerMOCKInterface.Received().handlePushNotifications(); + + } + + [Test] + public void validateAndSendInAppPurchase_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.validateAndSendInAppPurchase("ewjkekwjekw","hewjehwj", "purchaseData", "3.0", "USD", null, null); + AppsFlyerMOCKInterface.Received().validateAndSendInAppPurchase("ewjkekwjekw", "hewjehwj", "purchaseData", "3.0", "USD", null, null); + + } + + [Test] + public void setCollectOaid_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setCollectOaid(true); + AppsFlyerMOCKInterface.Received().setCollectOaid(true); + + } + + [Test] + public void setDisableAdvertisingIdentifiers_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setDisableAdvertisingIdentifiers(true); + AppsFlyerMOCKInterface.Received().setDisableAdvertisingIdentifiers(true); + + } + + [Test] + public void setDisableNetworkData_called() { + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setDisableNetworkData(true); + AppsFlyerMOCKInterface.Received().setDisableNetworkData(true); + } +#elif UNITY_IOS + + [Test] + public void setDisableCollectAppleAdSupport_called_true() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setDisableCollectAppleAdSupport(true); + AppsFlyerMOCKInterface.Received().setDisableCollectAppleAdSupport(true); + + } + + [Test] + public void setDisableCollectAppleAdSupport_called_false() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setDisableCollectAppleAdSupport(false); + AppsFlyerMOCKInterface.Received().setDisableCollectAppleAdSupport(false); + + } + + [Test] + [System.Obsolete] + public void setShouldCollectDeviceName_called_true() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setShouldCollectDeviceName(true); + AppsFlyerMOCKInterface.Received().setShouldCollectDeviceName(true); + + } + + [Test] + [System.Obsolete] + public void setShouldCollectDeviceName_called_false() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setShouldCollectDeviceName(false); + AppsFlyerMOCKInterface.Received().setShouldCollectDeviceName(false); + + } + + [Test] + public void setDisableCollectIAd_called_true() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setDisableCollectIAd(true); + AppsFlyerMOCKInterface.Received().setDisableCollectIAd(true); + + } + + [Test] + public void setDisableCollectIAd_called_false() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setDisableCollectIAd(false); + AppsFlyerMOCKInterface.Received().setDisableCollectIAd(false); + + } + + [Test] + public void setUseReceiptValidationSandbox_called_true() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setUseReceiptValidationSandbox(true); + AppsFlyerMOCKInterface.Received().setUseReceiptValidationSandbox(true); + + } + + [Test] + public void setUseReceiptValidationSandbox_called_false() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setUseReceiptValidationSandbox(false); + AppsFlyerMOCKInterface.Received().setUseReceiptValidationSandbox(false); + + } + + [Test] + public void ssetUseUninstallSandbox_called_true() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setUseUninstallSandbox(true); + AppsFlyerMOCKInterface.Received().setUseUninstallSandbox(true); + + } + + [Test] + public void setUseUninstallSandbox_called_false() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setUseUninstallSandbox(false); + AppsFlyerMOCKInterface.Received().setUseUninstallSandbox(false); + + } + + [Test] + public void validateAndSendInAppPurchase_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.validateAndSendInAppPurchase("3d2", "5.0","USD", "45", null, null); + AppsFlyerMOCKInterface.Received().validateAndSendInAppPurchase("3d2", "5.0", "USD", "45", null, null); + + } + + [Test] + public void registerUninstall_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + byte[] token = System.Text.Encoding.UTF8.GetBytes("740f4707 bebcf74f 9b7c25d4 8e335894 5f6aa01d a5ddb387 462c7eaf 61bb78ad"); + AppsFlyer.registerUninstall(token); + AppsFlyerMOCKInterface.Received().registerUninstall(token); + + } + + [Test] + public void handleOpenUrl_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.handleOpenUrl("www.test.com", "appTest", "test"); + AppsFlyerMOCKInterface.Received().handleOpenUrl("www.test.com", "appTest", "test"); + + } + + [Test] + public void waitForATTUserAuthorizationWithTimeoutInterval_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(30); + AppsFlyerMOCKInterface.Received().waitForATTUserAuthorizationWithTimeoutInterval(30); + + } + + [Test] + public void setCurrentDeviceLanguage_called() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.setCurrentDeviceLanguage("en"); + AppsFlyerMOCKInterface.Received().setCurrentDeviceLanguage("en"); + + } + + [Test] + public void disableSKAdNetwork_called_true() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.disableSKAdNetwork(true); + AppsFlyerMOCKInterface.Received().disableSKAdNetwork(true); + + } + + [Test] + public void disableSKAdNetwork_called_false() + { + + var AppsFlyerMOCKInterface = Substitute.For(); + + AppsFlyer.instance = AppsFlyerMOCKInterface; + AppsFlyer.disableSKAdNetwork(false); + AppsFlyerMOCKInterface.Received().disableSKAdNetwork(false); + + } + +#endif + } +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests_Suite.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests_Suite.cs.meta new file mode 100644 index 00000000..c20a62c7 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/AppsFlyer/Tests/Tests_Suite.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b1a24aa01166451d804d7c03c14a3db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll.meta new file mode 100644 index 00000000..a3d4e724 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 429c3c4b79918684894c368157dad34a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds.meta new file mode 100644 index 00000000..c4a3cd5f --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bd0ef81b1482347b38905fab4f30e583 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/BigoAds.asmdef b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/BigoAds.asmdef new file mode 100644 index 00000000..2051c3a7 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/BigoAds.asmdef @@ -0,0 +1,3 @@ +{ + "name": "BigoAds" +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/BigoAds.asmdef.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/BigoAds.asmdef.meta new file mode 100644 index 00000000..2aef0321 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/BigoAds.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a16a603f2fee3094a83a14116e2d8129 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts.meta new file mode 100644 index 00000000..dc119391 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 467aa0b9eadf04b22b5b3713a1b07bea +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api.meta new file mode 100644 index 00000000..15c0daf9 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1dd438e36fdc745aaa018eac5d3b182c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdConfig.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdConfig.cs new file mode 100644 index 00000000..82e04470 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdConfig.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using BigoAds.Scripts.Api.Constant; +using System.Collections.Generic; + +namespace BigoAds.Scripts.Api +{ + public class BigoAdConfig + { + public const string EXTRA_KEY_HOST_RULES = "host_rules"; + + /// + /// the unique identifier of the App + /// + internal string AppId { get; } + + /// + /// Custom set the debugLog to print debug Log. + /// debugLog NO: close debug log, YES: open debug log. + /// + internal bool DebugLog { get; } + + /// + /// Channels for publishing media applications + /// + internal string Channel { get; } + + internal int Age { get; } + + internal int Gender { get; } + + internal long ActivatedTime { get; } + + internal Dictionary ExtraDictionary { get; } + + private BigoAdConfig(BigoAdConfig.Builder builder) + { + AppId = builder.AppId; + DebugLog = builder.DebugLog; + Channel = builder.Channel; + Age = builder.Age; + Gender = (int)builder.Gender; + ActivatedTime = builder.ActivatedTime; + ExtraDictionary = builder.ExtraDictionary; + } + + public class Builder + { + internal string AppId; + + internal bool DebugLog; + + internal string Channel; + + internal int Age; + + internal BGAdGender Gender; + + internal long ActivatedTime; + + internal Dictionary ExtraDictionary = new Dictionary(); + + public Builder SetAppId(string appid) + { + this.AppId = appid; + return this; + } + + public Builder SetDebugLog(bool debugLog) + { + this.DebugLog = debugLog; + return this; + } + + public Builder SetChannel(string channel) + { + this.Channel = channel; + return this; + } + + public Builder SetAge(int age) + { + this.Age = age; + return this; + } + + public Builder SetGender(BGAdGender gender) + { + this.Gender = gender; + return this; + } + + public Builder SetActivatedTime(long activatedTime) + { + this.ActivatedTime = activatedTime; + return this; + } + + ///Only works on Android + public Builder SetExtra(string key, string extra) + { + if (key != null && extra != null) + { + this.ExtraDictionary.Add(key, extra); + } + return this; + } + + public BigoAdConfig Build() + { + return new BigoAdConfig(this); + } + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdConfig.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdConfig.cs.meta new file mode 100644 index 00000000..b457ea07 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b18497a84c58a49f385b63be54aff0cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdSdk.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdSdk.cs new file mode 100644 index 00000000..c2481415 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdSdk.cs @@ -0,0 +1,106 @@ +using BigoAds.Scripts.Common; +using BigoAds.Scripts.Api.Constant; + +namespace BigoAds.Scripts.Api +{ + public static class BigoAdSdk + { + private static IClientFactory _clientFactory; + + private static ISDK _sdk; + + internal static ISDK SDK + { + get + { + if (_sdk == null) + { + _sdk = GetClientFactory().BuildSDKClient(); + } + + return _sdk; + } + } + + internal static IClientFactory GetClientFactory() + { + if (_clientFactory != null) + { + return _clientFactory; + } + + _clientFactory = +#if UNITY_ANDROID + new BigoAds.Scripts.Platforms.Android.AndroidClientFactory(); +#elif UNITY_IOS + new BigoAds.Scripts.Platforms.iOS.IOSClientFactory(); +#else + null; + throw new PlatformNotSupportedException(); +#endif + return _clientFactory; + } + + public delegate void InitResultDelegate(); + + public static event InitResultDelegate OnInitFinish; + + /// Starts the Bigo SDK + /// @warning Call this method as early as possible to reduce ad request fail. + /// @param config SDK configuration + /// @param callback Callback for starting the Bigo SDK + /// //// + public static void Initialize(BigoAdConfig config) + { + if (IsInitSuccess()) + { + OnInitFinish?.Invoke(); + return; + } + + SDK.Init(config, (() => { OnInitFinish?.Invoke(); })); + } + + //// + /// The SDK initialization state + //// + public static bool IsInitSuccess() + { + return SDK.IsInitSuccess(); + } + + /////// + /// Bigo SDK version + /// //// + public static string GetSDKVersion() + { + return SDK.GetSDKVersion(); + } + + /////// + /// Bigo SDK version name + /// //// + public static string GetSDKVersionName() + { + return SDK.GetSDKVersionName(); + } + + /////// + /// Bigo SDK set user consent + /// //// + public static void SetUserConsent(ConsentOptions option, bool consent) + { + SDK.SetUserConsent(option, consent); + } + + /////// + /// Only works on Android + /// Bigo SDK set user consent + /// //// + public static void AddExtraHost(string country, string host) + { + SDK.AddExtraHost(country, host); + } + + } +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdSdk.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdSdk.cs.meta new file mode 100644 index 00000000..4672ff6f --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoAdSdk.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e5ad9c8c265954d4e8f4f03312b5fa42 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerAd.cs new file mode 100644 index 00000000..598d5bba --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerAd.cs @@ -0,0 +1,30 @@ +using BigoAds.Scripts.Api.Constant; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Api +{ + public class BigoBannerAd : BigoBaseAd + { + private readonly IBannerAd _bannerAdClient; + + + /// + /// create a banner ad + /// + /// + public BigoBannerAd(string slotId) : base(slotId, BigoAdSdk.GetClientFactory().BuildBannerAdClient()) + { + _bannerAdClient = (IBannerAd) ADClient; + } + + /// + /// set position for banner + /// + /// + public void SetPosition(BigoPosition position) + { + _bannerAdClient?.SetPosition(position); + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerAd.cs.meta new file mode 100644 index 00000000..c20e587e --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5136d466cbb6c461f92fbd90b6fa157d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerRequest.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerRequest.cs new file mode 100644 index 00000000..a40d4333 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerRequest.cs @@ -0,0 +1,22 @@ +using System; +using BigoAds.Scripts.Api.Constant; +using UnityEngine; + +namespace BigoAds.Scripts.Api +{ + [Serializable] + public class BigoBannerRequest : BigoRequest + { + [SerializeField()] + private BigoBannerSize size; + public BigoBannerSize Size => size; + + public BigoPosition Position { get; } + + public BigoBannerRequest(BigoBannerSize size, BigoPosition position = BigoPosition.Bottom) + { + this.size = size; + this.Position = position; + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerRequest.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerRequest.cs.meta new file mode 100644 index 00000000..b1bc7ba3 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoBannerRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 159c6164853954739adbca1ae7592df7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialAd.cs new file mode 100644 index 00000000..aadc6ffe --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialAd.cs @@ -0,0 +1,11 @@ +using BigoAds.Scripts.Common; + +namespace BigoAds.Scripts.Api +{ + public class BigoInterstitialAd : BigoBaseAd + { + public BigoInterstitialAd(string slotId) : base(slotId, BigoAdSdk.GetClientFactory().BuildInterstitialAdClient()) + { + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialAd.cs.meta new file mode 100644 index 00000000..ef2cffe2 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1323eae1e03094d8281b23f5527a53db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialRequest.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialRequest.cs new file mode 100644 index 00000000..29fd8665 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialRequest.cs @@ -0,0 +1,10 @@ +using System; + +namespace BigoAds.Scripts.Api +{ + [Serializable] + + public class BigoInterstitialRequest : BigoRequest + { + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialRequest.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialRequest.cs.meta new file mode 100644 index 00000000..dab3ed26 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoInterstitialRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1947fd630823b4858af6c3a471497f70 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeAd.cs new file mode 100644 index 00000000..d47b55bd --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeAd.cs @@ -0,0 +1,26 @@ +using BigoAds.Scripts.Api.Constant; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Api +{ + public class BigoNativeAd : BigoBaseAd + { + private readonly INativeAd _NativeAdClient; + + public BigoNativeAd(string slotId) : base(slotId, BigoAdSdk.GetClientFactory().BuildNativeAdClient()) + { + _NativeAdClient = (INativeAd) ADClient; + } + + /// + /// set position for native + /// + /// + public void SetPosition(BigoPosition position) + { + _NativeAdClient?.SetPosition(position); + } + + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeAd.cs.meta new file mode 100644 index 00000000..8660675a --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1742d1ee2ff5e4d508ae81524cb94ade +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeRequest.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeRequest.cs new file mode 100644 index 00000000..fb992706 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeRequest.cs @@ -0,0 +1,10 @@ +using System; + +namespace BigoAds.Scripts.Api +{ + [Serializable] + public class BigoNativeRequest : BigoRequest + { + + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeRequest.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeRequest.cs.meta new file mode 100644 index 00000000..304ad89f --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoNativeRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 033c30386f5714bddb5dd41d7524979e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupAd.cs new file mode 100644 index 00000000..80a872b6 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupAd.cs @@ -0,0 +1,11 @@ +using BigoAds.Scripts.Common; + +namespace BigoAds.Scripts.Api +{ + public class BigoPopupAd : BigoBaseAd + { + public BigoPopupAd(string slotId) : base(slotId, BigoAdSdk.GetClientFactory().BuildPopupAdClient()) + { + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupAd.cs.meta new file mode 100644 index 00000000..ad931100 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2be0a8fe9e5aa4bea8970a47e617a076 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupRequest.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupRequest.cs new file mode 100644 index 00000000..c30c4372 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupRequest.cs @@ -0,0 +1,10 @@ +using System; + +namespace BigoAds.Scripts.Api +{ + [Serializable] + + public class BigoPopupRequest : BigoRequest + { + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupRequest.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupRequest.cs.meta new file mode 100644 index 00000000..9b9e2eac --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoPopupRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 580aad20fbde543bab37a5e878c682cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRequest.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRequest.cs new file mode 100644 index 00000000..fe217ba3 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRequest.cs @@ -0,0 +1,47 @@ +using System; +using UnityEngine; +using BigoAds.Scripts.Api.Constant; + +namespace BigoAds.Scripts.Api +{ + [Serializable] + public class BigoRequest + { + [SerializeField] private string extraInfo; + [SerializeField] private int age; + [SerializeField] private BGAdGender gender; + [SerializeField] private long activatedTime; + + public string ExtraInfoJson + { + get => extraInfo; + set => extraInfo = value; + } + + /// Only works on Android + public int Age + { + get => age; + set => age = value; + } + + /// Only works on Android + public BGAdGender Gender + { + get => gender; + set => gender = value; + } + + /// Only works on Android + public long ActivatedTime + { + get => activatedTime; + set => activatedTime = value; + } + + public string ToJson() + { + return JsonUtility.ToJson(this); + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRequest.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRequest.cs.meta new file mode 100644 index 00000000..b0540617 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2707ffe474e6443d6a5260876d5b1370 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedAd.cs new file mode 100644 index 00000000..8d594b20 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedAd.cs @@ -0,0 +1,29 @@ +using System; +using BigoAds.Scripts.Common; + +namespace BigoAds.Scripts.Api +{ + public class BigoRewardedAd : BigoBaseAd + { + public event Action OnUserEarnedReward; + + public BigoRewardedAd(string slotId) : base(slotId, BigoAdSdk.GetClientFactory().BuildRewardedAdClient()) + { + var rewardedAdClient = (IRewardedAd) ADClient; + rewardedAdClient.OnUserEarnedReward += InvokeOnUserEarnedReward; + } + + + private void InvokeOnUserEarnedReward() + { + if (CallbackOnMainThread) + { + BigoDispatcher.PostTask((() => { OnUserEarnedReward?.Invoke(); })); + } + else + { + OnUserEarnedReward?.Invoke(); + } + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedAd.cs.meta new file mode 100644 index 00000000..95f6da4b --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f745c8797b25430685a5a08b34f0d9f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedRequest.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedRequest.cs new file mode 100644 index 00000000..9b361372 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedRequest.cs @@ -0,0 +1,10 @@ +using System; + +namespace BigoAds.Scripts.Api +{ + [Serializable] + + public class BigoRewardedRequest : BigoRequest + { + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedRequest.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedRequest.cs.meta new file mode 100644 index 00000000..2c3f5c62 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoRewardedRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 38f4a763a1fc9429ca87c62eed4b4645 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashAd.cs new file mode 100644 index 00000000..14dac426 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashAd.cs @@ -0,0 +1,11 @@ +using BigoAds.Scripts.Common; + +namespace BigoAds.Scripts.Api +{ + public class BigoSplashAd : BigoBaseAd + { + public BigoSplashAd(string slotId) : base(slotId, BigoAdSdk.GetClientFactory().BuildSplashAdClient()) + { + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashAd.cs.meta new file mode 100644 index 00000000..24bf4123 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 61b62ca232d2e42788e61f33d7784209 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashRequest.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashRequest.cs new file mode 100644 index 00000000..e6d92392 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashRequest.cs @@ -0,0 +1,10 @@ +using System; + +namespace BigoAds.Scripts.Api +{ + [Serializable] + + public class BigoSplashRequest : BigoRequest + { + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashRequest.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashRequest.cs.meta new file mode 100644 index 00000000..54ba905d --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/BigoSplashRequest.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: afdf808922a744419b5db1fdd4ca18b9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant.meta new file mode 100644 index 00000000..df5fa745 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0762cd7e46c3c43e5a32b1558643eb74 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdGender.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdGender.cs new file mode 100644 index 00000000..462edffa --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdGender.cs @@ -0,0 +1,10 @@ +using System; +namespace BigoAds.Scripts.Api.Constant +{ + [Serializable] + public enum BGAdGender + { + Female = 1, + Male = 2 + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdGender.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdGender.cs.meta new file mode 100644 index 00000000..f5177423 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdGender.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2784802c5b5b34470a0500118ccb7f55 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdLossReason.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdLossReason.cs new file mode 100644 index 00000000..1e8b77e9 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdLossReason.cs @@ -0,0 +1,13 @@ +using System; + +namespace BigoAds.Scripts.Api.Constant +{ + [Serializable] + public enum BGAdLossReason + { + InternalError = 1, + Timeout = 2, + LowerThanFloorPrice = 100, + LowerThanHighestPrice = 101 + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdLossReason.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdLossReason.cs.meta new file mode 100644 index 00000000..c16d0482 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BGAdLossReason.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 303b2e25e09c44797a167b642310a319 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoBannerSize.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoBannerSize.cs new file mode 100644 index 00000000..0d26acec --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoBannerSize.cs @@ -0,0 +1,23 @@ +using System; +using UnityEngine; + +namespace BigoAds.Scripts.Api.Constant +{ + [Serializable] + public struct BigoBannerSize + { + public static readonly BigoBannerSize BANNER_W_320_H_50 = new BigoBannerSize(320,50); + public static readonly BigoBannerSize BANNER_W_300_H_250 = new BigoBannerSize(300,250); + + [SerializeField] private int width; + [SerializeField] private int height; + public int Width => width; + public int Height => height; + + public BigoBannerSize(int width, int height) + { + this.width = width; + this.height = height; + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoBannerSize.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoBannerSize.cs.meta new file mode 100644 index 00000000..2a3dff51 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoBannerSize.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4a4411a50cfc94717b30325ceed3d52f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoPosition.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoPosition.cs new file mode 100644 index 00000000..44a6cdbc --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoPosition.cs @@ -0,0 +1,12 @@ +using System; + +namespace BigoAds.Scripts.Api.Constant +{ + [Serializable] + public enum BigoPosition + { + Top = 0, + Middle = 1, + Bottom = 2 + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoPosition.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoPosition.cs.meta new file mode 100644 index 00000000..409da191 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/BigoPosition.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6511065ffc7f44235bacb3ee16a87f5a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/ConsentOptions.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/ConsentOptions.cs new file mode 100644 index 00000000..5b49a5ed --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/ConsentOptions.cs @@ -0,0 +1,13 @@ +using System; + +namespace BigoAds.Scripts.Api.Constant +{ + [Serializable] + public enum ConsentOptions + { + GDPR, + CCPA, + LGPD, + COPPA + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/ConsentOptions.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/ConsentOptions.cs.meta new file mode 100644 index 00000000..c1ae9741 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Api/Constant/ConsentOptions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7867ac15c426649a6aa633a772d54879 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common.meta new file mode 100644 index 00000000..f8e8c89e --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8b4db2c2875384f11b89eb7dec28b823 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoBaseAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoBaseAd.cs new file mode 100644 index 00000000..955822c2 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoBaseAd.cs @@ -0,0 +1,218 @@ +using System; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; + +namespace BigoAds.Scripts.Common +{ + public class BigoBaseAd where T : BigoRequest + { + /// + /// event for load ad success + /// + public event Action OnLoad; + + /// + /// load ad failed with error code and error message + /// + public event Action OnLoadFailed; + + /// + /// event for ad impression + /// + public event Action OnAdShowed; + + /// + /// event for ad be clicked + /// + public event Action OnAdClicked; + + /// + /// event for ad be closed + /// + public event Action OnAdDismissed; + + /// + /// event for ad error + /// + public event Action OnAdError; + + private readonly string _slotId; + + private bool _isAdLoaded; + + protected readonly IBigoAd ADClient; + + public bool CallbackOnMainThread { get; set; } = true; + + private BigoAdBid _bid; + + protected BigoBaseAd(string id, IBigoAd adClient) + { + _slotId = id; + ADClient = adClient; + InitEvent(ADClient); + } + + private void InitEvent(IBigoAd adClient) + { + adClient.OnLoad += InvokeOnLoad; + adClient.OnLoadFailed += InvokeOnLoadFailed; + + adClient.OnAdShowed += InvokeOnAdShowed; + adClient.OnAdClicked += InvokeOnAdClicked; + adClient.OnAdDismissed += InvokeOnAdDismissed; + adClient.OnAdError += InvokeOnAdError; + } + + public void Load(T request) + { + if (_isAdLoaded) + { + InvokeOnLoad(); + } + if (string.IsNullOrEmpty(_slotId)) + { + InvokeOnLoadFailed(-1, "slotId must be not null"); + return; + } + + if (!BigoAdSdk.IsInitSuccess()) + { + InvokeOnLoadFailed(-1, "sdk has not init"); + return; + } + ADClient?.Load(_slotId, request); + } + + public virtual void Show() + { + _isAdLoaded = false; + ADClient?.Show(); + } + + public void DestroyAd() + { + ADClient?.Destroy(); + } + + public bool IsLoaded() + { + return _isAdLoaded; + } + + public bool IsExpired() + { + return ADClient == null ? false : ADClient.IsExpired(); + } + + public string GetExtraInfo(String key) + { + return ADClient == null ? "" : ADClient.GetExtraInfo(key); + } + + private void InvokeOnLoad() + { + OnLoad?.Invoke(); + _isAdLoaded = true; + } + + protected void InvokeOnLoadFailed(int errorCode, string errorMessage) + { + if (CallbackOnMainThread) + { + BigoDispatcher.PostTask((() => { OnLoadFailed?.Invoke(errorCode, errorMessage); })); + } + else + { + OnLoadFailed?.Invoke(errorCode, errorMessage); + } + } + + + private void InvokeOnAdShowed() + { + if (CallbackOnMainThread) + { + BigoDispatcher.PostTask((() => { OnAdShowed?.Invoke(); })); + } + else + { + OnAdShowed?.Invoke(); + } + } + + private void InvokeOnAdClicked() + { + if (CallbackOnMainThread) + { + BigoDispatcher.PostTask((() => { OnAdClicked?.Invoke(); })); + } + else + { + OnAdClicked?.Invoke(); + } + } + + private void InvokeOnAdDismissed() + { + if (CallbackOnMainThread) + { + BigoDispatcher.PostTask((() => { OnAdDismissed?.Invoke(); })); + } + else + { + OnAdDismissed?.Invoke(); + } + } + + private void InvokeOnAdError(int errorCode, string errorMessage) + { + if (CallbackOnMainThread) + { + BigoDispatcher.PostTask((() => { OnAdError?.Invoke(errorCode, errorMessage); })); + } + else + { + OnAdError?.Invoke(errorCode, errorMessage); + } + } + + public BigoAdBid GetBid() + { + if (ADClient == null) return null; + if (!ADClient.IsClientBidding()) return null; + if (_bid == null) + { + _bid = new BigoAdBid(ADClient); + } + return _bid; + } + + public class BigoAdBid : IClientBidding + { + protected readonly IBigoAd _ADClient; + + public BigoAdBid(IBigoAd ADClient) + { + _ADClient = ADClient; + } + /// get price + public double getPrice() + { + return _ADClient == null ? 0 : _ADClient.getPrice(); + } + + ///notify win + public void notifyWin(double secPrice, string secBidder) + { + _ADClient?.notifyWin(secPrice, secBidder); + } + + ///notify loss + public void notifyLoss(double firstPrice, string firstBidder, BGAdLossReason lossReason) + { + _ADClient?.notifyLoss(firstPrice, firstBidder, lossReason); + } + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoBaseAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoBaseAd.cs.meta new file mode 100644 index 00000000..f0dae98d --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoBaseAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8554386bfcec3403cb6fab89c7a35f31 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoDispatcher.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoDispatcher.cs new file mode 100644 index 00000000..18f0d617 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoDispatcher.cs @@ -0,0 +1,86 @@ +namespace BigoAds.Scripts.Common +{ + using System; + using System.Collections.Generic; + using UnityEngine; + + /// + /// The unity thread dispatcher. + /// + [DisallowMultipleComponent] + internal sealed class BigoDispatcher : MonoBehaviour + { + private static bool _instanceCreated; + + // The thread safe task queue. + private static readonly List PostTasks = new List(); + + // The executing buffer. + private static readonly List Executing = new List(); + + static BigoDispatcher() + { + CreateInstance(); + } + + /// + /// Work thread post a task to the main thread. + /// + public static void PostTask(Action task) + { + lock (PostTasks) + { + PostTasks.Add(task); + } + } + + /// + /// Start to run this dispatcher. + /// + [RuntimeInitializeOnLoadMethod] + private static void CreateInstance() + { + if (_instanceCreated || !Application.isPlaying) return; + var go = new GameObject( + "BigoDispatcher", typeof(BigoDispatcher)); + DontDestroyOnLoad(go); + _instanceCreated = true; + } + + private void OnDestroy() + { + lock (PostTasks) + { + PostTasks.Clear(); + } + + Executing.Clear(); + } + + private void Update() + { + lock (PostTasks) + { + if (PostTasks.Count > 0) + { + Executing.AddRange(PostTasks); + PostTasks.Clear(); + } + } + + foreach (var task in Executing) + { + try + { + task(); + } + catch (Exception e) + { + Debug.LogError(e.Message, this); + } + } + + Executing.Clear(); + } + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoDispatcher.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoDispatcher.cs.meta new file mode 100644 index 00000000..95d29862 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/BigoDispatcher.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2d1af23e5ee93476382ea747bb4b6985 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBannerAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBannerAd.cs new file mode 100644 index 00000000..b47ae5d1 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBannerAd.cs @@ -0,0 +1,10 @@ +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; + +namespace BigoAds.Scripts.Common +{ + public interface IBannerAd : IBigoAd + { + void SetPosition(BigoPosition position); + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBannerAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBannerAd.cs.meta new file mode 100644 index 00000000..07400ff3 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBannerAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9632da3a0b8674b539385af7fec47c33 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBigoAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBigoAd.cs new file mode 100644 index 00000000..8bebc72c --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBigoAd.cs @@ -0,0 +1,22 @@ +using System; +using BigoAds.Scripts.Api; + +namespace BigoAds.Scripts.Common +{ + public interface IBigoAd : IClientBidding where T : BigoRequest + { + event Action OnLoad; + event Action OnLoadFailed; + event Action OnAdShowed; + event Action OnAdClicked; + event Action OnAdDismissed; + event Action OnAdError; + void Load(string slotId, T request); + bool IsLoaded(); + bool IsExpired(); + void Show(); + void Destroy(); + bool IsClientBidding(); + string GetExtraInfo(String key); + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBigoAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBigoAd.cs.meta new file mode 100644 index 00000000..aedaab25 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IBigoAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ac3c835ae5b8f421192fb72d32c9c6c1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientBidding.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientBidding.cs new file mode 100644 index 00000000..941cb456 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientBidding.cs @@ -0,0 +1,16 @@ +using BigoAds.Scripts.Api.Constant; + +namespace BigoAds.Scripts.Common +{ + public interface IClientBidding + { + /// get price + double getPrice(); + + ///notify win + void notifyWin(double secPrice, string secBidder); + + ///notify loss + void notifyLoss(double firstPrice, string firstBidder, BGAdLossReason lossReason); + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientBidding.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientBidding.cs.meta new file mode 100644 index 00000000..d02114ae --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientBidding.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: be474d5a8f44740eeac370fd98153d15 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientFactory.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientFactory.cs new file mode 100644 index 00000000..9dd97003 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientFactory.cs @@ -0,0 +1,13 @@ +namespace BigoAds.Scripts.Common +{ + public interface IClientFactory + { + ISDK BuildSDKClient(); + IBannerAd BuildBannerAdClient(); + INativeAd BuildNativeAdClient(); + IInterstitialAd BuildInterstitialAdClient(); + IPopupAd BuildPopupAdClient(); + ISplashAd BuildSplashAdClient(); + IRewardedAd BuildRewardedAdClient(); + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientFactory.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientFactory.cs.meta new file mode 100644 index 00000000..4061cfbd --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IClientFactory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b2cb5f6ac1b7f463db75ac0bfa7d7fbe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IInterstitialAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IInterstitialAd.cs new file mode 100644 index 00000000..7678cafc --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IInterstitialAd.cs @@ -0,0 +1,8 @@ +using BigoAds.Scripts.Api; + +namespace BigoAds.Scripts.Common +{ + public interface IInterstitialAd : IBigoAd + { + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IInterstitialAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IInterstitialAd.cs.meta new file mode 100644 index 00000000..4b86fca1 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IInterstitialAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2d31ee1df8a074b81a5575e9a7735b2a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/INativeAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/INativeAd.cs new file mode 100644 index 00000000..530387db --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/INativeAd.cs @@ -0,0 +1,10 @@ +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; + +namespace BigoAds.Scripts.Common +{ + public interface INativeAd : IBigoAd + { + void SetPosition(BigoPosition position); + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/INativeAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/INativeAd.cs.meta new file mode 100644 index 00000000..2c2e8187 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/INativeAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eef5c6b4f590c4ceaac635a2992576ef +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IPopupAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IPopupAd.cs new file mode 100644 index 00000000..9cf84897 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IPopupAd.cs @@ -0,0 +1,8 @@ +using BigoAds.Scripts.Api; + +namespace BigoAds.Scripts.Common +{ + public interface IPopupAd : IBigoAd + { + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IPopupAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IPopupAd.cs.meta new file mode 100644 index 00000000..f0866ad2 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IPopupAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9e767b9004c4f4ca19baa6f54c409c5d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IRewardedAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IRewardedAd.cs new file mode 100644 index 00000000..2b549abe --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IRewardedAd.cs @@ -0,0 +1,10 @@ +using System; +using BigoAds.Scripts.Api; + +namespace BigoAds.Scripts.Common +{ + public interface IRewardedAd : IBigoAd + { + event Action OnUserEarnedReward; + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IRewardedAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IRewardedAd.cs.meta new file mode 100644 index 00000000..a705be06 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/IRewardedAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0b3baa8d362724d19997664f34f4320d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISDK.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISDK.cs new file mode 100644 index 00000000..67113a0d --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISDK.cs @@ -0,0 +1,40 @@ +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; + +namespace BigoAds.Scripts.Common +{ + public interface ISDK + { + /// + /// Starts the Bigo SDK + /// + void Init(BigoAdConfig config, BigoAdSdk.InitResultDelegate initResultDelegate); + + //// + /// The SDK initialization state + //// + bool IsInitSuccess(); + + /////// + /// Bigo SDK version + /// //// + string GetSDKVersion(); + + + /////// + /// Bigo SDK version name + /// //// + string GetSDKVersionName(); + + /////// + /// Bigo SDK set user consent + /// //// + void SetUserConsent(ConsentOptions option, bool consent); + + /////// + /// Only works on Android + /// Bigo SDK set user consent + /// //// + void AddExtraHost(string country, string host); + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISDK.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISDK.cs.meta new file mode 100644 index 00000000..5b97bc84 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISDK.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 00ad18b48fa1047ee98bd415dd127f65 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISplashAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISplashAd.cs new file mode 100644 index 00000000..3cf05a65 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISplashAd.cs @@ -0,0 +1,8 @@ +using BigoAds.Scripts.Api; + +namespace BigoAds.Scripts.Common +{ + public interface ISplashAd:IBigoAd + { + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISplashAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISplashAd.cs.meta new file mode 100644 index 00000000..6aa7ff15 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Common/ISplashAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e1105e67678354e71850311744a989c3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms.meta new file mode 100644 index 00000000..842ddfd1 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f730f3e43d10941928ac676ed88c7ee4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android.meta new file mode 100644 index 00000000..91035227 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e595ff25130d84811aae9bbe30751d78 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.cs new file mode 100644 index 00000000..89fef60b --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.cs @@ -0,0 +1,99 @@ +using UnityEngine; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Common; +using BigoAds.Scripts.Api.Constant; + +public class AdHelper +{ + public static void ShowBannerAd(AndroidJavaObject bannerAd) + { + ShowBannerAd(bannerAd, BigoPosition.Bottom); + } + + public static void ShowBannerAd(AndroidJavaObject bannerAd, BigoPosition position) + { + if (bannerAd == null) return; + var adView = bannerAd.Call("adView"); + SetViewPosition(adView, position); + } + + public static void ShowNativeAd(AndroidJavaObject nativeAd) + { + ShowNativeAd(nativeAd, BigoPosition.Bottom); + } + + public static void RemoveAdView() + { + var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); + var activity = unityPlayer.GetStatic("currentActivity"); + new AndroidJavaClass("sg.bigo.ads.AdHelper").CallStatic("removeAdView", activity); + } + + public static void ShowNativeAd(AndroidJavaObject nativeAd, BigoPosition position) + { + if (nativeAd == null) return; + var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); + var activity = unityPlayer.GetStatic("currentActivity"); + var adView = new AndroidJavaClass("sg.bigo.ads.AdHelper").CallStatic("renderNativeAdView", activity, nativeAd, "layout_bigo_native_ad"); + SetViewPosition(adView, position); + } + + public static void SetViewPosition(AndroidJavaObject adView, BigoPosition position) + { + var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); + var activity = unityPlayer.GetStatic("currentActivity"); + int positionInt; + switch (position) + { + case BigoPosition.Top: + positionInt = 48; + break; + case BigoPosition.Middle: + positionInt = 16; + break; + case BigoPosition.Bottom: + default: + positionInt = 80; + break; + } + new AndroidJavaClass("sg.bigo.ads.AdHelper").CallStatic("addAdView", activity, adView, positionInt); + } + + + public abstract class Task : AndroidJavaProxy + { + public Task() : base("java.lang.Runnable") + { + } + + public abstract void run(); + } + + public static void DestroyAd(AndroidJavaObject ad) + { + if (ad != null) { + PostToAndroidMainThread(new DestryAdTask(ad)); + } + } + + private class DestryAdTask : Task + { + public AndroidJavaObject Ad; + + public DestryAdTask(AndroidJavaObject ad) + { + this.Ad = ad; + } + + public override void run() + { + Ad.Call("destroy"); + AdHelper.RemoveAdView(); + } + } + + public static void PostToAndroidMainThread(Task task) + { + new AndroidJavaClass("sg.bigo.ads.AdHelper").CallStatic("postToAndroidMainThread", task); + } +} \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.cs.meta new file mode 100644 index 00000000..a1fed7c6 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c7b17fadc228c48b6900058970865c98 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.java b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.java new file mode 100644 index 00000000..69008503 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.java @@ -0,0 +1,106 @@ +package sg.bigo.ads; + +import android.app.Activity; +import android.content.Context; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.List; + +import sg.bigo.ads.api.AdOptionsView; +import sg.bigo.ads.api.AdTag; +import sg.bigo.ads.api.MediaView; +import sg.bigo.ads.api.NativeAd; + +public class AdHelper { + + public static void postToAndroidMainThread(Runnable runnable) { + new Handler(Looper.getMainLooper()).post(runnable); + } + + public static void addAdView(Activity activity, View adView, int position) { + if (adView == null) return; + ViewGroup contentView = activity.findViewById(android.R.id.content); + String tag = "ad_container"; + ViewGroup adContainer = contentView.findViewWithTag(tag); + if (adContainer == null) { + adContainer = new FrameLayout(activity); + adContainer.setTag(tag); + } + contentView.removeView(adContainer); + FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, position); + contentView.addView(adContainer, layoutParams); + adContainer.removeAllViews(); + adContainer.addView(adView); + } + + public static void removeAdView(Activity activity) + { + ViewGroup contentView = activity.findViewById(android.R.id.content); + String tag = "ad_container"; + ViewGroup adContainer = contentView.findViewWithTag(tag); + if (adContainer == null) return; + adContainer.removeAllViews(); + } + + public static int getLayoutIdByResName(Activity activity, String resName) { + return activity.getResources().getIdentifier(resName, "layout", activity.getPackageName()); + } + + public static int getDrawableIdByResName(Activity activity, String resName) { + return activity.getResources().getIdentifier(resName, "drawable", activity.getPackageName()); + } + + public static View renderNativeAdView(Activity activity, NativeAd nativeAd, String layoutResName) { + int layoutId = getLayoutIdByResName(activity, layoutResName); + if (layoutId <= 0) { + Log.w("BigoAds-Unity", "Invalid res name: " + layoutResName); + return null; + } + View view = LayoutInflater.from(activity).inflate(layoutId, null, false); + if (!(view instanceof ViewGroup)) { + return view; + } + ViewGroup nativeView = (ViewGroup) view; + TextView titleView = findViewByIdName(nativeView, "native_title"); + TextView descriptionView = findViewByIdName(nativeView, "native_description"); + TextView warningView = findViewByIdName(nativeView, "native_warning"); + Button ctaButton = findViewByIdName(nativeView, "native_cta"); + MediaView mediaView = findViewByIdName(nativeView, "native_media_view"); + ImageView iconView = findViewByIdName(nativeView, "native_icon_view"); + AdOptionsView optionsView = findViewByIdName(nativeView, "native_option_view"); + + titleView.setTag(AdTag.TITLE); + descriptionView.setTag(AdTag.DESCRIPTION); + warningView.setTag(AdTag.WARNING); + ctaButton.setTag(AdTag.CALL_TO_ACTION); + + titleView.setText(nativeAd.getTitle()); + descriptionView.setText(nativeAd.getDescription()); + warningView.setText(nativeAd.getWarning()); + ctaButton.setText(nativeAd.getCallToAction()); + + List clickableViews = new ArrayList<>(); + clickableViews.add(titleView); + clickableViews.add(descriptionView); + clickableViews.add(ctaButton); + nativeAd.registerViewForInteraction(nativeView, mediaView, iconView, optionsView, clickableViews); + return nativeView; + } + + private static T findViewByIdName(ViewGroup parent, String name) { + Context context = parent.getContext(); + int id = context.getResources().getIdentifier(name, "id", context.getPackageName()); + return parent.findViewById(id); + } +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.java.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.java.meta new file mode 100644 index 00000000..ab4bd1d7 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdHelper.java.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: 0edf95022edcd4f9d8919629603eb5e1 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdInteractionCallback.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdInteractionCallback.cs new file mode 100644 index 00000000..37357171 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdInteractionCallback.cs @@ -0,0 +1,53 @@ +#if UNITY_ANDROID + +using System; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + public class AdInteractionCallback : AndroidJavaProxy + { + private readonly Action OnAdShowed; + protected readonly Action OnAdDismissed; + private readonly Action OnAdClicked; + private readonly Action OnAdError; + private const string ListenerName = AndroidPlatformTool.ClassPackage + ".api.AdInteractionListener"; + + public AdInteractionCallback(Action onAdShowed, Action onAdClicked, Action onAdDismissed, Action onAdError, + string listenerName = ListenerName) : base(listenerName) + { + OnAdShowed = onAdShowed; + OnAdDismissed = onAdDismissed; + OnAdClicked = onAdClicked; + OnAdError = onAdError; + } + + public void onAdImpression() + { + OnAdShowed?.Invoke(); + } + + public void onAdClosed() + { + OnAdDismissed?.Invoke(); + } + + public void onAdClicked() + { + OnAdClicked?.Invoke(); + } + + public void onAdError(AndroidJavaObject error) + { + var code = error.Call("getCode"); + var message = error.Call("getMessage"); + OnAdError?.Invoke(code, message); + } + + public void onAdOpened() + { + + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdInteractionCallback.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdInteractionCallback.cs.meta new file mode 100644 index 00000000..9524d94a --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdInteractionCallback.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: eeaf0303131624578b3997f9db6cb014 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdLoadCallback.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdLoadCallback.cs new file mode 100644 index 00000000..96565b4f --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdLoadCallback.cs @@ -0,0 +1,33 @@ +#if UNITY_ANDROID +using System; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + public class AdLoadCallback : AndroidJavaProxy + { + private readonly Action onLoad; + private readonly Action onLoadFailed; + + public AdLoadCallback(Action onLoad, Action onLoadFailed) : base( + AndroidPlatformTool.ClassPackage + ".api.AdLoadListener") + { + this.onLoad = onLoad; + this.onLoadFailed = onLoadFailed; + } + + public void onError(AndroidJavaObject error) + { + var code = error.Call("getCode"); + var message = error.Call("getMessage"); + onLoadFailed?.Invoke(code, message); + } + + public void onAdLoaded(AndroidJavaObject ad) + { + onLoad?.Invoke(ad); + } + } + +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdLoadCallback.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdLoadCallback.cs.meta new file mode 100644 index 00000000..0fb8eef7 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AdLoadCallback.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b4d06d46018574b7bae1c9dc60ef6122 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidBannerAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidBannerAd.cs new file mode 100644 index 00000000..d5413077 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidBannerAd.cs @@ -0,0 +1,147 @@ +#if UNITY_ANDROID +using System; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + class AndroidBannerAd : IBannerAd + { + private const string BannerAdLoaderClassName = AndroidPlatformTool.ClassPackage + ".api.BannerAdLoader$Builder"; + private const string BannerAdRequestClassName = AndroidPlatformTool.ClassPackage + ".api.BannerAdRequest$Builder"; + private const string BannerSizeClassName = AndroidPlatformTool.ClassPackage + ".api.AdSize"; + private const string BannerBuildMethod = "build"; + private const string BannerAdLoaderBuildMethod = "withAdLoadListener"; + private const string BannerAdLoaderExtMethod = "withExt"; + + + private AndroidJavaObject BannerAd; + + public event Action OnLoad; + public event Action OnLoadFailed; + public event Action OnAdShowed; + public event Action OnAdClicked; + public event Action OnAdDismissed; + public event Action OnAdError; + + public AndroidBannerAd() + { + OnAdLoad += ((ad) => + { + BannerAd = ad; + OnLoad?.Invoke(); + }); + } + + private event Action OnAdLoad; + + public void Load(string slotId, BigoBannerRequest request) + { + if (request == null) + { + return; + } + var bannerLoaderBuilder = new AndroidJavaObject(BannerAdLoaderClassName); + bannerLoaderBuilder?.Call(BannerAdLoaderExtMethod, request.ExtraInfoJson); + bannerLoaderBuilder?.Call(BannerAdLoaderBuildMethod, new AdLoadCallback(OnAdLoad, OnLoadFailed)); + var bannerLoader = bannerLoaderBuilder?.Call(BannerBuildMethod); + + var bannerRequestBuilder = new AndroidJavaObject(BannerAdRequestClassName); + bannerRequestBuilder?.Call("withSlotId", slotId); + bannerRequestBuilder?.Call("withAge", request.Age); + bannerRequestBuilder?.Call("withGender", (int)(request.Gender)); + bannerRequestBuilder?.Call("withActivatedTime", request.ActivatedTime); + + var bannerSize = new AndroidJavaClass(BannerSizeClassName).GetStatic("BANNER"); + int width = request.Size.Width; + int height = request.Size.Height; + if (width == 300 && height == 250) { + bannerSize = new AndroidJavaClass(BannerSizeClassName).GetStatic("MEDIUM_RECTANGLE"); + } + AndroidJavaClass arrayClass = new AndroidJavaClass("java.lang.reflect.Array"); + AndroidJavaObject arrayObject = arrayClass.CallStatic("newInstance", new AndroidJavaClass(BannerSizeClassName), 1); + arrayClass.CallStatic("set", arrayObject, 0, bannerSize); + + bannerRequestBuilder?.Call("withAdSizes", arrayObject); + + var bannerRequest = bannerRequestBuilder?.Call(BannerBuildMethod); + + bannerLoader?.Call("loadAd", bannerRequest); + } + + public bool IsLoaded() + { + return BannerAd != null; + } + + public void Show() + { + BannerAd?.Call("setAdInteractionListener", new AdInteractionCallback(OnAdShowed, OnAdClicked, OnAdDismissed, OnAdError)); + AndroidPlatformTool.CallMethodOnMainThread(() => + { + AdHelper.ShowBannerAd(BannerAd); + }); + } + + public void Destroy() + { + //post to main + AdHelper.DestroyAd(BannerAd); + } + + public bool IsExpired() + { + + return BannerAd != null && BannerAd.Call("isExpired"); + } + + public void SetPosition(BigoPosition position) + { + AndroidPlatformTool.CallMethodOnMainThread(() => + { + AdHelper.ShowBannerAd(BannerAd, position); + }); + } + + public bool IsClientBidding() + { + if (BannerAd == null) return false; + AndroidJavaObject bid = BannerAd.Call("getBid"); + return bid != null; + } + + public string GetExtraInfo(string key) + { + if (BannerAd == null) return ""; + return BannerAd.Call("getExtraInfo", key); + } + + /// get price + public double getPrice() + { + if (BannerAd == null) return 0; + AndroidJavaObject bid = BannerAd.Call("getBid"); + return bid == null ? 0 : bid.Call("getPrice"); + } + + ///notify win + public void notifyWin(double secPrice, string secBidder) + { + if (BannerAd == null) return; + var secPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", secPrice); + BannerAd.Call("getBid")?.Call("notifyWin", secPriceDouble, secBidder); + } + + ///notify loss + public void notifyLoss(double firstPrice, string firstBidder, BGAdLossReason lossReason) + { + if (BannerAd == null) return; + var firstPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", firstPrice); + BannerAd.Call("getBid")?.Call("notifyLoss", firstPriceDouble, firstBidder, (int)lossReason); + } + + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidBannerAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidBannerAd.cs.meta new file mode 100644 index 00000000..133fd1f9 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidBannerAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 46ee6aacd6a2546ce8e23dd89e5d27d4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidClientFactory.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidClientFactory.cs new file mode 100644 index 00000000..45d6f261 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidClientFactory.cs @@ -0,0 +1,49 @@ +#if UNITY_ANDROID + +using BigoAds.Scripts.Common; + +namespace BigoAds.Scripts.Platforms.Android +{ + class AndroidClientFactory : IClientFactory + { + /// + /// + /// + /// + public ISDK BuildSDKClient() + { + return new BigoSdkClient(); + } + + public IBannerAd BuildBannerAdClient() + { + return new AndroidBannerAd(); + } + + public INativeAd BuildNativeAdClient() + { + return new AndroidNativeAd(); + } + + public IInterstitialAd BuildInterstitialAdClient() + { + return new AndroidInterstitialAd(); + } + + public IPopupAd BuildPopupAdClient() + { + return new AndroidPopupAd(); + } + + public ISplashAd BuildSplashAdClient() + { + return new AndroidSplashAd(); + } + + public IRewardedAd BuildRewardedAdClient() + { + return new AndroidRewardedAd(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidClientFactory.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidClientFactory.cs.meta new file mode 100644 index 00000000..8e800fb5 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidClientFactory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1809d4d3a8b034fa88284da804f66a71 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidInterstitialAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidInterstitialAd.cs new file mode 100644 index 00000000..0beed807 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidInterstitialAd.cs @@ -0,0 +1,124 @@ +#if UNITY_ANDROID +using System; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + class AndroidInterstitialAd : IInterstitialAd + { + private const string InterstitialAdLoaderClassName = AndroidPlatformTool.ClassPackage + ".api.InterstitialAdLoader$Builder"; + private const string InterstitialAdRequestClassName = AndroidPlatformTool.ClassPackage + ".api.InterstitialAdRequest$Builder"; + private const string InterstitialBuildMethod = "build"; + private const string InterstitialAdLoaderBuildMethod = "withAdLoadListener"; + private const string InterstitialAdLoaderExtMethod = "withExt"; + + private AndroidJavaObject InterstitialAd; + + public event Action OnLoad; + public event Action OnLoadFailed; + public event Action OnAdShowed; + public event Action OnAdClicked; + public event Action OnAdDismissed; + public event Action OnAdError; + + public AndroidInterstitialAd() + { + OnAdLoad += ((ad) => + { + InterstitialAd = ad; + OnLoad?.Invoke(); + }); + } + + private event Action OnAdLoad; + + public void Load(string slotId, BigoInterstitialRequest request) + { + if (request == null) + { + return; + } + var InterstitialLoaderBuilder = new AndroidJavaObject(InterstitialAdLoaderClassName); + InterstitialLoaderBuilder?.Call(InterstitialAdLoaderExtMethod, request.ExtraInfoJson); + InterstitialLoaderBuilder?.Call(InterstitialAdLoaderBuildMethod, new AdLoadCallback(OnAdLoad, OnLoadFailed)); + var InterstitialLoader = InterstitialLoaderBuilder?.Call(InterstitialBuildMethod); + + var InterstitialRequestBuilder = new AndroidJavaObject(InterstitialAdRequestClassName); + InterstitialRequestBuilder?.Call("withSlotId", slotId); + InterstitialRequestBuilder?.Call("withAge", request.Age); + InterstitialRequestBuilder?.Call("withGender", (int)(request.Gender)); + InterstitialRequestBuilder?.Call("withActivatedTime", request.ActivatedTime); + + var InterstitialRequest = InterstitialRequestBuilder?.Call(InterstitialBuildMethod); + + InterstitialLoader?.Call("loadAd", InterstitialRequest); + } + + public bool IsLoaded() + { + return InterstitialAd != null; + } + + public void Show() + { + InterstitialAd?.Call("setAdInteractionListener", new AdInteractionCallback(OnAdShowed, OnAdClicked, OnAdDismissed, OnAdError)); + AndroidPlatformTool.CallMethodOnMainThread(() => + { + InterstitialAd?.Call("show"); + }); + + } + + public void Destroy() + { + //post to main + AdHelper.DestroyAd(InterstitialAd); + } + + public bool IsExpired() + { + return InterstitialAd != null && InterstitialAd.Call("isExpired"); + } + + public bool IsClientBidding() + { + if (InterstitialAd == null) return false; + AndroidJavaObject bid = InterstitialAd.Call("getBid"); + return bid != null; + } + + public string GetExtraInfo(string key) + { + if (InterstitialAd == null) return ""; + return InterstitialAd.Call("getExtraInfo", key); + } + + /// get price + public double getPrice() + { + if (InterstitialAd == null) return 0; + AndroidJavaObject bid = InterstitialAd.Call("getBid"); + return bid == null ? 0 : bid.Call("getPrice"); + } + + ///notify win + public void notifyWin(double secPrice, string secBidder) + { + if (InterstitialAd == null) return; + var secPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", secPrice); + InterstitialAd.Call("getBid")?.Call("notifyWin", secPriceDouble, secBidder); + } + + ///notify loss + public void notifyLoss(double firstPrice, string firstBidder, BGAdLossReason lossReason) + { + if (InterstitialAd == null) return; + var firstPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", firstPrice); + InterstitialAd.Call("getBid")?.Call("notifyLoss", firstPriceDouble, firstBidder, (int)lossReason); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidInterstitialAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidInterstitialAd.cs.meta new file mode 100644 index 00000000..2218096e --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidInterstitialAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 087385bbddf0541e5be511be304caee8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidNativeAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidNativeAd.cs new file mode 100644 index 00000000..9cbd5a72 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidNativeAd.cs @@ -0,0 +1,133 @@ +#if UNITY_ANDROID +using System; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + class AndroidNativeAd : INativeAd + { + private const string NativeAdLoaderClassName = AndroidPlatformTool.ClassPackage + ".api.NativeAdLoader$Builder"; + private const string NativeAdRequestClassName = AndroidPlatformTool.ClassPackage + ".api.NativeAdRequest$Builder"; + private const string NativeBuildMethod = "build"; + private const string NativeAdLoaderBuildMethod = "withAdLoadListener"; + private const string NativeAdLoaderExtMethod = "withExt"; + + private AndroidJavaObject NativeAd; + + public event Action OnLoad; + public event Action OnLoadFailed; + public event Action OnAdShowed; + public event Action OnAdClicked; + public event Action OnAdDismissed; + public event Action OnAdError; + + public AndroidNativeAd() + { + OnAdLoad += ((ad) => + { + NativeAd = ad; + OnLoad?.Invoke(); + }); + } + + private event Action OnAdLoad; + + public void Load(string slotId, BigoNativeRequest request) + { + if (request == null) + { + return; + } + var nativeLoaderBuilder = new AndroidJavaObject(NativeAdLoaderClassName); + nativeLoaderBuilder?.Call(NativeAdLoaderExtMethod, request.ExtraInfoJson); + nativeLoaderBuilder?.Call(NativeAdLoaderBuildMethod, new AdLoadCallback(OnAdLoad, OnLoadFailed)); + var nativeLoader = nativeLoaderBuilder?.Call(NativeBuildMethod); + + var nativeRequestBuilder = new AndroidJavaObject(NativeAdRequestClassName); + nativeRequestBuilder?.Call("withSlotId", slotId); + nativeRequestBuilder?.Call("withAge", request.Age); + nativeRequestBuilder?.Call("withGender", (int)(request.Gender)); + nativeRequestBuilder?.Call("withActivatedTime", request.ActivatedTime); + + var nativeRequest = nativeRequestBuilder?.Call(NativeBuildMethod); + + nativeLoader?.Call("loadAd", nativeRequest); + } + + public bool IsLoaded() + { + return NativeAd != null; + } + + public void Show() + { + NativeAd?.Call("setAdInteractionListener", new AdInteractionCallback(OnAdShowed, OnAdClicked, OnAdDismissed, OnAdError)); + + AndroidPlatformTool.CallMethodOnMainThread(() => + { + AdHelper.ShowNativeAd(NativeAd); + }); + + } + + public void Destroy() + { + AdHelper.DestroyAd(NativeAd); + } + + public bool IsExpired() + { + + return NativeAd != null && NativeAd.Call("isExpired"); + } + + public void SetPosition(BigoPosition position) + { + AndroidPlatformTool.CallMethodOnMainThread(() => + { + AdHelper.ShowNativeAd(NativeAd, position); + }); + } + + public bool IsClientBidding() + { + if (NativeAd == null) return false; + AndroidJavaObject bid = NativeAd.Call("getBid"); + return bid != null; + } + + public string GetExtraInfo(string key) + { + if (NativeAd == null) return ""; + return NativeAd.Call("getExtraInfo", key); + } + + /// get price + public double getPrice() + { + if (NativeAd == null) return 0; + AndroidJavaObject bid = NativeAd.Call("getBid"); + return bid == null ? 0 : bid.Call("getPrice"); + } + + ///notify win + public void notifyWin(double secPrice, string secBidder) + { + if (NativeAd == null) return; + var secPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", secPrice); + NativeAd.Call("getBid")?.Call("notifyWin", secPriceDouble, secBidder); + } + + ///notify loss + public void notifyLoss(double firstPrice, string firstBidder, BGAdLossReason lossReason) + { + if (NativeAd == null) return; + var firstPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", firstPrice); + NativeAd.Call("getBid")?.Call("notifyLoss", firstPriceDouble, firstBidder, (int)lossReason); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidNativeAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidNativeAd.cs.meta new file mode 100644 index 00000000..0369f2d9 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidNativeAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 04dd9e8545a394cc0b0bd15cfe325045 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPlatformTool.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPlatformTool.cs new file mode 100644 index 00000000..208fcbb2 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPlatformTool.cs @@ -0,0 +1,101 @@ +#if UNITY_ANDROID + +using System; +using System.Collections.Generic; +using System.Text; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + internal static class AndroidPlatformTool + { + public const string ClassPackage = "sg.bigo.ads"; + private const string UnityPlayerClassName = "com.unity3d.player.UnityPlayer"; + private const string CurrentActivityMethod = "currentActivity"; + private const string ResourceUtilClassName = ClassPackage + ".ResourceUtil"; + private const string AdConfigClassName = ClassPackage + ".api.AdConfig$Builder"; + + public static AndroidJavaObject GetGameActivity() + { + return new AndroidJavaClass(UnityPlayerClassName).GetStatic(CurrentActivityMethod); + } + + public static AndroidJavaObject GetBigoConfig(BigoAdConfig config) + { + var builder = new AndroidJavaObject(AdConfigClassName); + if (config != null) + { + void CallNativeFunction(string methodName, T arg) + { + builder.Call(methodName, arg); + } + + if (!string.IsNullOrEmpty(config.AppId)) + { + CallNativeFunction("setAppId", config.AppId); + } + + if (config.DebugLog) //default value is false + { + Debug.Log("set debug true"); + CallNativeFunction("setDebug", true); + } + + if (!string.IsNullOrEmpty(config.Channel)) + { + CallNativeFunction("setChannel", config.Channel); + } + + if (config.Age > 0) + { + CallNativeFunction("setAge", config.Age); + } + + if (config.Gender > 0) + { + CallNativeFunction("setGender", config.Gender); + } + + if (config.ActivatedTime > 0) + { + CallNativeFunction("setActivatedTime", config.ActivatedTime); + } + + foreach (KeyValuePair item in config.ExtraDictionary) + { + Debug.Log($"bigo sdk config extra:" + item.Key + "=" + item.Value); + builder.Call("addExtra", item.Key, item.Value); + } + } + + return builder.Call("build"); + } + + public static AndroidJavaObject GetAdRequest(BigoRequest request) + { + switch (request) + { + case BigoBannerRequest _: + break; + case BigoNativeRequest _: + break; + case BigoSplashRequest _: + break; + case BigoInterstitialRequest _: + break; + case BigoRewardedRequest _: + break; + } + + return null; + } + + public static void CallMethodOnMainThread(Action task) + { + GetGameActivity()?.Call("runOnUiThread", new AndroidJavaRunnable(task)); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPlatformTool.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPlatformTool.cs.meta new file mode 100644 index 00000000..f643aef5 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPlatformTool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ec73d6fa8edaa4c619d96f6db2789dd1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPopupAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPopupAd.cs new file mode 100644 index 00000000..81382d75 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPopupAd.cs @@ -0,0 +1,124 @@ +#if UNITY_ANDROID +using System; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + class AndroidPopupAd : IPopupAd + { + private const string PopupAdLoaderClassName = AndroidPlatformTool.ClassPackage + ".api.popup.PopupAdLoader$Builder"; + private const string PopupAdRequestClassName = AndroidPlatformTool.ClassPackage + ".api.popup.PopupAdRequest$Builder"; + private const string PopupBuildMethod = "build"; + private const string PopupAdLoaderBuildMethod = "withAdLoadListener"; + private const string PopupAdLoaderExtMethod = "withExt"; + + private AndroidJavaObject PopupAd; + + public event Action OnLoad; + public event Action OnLoadFailed; + public event Action OnAdShowed; + public event Action OnAdClicked; + public event Action OnAdDismissed; + public event Action OnAdError; + + public AndroidPopupAd() + { + OnAdLoad += ((ad) => + { + PopupAd = ad; + OnLoad?.Invoke(); + }); + } + + private event Action OnAdLoad; + + public void Load(string slotId, BigoPopupRequest request) + { + if (request == null) + { + return; + } + var PopupLoaderBuilder = new AndroidJavaObject(PopupAdLoaderClassName); + PopupLoaderBuilder?.Call(PopupAdLoaderExtMethod, request.ExtraInfoJson); + PopupLoaderBuilder?.Call(PopupAdLoaderBuildMethod, new AdLoadCallback(OnAdLoad, OnLoadFailed)); + var PopupLoader = PopupLoaderBuilder?.Call(PopupBuildMethod); + + var PopupRequestBuilder = new AndroidJavaObject(PopupAdRequestClassName); + PopupRequestBuilder?.Call("withSlotId", slotId); + PopupRequestBuilder?.Call("withAge", request.Age); + PopupRequestBuilder?.Call("withGender", (int)(request.Gender)); + PopupRequestBuilder?.Call("withActivatedTime", request.ActivatedTime); + + var PopupRequest = PopupRequestBuilder?.Call(PopupBuildMethod); + + PopupLoader?.Call("loadAd", PopupRequest); + } + + public bool IsLoaded() + { + return PopupAd != null; + } + + public void Show() + { + PopupAd?.Call("setAdInteractionListener", new AdInteractionCallback(OnAdShowed, OnAdClicked, OnAdDismissed, OnAdError)); + AndroidPlatformTool.CallMethodOnMainThread(() => + { + PopupAd?.Call("show"); + }); + + } + + public void Destroy() + { + //post to main + AdHelper.DestroyAd(PopupAd); + } + + public bool IsExpired() + { + return PopupAd != null && PopupAd.Call("isExpired"); + } + + public bool IsClientBidding() + { + if (PopupAd == null) return false; + AndroidJavaObject bid = PopupAd.Call("getBid"); + return bid != null; + } + + public string GetExtraInfo(string key) + { + if (PopupAd == null) return ""; + return PopupAd.Call("getExtraInfo", key); + } + + /// get price + public double getPrice() + { + if (PopupAd == null) return 0; + AndroidJavaObject bid = PopupAd.Call("getBid"); + return bid == null ? 0 : bid.Call("getPrice"); + } + + ///notify win + public void notifyWin(double secPrice, string secBidder) + { + if (PopupAd == null) return; + var secPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", secPrice); + PopupAd.Call("getBid")?.Call("notifyWin", secPriceDouble, secBidder); + } + + ///notify loss + public void notifyLoss(double firstPrice, string firstBidder, BGAdLossReason lossReason) + { + if (PopupAd == null) return; + var firstPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", firstPrice); + PopupAd.Call("getBid")?.Call("notifyLoss", firstPriceDouble, firstBidder, (int)lossReason); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPopupAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPopupAd.cs.meta new file mode 100644 index 00000000..595df406 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidPopupAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 34628c2993e174780bc5786dff90c900 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidRewardedAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidRewardedAd.cs new file mode 100644 index 00000000..3e2f2045 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidRewardedAd.cs @@ -0,0 +1,125 @@ +#if UNITY_ANDROID +using System; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + class AndroidRewardedAd : IRewardedAd + { + private const string RewardedAdLoaderClassName = AndroidPlatformTool.ClassPackage + ".api.RewardVideoAdLoader$Builder"; + private const string RewardedAdRequestClassName = AndroidPlatformTool.ClassPackage + ".api.RewardVideoAdRequest$Builder"; + private const string RewardedAdBuildMethod = "build"; + private const string RewardedAdLoaderBuildMethod = "withAdLoadListener"; + private const string RewardedAdLoaderExtMethod = "withExt"; + + private AndroidJavaObject RewardedAd; + + public event Action OnLoad; + public event Action OnLoadFailed; + public event Action OnAdShowed; + public event Action OnAdClicked; + public event Action OnAdDismissed; + public event Action OnAdError; + public event Action OnUserEarnedReward; + + public AndroidRewardedAd() + { + OnAdLoad += ((ad) => + { + RewardedAd = ad; + OnLoad?.Invoke(); + }); + } + + private event Action OnAdLoad; + + public void Load(string slotId, BigoRewardedRequest request) + { + if (request == null) + { + return; + } + var rewardedAdLoaderBuilder = new AndroidJavaObject(RewardedAdLoaderClassName); + rewardedAdLoaderBuilder?.Call(RewardedAdLoaderExtMethod, request.ExtraInfoJson); + rewardedAdLoaderBuilder?.Call(RewardedAdLoaderBuildMethod, new AdLoadCallback(OnAdLoad, OnLoadFailed)); + var rewardedAdLoader = rewardedAdLoaderBuilder?.Call(RewardedAdBuildMethod); + + var rewardedAdRequestBuilder = new AndroidJavaObject(RewardedAdRequestClassName); + rewardedAdRequestBuilder?.Call("withSlotId", slotId); + rewardedAdRequestBuilder?.Call("withAge", request.Age); + rewardedAdRequestBuilder?.Call("withGender", (int)(request.Gender)); + rewardedAdRequestBuilder?.Call("withActivatedTime", request.ActivatedTime); + + var RewardedAdRequest = rewardedAdRequestBuilder?.Call(RewardedAdBuildMethod); + + rewardedAdLoader?.Call("loadAd", RewardedAdRequest); + } + + public bool IsLoaded() + { + return RewardedAd != null; + } + + public void Show() + { + RewardedAd?.Call("setAdInteractionListener", new RewardedAdInteractionCallback(OnAdShowed, OnAdClicked, OnAdDismissed, OnAdError, OnUserEarnedReward)); + AndroidPlatformTool.CallMethodOnMainThread(() => + { + RewardedAd?.Call("show"); + }); + + } + + public void Destroy() + { + //post to main + AdHelper.DestroyAd(RewardedAd); + } + + public bool IsExpired() + { + return RewardedAd != null && RewardedAd.Call("isExpired"); + } + + public bool IsClientBidding() + { + if (RewardedAd == null) return false; + AndroidJavaObject bid = RewardedAd.Call("getBid"); + return bid != null; + } + + public string GetExtraInfo(string key) + { + if (RewardedAd == null) return ""; + return RewardedAd.Call("getExtraInfo", key); + } + + /// get price + public double getPrice() + { + if (RewardedAd == null) return 0; + AndroidJavaObject bid = RewardedAd.Call("getBid"); + return bid == null ? 0 : bid.Call("getPrice"); + } + + ///notify win + public void notifyWin(double secPrice, string secBidder) + { + if (RewardedAd == null) return; + var secPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", secPrice); + RewardedAd.Call("getBid")?.Call("notifyWin", secPriceDouble, secBidder); + } + + ///notify loss + public void notifyLoss(double firstPrice, string firstBidder, BGAdLossReason lossReason) + { + if (RewardedAd == null) return; + var firstPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", firstPrice); + RewardedAd.Call("getBid")?.Call("notifyLoss", firstPriceDouble, firstBidder, (int)lossReason); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidRewardedAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidRewardedAd.cs.meta new file mode 100644 index 00000000..d075733e --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidRewardedAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6bca6ddceb592449c9606175e8f5f77e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidSplashAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidSplashAd.cs new file mode 100644 index 00000000..ae9afcea --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidSplashAd.cs @@ -0,0 +1,124 @@ +#if UNITY_ANDROID +using System; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + class AndroidSplashAd : ISplashAd + { + private const string SplashAdLoaderClassName = AndroidPlatformTool.ClassPackage + ".api.SplashAdLoader$Builder"; + private const string SplashAdRequestClassName = AndroidPlatformTool.ClassPackage + ".api.SplashAdRequest$Builder"; + private const string SplashBuildMethod = "build"; + private const string SplashAdLoaderBuildMethod = "withAdLoadListener"; + private const string SplashAdLoaderExtMethod = "withExt"; + + private AndroidJavaObject SplashAd; + + public event Action OnLoad; + public event Action OnLoadFailed; + public event Action OnAdShowed; + public event Action OnAdClicked; + public event Action OnAdDismissed; + public event Action OnAdError; + + public AndroidSplashAd() + { + OnAdLoad += ((ad) => + { + SplashAd = ad; + OnLoad?.Invoke(); + }); + } + + private event Action OnAdLoad; + + public void Load(string slotId, BigoSplashRequest request) + { + if (request == null) + { + return; + } + var SplashLoaderBuilder = new AndroidJavaObject(SplashAdLoaderClassName); + SplashLoaderBuilder?.Call(SplashAdLoaderExtMethod, request.ExtraInfoJson); + SplashLoaderBuilder?.Call(SplashAdLoaderBuildMethod, new AdLoadCallback(OnAdLoad, OnLoadFailed)); + var SplashLoader = SplashLoaderBuilder?.Call(SplashBuildMethod); + + var SplashRequestBuilder = new AndroidJavaObject(SplashAdRequestClassName); + SplashRequestBuilder?.Call("withSlotId", slotId); + SplashRequestBuilder?.Call("withAge", request.Age); + SplashRequestBuilder?.Call("withGender", (int)(request.Gender)); + SplashRequestBuilder?.Call("withActivatedTime", request.ActivatedTime); + + var SplashRequest = SplashRequestBuilder?.Call(SplashBuildMethod); + + SplashLoader?.Call("loadAd", SplashRequest); + } + + public bool IsLoaded() + { + return SplashAd != null; + } + + public void Show() + { + SplashAd?.Call("setAdInteractionListener", new SplashAdInteractionCallback(OnAdShowed, OnAdClicked, OnAdDismissed, OnAdError)); + AndroidPlatformTool.CallMethodOnMainThread(() => + { + SplashAd?.Call("show"); + }); + + } + + public void Destroy() + { + //post to main + AdHelper.DestroyAd(SplashAd); + } + + public bool IsExpired() + { + return SplashAd != null && SplashAd.Call("isExpired"); + } + + public bool IsClientBidding() + { + if (SplashAd == null) return false; + AndroidJavaObject bid = SplashAd.Call("getBid"); + return bid != null; + } + + public string GetExtraInfo(string key) + { + if (SplashAd == null) return ""; + return SplashAd.Call("getExtraInfo", key); + } + + /// get price + public double getPrice() + { + if (SplashAd == null) return 0; + AndroidJavaObject bid = SplashAd.Call("getBid"); + return bid == null ? 0 : bid.Call("getPrice"); + } + + ///notify win + public void notifyWin(double secPrice, string secBidder) + { + if (SplashAd == null) return; + var secPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", secPrice); + SplashAd.Call("getBid")?.Call("notifyWin", secPriceDouble, secBidder); + } + + ///notify loss + public void notifyLoss(double firstPrice, string firstBidder, BGAdLossReason lossReason) + { + if (SplashAd == null) return; + var firstPriceDouble = new AndroidJavaClass("java.lang.Double").CallStatic ("valueOf", firstPrice); + SplashAd.Call("getBid")?.Call("notifyLoss", firstPriceDouble, firstBidder, (int)lossReason); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidSplashAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidSplashAd.cs.meta new file mode 100644 index 00000000..23d0ec24 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/AndroidSplashAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cdf1866c87531416d8159aae83c6e470 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/BigoSdkClient.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/BigoSdkClient.cs new file mode 100644 index 00000000..98acbc9f --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/BigoSdkClient.cs @@ -0,0 +1,99 @@ +#if UNITY_ANDROID + +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Common; +using UnityEngine; +using BigoAds.Scripts.Api.Constant; + +namespace BigoAds.Scripts.Platforms.Android +{ + class BigoSdkClient : ISDK + { + private const string SDKClientClassName = AndroidPlatformTool.ClassPackage + ".BigoAdSdk"; + private const string InitMethod = "initialize"; + private const string InitSuccessMethod = "isInitialized"; + private const string SDKVersionMethod = "getSDKVersion"; + private const string InitListenerInterfaceName = AndroidPlatformTool.ClassPackage + ".BigoAdSdk$InitListener"; + private const string ConsentOptionsClassName = AndroidPlatformTool.ClassPackage + ".ConsentOptions"; + + + public void Init(BigoAdConfig config, BigoAdSdk.InitResultDelegate initResultDelegate) + { + InvokeNativeMethod(InitMethod, AndroidPlatformTool.GetGameActivity(), + AndroidPlatformTool.GetBigoConfig(config), + new InitCallBack(initResultDelegate)); + } + + public bool IsInitSuccess() + { + return InvokeNativeMethod(InitSuccessMethod); + } + + public string GetSDKVersion() + { + return InvokeNativeMethod("getSDKVersion"); + } + + public string GetSDKVersionName() + { + return InvokeNativeMethod("getSDKVersionName"); + } + + public void SetUserConsent(ConsentOptions option, bool consent) + { + var clazz = new AndroidJavaClass(ConsentOptionsClassName); + AndroidJavaObject obj = null; + switch (option) + { + case ConsentOptions.GDPR: + obj = clazz.GetStatic("GDPR"); + break; + case ConsentOptions.CCPA: + obj = clazz.GetStatic("CCPA"); + break; + case ConsentOptions.LGPD: + obj = clazz.GetStatic("LGPD"); + break; + case ConsentOptions.COPPA: + obj = clazz.GetStatic("COPPA"); + break; + default: + break; + } + + InvokeNativeMethod("setUserConsent", AndroidPlatformTool.GetGameActivity(), obj, consent); + } + + public void AddExtraHost(string country, string host) + { + InvokeNativeMethod("addExtraHost", country, host); + } + + + private static void InvokeNativeMethod(string methodName, params object[] args) + { + new AndroidJavaClass(SDKClientClassName).CallStatic(methodName, args); + } + + private static T InvokeNativeMethod(string methodName, params object[] args) + { + return new AndroidJavaClass(SDKClientClassName).CallStatic(methodName, args); + } + + private class InitCallBack : AndroidJavaProxy + { + private event BigoAdSdk.InitResultDelegate InitListener; + + public InitCallBack(BigoAdSdk.InitResultDelegate initResultDelegate) : base(InitListenerInterfaceName) + { + this.InitListener = initResultDelegate; + } + + public void onInitialized() + { + InitListener?.Invoke(); + } + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/BigoSdkClient.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/BigoSdkClient.cs.meta new file mode 100644 index 00000000..aa9e2eee --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/BigoSdkClient.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a768d78eefdf84ba4bcbfa8077fe6a62 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/RewardedAdInteractionCallback.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/RewardedAdInteractionCallback.cs new file mode 100644 index 00000000..6774e3e4 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/RewardedAdInteractionCallback.cs @@ -0,0 +1,27 @@ +#if UNITY_ANDROID +using System; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + public class RewardedAdInteractionCallback : AdInteractionCallback + { + private event Action OnUserEarnedReward; + + private const string ListenerName = AndroidPlatformTool.ClassPackage + ".api.RewardAdInteractionListener"; + + public RewardedAdInteractionCallback(Action onAdShowed, Action onAdClicked, Action onAdDismissed, Action onAdError, + Action userEarnedReward) : base( + onAdShowed, onAdClicked, onAdDismissed, onAdError, ListenerName) + { + OnUserEarnedReward = userEarnedReward; + } + + public void onAdRewarded() + { + OnUserEarnedReward?.Invoke(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/RewardedAdInteractionCallback.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/RewardedAdInteractionCallback.cs.meta new file mode 100644 index 00000000..6645f1d4 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/RewardedAdInteractionCallback.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 679833dea127f43cebbb043ff2a1c2f2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/SplashAdInteractionCallback.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/SplashAdInteractionCallback.cs new file mode 100644 index 00000000..854829d2 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/SplashAdInteractionCallback.cs @@ -0,0 +1,29 @@ +#if UNITY_ANDROID +using System; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.Android +{ + public class SplashAdInteractionCallback : AdInteractionCallback + { + private const string ListenerName = AndroidPlatformTool.ClassPackage + ".api.SplashAdInteractionListener"; + + public SplashAdInteractionCallback(Action onAdShowed, Action onAdClicked, Action onAdDismissed, Action onAdError) : base( + onAdShowed, onAdClicked, onAdDismissed, onAdError, ListenerName) + { + + } + + public void onAdSkipped() + { + + } + + public void onAdFinished() + { + + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/SplashAdInteractionCallback.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/SplashAdInteractionCallback.cs.meta new file mode 100644 index 00000000..8e4456fa --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/Android/SplashAdInteractionCallback.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 02f23872f0193427487d67e2373c8e41 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS.meta new file mode 100644 index 00000000..d66d3eca --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cc250d638e6404797a830f56c2b7e40e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter.meta new file mode 100644 index 00000000..0abfc3e4 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e1921a1c99c3c47ae95c0103939e6ffa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd.meta new file mode 100644 index 00000000..1935887f --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7eed132e5c97a47718143d7e692cafda +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner.meta new file mode 100644 index 00000000..3b590a46 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aaf596d8ee1bd409e831a2c8c6919580 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.cs new file mode 100644 index 00000000..3fb5612b --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.cs @@ -0,0 +1,112 @@ +#if UNITY_IOS +using System; +using System.Threading; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd +{ + using System; + using BigoAds.Scripts.Api; + using BigoAds.Scripts.Common; + using BigoAds.Scripts.Platforms.iOS; + using System.Runtime.InteropServices; + public class BigoUnityBannerAd: BigoIOSBaseAd, IBannerAd + { + private BigoBannerRequest bannerRequest; + //TODO:线程问题需要考虑下 + public void Load(string slotId, BigoBannerRequest request) + { + bannerRequest = request; + adType = 2; + this.unityAdPtr = (IntPtr)GCHandle.Alloc (this); + IntPtr ptr = this.unityAdPtr; + + int width = request.Size.Width; + int height = request.Size.Height; + + int x = CalculateMiddleX(width); + int y = CalculatePositionY(request.Position,height); + + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"calculate-origin:{x},{y}-size:{width},{height}"); + BigoIOS_loadBannerAdData(ptr, + slotId, + request.ToJson(), + x, + y, + width, + height, + cs_adDidLoadCallback, + cs_adLoadFailCallBack, + cs_adDidShowCallback, + cs_adDidClickCallback, + cs_adDidDismissCallback, + cs_adDidErrorCallBack + ); + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"request.position:{request.Position},slotId:{slotId}"); + } + + private int CalculatePositionY(BigoPosition position, int bannerHeight) + { + int screenHeight = BigoIOS_getScreenHeight(); + float y = BigoIOS_getScreenSafeTop(); + if (position == BigoPosition.Middle) + { + y = (float)((screenHeight - bannerHeight) * 0.5); + } + else if (position == BigoPosition.Bottom) + { + y = (float)(screenHeight - bannerHeight - BigoIOS_getScreenSafeBottom()); + } + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"position:{position},screenHeight:{screenHeight}-y:{y}"); + return (int)y; + } + + private int CalculateMiddleX(int bannerWidth) + { + int screenWidth = BigoIOS_getScreenWidth(); + int x = (int)((screenWidth - bannerWidth) * 0.5); + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"screenWidth:{screenWidth}-x:{x}"); + return x; + } + + public void SetPosition(BigoPosition position) + { + int x = CalculateMiddleX(bannerRequest.Size.Width); + int y = CalculatePositionY(position, bannerRequest.Size.Height); + BigoIOS_SetBannerAdPosition(unityAdPtr,x,y); + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"position-{position}"); + } + //MARK: c# - oc + [DllImport("__Internal")] + static extern void BigoIOS_loadBannerAdData(IntPtr unityAdPtr, + string slotId, + string requestJson, + int x, + int y, + int width, + int height, + adDidLoadCallback_delegate successCallback, + adLoadFailCallBack_delegate failCallback, + adDidShowCallback_delegate showCallback, + adDidClickCallback_delegate clickCallback, + adDidDismissCallback_delegate dismissCallback, + adDidErrorCallback_delegate adErrorCallback + ); + + [DllImport("__Internal")] + static extern void BigoIOS_SetBannerAdPosition(IntPtr unityAdPtr, int x, int y); + + [DllImport("__Internal")] + static extern int BigoIOS_getScreenWidth(); + [DllImport("__Internal")] + static extern int BigoIOS_getScreenHeight(); + [DllImport("__Internal")] + static extern int BigoIOS_getScreenSafeTop(); + [DllImport("__Internal")] + static extern int BigoIOS_getScreenSafeBottom(); + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.cs.meta new file mode 100644 index 00000000..2928e7d7 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1f3106d1522ac4b95a8f73c101387f8a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.h new file mode 100644 index 00000000..006c0164 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.h @@ -0,0 +1,24 @@ +#import "BigoUnityBaseAdHandler.h" + +extern "C" { + + //load banner Ad + void BigoIOS_loadBannerAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + int x, + int y, + int width, + int height, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback + ); + //show banner ad + void BigoIOS_showBannerAd(UnityAd unityAd); + void BigoIOS_SetBannerAdPosition(UnityAd unityAd,int x, int y); + void BigoIOS_removeBannerView(UnityAd unityAd); +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.h.meta new file mode 100644 index 00000000..d82d6036 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: a86c122698a834a0e868b3d38d576442 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.mm new file mode 100644 index 00000000..a2ff068a --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.mm @@ -0,0 +1,133 @@ +#import +#import "UnityAppController.h" +#import "BigoUnityBaseAdHandler.h" +#import "BigoUnityAdapterTools.h" +#import "BigoUnityAdHandlerManager.h" + +extern "C"{ + + +int BigoIOS_getScreenWidth () { + __block int width = 0; + BigoIOS_dispatchSyncMainQueue(^{ + UIViewController *vc = GetAppController().rootViewController; + width = (int)vc.view.frame.size.width; + }); + return width; +} + +int BigoIOS_getScreenHeight () { + __block int height = 0; + BigoIOS_dispatchSyncMainQueue(^{ + UIViewController *vc = GetAppController().rootViewController; + height = (int)vc.view.frame.size.height; + }); + return height; +} + +int BigoIOS_getScreenSafeBottom() { + __block int bottom = 0; + BigoIOS_dispatchSyncMainQueue(^{ + UIViewController *vc = GetAppController().rootViewController; + bottom = (int)vc.view.safeAreaInsets.bottom; + }); + return bottom; +} + +int BigoIOS_getScreenSafeTop() { + __block int top = 0; + BigoIOS_dispatchSyncMainQueue(^{ + UIViewController *vc = GetAppController().rootViewController; + top = (int)vc.view.safeAreaInsets.top; + }); + return top; +} + +//load Banner ad +void BigoIOS_loadBannerAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + int x, + int y, + int width, + int height, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback + ) { + BigoIOS_dispatchSyncMainQueue(^{ + BigoAdSize *size = BigoAdSize.BANNER; + if (width == 300 && height == 250) { + size = BigoAdSize.MEDIUM_RECTANGLE; + } + NSDictionary *requestDict = BigoIOS_requestJsonObjectFromJsonString(requestJson); + BigoUnityBannerAdHandler *adHandler = [[BigoUnityBannerAdHandler alloc] init]; + BigoBannerAdRequest *request = [[BigoBannerAdRequest alloc] initWithSlotId:BigoIOS_transformNSStringForm(slotId) adSizes:@[size]]; + request.age = [requestDict[@"age"] intValue]; + request.gender = (BigoAdGender)[requestDict[@"gender"] intValue]; + request.activatedTime = [requestDict[@"activatedTime"] longLongValue]; + BigoBannerAdLoader *adLoader = [[BigoBannerAdLoader alloc] initWithBannerAdLoaderDelegate:adHandler]; + adLoader.ext = requestDict[@"extraInfo"]; + adHandler.adLoader = adLoader; + adHandler.unityAd = unityAd; + adHandler.showCallback = showCallback; + adHandler.clickCallback = clickCallback; + adHandler.dismissCallback = dismissCallback; + adHandler.adErrorCallback = adErrorCallback; + adHandler.successCallback = successCallback; + adHandler.failCallback = failCallback; + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + [BigoUnityAdHandlerManager saveAdHandler:adHandler withKey:unityAdKey]; + [adLoader loadAd:request]; + }); + +} + +BigoUnityBannerAdHandler* BigoIOS_getBannerAdHandler(UnityAd unityAd) { + if (!unityAd) return nil; + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + BigoUnityBannerAdHandler *handler = (BigoUnityBannerAdHandler*)[BigoUnityAdHandlerManager handlerWithKey:unityAdKey]; + if (!handler || ![handler isMemberOfClass:[BigoUnityBannerAdHandler class]]) { + return nil; + } + return handler; +} + +void BigoIOS_showBannerAd(UnityAd unityAd) { + BigoUnityBannerAdHandler *handler = BigoIOS_getBannerAdHandler(unityAd); + if (!handler) return; + BigoIOS_dispatchSyncMainQueue(^{ + UIViewController *vc = GetAppController().rootViewController; + BigoBannerAd *ad = (BigoBannerAd *)handler.ad; + [vc.view addSubview:ad.adView]; + }); +} + +void BigoIOS_SetBannerAdPosition(UnityAd unityAd,int x, int y) { + BigoUnityBannerAdHandler *handler = BigoIOS_getBannerAdHandler(unityAd); + if (!handler) return; + + BigoIOS_dispatchSyncMainQueue(^{ + BigoBannerAd *ad = (BigoBannerAd *)handler.ad; + CGRect frame = ad.adView.frame; + frame.origin.x = x; + frame.origin.y = y; + ad.adView.frame = frame; + }); +} + +void BigoIOS_removeBannerView(UnityAd unityAd) { + BigoUnityBannerAdHandler *handler = BigoIOS_getBannerAdHandler(unityAd); + if (!handler) return; + + BigoIOS_dispatchSyncMainQueue(^{ + BigoBannerAd *ad = (BigoBannerAd *)handler.ad; + [ad.adView removeFromSuperview]; + }); +} + +} + diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.mm.meta new file mode 100644 index 00000000..7b0acc0c --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Banner/BigoUnityBannerAd.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: fd1772b6ab58f4e74ac7e89d3fd471c3 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.cs new file mode 100644 index 00000000..5ff22ccf --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.cs @@ -0,0 +1,265 @@ +#if UNITY_IOS + +using System.Collections.Generic; +using AOT; +using UnityEngine; +using BigoAds.Scripts.Api.Constant; + +namespace BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd +{ + using System; + using BigoAds.Scripts.Api; + using BigoAds.Scripts.Common; + using BigoAds.Scripts.Platforms.iOS; + using System.Runtime.InteropServices; + public class BigoIOSBaseAd : IBigoAd + { + public event Action OnLoad; + public event Action OnLoadFailed; + public event Action OnAdShowed; + public event Action OnAdClicked; + public event Action OnAdDismissed; + public event Action OnAdError; + public void Load(string slotId, BigoRequest request) + { + + } + + protected void LoadAdData(string slotId, BigoRequest request) { + this.unityAdPtr = (IntPtr)GCHandle.Alloc (this); + IntPtr ptr = this.unityAdPtr; + + BigoIOS_loadAdData(adType, + ptr, + slotId, + request.ToJson(), + cs_adDidLoadCallback, + cs_adLoadFailCallBack, + cs_adDidShowCallback, + cs_adDidClickCallback, + cs_adDidDismissCallback, + cs_adDidErrorCallBack + ); + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"slotId:{slotId},request{request}"); + } + + public bool IsLoaded() + { + return bigoAdLoaded; + } + + public virtual void Show() + { + LOGWithMessage("Show"); + BigoIOS_showAd(adType,this.unityAdPtr); + } + + public virtual bool IsExpired() + { + return BigoIOS_IsExpired(unityAdPtr); + } + + public void Destroy() + { + BigoIOS_destroyAd(adType,unityAdPtr); + if (unityAdPtr != IntPtr.Zero) + { + GCHandle unityAdhandle = (GCHandle)this.unityAdPtr; + unityAdhandle.Free(); + } + unityAdPtr = IntPtr.Zero; + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"unityPtr:{unityAdPtr}"); + } + + public bool IsClientBidding() + { + return BigoIOS_IsClientBidding(unityAdPtr); + } + + public string GetExtraInfo(String key) + { + //todo + return ""; + } + + /// get price + public double getPrice() + { + return BigoIOS_GetPrice(unityAdPtr); + } + + ///notify win + public void notifyWin(double secPrice, string secBidder) + { + BigoIOS_NotifyWin(unityAdPtr, secPrice, secBidder); + } + + ///notify loss + public void notifyLoss(double firstPrice, string firstBidder, BGAdLossReason lossReason) + { + BigoIOS_NotifyLoss(unityAdPtr, firstPrice, firstBidder, (int)lossReason); + } + + protected void LOGWithMessage(string method) + { + LOGWithMessage(method,string.Empty); + } + protected void LOGWithMessage(string method,string msg) + { + //native = 1, banner = 2, interstitial = 3, rewarded = 4, appOpen = 5 + int adtype = adType; + string adTypeString = "unknown"; + if (adtype == 1) + { + adTypeString = "native"; + } + else if (adtype == 2) + { + adTypeString = "banner"; + } + else if (adtype == 3) + { + adTypeString = "interstitial"; + } + else if (adtype == 4) + { + adTypeString = "rewarded"; + } + else if (adtype == 5) + { + adTypeString = "appOpen"; + } + + //System.Reflection.MethodBase.GetCurrentMethod()?.Name + Type classType = this.GetType(); + string className = $"{adTypeString}-{classType.Name}"; + BigoUnityTools.LOGWithMessage(className,method,msg); + } + + protected static BigoIOSBaseAd GetUnityAd(IntPtr unityAdPtr) + { + GCHandle handle = (GCHandle) unityAdPtr; + BigoIOSBaseAd unityAd = handle.Target as BigoIOSBaseAd; + // handle.Free (); + return unityAd; + } + + protected int adType = 0; + private bool bigoAdLoaded = false; + protected IntPtr unityAdPtr = IntPtr.Zero; + //MARK: c --> oc + [DllImport("__Internal")] + static extern void BigoIOS_loadAdData(int adType, + IntPtr unityAdPtr, + string slotId, + string requestJson, + adDidLoadCallback_delegate successCallback, + adLoadFailCallBack_delegate failCallback, + adDidShowCallback_delegate showCallback, + adDidClickCallback_delegate clickCallback, + adDidDismissCallback_delegate dismissCallback, + adDidErrorCallback_delegate adErrorCallback); + [DllImport("__Internal")] + static extern void BigoIOS_showAd(int adType,IntPtr unityAdPtr); + + [DllImport("__Internal")] + static extern void BigoIOS_destroyAd(int adType, IntPtr unityAdPtr); + + [DllImport("__Internal")] + static extern bool BigoIOS_IsExpired(IntPtr unityAdPtr); + + [DllImport("__Internal")] + static extern bool BigoIOS_IsClientBidding(IntPtr unityAdPtr); + + [DllImport("__Internal")] + static extern double BigoIOS_GetPrice(IntPtr unityAdPtr); + + [DllImport("__Internal")] + static extern void BigoIOS_NotifyWin(IntPtr unityAdPtr, double secPrice, string secBidder); + + [DllImport("__Internal")] + static extern void BigoIOS_NotifyLoss(IntPtr unityAdPtr, double firstPrice, string firstBidder, int lossReason); + + //callback method + protected delegate void adDidLoadCallback_delegate(IntPtr unityAdPtr); + protected delegate void adLoadFailCallBack_delegate(IntPtr unityAdPtr, int code, string msg); + + protected delegate void adDidShowCallback_delegate(IntPtr unityAdPtr); + protected delegate void adDidClickCallback_delegate(IntPtr unityAdPtr); + protected delegate void adDidDismissCallback_delegate(IntPtr unityAdPtr); + protected delegate void adDidErrorCallback_delegate(IntPtr unityAdPtr, int code, string msg); + + [MonoPInvokeCallback(typeof(adDidLoadCallback_delegate))] + protected static void cs_adDidLoadCallback(IntPtr unityAdPtr) + { + BigoIOSBaseAd unityAd = BigoIOSBaseAd.GetUnityAd(unityAdPtr); + if (unityAd == null) + { + return; + } + unityAd.bigoAdLoaded = true; + unityAd.OnLoad?.Invoke(); + unityAd.LOGWithMessage("cs_adDidLoad"); + } + + [MonoPInvokeCallback(typeof(adLoadFailCallBack_delegate))] + protected static void cs_adLoadFailCallBack(IntPtr unityAdPtr, int code, string msg) + { + + BigoIOSBaseAd unityAd = BigoIOSBaseAd.GetUnityAd(unityAdPtr); + if (unityAd.OnLoadFailed != null) + { + unityAd.OnLoadFailed(code, msg); + } + unityAd.LOGWithMessage("cs_adLoadFail",$"code:{code},msg:{msg}"); + } + + [MonoPInvokeCallback(typeof(adDidShowCallback_delegate))] + protected static void cs_adDidShowCallback(IntPtr unityAdPtr) + { + BigoIOSBaseAd unityAd = BigoIOSBaseAd.GetUnityAd(unityAdPtr); + if (unityAd == null) + { + return; + } + unityAd.OnAdShowed?.Invoke(); + unityAd.LOGWithMessage($"cs_show"); + } + + [MonoPInvokeCallback(typeof(adDidClickCallback_delegate))] + protected static void cs_adDidClickCallback(IntPtr unityAdPtr) + { + BigoIOSBaseAd unityAd = BigoIOSBaseAd.GetUnityAd(unityAdPtr); + if (unityAd == null) + { + return; + } + unityAd.OnAdClicked?.Invoke(); + unityAd.LOGWithMessage("cs_click"); + } + + [MonoPInvokeCallback(typeof(adDidDismissCallback_delegate))] + protected static void cs_adDidDismissCallback(IntPtr unityAdPtr) + { + BigoIOSBaseAd unityAd = BigoIOSBaseAd.GetUnityAd(unityAdPtr); + if (unityAd == null) + { + return; + } + unityAd.OnAdDismissed?.Invoke(); + unityAd.LOGWithMessage("cs_dismiss"); + } + + [MonoPInvokeCallback(typeof(adDidErrorCallback_delegate))] + protected static void cs_adDidErrorCallBack(IntPtr unityAdPtr, int code, string msg) + { + BigoIOSBaseAd unityAd = BigoIOSBaseAd.GetUnityAd(unityAdPtr); + if (unityAd.OnAdError != null) + { + unityAd.OnAdError(code, msg); + } + unityAd.LOGWithMessage("cs_aderror",$"code:{code},msg:{msg}"); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.cs.meta new file mode 100644 index 00000000..68b37d09 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9b8d512f4ea0948bb8110a2eee062858 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.mm new file mode 100644 index 00000000..43f18d4e --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.mm @@ -0,0 +1,109 @@ +#import +#import "BigoUnityBaseAdHandler.h" +#import "BigoUnityAdHandlerManager.h" +#import "BigoUnityBannerAd.h" +#import "BigoUnityInterstitialAd.h" +#import "BigoUnityRewardedAd.h" +#import "BigoUnitySplashAd.h" +#import "BigoUnityNativeAd.h" +#import "BigoUnityAdapterTools.h" +#import "BigoUnityPopupAd.h" + +extern "C" { +enum BigoIOSAdType { + native = 1, banner = 2, interstitial = 3, rewarded = 4, splash = 5, popup = 6 +}; +void BigoIOS_loadAdData(int adType, + UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback) { + if (adType == rewarded || adType == banner) {//custom load + return; + } + + if (adType == interstitial) { + BigoIOS_loadInterstitialAdData(unityAd, slotId, requestJson, successCallback, failCallback, showCallback, clickCallback, dismissCallback, adErrorCallback); + } + else if (adType == splash) { + BigoIOS_loadSplashAdData(unityAd, slotId, requestJson, successCallback, failCallback, showCallback, clickCallback, dismissCallback, adErrorCallback); + } + else if (adType == native) { + BigoIOS_loadNativeAdData(unityAd, slotId, requestJson, successCallback, failCallback, showCallback, clickCallback, dismissCallback, adErrorCallback); + } else if (adType == popup) { + BigoIOS_loadPopupAdData(unityAd, slotId, requestJson, successCallback, failCallback, showCallback, clickCallback, dismissCallback, adErrorCallback); + } + +} +void BigoIOS_showAd(int adType, UnityAd unityAd) { + if (adType == interstitial) { + BigoIOS_showInterstitialAd(unityAd); + } + else if (adType == splash) { + BigoIOS_showSplashAd(unityAd); + } + else if (adType == rewarded) { + BigoIOS_showRewardedAd(unityAd); + } + else if (adType == banner) { + BigoIOS_showBannerAd(unityAd); + } + else if (adType == native) { + BigoIOS_showNativeAd(unityAd); + } +} + +void BigoIOS_destroyAd(int adType, UnityAd unityAd) { + if (adType == banner) { + BigoIOS_removeBannerView(unityAd); + } + else if (adType == native) { + BigoIOS_removeNativeView(unityAd); + } + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + [BigoUnityAdHandlerManager removeAdHandlerWithKey:unityAdKey]; +} + +BOOL BigoIOS_IsExpired(UnityAd unityAd) { + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + BigoUnityBaseAdHandler *handler = (BigoUnityBaseAdHandler*)[BigoUnityAdHandlerManager handlerWithKey:unityAdKey]; + BigoAd *ad = (BigoAd *)(handler.ad); + return ad.isExpired; +} + +BOOL BigoIOS_IsClientBidding(UnityAd unityAd) { + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + BigoUnityBaseAdHandler *handler = (BigoUnityBaseAdHandler*)[BigoUnityAdHandlerManager handlerWithKey:unityAdKey]; + BigoAd *ad = (BigoAd *)(handler.ad); + return ad.getBid != nil; +} + +CGFloat BigoIOS_GetPrice(UnityAd unityAd) { + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + BigoUnityBaseAdHandler *handler = (BigoUnityBaseAdHandler*)[BigoUnityAdHandlerManager handlerWithKey:unityAdKey]; + BigoAd *ad = (BigoAd *)(handler.ad); + return ad.getBid.getPrice; +} + +void BigoIOS_NotifyWin(UnityAd unityAd, CGFloat secPrice, const char* secBidder) { + NSString *secBidderString = BigoIOS_transformNSStringForm(secBidder); + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + BigoUnityBaseAdHandler *handler = (BigoUnityBaseAdHandler*)[BigoUnityAdHandlerManager handlerWithKey:unityAdKey]; + BigoAd *ad = (BigoAd *)(handler.ad); + [ad.getBid notifyWinWithSecPrice:secPrice secBidder:secBidderString]; +} + +void BigoIOS_NotifyLoss(UnityAd unityAd, CGFloat firstPrice , const char* firstBidder, int lossReason) { + NSString *firstBidderString = BigoIOS_transformNSStringForm(firstBidder); + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + BigoUnityBaseAdHandler *handler = (BigoUnityBaseAdHandler*)[BigoUnityAdHandlerManager handlerWithKey:unityAdKey]; + BigoAd *ad = (BigoAd *)(handler.ad); + [ad.getBid notifyLossWithFirstPrice:firstPrice firstBidder:firstBidderString lossReason:(BGAdLossReasonType)lossReason]; +} + +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.mm.meta new file mode 100644 index 00000000..00a8018c --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoIOSBaseAd.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 75401cc01b4054f97931486033a4c690 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.h new file mode 100644 index 00000000..acf3ecef --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.h @@ -0,0 +1,22 @@ + +#import +#import "BigoUnityBaseAdHandler.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface BigoUnityAdHandlerManager : NSObject + ++ (void)saveAdHandler:(BigoUnityBaseAdHandler *)adhandler withKey:(NSString *)key; + ++ (void)removeAdHandlerWithKey:(NSString *)key; + ++ (NSString *)createKeyUnityAd:(UnityAd)unityAd; + ++ (nullable BigoUnityBaseAdHandler *)handlerWithKey:(NSString *)key; + ++ (void)printList; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.h.meta new file mode 100644 index 00000000..4aa61d9f --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: f39924fa7a4d144ee93ad3242f4c5e9f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.m b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.m new file mode 100644 index 00000000..2abc066d --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.m @@ -0,0 +1,70 @@ +#import "BigoUnityAdHandlerManager.h" + +@interface BigoUnityAdHandlerManager() + +@property (nonatomic, strong) dispatch_semaphore_t semaphore; +@property (nonatomic, strong) NSMutableDictionary *dictionary; + +@end + +@implementation BigoUnityAdHandlerManager + ++ (instancetype)sharedInstance { + static BigoUnityAdHandlerManager *manager = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + manager = [[BigoUnityAdHandlerManager alloc] init]; + }); + return manager; +} + +- (instancetype)init +{ + self = [super init]; + if (self) { + self.dictionary = [NSMutableDictionary new]; + self.semaphore = dispatch_semaphore_create(1); + } + return self; +} + ++ (void)saveAdHandler:(BigoUnityBaseAdHandler *)adhandler withKey:(NSString *)key { + if (!adhandler || key.length == 0) { + return; + } + BigoUnityAdHandlerManager *manager = [BigoUnityAdHandlerManager sharedInstance]; + dispatch_semaphore_wait(manager.semaphore, DISPATCH_TIME_FOREVER); + [manager.dictionary setObject:adhandler forKey:key]; + dispatch_semaphore_signal(manager.semaphore); +} + ++ (void)removeAdHandlerWithKey:(NSString *)key { + if (key.length == 0) { + return; + } + BigoUnityAdHandlerManager *manager = [BigoUnityAdHandlerManager sharedInstance]; + dispatch_semaphore_wait(manager.semaphore, DISPATCH_TIME_FOREVER); + [manager.dictionary removeObjectForKey:key]; + dispatch_semaphore_signal(manager.semaphore); +} + ++ (NSString *)createKeyUnityAd:(UnityAd)unityAd { + return [NSString stringWithFormat:@"%p",unityAd]; +} + ++ (nullable BigoUnityBaseAdHandler *)handlerWithKey:(NSString *)key { + if (key.length == 0) { + return nil; + } + BigoUnityAdHandlerManager *manager = [BigoUnityAdHandlerManager sharedInstance]; + dispatch_semaphore_wait(manager.semaphore, DISPATCH_TIME_FOREVER); + BigoUnityBaseAdHandler *handler = [manager.dictionary objectForKey:key]; + dispatch_semaphore_signal(manager.semaphore); + return handler; +} + ++ (void)printList { + NSLog(@"bigo-ios-list:%@",[BigoUnityAdHandlerManager sharedInstance].dictionary); +} + +@end diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.m.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.m.meta new file mode 100644 index 00000000..dcae4b1c --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityAdHandlerManager.m.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 053a4c32bd9344bcd9a22f2e0c87f777 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.h new file mode 100644 index 00000000..f7033647 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.h @@ -0,0 +1,62 @@ + +#import +#import +#import + +typedef void* UnityAd;//unity ad +typedef void* BigoAdSdkAd;//bigo ad +//int + +//callback of ad load +typedef void(*AdDidLoadCallback)(UnityAd unityAd); +typedef void (*AdLoadFailCallBack)(UnityAd unityAd, int code, const char *msg); + +//callback of ad event +typedef void(*AdDidShowCallback)(UnityAd unityAd); +typedef void(*AdDidClickCallback)(UnityAd unityAd); +typedef void(*AdDidDismissCallback)(UnityAd unityAd); +typedef void (*AdDidErrorCallback)(UnityAd unityAd, int code, const char *msg); + +typedef void (*AdDidEarnRewardCallback)(UnityAd unityA); + +@interface BigoUnityBaseAdHandler : NSObject + +@property (nonatomic, assign) UnityAd unityAd; +@property (nonatomic, strong) BigoAd *ad; + +@property (nonatomic, assign) AdDidShowCallback showCallback; +@property (nonatomic, assign) AdDidClickCallback clickCallback; +@property (nonatomic, assign) AdDidDismissCallback dismissCallback; +@property (nonatomic, assign) AdDidErrorCallback adErrorCallback; + +//强持有AdLoader +@property (nonatomic, strong) BigoAdLoader *adLoader; +@property (nonatomic, assign) AdDidLoadCallback successCallback; +@property (nonatomic, assign) AdLoadFailCallBack failCallback; + +@end + +@interface BigoUnityBannerAdHandler : BigoUnityBaseAdHandler + +@end + + +@interface BigoUnityInterstitialAdHandler : BigoUnityBaseAdHandler + +@end + +@interface BigoUnityRewardedAdHandler : BigoUnityBaseAdHandler + +@property (nonatomic, assign) AdDidEarnRewardCallback earnCallback; + +@end + +@interface BigoUnitySplashAdHandler : BigoUnityBaseAdHandler + +@end + +@interface BigoUnityNativeAdHandler : BigoUnityBaseAdHandler + +@property (nonatomic, strong) UIView *nativeView; + +@end diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.h.meta new file mode 100644 index 00000000..7c853061 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 0f898c08506444b2cae9b6fb32656a61 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.mm new file mode 100644 index 00000000..d6c46ad4 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.mm @@ -0,0 +1,170 @@ + +#import "BigoUnityBaseAdHandler.h" +#import "BigoUnityAdHandlerManager.h" + +@implementation BigoUnityBaseAdHandler + +//广告异常 +- (void)onAd:(BigoAd *)ad error:(BigoAdError *)error { + +} + +//广告展示 +- (void)onAdImpression:(BigoAd *)ad { + if (self.showCallback) { + self.showCallback(self.unityAd); + } +} + +//广告点击 +- (void)onAdClicked:(BigoAd *)ad { + if (self.clickCallback) { + self.clickCallback(self.unityAd); + } +} + +//广告打开 +- (void)onAdOpened:(BigoAd *)ad { + +} + +//广告关闭 +- (void)onAdClosed:(BigoAd *)ad { + if (self.dismissCallback) { + self.dismissCallback(self.unityAd); + } + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:self.unityAd]; + [BigoUnityAdHandlerManager removeAdHandlerWithKey:unityAdKey]; +} + +- (void)dealloc { + NSLog(@"BigoAd-iOS-[BigoUnityBaseAdHandler]-[dealloc]"); +} + +@end + +@implementation BigoUnityBannerAdHandler + + +#pragma mark - BigoBannerAdLoaderDelegate +- (void)onBannerAdLoaded:(BigoBannerAd *)ad { + [ad setAdInteractionDelegate:self]; + self.ad = ad; + if (self.successCallback) { + self.successCallback(self.unityAd); + } +} + + +- (void)onBannerAdLoadError:(BigoAdError *)error { + if (self.failCallback) { + self.failCallback(self.unityAd, error.errorCode, error.errorMsg.UTF8String); + } +} + +@end + +@implementation BigoUnityInterstitialAdHandler + +#pragma mark - BigoInterstitialAdLoaderDelegate +- (void)onInterstitialAdLoaded:(BigoInterstitialAd *)ad { + [ad setAdInteractionDelegate:self]; + self.ad = ad; + if (self.successCallback) { + self.successCallback(self.unityAd); + } +} + +- (void)onInterstitialAdLoadError:(BigoAdError *)error { + if (self.failCallback) { + self.failCallback(self.unityAd, error.errorCode, error.errorMsg.UTF8String); + } +} + +@end + +@implementation BigoUnityRewardedAdHandler + +#pragma mark - BigoRewardVideoAdLoaderDelegate +- (void)onRewardVideoAdLoaded:(BigoRewardVideoAd *)ad { + [ad setRewardVideoAdInteractionDelegate:self]; + self.ad = ad; + if (self.successCallback) { + self.successCallback(self.unityAd); + } +} + + +- (void)onRewardVideoAdLoadError:(BigoAdError *)error { + if (self.failCallback) { + self.failCallback(self.unityAd, error.errorCode, error.errorMsg.UTF8String); + } +} + +#pragma mark - BigoRewardVideoAdInteractionDelegate +//激励视频激励回调 +- (void)onAdRewarded:(BigoRewardVideoAd *)ad { + if (self.earnCallback) { + self.earnCallback(self.unityAd); + } +} +@end + +@implementation BigoUnitySplashAdHandler + +#pragma mark - BigoSplashAdLoaderDelegate +- (void)onSplashAdLoaded:(BigoSplashAd *)ad { + [ad setSplashAdInteractionDelegate:self]; + self.ad = ad; + if (self.successCallback) { + self.successCallback(self.unityAd); + } +} + + +- (void)onSplashAdLoadError:(BigoAdError *)error { + if (self.failCallback) { + self.failCallback(self.unityAd, error.errorCode, error.errorMsg.UTF8String); + } +} + +#pragma mark - BigoSplashAdInteractionDelegate + +/** + * 广告可跳过回调,通常是由用户点击了右上角 SKIP 按钮所触发 + */ +- (void)onAdSkipped:(BigoAd *)ad { + if (self.dismissCallback) { + self.dismissCallback(self.unityAd); + } +} + +/** + * 广告倒计时结束回调 + */ +- (void)onAdFinished:(BigoAd *)ad { + if (self.dismissCallback) { + self.dismissCallback(self.unityAd); + } +} + +@end + +@implementation BigoUnityNativeAdHandler + +#pragma mark - BigoNativeAdLoaderDelegate +- (void)onNativeAdLoaded:(BigoNativeAd *)ad { + [ad setAdInteractionDelegate:self]; + self.ad = ad; + if (self.successCallback) { + self.successCallback(self.unityAd); + } +} + +- (void)onNativeAdLoadError:(BigoAdError *)error { + if (self.failCallback) { + self.failCallback(self.unityAd, error.errorCode, error.errorMsg.UTF8String); + } +} + + @end \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.mm.meta new file mode 100644 index 00000000..94c261f3 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityBaseAdHandler.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 956299e395371425abfa788d6f80bad9 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.cs new file mode 100644 index 00000000..2dcae70a --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.cs @@ -0,0 +1,44 @@ +#if UNITY_IOS +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using BigoAds.Scripts.Api; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd +{ + class BigoUnityConfig + { + private IntPtr _config; + internal void Init(BigoAdConfig config) + { + _config = BigoIOS_config(config.AppId); + BigoIOS_configSetInfo(_config, config.DebugLog, config.Age, config.Gender, config.ActivatedTime); + // set extra + foreach (KeyValuePair item in config.ExtraDictionary) + { + BigoIOS_configSetExtra(_config, item.Key, item.Value); + } + + } + + public IntPtr getInternalConfig() + { + return _config; + } + + //c# - > oc + [DllImport("__Internal")] + private static extern IntPtr BigoIOS_config(string appID); + + [DllImport(dllName: "__Internal")] + private static extern void BigoIOS_configSetInfo(IntPtr configPt, bool debugLog, int age, int gender, long activatedTime); + + [DllImport(dllName: "__Internal")] + private static extern void BigoIOS_configSetExtra(IntPtr configPt, string key, string extra); + + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.cs.meta new file mode 100644 index 00000000..7bcbb35f --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dd95f8f9cd401477c8b11db40da15a59 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.mm new file mode 100644 index 00000000..a48bef4d --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.mm @@ -0,0 +1,30 @@ +#import +#import +#import "BigoUnityAdapterTools.h" + +extern "C" { + +BigoAdConfig* BigoIOS_config(const char* appID) { + NSString *appId = BigoIOS_transformNSStringForm(appID); + return [[BigoAdConfig alloc] initWithAppId:appId]; +} +BigoAdConfig* BigoIOS_GetConfig(void* __nullable config) { + BigoAdConfig *bigoConfig = config ? (__bridge BigoAdConfig*)config : nil; + return bigoConfig; +} + +void BigoIOS_configSetExtra(void* __nullable config, const char* key, const char* extra) { + BigoAdConfig *bigoConfig = BigoIOS_GetConfig(config); + NSString *keyString = BigoIOS_transformNSStringForm(key); + NSString *extraString = BigoIOS_transformNSStringForm(extra); + [bigoConfig addExtraWithKey:keyString extra:extraString]; +} + +void BigoIOS_configSetInfo(void* config, bool debugLog, int age, int gender, long activatedTime) { + BigoIOS_GetConfig(config).testMode = debugLog; + BigoIOS_GetConfig(config).age = age; + BigoIOS_GetConfig(config).gender = (BigoAdGender)gender; + BigoIOS_GetConfig(config).activatedTime = activatedTime; +} + +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.mm.meta new file mode 100644 index 00000000..f9b5fbb4 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityConfig.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: d89226cd1e10648008bd21184cd89fe0 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.cs new file mode 100644 index 00000000..0db34869 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.cs @@ -0,0 +1,105 @@ +#if UNITY_IOS +using AOT; +using UnityEngine; +using BigoAds.Scripts.Api.Constant; + +namespace BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd +{ + using System; + using BigoAds.Scripts.Api; + using BigoAds.Scripts.Common; + using BigoAds.Scripts.Platforms.iOS; + using System.Runtime.InteropServices; + + class BigoUnitySdk : ISDK + { + private BigoAdSdk.InitResultDelegate resultDelegate; + + public void Init(BigoAdConfig config, BigoAdSdk.InitResultDelegate initResultDelegate) + { + BigoUnityConfig unityConfig = new BigoUnityConfig(); + unityConfig.Init(config); + resultDelegate = initResultDelegate; + IntPtr ptr = (IntPtr)GCHandle.Alloc(this); + BigoIOS_initSDK(ptr, unityConfig.getInternalConfig(), cs_successCallback); + } + + public bool IsInitSuccess() + { + return BigoIOS_sdkInitializationState(); + } + + public string GetSDKVersion() + { + return BigoIOS_sdkVersion(); + } + + public string GetSDKVersionName() + { + return BigoIOS_sdkVersionName(); + } + + public void SetUserConsent(ConsentOptions option, bool consent) + { + if (option == ConsentOptions.GDPR) { + BigoIOS_setConsentGDPR(consent); + } else if (option == ConsentOptions.CCPA) { + BigoIOS_setConsentCCPA(consent); + } else if (option == ConsentOptions.LGPD) { + BigoIOS_setConsentLGPD(consent); + } else if (option == ConsentOptions.COPPA) { + BigoIOS_setConsentCOPPA(consent); + } + } + + public void AddExtraHost(string country, string host) + { + BigoIOS_addExtraHost(country, host); + } + + [DllImport("__Internal")] + static extern void BigoIOS_initSDK(IntPtr unitySDK, IntPtr config, SuccessCallbackDelegate successCallback); + + [DllImport("__Internal")] + static extern bool BigoIOS_sdkInitializationState(); + + [DllImport("__Internal")] + static extern string BigoIOS_sdkVersion(); + + [DllImport("__Internal")] + static extern string BigoIOS_sdkVersionName(); + + [DllImport("__Internal")] + static extern void BigoIOS_setConsentGDPR(bool consent); + + [DllImport("__Internal")] + static extern void BigoIOS_setConsentCCPA(bool consent); + + [DllImport("__Internal")] + static extern void BigoIOS_setConsentLGPD(bool consent); + + [DllImport("__Internal")] + static extern void BigoIOS_setConsentCOPPA(bool consent); + + [DllImport("__Internal")] + static extern void BigoIOS_addExtraHost(string country, string host); + + private delegate void SuccessCallbackDelegate(IntPtr unitySDK); + + [MonoPInvokeCallback(typeof(SuccessCallbackDelegate))] + private static void cs_successCallback(IntPtr unitySDK) + { + BigoUnitySdk sdk = GetUnitySdk(unitySDK); + sdk.resultDelegate(); + } + + private static BigoUnitySdk GetUnitySdk(IntPtr unitySdkPtr) + { + GCHandle handle = (GCHandle) unitySdkPtr; + BigoUnitySdk unitysdk = handle.Target as BigoUnitySdk; + return unitysdk; + } + } +} + +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.cs.meta new file mode 100644 index 00000000..b71493a9 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0119df06271854e9497b8cab7cc3ef1b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.mm new file mode 100644 index 00000000..e416a88b --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.mm @@ -0,0 +1,58 @@ + +#import +#import "BigoUnityAdapterTools.h" + +char* MakeStringCopy(const char* string) { + if (string == NULL) return NULL; + char* res = (char*)malloc(strlen(string) + 1); + strcpy(res, string); + return res; +} + +extern "C" { + + typedef void (*BigoSDKInitSuccessCallBack)(void* unitySDK); + + void BigoIOS_initSDK(void* unitySDK, void* config, BigoSDKInitSuccessCallBack successCallback) { + BigoAdConfig *adConfig = config ? (__bridge BigoAdConfig*)config : nil; + [[BigoAdSdk sharedInstance] initializeSdkWithAdConfig:adConfig completion:^{ + successCallback(unitySDK); + }]; + } + + BOOL BigoIOS_sdkInitializationState() { + return [[BigoAdSdk sharedInstance] isInitialized]; + } + + const char* BigoIOS_sdkVersion() { + NSString *version = [[BigoAdSdk sharedInstance] getSDKVersion]; + return MakeStringCopy([version UTF8String]); + } + + const char* BigoIOS_sdkVersionName() { + NSString *versionName = [[BigoAdSdk sharedInstance] getSDKVersionName]; + return MakeStringCopy([versionName UTF8String]); + } + + void BigoIOS_setConsentGDPR(bool consent) { + [BigoAdSdk setUserConsentWithOption:BigoConsentOptionsGDPR consent:consent]; + } + + void BigoIOS_setConsentCCPA(bool consent) { + [BigoAdSdk setUserConsentWithOption:BigoConsentOptionsCCPA consent:consent]; + } + + void BigoIOS_setConsentCOPPA(bool consent) { + [BigoAdSdk setUserConsentWithOption:BigoConsentOptionsCOPPA consent:consent]; + } + + void BigoIOS_setConsentLGPD(bool consent) { + [BigoAdSdk setUserConsentWithOption:BigoConsentOptionsLGPD consent:consent]; + } + + void BigoIOS_addExtraHost(const char* country, const char* host) { + NSString *countryString = BigoIOS_transformNSStringForm(country); + NSString *hostString = BigoIOS_transformNSStringForm(host); + [BigoAdSdk addExtraHostWithCountry:countryString host:hostString]; + } +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.mm.meta new file mode 100644 index 00000000..69f7ba3c --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnitySdk.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 2a926ae7c93f34a81ad8c0dca79dbe9f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityTools.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityTools.cs new file mode 100644 index 00000000..584ffe28 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityTools.cs @@ -0,0 +1,22 @@ +#if UNITY_IOS +using System.Collections.Generic; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd +{ + public class BigoUnityTools + { + private static int mainThreadID = System.Threading.Thread.CurrentThread.ManagedThreadId; + + internal static bool isMainThread() + { + return System.Threading.Thread.CurrentThread.ManagedThreadId == mainThreadID; + } + + internal static void LOGWithMessage(string className,string methodName,string msg) + { + Debug.Log($"BigoAds-iOS-[{className}]-[{methodName}]-{msg}"); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityTools.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityTools.cs.meta new file mode 100644 index 00000000..71bc64c3 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/BigoUnityTools.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a2171856213534228be217d8b18397ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial.meta new file mode 100644 index 00000000..80d9b737 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d154fcfff71f4a50bbcb02fe73c8a63 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.cs new file mode 100644 index 00000000..eb1f860c --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.cs @@ -0,0 +1,17 @@ +#if UNITY_IOS +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Common; + +namespace BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd +{ + + class BigoUnityinterstitialAd : BigoIOSBaseAd, IInterstitialAd + { + public void Load(string slotId, BigoInterstitialRequest request) + { + adType = 3; + LoadAdData(slotId,request); + } + } +} +#endif diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.cs.meta new file mode 100644 index 00000000..8887e68a --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 439e9f1b2a72c4d52bbba125c8625121 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.h new file mode 100644 index 00000000..a6152f39 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.h @@ -0,0 +1,17 @@ +#import "BigoUnityBaseAdHandler.h" + +extern "C" { + + //load appOpen Ad + void BigoIOS_loadInterstitialAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback); + //show open ad + void BigoIOS_showInterstitialAd(UnityAd unityAd); +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.h.meta new file mode 100644 index 00000000..220ea50e --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 09b930587afa743ca93ec5ae2d427b8a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.mm new file mode 100644 index 00000000..9ae2677c --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.mm @@ -0,0 +1,67 @@ +#import +#import "UnityAppController.h" +#import "BigoUnityBaseAdHandler.h" +#import "BigoUnityAdapterTools.h" +#import "BigoUnityAdHandlerManager.h" + +extern "C"{ + +//load interstitial ad +void BigoIOS_loadInterstitialAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback + ) { + BigoIOS_dispatchSyncMainQueue(^{ + + BigoUnityInterstitialAdHandler *adHandler = [[BigoUnityInterstitialAdHandler alloc] init]; + BigoInterstitialAdRequest *request = [[BigoInterstitialAdRequest alloc] initWithSlotId:BigoIOS_transformNSStringForm(slotId)]; + NSDictionary *requestDict = BigoIOS_requestJsonObjectFromJsonString(requestJson); + request.age = [requestDict[@"age"] intValue]; + request.gender = (BigoAdGender)[requestDict[@"gender"] intValue]; + request.activatedTime = [requestDict[@"activatedTime"] longLongValue]; + BigoInterstitialAdLoader *adLoader = [[BigoInterstitialAdLoader alloc] initWithInterstitialAdLoaderDelegate:adHandler]; + adLoader.ext = requestDict[@"extraInfo"]; + adHandler.adLoader = adLoader; + adHandler.unityAd = unityAd; + adHandler.showCallback = showCallback; + adHandler.clickCallback = clickCallback; + adHandler.dismissCallback = dismissCallback; + adHandler.adErrorCallback = adErrorCallback; + adHandler.successCallback = successCallback; + adHandler.failCallback = failCallback; + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + [BigoUnityAdHandlerManager saveAdHandler:adHandler withKey:unityAdKey]; + [adLoader loadAd:request]; + }); + +} + +BigoUnityInterstitialAdHandler* BigoIOS_getInterstitialAdHandler(UnityAd unityAd) { + if (!unityAd) return nil; + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + BigoUnityInterstitialAdHandler *handler = (BigoUnityInterstitialAdHandler*)[BigoUnityAdHandlerManager handlerWithKey:unityAdKey]; + if (!handler || ![handler isMemberOfClass:[BigoUnityInterstitialAdHandler class]]) { + return nil; + } + return handler; +} + +void BigoIOS_showInterstitialAd(UnityAd unityAd) { + BigoUnityInterstitialAdHandler *handler = BigoIOS_getInterstitialAdHandler(unityAd); + if (!handler) return; + + BigoIOS_dispatchSyncMainQueue(^{ + UIViewController *vc = GetAppController().rootViewController; + BigoInterstitialAd *ad = (BigoInterstitialAd *)handler.ad; + [ad show:vc]; + }); +} + +} + diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.mm.meta new file mode 100644 index 00000000..793758a1 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Interstitial/BigoUnityInterstitialAd.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 0ed50328a865a41e6a0c4c862dfc3a20 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native.meta new file mode 100644 index 00000000..0c6a97d3 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 91d71cd2823ff4f758ffc2f9340dd36a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.cs new file mode 100644 index 00000000..d4ee5711 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.cs @@ -0,0 +1,84 @@ +#if UNITY_IOS +using System; +using System.Threading; +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Api.Constant; +using BigoAds.Scripts.Common; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd +{ + using System; + using BigoAds.Scripts.Api; + using BigoAds.Scripts.Common; + using BigoAds.Scripts.Platforms.iOS; + using System.Runtime.InteropServices; + public class BigoUnityNativeAd : BigoIOSBaseAd, INativeAd + { + public void Load(string slotId, BigoNativeRequest request) + { + adType = 1; + LoadAdData(slotId,request); + } + + private int CalculatePositionY(BigoPosition position, int nativeHeight) + { + int screenHeight = BigoIOS_getScreenHeight(); + float y = BigoIOS_getScreenSafeTop(); + if (position == BigoPosition.Middle) + { + y = (float)((screenHeight - nativeHeight) * 0.5); + } + else if (position == BigoPosition.Bottom) + { + y = (float)(screenHeight - nativeHeight - BigoIOS_getScreenSafeBottom()); + } + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"position:{position},screenHeight:{screenHeight}-y:{y}"); + return (int)y; + } + + private int CalculateMiddleX(int nativeWidth) + { + int screenWidth = BigoIOS_getScreenWidth(); + int x = (int)((screenWidth - nativeWidth) * 0.5); + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"screenWidth:{screenWidth}-x:{x}"); + return x; + } + + public void SetPosition(BigoPosition position) + { + int x = 0; + int y = CalculatePositionY(position, 300); //dafault 300 + BigoIOS_SetNativeAdPosition(unityAdPtr,x,y); + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"position-{position}"); + } + //MARK: c# - oc + [DllImport("__Internal")] + static extern void BigoIOS_loadNativeAdData(IntPtr unityAdPtr, + string slotId, + string requestJson, + int x, + int y, + int width, + int height, + adDidLoadCallback_delegate successCallback, + adLoadFailCallBack_delegate failCallback, + adDidShowCallback_delegate showCallback, + adDidClickCallback_delegate clickCallback, + adDidDismissCallback_delegate dismissCallback + ); + + [DllImport("__Internal")] + static extern void BigoIOS_SetNativeAdPosition(IntPtr unityAdPtr, int x, int y); + + [DllImport("__Internal")] + static extern int BigoIOS_getScreenWidth(); + [DllImport("__Internal")] + static extern int BigoIOS_getScreenHeight(); + [DllImport("__Internal")] + static extern int BigoIOS_getScreenSafeTop(); + [DllImport("__Internal")] + static extern int BigoIOS_getScreenSafeBottom(); + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.cs.meta new file mode 100644 index 00000000..772f5dd3 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2826ac57d309146a69194c7d0ba5764b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.h new file mode 100644 index 00000000..1b150d9f --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.h @@ -0,0 +1,21 @@ +#import "BigoUnityBaseAdHandler.h" + +extern "C" { + + //load Native ad + void BigoIOS_loadNativeAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback + ); + + void BigoIOS_SetNativeAdPosition(UnityAd unityAd,int x, int y); + void BigoIOS_showNativeAd(UnityAd unityAd); + void BigoIOS_removeNativeView(UnityAd unityAd); + +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.h.meta new file mode 100644 index 00000000..fba7f267 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 7e57a1c9615984eaa8fcabfd30911db3 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.mm new file mode 100644 index 00000000..3b58da97 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.mm @@ -0,0 +1,102 @@ +#import +#import "UnityAppController.h" +#import "BigoUnityBaseAdHandler.h" +#import "BigoUnityAdapterTools.h" +#import "BigoUnityAdHandlerManager.h" +#import "BigoUnityNativeCustomView.h" + +extern "C"{ + +//load interstitial ad +void BigoIOS_loadNativeAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback + ) { + BigoIOS_dispatchSyncMainQueue(^{ + + UIViewController *vc = GetAppController().rootViewController; + BigoUnityNativeCustomView *nativeView = [[BigoUnityNativeCustomView alloc] initWithFrame:CGRectMake(0, 0, vc.view.frame.size.width, 300)]; + NSDictionary *requestDict = BigoIOS_requestJsonObjectFromJsonString(requestJson); + BigoUnityNativeAdHandler *adHandler = [[BigoUnityNativeAdHandler alloc] init]; + BigoNativeAdRequest *request = [[BigoNativeAdRequest alloc] initWithSlotId:BigoIOS_transformNSStringForm(slotId)]; + request.age = [requestDict[@"age"] intValue]; + request.gender = (BigoAdGender)[requestDict[@"gender"] intValue]; + request.activatedTime = [requestDict[@"activatedTime"] longLongValue]; + BigoNativeAdLoader *adLoader = [[BigoNativeAdLoader alloc] initWithNativeAdLoaderDelegate:adHandler]; + adLoader.ext = requestDict[@"extraInfo"]; + adHandler.nativeView = nativeView; + adHandler.adLoader = adLoader; + adHandler.unityAd = unityAd; + adHandler.showCallback = showCallback; + adHandler.clickCallback = clickCallback; + adHandler.dismissCallback = dismissCallback; + adHandler.adErrorCallback = adErrorCallback; + adHandler.successCallback = successCallback; + adHandler.failCallback = failCallback; + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + [BigoUnityAdHandlerManager saveAdHandler:adHandler withKey:unityAdKey]; + [adLoader loadAd:request]; + }); + +} + +BigoUnityNativeAdHandler* BigoIOS_getNativeAdHandler(UnityAd unityAd) { + if (!unityAd) return nil; + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + BigoUnityNativeAdHandler *handler = (BigoUnityNativeAdHandler*)[BigoUnityAdHandlerManager handlerWithKey:unityAdKey]; + if (!handler || ![handler isMemberOfClass:[BigoUnityNativeAdHandler class]]) { + return nil; + } + return handler; +} + +void BigoIOS_showNativeAd(UnityAd unityAd) { + BigoUnityNativeAdHandler *handler = BigoIOS_getNativeAdHandler(unityAd); + if (!handler) return; + BigoIOS_dispatchSyncMainQueue(^{ + UIViewController *vc = GetAppController().rootViewController; + BigoNativeAd *ad = (BigoNativeAd *)handler.ad; + //render + BigoUnityNativeCustomView *nativeView = (BigoUnityNativeCustomView *)handler.nativeView; + [ad registerViewForInteraction:nativeView mediaView:nativeView.mediaView adIconView:nativeView.adIconView adOptionsView:nativeView.adOptionsView clickableViews:nativeView.clickAbleViews]; + [nativeView refreshNativeView:ad]; + + CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height; + CGRect frame = nativeView.frame; + frame.origin.y = screenHeight - frame.size.height; + nativeView.frame = frame; + + [vc.view addSubview:handler.nativeView]; + + }); +} + +void BigoIOS_SetNativeAdPosition(UnityAd unityAd,int x, int y) { + BigoUnityNativeAdHandler *handler = BigoIOS_getNativeAdHandler(unityAd); + if (!handler) return; + + BigoIOS_dispatchSyncMainQueue(^{ + CGRect frame = handler.nativeView.frame; + frame.origin.x = x; + frame.origin.y = y; + handler.nativeView.frame = frame; + }); +} + +void BigoIOS_removeNativeView(UnityAd unityAd) { + BigoUnityNativeAdHandler *handler = BigoIOS_getNativeAdHandler(unityAd); + if (!handler) return; + + BigoIOS_dispatchSyncMainQueue(^{ + [handler.nativeView removeFromSuperview]; + }); +} + +} + diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.mm.meta new file mode 100644 index 00000000..1609c824 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeAd.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 6e061b29b36eb4be7a56af7098092fb3 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.h new file mode 100644 index 00000000..ffbdb68b --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.h @@ -0,0 +1,17 @@ +#import +#import + +@interface BigoUnityNativeCustomView : UIView + +@property (nonatomic, strong) BigoAdMediaView *mediaView; +@property (nonatomic, strong) UIImageView *adIconView; +@property (nonatomic, strong) BigoAdOptionsView *adOptionsView; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *detailLabel; +@property (nonatomic, strong) UIButton *cta; + +- (NSArray *)clickAbleViews; + +- (void)refreshNativeView:(BigoNativeAd *)nativeAd; + +@end diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.h.meta new file mode 100644 index 00000000..10dea82d --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 1d74138abaf434fd38dce6301cac1107 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.m b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.m new file mode 100644 index 00000000..87accfe4 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.m @@ -0,0 +1,72 @@ + +#import "BigoUnityNativeCustomView.h" + +@implementation BigoUnityNativeCustomView + +- (instancetype)initWithFrame:(CGRect)frame { + + if (self = [super initWithFrame:frame]) { + + self.backgroundColor = UIColor.whiteColor; + + self.mediaView = [BigoAdMediaView new]; + self.mediaView.bigoNativeAdViewTag = BigoNativeAdViewTagMedia; + self.mediaView.frame = CGRectMake(0, 50, CGRectGetWidth(self.bounds) , CGRectGetHeight(self.bounds) - 100); + + self.adIconView = [UIImageView new]; + self.adIconView.bigoNativeAdViewTag = BigoNativeAdViewTagIcon; + self.adIconView.frame = CGRectMake(0, 0, 50, 50); + + self.cta = [UIButton new]; + self.cta.bigoNativeAdViewTag = BigoNativeAdViewTagCallToAction; + self.cta.titleLabel.textColor = [UIColor colorWithRed:0 green:0 blue:255 alpha:255]; + self.cta.bigoNativeAdViewTag = BigoNativeAdViewTagCallToAction; + [self.cta setBackgroundColor:[UIColor grayColor]]; + + self.adOptionsView = [BigoAdOptionsView new]; + self.adOptionsView.bigoNativeAdViewTag = BigoNativeAdViewTagOption; + self.adOptionsView.frame = CGRectMake(CGRectGetWidth(self.bounds) - 20, 0, 20, 20); + + [self addSubview:self.mediaView]; + [self addSubview:self.adOptionsView]; + [self addSubview:self.adIconView]; + [self addSubview:self.cta]; + + self.titleLabel = UILabel.new; + self.titleLabel.textColor = UIColor.blackColor; + self.titleLabel.bigoNativeAdViewTag = BigoNativeAdViewTagTitle; + self.titleLabel.font = [UIFont systemFontOfSize:18]; + [self addSubview:self.titleLabel]; + + self.detailLabel = UILabel.new; + self.detailLabel.textColor = UIColor.lightGrayColor; + self.detailLabel.bigoNativeAdViewTag = BigoNativeAdViewTagDescription; + self.detailLabel.font = [UIFont systemFontOfSize:18]; + [self addSubview:self.detailLabel]; + + self.titleLabel.frame = CGRectMake(65, 5, CGRectGetWidth(self.bounds)-95, 20); + self.detailLabel.frame = CGRectMake(65, 30, CGRectGetWidth(self.bounds)-95, 20); + + self.cta.frame = CGRectMake(CGRectGetWidth(self.bounds)-100, 250, 100, 50); + + + } + return self; +} + +- (NSArray *)clickAbleViews { + return @[self.adIconView, self.titleLabel, self.detailLabel, self.cta]; +} + +- (void)refreshNativeView:(BigoNativeAd *)nativeAd { + self.titleLabel.text = nativeAd.title; + self.detailLabel.text = nativeAd.adDescription; + NSString *ctaTitle = nativeAd.callToAction.length > 0 ? nativeAd.callToAction : @"Install"; + [self.cta setTitle:ctaTitle forState:UIControlStateNormal]; + //设置按钮选择状态下的标题 + [self.cta setTitle:ctaTitle forState:UIControlStateSelected]; + //设置按钮高亮状态下的标题 + [self.cta setTitle:ctaTitle forState:UIControlStateHighlighted]; +} + +@end diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.m.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.m.meta new file mode 100644 index 00000000..0fe8a602 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Native/BigoUnityNativeCustomView.m.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: d9e95ef6076f8408a98e195f9786007a +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup.meta new file mode 100644 index 00000000..1be8634b --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 24e19875a9807479e8e67ede8568a37d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.cs new file mode 100644 index 00000000..dcca3b9c --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.cs @@ -0,0 +1,17 @@ +#if UNITY_IOS +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Common; + +namespace BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd +{ + + class BigoUnitypopupAd : BigoIOSBaseAd, IPopupAd + { + public void Load(string slotId, BigoPopupRequest request) + { + adType = 6; + LoadAdData(slotId,request); + } + } +} +#endif diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.cs.meta new file mode 100644 index 00000000..b015e0d3 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6db3f7d6fb1a84a6eb484a3a8de4498a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.h new file mode 100644 index 00000000..ed0d7686 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.h @@ -0,0 +1,17 @@ +#import "BigoUnityBaseAdHandler.h" + +extern "C" { + + //load appOpen Ad + void BigoIOS_loadPopupAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback); + //show open ad + void BigoIOS_showPopupAd(UnityAd unityAd); +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.h.meta new file mode 100644 index 00000000..d0d26d03 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 60f143a983fcf474f9c68938033d595e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.mm new file mode 100644 index 00000000..83ce26a0 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.mm @@ -0,0 +1,29 @@ +#import +#import "UnityAppController.h" +#import "BigoUnityBaseAdHandler.h" +#import "BigoUnityAdapterTools.h" +#import "BigoUnityAdHandlerManager.h" + +extern "C"{ + +//load popup ad +void BigoIOS_loadPopupAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback + ) { + + +} + +void BigoIOS_showPopupAd(UnityAd unityAd) { + +} + +} + diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.mm.meta new file mode 100644 index 00000000..3e2fce70 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Popup/BigoUnityPopupAd.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 1216b7bb5404a4e478138d98a4ceabc8 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded.meta new file mode 100644 index 00000000..83e47cd5 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fc24c03453ca84472831cbe13d0cd70d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.cs new file mode 100644 index 00000000..42bcde84 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.cs @@ -0,0 +1,63 @@ +#if UNITY_IOS +using System.Collections.Generic; +using AOT; +using UnityEngine; + +namespace BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd +{ + using System; + using BigoAds.Scripts.Api; + using BigoAds.Scripts.Common; + using BigoAds.Scripts.Platforms.iOS; + using System.Runtime.InteropServices; + class BigoUnityRewardedAd : BigoIOSBaseAd, IRewardedAd + { + public event Action OnUserEarnedReward; + + public void Load(string slotId, BigoRewardedRequest request) + { + adType = 4; + this.unityAdPtr = (IntPtr)GCHandle.Alloc (this); + IntPtr ptr = this.unityAdPtr; + + BigoIOS_loadRewardedAdData(ptr, + slotId, + request.ToJson(), + cs_adDidLoadCallback, + cs_adLoadFailCallBack, + cs_adDidShowCallback, + cs_adDidClickCallback, + cs_adDidDismissCallback, + cs_adDidErrorCallBack, + cs_adDidEarnRewardCallback); + LOGWithMessage(System.Reflection.MethodBase.GetCurrentMethod()?.Name,$"slotId:{slotId},request{request}"); + } + + // c-> oc + [DllImport("__Internal")] + static extern void BigoIOS_loadRewardedAdData(IntPtr unityAd, + string slotId, + string requestJson, + adDidLoadCallback_delegate successCallback, + adLoadFailCallBack_delegate failCallback, + adDidShowCallback_delegate showCallback, + adDidClickCallback_delegate clickCallback, + adDidDismissCallback_delegate dismissCallback, + adDidErrorCallback_delegate adErrorCallback, + adDidEarnRewardCallback_delegate earnCallback); + + private delegate void adDidEarnRewardCallback_delegate(IntPtr unityAdPtr); + + [MonoPInvokeCallback(typeof(adDidEarnRewardCallback_delegate))] + private static void cs_adDidEarnRewardCallback(IntPtr unityAdPtr) + { + BigoUnityRewardedAd unityAd = BigoIOSBaseAd.GetUnityAd(unityAdPtr) as BigoUnityRewardedAd; + if (unityAd == null) + { + return; + } + unityAd.OnUserEarnedReward?.Invoke(); + } + } +} +#endif diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.cs.meta new file mode 100644 index 00000000..cdab5d22 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63ac6f7f8298c4f2585c4847b19ae90d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.h new file mode 100644 index 00000000..efe90830 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.h @@ -0,0 +1,18 @@ +#import "BigoUnityBaseAdHandler.h" + +extern "C" { + + //load Rewarded Ad + void BigoIOS_loadRewardedAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback, + AdDidEarnRewardCallback earnCallback); + //show open ad + void BigoIOS_showRewardedAd(UnityAd unityAd); +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.h.meta new file mode 100644 index 00000000..1963bd9f --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 780f30ce3796b4a89a92aa7e746d76bd +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.mm new file mode 100644 index 00000000..339e78b0 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.mm @@ -0,0 +1,69 @@ +#import +#import "UnityAppController.h" +#import "BigoUnityBaseAdHandler.h" +#import "BigoUnityAdapterTools.h" +#import "BigoUnityAdHandlerManager.h" + +extern "C"{ + +//load rewarded ad +void BigoIOS_loadRewardedAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback, + AdDidEarnRewardCallback earnCallback + ) { + BigoIOS_dispatchSyncMainQueue(^{ + + BigoUnityRewardedAdHandler *adHandler = [[BigoUnityRewardedAdHandler alloc] init]; + BigoRewardVideoAdRequest *request = [[BigoRewardVideoAdRequest alloc] initWithSlotId:BigoIOS_transformNSStringForm(slotId)]; + NSDictionary *requestDict = BigoIOS_requestJsonObjectFromJsonString(requestJson); + request.age = [requestDict[@"age"] intValue]; + request.gender = (BigoAdGender)[requestDict[@"gender"] intValue]; + request.activatedTime = [requestDict[@"activatedTime"] longLongValue]; + BigoRewardVideoAdLoader *adLoader = [[BigoRewardVideoAdLoader alloc] initWithRewardVideoAdLoaderDelegate:adHandler]; + adLoader.ext = requestDict[@"extraInfo"]; + adHandler.adLoader = adLoader; + adHandler.unityAd = unityAd; + adHandler.showCallback = showCallback; + adHandler.clickCallback = clickCallback; + adHandler.dismissCallback = dismissCallback; + adHandler.adErrorCallback = adErrorCallback; + adHandler.successCallback = successCallback; + adHandler.failCallback = failCallback; + adHandler.earnCallback = earnCallback; + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + [BigoUnityAdHandlerManager saveAdHandler:adHandler withKey:unityAdKey]; + [adLoader loadAd:request]; + }); + +} + +BigoUnityRewardedAdHandler* BigoIOS_getRewardedAdHandler(UnityAd unityAd) { + if (!unityAd) return nil; + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + BigoUnityRewardedAdHandler *handler = (BigoUnityRewardedAdHandler*)[BigoUnityAdHandlerManager handlerWithKey:unityAdKey]; + if (!handler || ![handler isMemberOfClass:[BigoUnityRewardedAdHandler class]]) { + return nil; + } + return handler; +} + +void BigoIOS_showRewardedAd(UnityAd unityAd) { + BigoUnityRewardedAdHandler *handler = BigoIOS_getRewardedAdHandler(unityAd); + if (!handler) return; + + BigoIOS_dispatchSyncMainQueue(^{ + UIViewController *vc = GetAppController().rootViewController; + BigoRewardVideoAd *ad = (BigoRewardVideoAd *)handler.ad; + [ad show:vc]; + }); +} + +} + diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.mm.meta new file mode 100644 index 00000000..71a5f96b --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Rewarded/BigoUnityRewardedAd.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: d8fabace3a5bc43d1909e6d2e3d11b76 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash.meta new file mode 100644 index 00000000..2dca8824 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7f81b17e4602f4d049f2f1679dd986df +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.h new file mode 100644 index 00000000..0dd04770 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.h @@ -0,0 +1,24 @@ +// +// BGSplashAdViewController.h +// demo +// +// Created by cai on 2022/5/23. +// + +#import +#import +#import "BigoUnityBaseAdHandler.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface BGSplashAdViewController : UIViewController + +@property (nonatomic, strong) UIViewController *rootVC; + +@property (nonatomic, strong) BigoSplashAd *ad; + +@property (nonatomic, weak) BigoUnitySplashAdHandler *adHandle; + +@end + +NS_ASSUME_NONNULL_END diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.h.meta new file mode 100644 index 00000000..6a06c0ef --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: fb04cd43cee464aaca615d708992dd8c +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.m b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.m new file mode 100644 index 00000000..2ab13ff1 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.m @@ -0,0 +1,71 @@ +// +// BGSplashAdViewController.m +// demo +// +// Created by cai on 2022/5/23. +// + +#import "BGSplashAdViewController.h" + +@interface BGSplashAdViewController () + +@end + +@implementation BGSplashAdViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor whiteColor]; + + [self.ad setSplashAdInteractionDelegate:self]; + [self.ad showInAdContainer:self.view]; +} + +- (void)dismissSplashController:(BigoAd *)ad { + [self.adHandle onAdClosed:ad]; + [[UIApplication sharedApplication].keyWindow setRootViewController:self.rootVC]; +} + +/** + * 广告可跳过回调,通常是由用户点击了右上角 SKIP 按钮所触发 + */ +- (void)onAdSkipped:(BigoAd *)ad { + [self dismissSplashController:ad]; +} + +/** + * 广告倒计时结束回调 + */ +- (void)onAdFinished:(BigoAd *)ad { + +} + +- (void)onAd:(BigoAd *)ad error:(BigoAdError *)error { + [self dismissSplashController:ad]; +} + +//广告展示 +- (void)onAdImpression:(BigoAd *)ad { + [self.adHandle onAdImpression:ad]; +} + +//广告点击 +- (void)onAdClicked:(BigoAd *)ad { + [self.adHandle onAdClicked:ad]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.navigationController setNavigationBarHidden:YES animated:animated]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + [self.navigationController setNavigationBarHidden:NO animated:animated]; +} + +- (BOOL)prefersStatusBarHidden { + return YES; +} + +@end diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.m.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.m.meta new file mode 100644 index 00000000..21558bd6 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BGSplashAdViewController.m.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 39e7476be840e4443b46b46741933efe +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.cs new file mode 100644 index 00000000..3d524cf8 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.cs @@ -0,0 +1,17 @@ +#if UNITY_IOS +using BigoAds.Scripts.Api; +using BigoAds.Scripts.Common; + +namespace BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd +{ + + class BigoUnitySplashAd : BigoIOSBaseAd, ISplashAd + { + public void Load(string slotId, BigoSplashRequest request) + { + adType = 5; + LoadAdData(slotId,request); + } + } +} +#endif diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.cs.meta new file mode 100644 index 00000000..f7fd32d5 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 75707b903f9fd4fdaa3146b0ec0fad6b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.h new file mode 100644 index 00000000..f2a616a3 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.h @@ -0,0 +1,17 @@ +#import "BigoUnityBaseAdHandler.h" + +extern "C" { + + //load appOpen Ad + void BigoIOS_loadSplashAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback); + //show open ad + void BigoIOS_showSplashAd(UnityAd unityAd); +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.h.meta new file mode 100644 index 00000000..265c3528 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: b558ab701b1ae4f74a9bf6908be239c4 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.mm new file mode 100644 index 00000000..40245794 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.mm @@ -0,0 +1,71 @@ +#import +#import "UnityAppController.h" +#import "BigoUnityBaseAdHandler.h" +#import "BigoUnityAdapterTools.h" +#import "BigoUnityAdHandlerManager.h" +#import "BGSplashAdViewController.h" + +extern "C"{ + +//load splash ad +void BigoIOS_loadSplashAdData(UnityAd unityAd, + const char *slotId, + const char *requestJson, + AdDidLoadCallback successCallback, + AdLoadFailCallBack failCallback, + AdDidShowCallback showCallback, + AdDidClickCallback clickCallback, + AdDidDismissCallback dismissCallback, + AdDidErrorCallback adErrorCallback + ) { + BigoIOS_dispatchSyncMainQueue(^{ + + BigoUnitySplashAdHandler *adHandler = [[BigoUnitySplashAdHandler alloc] init]; + BigoSplashAdRequest *request = [[BigoSplashAdRequest alloc] initWithSlotId:BigoIOS_transformNSStringForm(slotId)]; + NSDictionary *requestDict = BigoIOS_requestJsonObjectFromJsonString(requestJson); + request.age = [requestDict[@"age"] intValue]; + request.gender = (BigoAdGender)[requestDict[@"gender"] intValue]; + request.activatedTime = [requestDict[@"activatedTime"] longLongValue]; + BigoSplashAdLoader *adLoader = [[BigoSplashAdLoader alloc] initWithSplashAdLoaderDelegate:adHandler]; + adLoader.ext = requestDict[@"extraInfo"]; + adHandler.adLoader = adLoader; + adHandler.unityAd = unityAd; + adHandler.showCallback = showCallback; + adHandler.clickCallback = clickCallback; + adHandler.dismissCallback = dismissCallback; + adHandler.adErrorCallback = adErrorCallback; + adHandler.successCallback = successCallback; + adHandler.failCallback = failCallback; + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + [BigoUnityAdHandlerManager saveAdHandler:adHandler withKey:unityAdKey]; + [adLoader loadAd:request]; + }); + +} + +BigoUnitySplashAdHandler* BigoIOS_getSplashAdHandler(UnityAd unityAd) { + if (!unityAd) return nil; + NSString *unityAdKey = [BigoUnityAdHandlerManager createKeyUnityAd:unityAd]; + BigoUnitySplashAdHandler *handler = (BigoUnitySplashAdHandler*)[BigoUnityAdHandlerManager handlerWithKey:unityAdKey]; + if (!handler || ![handler isMemberOfClass:[BigoUnitySplashAdHandler class]]) { + return nil; + } + return handler; +} + +void BigoIOS_showSplashAd(UnityAd unityAd) { + BigoUnitySplashAdHandler *handler = BigoIOS_getSplashAdHandler(unityAd); + if (!handler) return; + + BigoIOS_dispatchSyncMainQueue(^{ + BGSplashAdViewController *vc = [BGSplashAdViewController new]; + BigoSplashAd *ad = (BigoSplashAd *)handler.ad; + vc.ad = ad; + vc.adHandle = handler; + vc.rootVC = [UIApplication sharedApplication].keyWindow.rootViewController; + [[UIApplication sharedApplication].keyWindow setRootViewController:vc]; + }); +} + +} + diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.mm.meta new file mode 100644 index 00000000..fad92865 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoAd/Splash/BigoUnitySplashAd.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 8235e7e5bc3aa4161911cbb121a01ed6 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.h b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.h new file mode 100644 index 00000000..d78de0d1 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.h @@ -0,0 +1,6 @@ +extern "C" { + NSString* BigoIOS_transformNSStringForm(const char * string); + void BigoIOS_dispatchSyncMainQueue(void (^block)(void)); + NSDictionary* BigoIOS_jsonObjectFromJsonString(NSString *jsonString); + NSDictionary* BigoIOS_requestJsonObjectFromJsonString(const char * json); +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.h.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.h.meta new file mode 100644 index 00000000..a39f59f4 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.h.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: b79d02d93f49840b7ad17017bcb5f3fe +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.mm b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.mm new file mode 100644 index 00000000..36c107a8 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.mm @@ -0,0 +1,43 @@ +#import + +extern "C" { +//字符串转化工具 +NSString* BigoIOS_transformNSStringForm(const char * string) +{ + if (!string) + { + string = ""; + } + return [NSString stringWithUTF8String:string]; +} + +void BigoIOS_dispatchSyncMainQueue(void (^block)(void)) { + if (!block) return; + if ([[NSThread currentThread] isMainThread]){ + block(); + return; + } + dispatch_sync(dispatch_get_main_queue(), ^{ block(); }); +} + +NSDictionary* BigoIOS_jsonObjectFromJsonString(NSString *jsonString) { + if (jsonString.length == 0) { + return [[NSDictionary alloc] init]; + } + NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; + NSError *error = nil; + id obj = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; + if (error || ![obj isKindOfClass:[NSDictionary class]]) { + return [[NSDictionary alloc] init]; + } + return obj; +} + +NSDictionary* BigoIOS_requestJsonObjectFromJsonString(const char * json) { + NSString *string = BigoIOS_transformNSStringForm(json); + return BigoIOS_jsonObjectFromJsonString(string); +} + + + +} diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.mm.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.mm.meta new file mode 100644 index 00000000..d1965c5d --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/Adapter/BigoUnityAdapterTools.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: 486cb19aab9734f3182b6ff6dc3d23b4 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/IOSClientFactory.cs b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/IOSClientFactory.cs new file mode 100644 index 00000000..8f03a0a8 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/IOSClientFactory.cs @@ -0,0 +1,46 @@ +#if UNITY_IOS +using BigoAds.Scripts.Common; +using BigoAds.Scripts.Platforms.iOS; +using BigoAds.Scripts.Platforms.iOS.Adapter.BigoAd; + +namespace BigoAds.Scripts.Platforms.iOS +{ + class IOSClientFactory : IClientFactory + { + + public ISDK BuildSDKClient() + { + return new BigoUnitySdk(); + } + + public IBannerAd BuildBannerAdClient() + { + return new BigoUnityBannerAd(); + } + + public INativeAd BuildNativeAdClient() + { + return new BigoUnityNativeAd(); + } + + public IInterstitialAd BuildInterstitialAdClient() + { + return new BigoUnityinterstitialAd(); + } + + public ISplashAd BuildSplashAdClient() + { + return new BigoUnitySplashAd(); + } + + public IRewardedAd BuildRewardedAdClient() + { + return new BigoUnityRewardedAd(); + } + public IPopupAd BuildPopupAdClient() + { + return new BigoUnitypopupAd(); + } + } +} +#endif \ No newline at end of file diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/IOSClientFactory.cs.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/IOSClientFactory.cs.meta new file mode 100644 index 00000000..3c9b051c --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoAds/Scripts/Platforms/iOS/IOSClientFactory.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 19b9b3ee98a034640a2530047c2a4d7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK.meta new file mode 100644 index 00000000..ba780c97 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2154e3fcfcb7f460db1c13464bb1355f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK/Editor.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK/Editor.meta new file mode 100644 index 00000000..39c97da9 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec31bab3b8560467a9ec89b7934596bd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK/Editor/Dependencies.xml b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK/Editor/Dependencies.xml new file mode 100644 index 00000000..c0b03467 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK/Editor/Dependencies.xml @@ -0,0 +1,13 @@ + + + + + + + + + https://repo1.maven.org/maven2/ + + + + diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK/Editor/Dependencies.xml.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK/Editor/Dependencies.xml.meta new file mode 100644 index 00000000..f60ea084 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/BigoSDK/Editor/Dependencies.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1b669f66367be4697b7819f165f9842b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins.meta new file mode 100644 index 00000000..b09bf350 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ca1b7cf972e5d7a4ebc9e77be68a314b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android.meta new file mode 100644 index 00000000..570b3668 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d1cdd34ee8d852e4e9b14eea343fef69 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android/res.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android/res.meta new file mode 100644 index 00000000..bc279018 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android/res.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 09459092961e841bb83f8a01e1e0c22e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android/res/layout.meta b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android/res/layout.meta new file mode 100644 index 00000000..828e4a18 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android/res/layout.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c220b7479c41f472da80fb5a47a9c7ff +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android/res/layout/layout_bigo_native_ad.xml b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android/res/layout/layout_bigo_native_ad.xml new file mode 100644 index 00000000..27f90781 --- /dev/null +++ b/Assets/SRKZBz0SDK/ThirdParty/BigoAdsAll/Plugins/Android/res/layout/layout_bigo_native_ad.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + +