From e65c46e345a110f94cc4dde252d39c84ed055459 Mon Sep 17 00:00:00 2001 From: zhangjie0072 Date: Tue, 2 Aug 2022 13:18:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5sdk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Configs.meta | 8 + Assets/Configs/CN.meta | 8 + Assets/Configs/CN/tkg_config.plist | 150 + Assets/Configs/CN/tkg_config.plist.meta | 7 + Assets/Configs/CN/tkg_config.properties | 156 + Assets/Configs/CN/tkg_config.properties.meta | 7 + Assets/Configs/CN/tkg_sdk_config.ini | 70 + Assets/Configs/CN/tkg_sdk_config.ini.meta | 7 + Assets/Configs/CN/tkg_sdk_config.plist | 62 + Assets/Configs/CN/tkg_sdk_config.plist.meta | 7 + Assets/Configs/GB.meta | 8 + Assets/Configs/GB/GoogleService-Info.plist | 34 + .../Configs/GB/GoogleService-Info.plist.meta | 7 + Assets/Configs/GB/google-services.json | 46 + Assets/Configs/GB/google-services.json.meta | 7 + Assets/Configs/GB/tkg_config.plist | 150 + Assets/Configs/GB/tkg_config.plist.meta | 7 + Assets/Configs/GB/tkg_config.properties | 156 + Assets/Configs/GB/tkg_config.properties.meta | 7 + Assets/Configs/GB/tkg_sdk_config.ini | 70 + Assets/Configs/GB/tkg_sdk_config.ini.meta | 7 + Assets/Configs/GB/tkg_sdk_config.plist | 62 + Assets/Configs/GB/tkg_sdk_config.plist.meta | 7 + Assets/Resources/BillingMode.json | 1 + Assets/Resources/BillingMode.json.meta | 7 + Assets/TKGSDK.meta | 8 + Assets/TKGSDK/Common.meta | 8 + Assets/TKGSDK/Common/GameInterface.meta | 8 + .../Common/GameInterface/TKGSDKManager.cs | 602 ++ .../GameInterface/TKGSDKManager.cs.meta | 11 + .../TKGSDK/Common/GameInterface/TKGUtils.cs | 164 + .../Common/GameInterface/TKGUtils.cs.meta | 11 + Assets/TKGSDK/Common/SDKTools.meta | 8 + Assets/TKGSDK/Common/SDKTools/IAPTool.cs | 365 + Assets/TKGSDK/Common/SDKTools/IAPTool.cs.meta | 11 + .../TKGSDK/Common/SDKTools/NormalSingleton.cs | 18 + .../Common/SDKTools/NormalSingleton.cs.meta | 11 + .../Common/SDKTools/TKGAndroidCNHide.cs | 20 + .../Common/SDKTools/TKGAndroidCNHide.cs.meta | 11 + Assets/TKGSDK/Common/internal.meta | 8 + Assets/TKGSDK/Common/internal/ITKGSDK.cs | 398 ++ Assets/TKGSDK/Common/internal/ITKGSDK.cs.meta | 11 + Assets/TKGSDK/Common/internal/TKGDebugger.cs | 40 + .../Common/internal/TKGDebugger.cs.meta | 11 + Assets/TKGSDK/Common/internal/TKGSDKNative.cs | 662 ++ .../Common/internal/TKGSDKNative.cs.meta | 11 + Assets/TKGSDK/Common/internal/TKGSingleton.cs | 45 + .../Common/internal/TKGSingleton.cs.meta | 11 + .../TKGSDK/Common/internal/TKGStringConst.cs | 24 + .../Common/internal/TKGStringConst.cs.meta | 11 + Assets/TKGSDK/Common/internal/iOS.meta | 8 + .../Common/internal/iOS/TGUniversalFunc.cs | 90 + .../internal/iOS/TGUniversalFunc.cs.meta | 11 + .../Common/internal/iOS/TGiOSAdmanager.cs | 570 ++ .../internal/iOS/TGiOSAdmanager.cs.meta | 11 + Assets/TKGSDK/Config.meta | 8 + Assets/TKGSDK/Config/ConfigKeys.cs | 79 + Assets/TKGSDK/Config/ConfigKeys.cs.meta | 11 + Assets/TKGSDK/Config/ConfigTools.meta | 8 + .../TKGSDK/Config/ConfigTools/TKGFileTools.cs | 58 + .../Config/ConfigTools/TKGFileTools.cs.meta | 11 + .../Config/ConfigTools/TKGLoadPlistConfig.cs | 93 + .../ConfigTools/TKGLoadPlistConfig.cs.meta | 11 + .../ConfigTools/TKGLoadPropertiesConfig.cs | 61 + .../TKGLoadPropertiesConfig.cs.meta | 11 + Assets/TKGSDK/Config/ConfigTools/TKGPlist.cs | 961 +++ .../Config/ConfigTools/TKGPlist.cs.meta | 11 + .../Config/ConfigTools/TKGProperties.cs | 42 + .../Config/ConfigTools/TKGProperties.cs.meta | 11 + Assets/TKGSDK/Config/Scripts.meta | 8 + Assets/TKGSDK/Config/Scripts/IAPProducts.cs | 16 + .../TKGSDK/Config/Scripts/IAPProducts.cs.meta | 11 + .../Config/Scripts/StaticOtherConfig.cs | 24 + .../Config/Scripts/StaticOtherConfig.cs.meta | 11 + .../Config/Scripts/TKGAdPositionName.cs | 41 + .../Config/Scripts/TKGAdPositionName.cs.meta | 11 + Assets/TKGSDK/Config/Scripts/TKGParams.cs | 26 + .../TKGSDK/Config/Scripts/TKGParams.cs.meta | 11 + Assets/TKGSDK/Config/StaticStringsKey.cs | 81 + Assets/TKGSDK/Config/StaticStringsKey.cs.meta | 11 + Assets/TKGSDK/Config/TKGLoadConfig.cs | 241 + Assets/TKGSDK/Config/TKGLoadConfig.cs.meta | 11 + Assets/TKGSDK/Demo.meta | 8 + Assets/TKGSDK/Demo/ToukaSDKDemo.cs | 311 + Assets/TKGSDK/Demo/ToukaSDKDemo.cs.meta | 11 + Assets/TKGSDK/Demo/ToukaSDKDemo.unity | 6017 +++++++++++++++++ Assets/TKGSDK/Demo/ToukaSDKDemo.unity.meta | 7 + Assets/TKGSDK/Editor.meta | 8 + Assets/TKGSDK/Editor/TKGAllPostprocessor.cs | 55 + .../TKGSDK/Editor/TKGAllPostprocessor.cs.meta | 11 + Assets/TKGSDK/Editor/TKGParseGameConfig.cs | 98 + .../TKGSDK/Editor/TKGParseGameConfig.cs.meta | 11 + .../Editor/ToukaAdsBuildPostProcessor.cs | 733 ++ .../Editor/ToukaAdsBuildPostProcessor.cs.meta | 11 + .../ToukaAnalyticsBuildPostProcessor.cs | 221 + .../ToukaAnalyticsBuildPostProcessor.cs.meta | 11 + Assets/TKGSDK/Editor/ToukaEditor.cs | 208 + Assets/TKGSDK/Editor/ToukaEditor.cs.meta | 11 + Assets/TKGSDK/NativeSDK.meta | 8 + Assets/TKGSDK/NativeSDK/Scripts.meta | 8 + Assets/TKGSDK/NativeSDK/Scripts/SDK.meta | 8 + .../Scripts/SDK/TKGNativeInterface.cs | 447 ++ .../Scripts/SDK/TKGNativeInterface.cs.meta | 11 + .../Scripts/SDK/TKGNativeInterfaceAndroid.cs | 712 ++ .../SDK/TKGNativeInterfaceAndroid.cs.meta | 11 + .../Scripts/SDK/TKGNativeInterfaceDefault.cs | 544 ++ .../SDK/TKGNativeInterfaceDefault.cs.meta | 11 + .../Scripts/SDK/TKGNativeInterfaceIOS.cs | 635 ++ .../Scripts/SDK/TKGNativeInterfaceIOS.cs.meta | 11 + .../Scripts/SDK/TKGNativeInterfaceWebgl.cs | 759 +++ .../SDK/TKGNativeInterfaceWebgl.cs.meta | 11 + .../NativeSDK/Scripts/SDK/TKGSDKCallback.cs | 94 + .../Scripts/SDK/TKGSDKCallback.cs.meta | 11 + .../Scripts/SDK/TKGSDKCallbackAndroid.cs | 347 + .../Scripts/SDK/TKGSDKCallbackAndroid.cs.meta | 11 + .../Scripts/SDK/TKGSDKCallbackIOS.cs | 15 + .../Scripts/SDK/TKGSDKCallbackIOS.cs.meta | 11 + Assets/TKGSDK/NativeSDK/Scripts/Utils.meta | 8 + .../NativeSDK/Scripts/Utils/DplusAgent.cs | 250 + .../Scripts/Utils/DplusAgent.cs.meta | 11 + Assets/TKGSDK/NativeSDK/Scripts/Utils/Loom.cs | 178 + .../NativeSDK/Scripts/Utils/Loom.cs.meta | 11 + .../NativeSDK/Scripts/Utils/MiniJSON.cs | 637 ++ .../NativeSDK/Scripts/Utils/MiniJSON.cs.meta | 11 + .../NativeSDK/Scripts/Utils/SimpleJSON.cs | 1398 ++++ .../Scripts/Utils/SimpleJSON.cs.meta | 11 + Assets/TKGSDK/Splash.meta | 8 + Assets/TKGSDK/Splash/CN.meta | 8 + Assets/TKGSDK/Splash/CN/LaunchScreen-iPad.png | Bin 0 -> 176488 bytes .../Splash/CN/LaunchScreen-iPad.png.meta | 92 + .../CN/LaunchScreen-iPhoneLandscape.png | Bin 0 -> 154760 bytes .../CN/LaunchScreen-iPhoneLandscape.png.meta | 92 + .../Splash/CN/LaunchScreen-iPhonePortrait.png | Bin 0 -> 156143 bytes .../CN/LaunchScreen-iPhonePortrait.png.meta | 92 + Assets/TKGSDK/Splash/GB.meta | 8 + Assets/TKGSDK/Splash/GB/LaunchScreen-iPad.png | Bin 0 -> 94016 bytes .../Splash/GB/LaunchScreen-iPad.png.meta | 92 + .../GB/LaunchScreen-iPhoneLandscape.png | Bin 0 -> 66043 bytes .../GB/LaunchScreen-iPhoneLandscape.png.meta | 92 + .../Splash/GB/LaunchScreen-iPhonePortrait.png | Bin 0 -> 69103 bytes .../GB/LaunchScreen-iPhonePortrait.png.meta | 92 + .../Resources/ES3/ES3Defaults.asset | 6 +- 142 files changed, 20606 insertions(+), 3 deletions(-) create mode 100644 Assets/Configs.meta create mode 100644 Assets/Configs/CN.meta create mode 100644 Assets/Configs/CN/tkg_config.plist create mode 100644 Assets/Configs/CN/tkg_config.plist.meta create mode 100644 Assets/Configs/CN/tkg_config.properties create mode 100644 Assets/Configs/CN/tkg_config.properties.meta create mode 100644 Assets/Configs/CN/tkg_sdk_config.ini create mode 100644 Assets/Configs/CN/tkg_sdk_config.ini.meta create mode 100644 Assets/Configs/CN/tkg_sdk_config.plist create mode 100644 Assets/Configs/CN/tkg_sdk_config.plist.meta create mode 100644 Assets/Configs/GB.meta create mode 100644 Assets/Configs/GB/GoogleService-Info.plist create mode 100644 Assets/Configs/GB/GoogleService-Info.plist.meta create mode 100644 Assets/Configs/GB/google-services.json create mode 100644 Assets/Configs/GB/google-services.json.meta create mode 100644 Assets/Configs/GB/tkg_config.plist create mode 100644 Assets/Configs/GB/tkg_config.plist.meta create mode 100644 Assets/Configs/GB/tkg_config.properties create mode 100644 Assets/Configs/GB/tkg_config.properties.meta create mode 100644 Assets/Configs/GB/tkg_sdk_config.ini create mode 100644 Assets/Configs/GB/tkg_sdk_config.ini.meta create mode 100644 Assets/Configs/GB/tkg_sdk_config.plist create mode 100644 Assets/Configs/GB/tkg_sdk_config.plist.meta create mode 100644 Assets/Resources/BillingMode.json create mode 100644 Assets/Resources/BillingMode.json.meta create mode 100644 Assets/TKGSDK.meta create mode 100644 Assets/TKGSDK/Common.meta create mode 100644 Assets/TKGSDK/Common/GameInterface.meta create mode 100644 Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs create mode 100644 Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs.meta create mode 100644 Assets/TKGSDK/Common/GameInterface/TKGUtils.cs create mode 100644 Assets/TKGSDK/Common/GameInterface/TKGUtils.cs.meta create mode 100644 Assets/TKGSDK/Common/SDKTools.meta create mode 100644 Assets/TKGSDK/Common/SDKTools/IAPTool.cs create mode 100644 Assets/TKGSDK/Common/SDKTools/IAPTool.cs.meta create mode 100644 Assets/TKGSDK/Common/SDKTools/NormalSingleton.cs create mode 100644 Assets/TKGSDK/Common/SDKTools/NormalSingleton.cs.meta create mode 100644 Assets/TKGSDK/Common/SDKTools/TKGAndroidCNHide.cs create mode 100644 Assets/TKGSDK/Common/SDKTools/TKGAndroidCNHide.cs.meta create mode 100644 Assets/TKGSDK/Common/internal.meta create mode 100644 Assets/TKGSDK/Common/internal/ITKGSDK.cs create mode 100644 Assets/TKGSDK/Common/internal/ITKGSDK.cs.meta create mode 100644 Assets/TKGSDK/Common/internal/TKGDebugger.cs create mode 100644 Assets/TKGSDK/Common/internal/TKGDebugger.cs.meta create mode 100644 Assets/TKGSDK/Common/internal/TKGSDKNative.cs create mode 100644 Assets/TKGSDK/Common/internal/TKGSDKNative.cs.meta create mode 100644 Assets/TKGSDK/Common/internal/TKGSingleton.cs create mode 100644 Assets/TKGSDK/Common/internal/TKGSingleton.cs.meta create mode 100644 Assets/TKGSDK/Common/internal/TKGStringConst.cs create mode 100644 Assets/TKGSDK/Common/internal/TKGStringConst.cs.meta create mode 100644 Assets/TKGSDK/Common/internal/iOS.meta create mode 100644 Assets/TKGSDK/Common/internal/iOS/TGUniversalFunc.cs create mode 100644 Assets/TKGSDK/Common/internal/iOS/TGUniversalFunc.cs.meta create mode 100644 Assets/TKGSDK/Common/internal/iOS/TGiOSAdmanager.cs create mode 100644 Assets/TKGSDK/Common/internal/iOS/TGiOSAdmanager.cs.meta create mode 100644 Assets/TKGSDK/Config.meta create mode 100644 Assets/TKGSDK/Config/ConfigKeys.cs create mode 100644 Assets/TKGSDK/Config/ConfigKeys.cs.meta create mode 100644 Assets/TKGSDK/Config/ConfigTools.meta create mode 100644 Assets/TKGSDK/Config/ConfigTools/TKGFileTools.cs create mode 100644 Assets/TKGSDK/Config/ConfigTools/TKGFileTools.cs.meta create mode 100644 Assets/TKGSDK/Config/ConfigTools/TKGLoadPlistConfig.cs create mode 100644 Assets/TKGSDK/Config/ConfigTools/TKGLoadPlistConfig.cs.meta create mode 100644 Assets/TKGSDK/Config/ConfigTools/TKGLoadPropertiesConfig.cs create mode 100644 Assets/TKGSDK/Config/ConfigTools/TKGLoadPropertiesConfig.cs.meta create mode 100644 Assets/TKGSDK/Config/ConfigTools/TKGPlist.cs create mode 100644 Assets/TKGSDK/Config/ConfigTools/TKGPlist.cs.meta create mode 100644 Assets/TKGSDK/Config/ConfigTools/TKGProperties.cs create mode 100644 Assets/TKGSDK/Config/ConfigTools/TKGProperties.cs.meta create mode 100644 Assets/TKGSDK/Config/Scripts.meta create mode 100644 Assets/TKGSDK/Config/Scripts/IAPProducts.cs create mode 100644 Assets/TKGSDK/Config/Scripts/IAPProducts.cs.meta create mode 100644 Assets/TKGSDK/Config/Scripts/StaticOtherConfig.cs create mode 100644 Assets/TKGSDK/Config/Scripts/StaticOtherConfig.cs.meta create mode 100644 Assets/TKGSDK/Config/Scripts/TKGAdPositionName.cs create mode 100644 Assets/TKGSDK/Config/Scripts/TKGAdPositionName.cs.meta create mode 100644 Assets/TKGSDK/Config/Scripts/TKGParams.cs create mode 100644 Assets/TKGSDK/Config/Scripts/TKGParams.cs.meta create mode 100644 Assets/TKGSDK/Config/StaticStringsKey.cs create mode 100644 Assets/TKGSDK/Config/StaticStringsKey.cs.meta create mode 100644 Assets/TKGSDK/Config/TKGLoadConfig.cs create mode 100644 Assets/TKGSDK/Config/TKGLoadConfig.cs.meta create mode 100644 Assets/TKGSDK/Demo.meta create mode 100644 Assets/TKGSDK/Demo/ToukaSDKDemo.cs create mode 100644 Assets/TKGSDK/Demo/ToukaSDKDemo.cs.meta create mode 100644 Assets/TKGSDK/Demo/ToukaSDKDemo.unity create mode 100644 Assets/TKGSDK/Demo/ToukaSDKDemo.unity.meta create mode 100644 Assets/TKGSDK/Editor.meta create mode 100644 Assets/TKGSDK/Editor/TKGAllPostprocessor.cs create mode 100644 Assets/TKGSDK/Editor/TKGAllPostprocessor.cs.meta create mode 100644 Assets/TKGSDK/Editor/TKGParseGameConfig.cs create mode 100644 Assets/TKGSDK/Editor/TKGParseGameConfig.cs.meta create mode 100644 Assets/TKGSDK/Editor/ToukaAdsBuildPostProcessor.cs create mode 100644 Assets/TKGSDK/Editor/ToukaAdsBuildPostProcessor.cs.meta create mode 100644 Assets/TKGSDK/Editor/ToukaAnalyticsBuildPostProcessor.cs create mode 100644 Assets/TKGSDK/Editor/ToukaAnalyticsBuildPostProcessor.cs.meta create mode 100644 Assets/TKGSDK/Editor/ToukaEditor.cs create mode 100644 Assets/TKGSDK/Editor/ToukaEditor.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterface.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterface.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceAndroid.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceAndroid.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceDefault.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceDefault.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceIOS.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceIOS.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceWebgl.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceWebgl.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallback.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallback.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackAndroid.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackAndroid.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackIOS.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackIOS.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/Utils.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/Utils/DplusAgent.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/Utils/DplusAgent.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/Utils/Loom.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/Utils/Loom.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/Utils/MiniJSON.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/Utils/MiniJSON.cs.meta create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/Utils/SimpleJSON.cs create mode 100644 Assets/TKGSDK/NativeSDK/Scripts/Utils/SimpleJSON.cs.meta create mode 100644 Assets/TKGSDK/Splash.meta create mode 100644 Assets/TKGSDK/Splash/CN.meta create mode 100644 Assets/TKGSDK/Splash/CN/LaunchScreen-iPad.png create mode 100644 Assets/TKGSDK/Splash/CN/LaunchScreen-iPad.png.meta create mode 100644 Assets/TKGSDK/Splash/CN/LaunchScreen-iPhoneLandscape.png create mode 100644 Assets/TKGSDK/Splash/CN/LaunchScreen-iPhoneLandscape.png.meta create mode 100644 Assets/TKGSDK/Splash/CN/LaunchScreen-iPhonePortrait.png create mode 100644 Assets/TKGSDK/Splash/CN/LaunchScreen-iPhonePortrait.png.meta create mode 100644 Assets/TKGSDK/Splash/GB.meta create mode 100644 Assets/TKGSDK/Splash/GB/LaunchScreen-iPad.png create mode 100644 Assets/TKGSDK/Splash/GB/LaunchScreen-iPad.png.meta create mode 100644 Assets/TKGSDK/Splash/GB/LaunchScreen-iPhoneLandscape.png create mode 100644 Assets/TKGSDK/Splash/GB/LaunchScreen-iPhoneLandscape.png.meta create mode 100644 Assets/TKGSDK/Splash/GB/LaunchScreen-iPhonePortrait.png create mode 100644 Assets/TKGSDK/Splash/GB/LaunchScreen-iPhonePortrait.png.meta diff --git a/Assets/Configs.meta b/Assets/Configs.meta new file mode 100644 index 00000000..03f725a9 --- /dev/null +++ b/Assets/Configs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ce648fc8bf664d56bcf72c9d5be76e6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/CN.meta b/Assets/Configs/CN.meta new file mode 100644 index 00000000..55432a04 --- /dev/null +++ b/Assets/Configs/CN.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 24df658e83b09495585fa9cf08156d07 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/CN/tkg_config.plist b/Assets/Configs/CN/tkg_config.plist new file mode 100644 index 00000000..6376a9fb --- /dev/null +++ b/Assets/Configs/CN/tkg_config.plist @@ -0,0 +1,150 @@ + + + + + lock_screen + on + tenjin_api_key + PYOTVKJ4XZJHSMZW2V6GBQRCNXAFKWU2 + rn_app_key + + file + + tka_theme + + ad_sk_interstital_id + + fb_client_token + + package_name + com.toukagames.drawarmy + updatetime + 2022/06/23 15:00:52 + usb + on + adjust_id + + fb_download_url + + td_channel_id + default + firebase_name + GoogleService-Info.plist + game_screen_orientation + 0 + main_activity + com.u8.sdk.U8UnityContext + admob_id + ca-app-pub-3916046151571724~7731238444 + channel + AppStore_CN + tka_url_privacy + https://www.mooncakegame.com/privacy.html + um_app_key + 60890fe2f00c2e19b93e6155 + tw_txt + {"m-native_sdk":"","lock_screen":"on","fs":"3","m-interaction_sdk":"","wifi_interval":"30","td_app_id":"","m-banner":"b779308d2f67c37d","usb":"on","unlock":"on","citys":"北京,上海,广州,深圳,东莞,香港,澳门,武汉,阿里云,腾讯云,华为云","td_channel_id":"default","m-splash_sdk":"","unlock_next":"1","wifi":"on","pp":"30","m-splash":"","m-interaction":"babddc80a2651057","m-app_key":"QVt-ZBOR44Frm2Ub8gEfbPo-K8SeKHvyzoq-TJ3op08cFx29THV9DviWinxrQBxNePGKU14gHOkClTrNOi_1a9","unlock_style":"2","unlock_interval":"2","m-reward":"ddb2dd36ec0f5a85","m-app_id":"","m-native":"","bg_pop":"on"} + unlock_next + 1 + ad_banner_id + b6083a3a129482 + platform + ios + copyright_id + + copyright_holder + + publisher_url_scheme + + app_name + TKGSDKDemo + bugly_appid + + offer_id + + ga_secretkey + 6a2dd6d6189994e7af755efe6944e4a08e0929a7 + unlock_interval + 2 + fb_appid + + ad_interstital_half_id + + ad_native_banner_id + + tk_app_id + a607fe29de4363 + ad_native_splash_id + + bg_pop + on + bugly_appkey + + firebase_path + https://my-report.oss-cn-beijing.aliyuncs.com/icon/2022/06/23/5c91a28aac0543d1afcb1f1e92946cce.plist + fs + 3 + ad_appkey + c13e4357e57d78e76e472899eb182e98 + wifi_interval + 30 + tka_url_agreement + https://www.mooncakegame.com/agreements.html + ad_templete_natvie_id + + td_app_id + + tka_age + 12 + ad_full_reward_id + + tka_type + + splash_img + + channel_appkey + + unlock + on + ad_interstital_id + b607ae9b4529ed + citys + 北京,上海,广州,深圳,东莞,香港,澳门,武汉,阿里云,腾讯云,华为云 + publisher_appid + + ad_splash_id + + baidumobad_app_id + + channel_appsecret + + ad_appid + a607acb6913054 + ad_sk_native1_id + + publish_account + Mooncake Games Limited + channel_appid + + ad_render_native_id + b608251153978a + wifi + on + pp + 30 + ad_reward_id + b608250f4ec04a + ad_sk_native_id + + tka_url_moregame + https://apps.apple.com/developer/id1521253916 + unlock_style + 2 + ga_key + 000f968b863b47fc95ef55473ce955b1 + ad_sk_splash_id + + ad_platform + topon + + diff --git a/Assets/Configs/CN/tkg_config.plist.meta b/Assets/Configs/CN/tkg_config.plist.meta new file mode 100644 index 00000000..84f1ece3 --- /dev/null +++ b/Assets/Configs/CN/tkg_config.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eb64a089a31554aa5bffdb0e52149a14 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/CN/tkg_config.properties b/Assets/Configs/CN/tkg_config.properties new file mode 100644 index 00000000..3f9898e1 --- /dev/null +++ b/Assets/Configs/CN/tkg_config.properties @@ -0,0 +1,156 @@ + +#=================基础配置============================= +#游戏名称 +app_name=太空潜行者 +#包名 +package_name=com.autumnant.alienkill +#闪屏图(&健康提示),值:图片名字,没有填"",详见需求文档(- 新增splash图 部分):https://pic6ktmsyi.feishu.cn/docs/doccnRdYblZyPN2HpIK6nsJmqSb# +splash_img= +#游戏横竖屏,根据游戏横竖屏取值 值: 0 竖屏, 1 横屏 +game_screen_orientation=0 +#发行主体 +publish_account=北京慕恩凯克网络科技有限公司 + +#渠道 +channel=DY012 +#子渠道 +sub_channel="" +#客户端协议上报u8 appid +tk_app_id=8110 + +#外部测试使用facebook id +fb_appid= +fb_client_token= +#adjust_id{} +adjust_id= +#巨量app id +rangers_applog_id={rangers_applog_id} +#发行人app id +publisher_appid= +publisher_url_scheme= +#游戏软著著作人 +copyright_holder=北京慕恩凯克网络科技有限公司 +#游戏软著登记号 +copyright_id=2022SR0713177 + +#调试模式(写死不动,仅供调试使用) +#debug_mode=false + + +#=================用户协议(弹窗)配置============================= +#游戏类型 +TkA_Type=休闲益智 +#游戏题材 +TkA_Theme=冒险闯关 +#适龄,取值:8|12|16|18 +TkA_Age=12 +#隐私政策url +TkA_Url_Privacy=https://www.mooncakegame.com/privacy.html +#用户协议url +TkA_Url_Agreement=https://www.mooncakegame.com/agreements.html + +#=================广告通用配置============================= +#广告平台,max|topon|xiaomi +ad_platform=topon + +#广告appid (包括max applovin.sdk.key) +ad_appid=a1dt3hgr196p3q +#广告appkey +ad_appkey=c13e4357e57d78e76e472899eb182e98 +#admob id +admob_id= + + +#开屏广告位id +ad_splash_id=b6297221b599ae +ad_native_splash_id= +#插屏广告位id +ad_interstital_id=b1dt3hgr9pocks +#半屏插屏广告位id(小米广告区分全/半屏) +ad_interstital_half_id= +#激励视频广告位id +ad_reward_id=b1dt3hgrarr5pi +#banner广告位id +ad_banner_id= +ad_native_banner_id= +# 原生模板广告位id [增加] +ad_templete_natvie_id= + +# 原生自渲染广告位id [增加] +ad_render_native_id= + + +#=================TW配置============================= +#[TODO][meta-data]百度 APPID +BaiduMobAd_APP_ID= + +#副包下载链接 +FB_DOWNLOAD_URL= +FB_POP_CONFIG_DAT_URL=https://my-report.oss-cn-beijing.aliyuncs.com/config/pops-com.autumnant.alienkill.dat +#更多游戏链接 +tka_url_moregame= + +#TW广告位 +#SDK插屏 +ad_sk_interstital_id= +#SDK开屏 +ad_sk_splash_id= +#SDK信息流 +ad_sk_native_id= +#SDK信息流1 +ad_sk_native1_id= + +#[TODO][meta-data]游戏主 Activity: +#取值 Unity游戏: com.u8.sdk.U8UnityContext +#flash游戏: com.u8.sdk.ane.U8ANEActivity +#Cocos游戏: com.u8.sdk.U8CocosActivity +MAIN_ACTIVITY=com.u8.sdk.U8UnityContext + +#极光 AppKey,默认空 +JPUSH_APPKEY="" + + +#客服邮箱 +tkg_custom=dev@mooncakegame.com +channel_appid= +channel_appkey= +channel_appsecret= + + +#=================Bugly============================= +Bugly_AppID=17f7b7efc7 +Bugly_AppKey=1d989fdb-526e-49a7-b23b-94d12185e934 + + +#=================YSDK实名认证============================= +#[TODO][ysdkconf.ini]腾讯AppID +OFFER_ID=1112212474 + + +#=================Umeng配置============================= +#UM Appkey +UM_APP_KEY=6297415788ccdf4b7e838779 +#json 参数 key +JSON_PARAM_KEY="" +#[TODO][文件类型参数]默认 (在线) 参数配置 +UMENG_DEFAULT_ONLINE_CONFIG="" + +#=================GA配置============================= +#GA AppKey +GA_KEY= +#GA AppSecret +GA_SECRETKEY= + +#=================热云配置============================= +#AppKey +RN_APP_KEY= + +#=================Tenjin配置============================= +#Tenjin ApiKey +TENJIN_API_KEY=PYOTVKJ4XZJHSMZW2V6GBQRCNXAFKWU2 + +#=================Firebase配置============================= +#[TODO][文件类型参数]google-services.json文件 +google_services_json="" + +{remark} \ No newline at end of file diff --git a/Assets/Configs/CN/tkg_config.properties.meta b/Assets/Configs/CN/tkg_config.properties.meta new file mode 100644 index 00000000..7ac715c4 --- /dev/null +++ b/Assets/Configs/CN/tkg_config.properties.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 65fdf291ed5a645e5a155b7eac5b25c2 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/CN/tkg_sdk_config.ini b/Assets/Configs/CN/tkg_sdk_config.ini new file mode 100644 index 00000000..5c16fddd --- /dev/null +++ b/Assets/Configs/CN/tkg_sdk_config.ini @@ -0,0 +1,70 @@ +TKG_ENABLE_LOG = false + + +#***********副包配置*********** +#副包下载地址,目前所有游戏使用同一个副包,此链接不需要修改 +FB_DOWNLOAD_URL = http://p2-yx.adkwai.com/udata/pkg/DSP-EFFECT/apk/36e063f5-9473-4064-b99f-8686bcc427e6.apk +#是否在wifi状态下提前预下载副包apk +FB_PREDOWNLOAD_IN_WIFI = false + +#云控弹窗配置链接(* 每个游戏需要单独配置),留空则使用留包配置 +#FB_POP_CONFIG_DAT_URL = https://my-report.oss-cn-beijing.aliyuncs.com/config/pops-com.zlsz.basketdash.global.dat + +#锁屏广告类型 0:信息流 1:百度资讯 此处设置会被弹窗配置文件(pop-包名.dat)设置覆盖 +DEFAULT_LOCK_SCREEN_TYPE = 0 +#弹窗库日志打印开关 +POPLIB_LOG_ENABLE = false + +#延迟多久弹出副包悬浮按钮,单位毫秒(可根据游戏加载时长设置,一般进入游戏正式画面再显示) +SHOW_FB_UI_DELAY = 5000 +#自动弹出副包安装提示弹窗时,延迟多久弹出,单位毫秒(可根据游戏加载时长设置,一般进入游戏正式画面再显示) +AUTO_SHOW_FB_DIALOG_DELAY = 10000 + + +#激活上报比例,取值0-100 +ANALYTICS_RATIO = 100 + +#统计激活(初始化)时机 +# 打开游戏时 :0 +# 实名认证之后 :1 +# 展示了一次插屏广告 :3 +# 广告展示收入达标 :5 (设置这个值需要同时设置ANALYTICS_INIT_REVENUE的取值) +ANALYTICS_INIT_TIME = 0 +#广告收入达到多少才初始化,值: 0.005 +ANALYTICS_INIT_REVENUE = 0 +#展示广告x次数之后初始化统计SDK +ANALYTICS_SHOW_AD_NUMBER = 1 + +#插屏广告弹出规则 值json: [{"type":0,"overLevel":0,"interval":30,"skipLevel":1},{"type":1,"overLevel":0,"interval":30,"skipLevel":1}] +INTER_AD_RULES = [{"type":"0","overLevel":"0","interval":"10","skipLevel":"1"}] +#自动插屏规则 值json: SDK默认值: {"open":false,"interval":30,"skipLevel":1} +AUTO_INTER_AD_RULES= {"open":false,"interval":"30","skipLevel":"-1"} + +#新增当天游戏通关数,一个用户上报一次,X支持在线参数配置,默认值15 +NewUserPassLevel = 15 +#新增当天视频广告播放次数超过X次,则上报,一个用户上报一次,X支持在线参数配置,默认值15 +NewUserAdsCount = 15 + +#用户任意类型广告(包括游戏内及TW所有广告类型)ecpm达到X则上报 +NewUserEcpm = 3 +#当插屏ecpm达到X则上报,包括TW插屏 +NewUserIvEcpm = 3 +#当激励视频ecpm达到X则上报 +NewUserRvEcpm = 4 +#插屏+激励视频(包括TW),成功展示X次则上报。 +NewUserPvCount = 18 + +#用户任意类型广告ecpm达到X且用户时长达到Y则上报。时长(NewUserTime)是当日多次登陆累计时间 +NewUserTimeEcpm = 3 +#时间,单位秒 +NewUserTime = 600 + +#用户收益达到X则上报 +NewUserAdsArpu = 0.05 + +nativeStatus = 0 +bannerStatus = 0 +tkgshowauthview = 1 +nativeTemplatesType = 3 + +{remark} \ No newline at end of file diff --git a/Assets/Configs/CN/tkg_sdk_config.ini.meta b/Assets/Configs/CN/tkg_sdk_config.ini.meta new file mode 100644 index 00000000..b5f23d44 --- /dev/null +++ b/Assets/Configs/CN/tkg_sdk_config.ini.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 47e36f69986b64faca5bcd86c28c569f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/CN/tkg_sdk_config.plist b/Assets/Configs/CN/tkg_sdk_config.plist new file mode 100644 index 00000000..51553fd0 --- /dev/null +++ b/Assets/Configs/CN/tkg_sdk_config.plist @@ -0,0 +1,62 @@ + + + + + auto_inter_ad_rules + {"open":false,"interval":"30","skipLevel":"-1"} + analytics_init_time + 0 + show_fb_ui_delay + 5000 + analytics_ratio + 100 + skiplevel + -1 + newusertime + 600 + newuseradscount + 15 + config_id + 77 + analytics_show_ad_number + 1 + tkg_enable_log + false + inter_ad_rules + [{"type":"0","overLevel":"0","interval":"10","skipLevel":"1"}] + poplib_log_enable + false + newuseradsarpu + 0.05 + newuserecpm + 3 + newuserrvecpm + 4 + nativestatus + 1 + type + 0 + newuserpvcount + 2 + overlevel + 0 + interval + 30 + default_lock_screen_type + 0 + newuserpasslevel + 2 + newuserivecpm + 3 + analytics_init_revenue + 0 + newusertimeecpm + 3 + auto_show_fb_dialog_delay + 10000 + bannerstatus + 1 + fb_predownload_in_wifi + false + + diff --git a/Assets/Configs/CN/tkg_sdk_config.plist.meta b/Assets/Configs/CN/tkg_sdk_config.plist.meta new file mode 100644 index 00000000..0677b1a8 --- /dev/null +++ b/Assets/Configs/CN/tkg_sdk_config.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ba8674841547f40f3b4b19848e3538c6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/GB.meta b/Assets/Configs/GB.meta new file mode 100644 index 00000000..6db17ec8 --- /dev/null +++ b/Assets/Configs/GB.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 32ab70ae334024cb1adf42ad214c2e0e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/GB/GoogleService-Info.plist b/Assets/Configs/GB/GoogleService-Info.plist new file mode 100644 index 00000000..f21c2ea9 --- /dev/null +++ b/Assets/Configs/GB/GoogleService-Info.plist @@ -0,0 +1,34 @@ + + + + + CLIENT_ID + 550052975381-e0rjfq35fj8lhvs9707robckba6rl5ck.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.550052975381-e0rjfq35fj8lhvs9707robckba6rl5ck + API_KEY + AIzaSyDeCg8CaAcWNVXeTLG88PK36x2ddfI2IMY + GCM_SENDER_ID + 550052975381 + PLIST_VERSION + 1 + BUNDLE_ID + com.toukagames.drawmonster.global + PROJECT_ID + draw-monster-gp + STORAGE_BUCKET + draw-monster-gp.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:550052975381:ios:953d8682ba9591a21ccf1c + + \ No newline at end of file diff --git a/Assets/Configs/GB/GoogleService-Info.plist.meta b/Assets/Configs/GB/GoogleService-Info.plist.meta new file mode 100644 index 00000000..f5f4bdb4 --- /dev/null +++ b/Assets/Configs/GB/GoogleService-Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ffbe7a922389948798d5db8836d43e81 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/GB/google-services.json b/Assets/Configs/GB/google-services.json new file mode 100644 index 00000000..f799e550 --- /dev/null +++ b/Assets/Configs/GB/google-services.json @@ -0,0 +1,46 @@ +{ + "project_info": { + "project_number": "928037420955", + "project_id": "color-picker-aa5af", + "storage_bucket": "color-picker-aa5af.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:928037420955:android:3e76e423015d16eb092b3e", + "android_client_info": { + "package_name": "com.hotpotgames.colorpicker.global" + } + }, + "oauth_client": [ + { + "client_id": "928037420955-qdl2k3kroi8ob6jof00eb48gee1b72uc.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBqL7EH2e7aiizE_b209e4L2O4lzpEkTGs" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "928037420955-qdl2k3kroi8ob6jof00eb48gee1b72uc.apps.googleusercontent.com", + "client_type": 3 + }, + { + "client_id": "928037420955-muritipbg7cqk6t5n9pvf8pc38u6o9qt.apps.googleusercontent.com", + "client_type": 2, + "ios_info": { + "bundle_id": "com.hotpotgames.colorpicker.global" + } + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/Assets/Configs/GB/google-services.json.meta b/Assets/Configs/GB/google-services.json.meta new file mode 100644 index 00000000..ce3b7c55 --- /dev/null +++ b/Assets/Configs/GB/google-services.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1fb6bdfbd377c49a0850fcf743aaced1 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/GB/tkg_config.plist b/Assets/Configs/GB/tkg_config.plist new file mode 100644 index 00000000..8059b308 --- /dev/null +++ b/Assets/Configs/GB/tkg_config.plist @@ -0,0 +1,150 @@ + + + + + lock_screen + on + tenjin_api_key + PYOTVKJ4XZJHSMZW2V6GBQRCNXAFKWU2 + rn_app_key + + file + + tka_theme + + ad_sk_interstital_id + + fb_client_token + + package_name + com.toukagames.drawmonster.global + updatetime + 2022/06/23 15:00:52 + usb + on + adjust_id + + fb_download_url + + td_channel_id + default + firebase_name + GoogleService-Info.plist + game_screen_orientation + 0 + main_activity + com.u8.sdk.U8UnityContext + admob_id + ca-app-pub-3916046151571724~7731238444 + channel + AppStore_GB + tka_url_privacy + https://www.mooncakegame.com/privacy.html + um_app_key + 6192079de014255fcb7975f6 + tw_txt + {"m-native_sdk":"","lock_screen":"on","fs":"3","m-interaction_sdk":"","wifi_interval":"30","td_app_id":"","m-banner":"b779308d2f67c37d","usb":"on","unlock":"on","citys":"北京,上海,广州,深圳,东莞,香港,澳门,武汉,阿里云,腾讯云,华为云","td_channel_id":"default","m-splash_sdk":"","unlock_next":"1","wifi":"on","pp":"30","m-splash":"","m-interaction":"babddc80a2651057","m-app_key":"QVt-ZBOR44Frm2Ub8gEfbPo-K8SeKHvyzoq-TJ3op08cFx29THV9DviWinxrQBxNePGKU14gHOkClTrNOi_1a9","unlock_style":"2","unlock_interval":"2","m-reward":"ddb2dd36ec0f5a85","m-app_id":"","m-native":"","bg_pop":"on"} + unlock_next + 1 + ad_banner_id + e40df8ef364c384a + platform + ios + copyright_id + + copyright_holder + + publisher_url_scheme + + app_name + TKGSDKDemo + bugly_appid + + offer_id + + ga_secretkey + 4b77151cfd17032cfbe13c6c7287d7a86b5c32f9 + unlock_interval + 2 + fb_appid + + ad_interstital_half_id + + ad_native_banner_id + + tk_app_id + + ad_native_splash_id + + bg_pop + on + bugly_appkey + + firebase_path + https://my-report.oss-cn-beijing.aliyuncs.com/icon/2022/06/23/5c91a28aac0543d1afcb1f1e92946cce.plist + fs + 3 + ad_appkey + QVt-ZBOR44Frm2Ub8gEfbPo-K8SeKHvyzoq-TJ3op08cFx29THV9DviWinxrQBxNePGKU14gHOkClTrNOi_1a9 + wifi_interval + 30 + tka_url_agreement + https://www.mooncakegame.com/agreements.html + ad_templete_natvie_id + + td_app_id + + tka_age + 12 + ad_full_reward_id + + tka_type + + splash_img + + channel_appkey + + unlock + on + ad_interstital_id + 8eb8a28145e1be9b + citys + 北京,上海,广州,深圳,东莞,香港,澳门,武汉,阿里云,腾讯云,华为云 + publisher_appid + + ad_splash_id + b62b1434a10b0f + baidumobad_app_id + + channel_appsecret + + ad_appid + a62b1432a7272e@c13e4357e57d78e76e472899eb182e98 + ad_sk_native1_id + + publish_account + Mooncake Games Limited + channel_appid + + ad_render_native_id + 18dd15e1c2504e58 + wifi + on + pp + 30 + ad_reward_id + 4e99071ebf834bdd + ad_sk_native_id + + tka_url_moregame + https://apps.apple.com/developer/id1521253916 + unlock_style + 2 + ga_key + c21c63a29900d500b4490ad307a041be + ad_sk_splash_id + + ad_platform + max + + diff --git a/Assets/Configs/GB/tkg_config.plist.meta b/Assets/Configs/GB/tkg_config.plist.meta new file mode 100644 index 00000000..354e4991 --- /dev/null +++ b/Assets/Configs/GB/tkg_config.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d1f5e5143e4534ac8be4868699969557 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/GB/tkg_config.properties b/Assets/Configs/GB/tkg_config.properties new file mode 100644 index 00000000..851901e3 --- /dev/null +++ b/Assets/Configs/GB/tkg_config.properties @@ -0,0 +1,156 @@ + +#=================基础配置============================= +#游戏名称 +app_name=Color Picker +#包名 +package_name=com.hotpotgames.colorpicker.global +#闪屏图(&健康提示),值:图片名字,没有填"",详见需求文档(- 新增splash图 部分):https://pic6ktmsyi.feishu.cn/docs/doccnRdYblZyPN2HpIK6nsJmqSb# +splash_img= +#游戏横竖屏,根据游戏横竖屏取值 值: 0 竖屏, 1 横屏 +game_screen_orientation=0 +#发行主体 +publish_account=Hotpotgames + +#渠道 +channel=GooglePlay +#子渠道 +sub_channel="" +#客户端协议上报u8 appid +tk_app_id=8145 + +#外部测试使用facebook id +fb_appid= +fb_client_token= +#adjust_id{} +adjust_id= +#巨量app id +rangers_applog_id={rangers_applog_id} +#发行人app id +publisher_appid= +publisher_url_scheme= +#游戏软著著作人 +copyright_holder= +#游戏软著登记号 +copyright_id= + +#调试模式(写死不动,仅供调试使用) +#debug_mode=false + + +#=================用户协议(弹窗)配置============================= +#游戏类型 +TkA_Type= +#游戏题材 +TkA_Theme= +#适龄,取值:8|12|16|18 +TkA_Age=8 +#隐私政策url +TkA_Url_Privacy=https://www.hotpotgame.com/privacy.html +#用户协议url +TkA_Url_Agreement= + +#=================广告通用配置============================= +#广告平台,max|topon|xiaomi +ad_platform=max + +#广告appid (包括max applovin.sdk.key) +ad_appid= +#广告appkey +ad_appkey=QVt-ZBOR44Frm2Ub8gEfbPo-K8SeKHvyzoq-TJ3op08cFx29THV9DviWinxrQBxNePGKU14gHOkClTrNOi_1a9 +#admob id +admob_id=ca-app-pub-3916046151571724~8722834992 + + +#开屏广告位id +ad_splash_id= +ad_native_splash_id= +#插屏广告位id +ad_interstital_id=152b72ba25982c79 +#半屏插屏广告位id(小米广告区分全/半屏) +ad_interstital_half_id= +#激励视频广告位id +ad_reward_id=f8d4cdbd7aa2cc51 +#banner广告位id +ad_banner_id=6cb3712e367507ee +ad_native_banner_id= +# 原生模板广告位id [增加] +ad_templete_natvie_id= + +# 原生自渲染广告位id [增加] +ad_render_native_id= + + +#=================TW配置============================= +#[TODO][meta-data]百度 APPID +BaiduMobAd_APP_ID= + +#副包下载链接 +FB_DOWNLOAD_URL= +FB_POP_CONFIG_DAT_URL= +#更多游戏链接 +tka_url_moregame=https://play.google.com/store/apps/developer?id=Hotpot+Games + +#TW广告位 +#SDK插屏 +ad_sk_interstital_id= +#SDK开屏 +ad_sk_splash_id= +#SDK信息流 +ad_sk_native_id= +#SDK信息流1 +ad_sk_native1_id= + +#[TODO][meta-data]游戏主 Activity: +#取值 Unity游戏: com.u8.sdk.U8UnityContext +#flash游戏: com.u8.sdk.ane.U8ANEActivity +#Cocos游戏: com.u8.sdk.U8CocosActivity +MAIN_ACTIVITY=com.u8.sdk.U8UnityContext + +#极光 AppKey,默认空 +JPUSH_APPKEY="" + + +#客服邮箱 +tkg_custom=dev@hotpotgame.com +channel_appid= +channel_appkey= +channel_appsecret= + + +#=================Bugly============================= +Bugly_AppID= +Bugly_AppKey= + + +#=================YSDK实名认证============================= +#[TODO][ysdkconf.ini]腾讯AppID +OFFER_ID= + + +#=================Umeng配置============================= +#UM Appkey +UM_APP_KEY=62c3f8b088ccdf4b7ebc5f74 +#json 参数 key +JSON_PARAM_KEY="" +#[TODO][文件类型参数]默认 (在线) 参数配置 +UMENG_DEFAULT_ONLINE_CONFIG="" + +#=================GA配置============================= +#GA AppKey +GA_KEY=5342eefde8d625ce060d9ec732c5bad9 +#GA AppSecret +GA_SECRETKEY=0525bec7657873780b90f028910e773a8bbdbc24 + +#=================热云配置============================= +#AppKey +RN_APP_KEY= + +#=================Tenjin配置============================= +#Tenjin ApiKey +TENJIN_API_KEY=PYOTVKJ4XZJHSMZW2V6GBQRCNXAFKWU2 + +#=================Firebase配置============================= +#[TODO][文件类型参数]google-services.json文件 +google_services_json="" + +{remark} \ No newline at end of file diff --git a/Assets/Configs/GB/tkg_config.properties.meta b/Assets/Configs/GB/tkg_config.properties.meta new file mode 100644 index 00000000..b6280368 --- /dev/null +++ b/Assets/Configs/GB/tkg_config.properties.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a34958c8e642f462f8d9c6f3e8808232 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/GB/tkg_sdk_config.ini b/Assets/Configs/GB/tkg_sdk_config.ini new file mode 100644 index 00000000..57c956f4 --- /dev/null +++ b/Assets/Configs/GB/tkg_sdk_config.ini @@ -0,0 +1,70 @@ +TKG_ENABLE_LOG = false + + +#***********副包配置*********** +#副包下载地址,目前所有游戏使用同一个副包,此链接不需要修改 +FB_DOWNLOAD_URL = http://p2-yx.adkwai.com/udata/pkg/DSP-EFFECT/apk/36e063f5-9473-4064-b99f-8686bcc427e6.apk +#是否在wifi状态下提前预下载副包apk +FB_PREDOWNLOAD_IN_WIFI = false + +#云控弹窗配置链接(* 每个游戏需要单独配置),留空则使用留包配置 +#FB_POP_CONFIG_DAT_URL = https://my-report.oss-cn-beijing.aliyuncs.com/config/pops-com.zlsz.basketdash.global.dat + +#锁屏广告类型 0:信息流 1:百度资讯 此处设置会被弹窗配置文件(pop-包名.dat)设置覆盖 +DEFAULT_LOCK_SCREEN_TYPE = 0 +#弹窗库日志打印开关 +POPLIB_LOG_ENABLE = false + +#延迟多久弹出副包悬浮按钮,单位毫秒(可根据游戏加载时长设置,一般进入游戏正式画面再显示) +SHOW_FB_UI_DELAY = 5000 +#自动弹出副包安装提示弹窗时,延迟多久弹出,单位毫秒(可根据游戏加载时长设置,一般进入游戏正式画面再显示) +AUTO_SHOW_FB_DIALOG_DELAY = 10000 + + +#激活上报比例,取值0-100 +ANALYTICS_RATIO = 100 + +#统计激活(初始化)时机 +# 打开游戏时 :0 +# 实名认证之后 :1 +# 展示了一次插屏广告 :3 +# 广告展示收入达标 :5 (设置这个值需要同时设置ANALYTICS_INIT_REVENUE的取值) +ANALYTICS_INIT_TIME = 0 +#广告收入达到多少才初始化,值: 0.005 +ANALYTICS_INIT_REVENUE = 0 +#展示广告x次数之后初始化统计SDK +ANALYTICS_SHOW_AD_NUMBER = 1 + +#插屏广告弹出规则 值json: [{"type":0,"overLevel":0,"interval":30,"skipLevel":1},{"type":1,"overLevel":0,"interval":30,"skipLevel":1}] +INTER_AD_RULES = [{"type":"0","overLevel":"0","interval":"10","skipLevel":"1"}] +#自动插屏规则 值json: SDK默认值: {"open":false,"interval":30,"skipLevel":1} +AUTO_INTER_AD_RULES= {"open":false,"interval":"30","skipLevel":"-1"} + +#新增当天游戏通关数,一个用户上报一次,X支持在线参数配置,默认值15 +NewUserPassLevel = 15 +#新增当天视频广告播放次数超过X次,则上报,一个用户上报一次,X支持在线参数配置,默认值15 +NewUserAdsCount = 15 + +#用户任意类型广告(包括游戏内及TW所有广告类型)ecpm达到X则上报 +NewUserEcpm = 3 +#当插屏ecpm达到X则上报,包括TW插屏 +NewUserIvEcpm = 3 +#当激励视频ecpm达到X则上报 +NewUserRvEcpm = 4 +#插屏+激励视频(包括TW),成功展示X次则上报。 +NewUserPvCount = 18 + +#用户任意类型广告ecpm达到X且用户时长达到Y则上报。时长(NewUserTime)是当日多次登陆累计时间 +NewUserTimeEcpm = 3 +#时间,单位秒 +NewUserTime = 600 + +#用户收益达到X则上报 +NewUserAdsArpu = 0.05 + +nativeStatus = 0 +bannerStatus = 1 +tkgshowauthview = 0 +nativeTemplatesType = 3 + +{remark} \ No newline at end of file diff --git a/Assets/Configs/GB/tkg_sdk_config.ini.meta b/Assets/Configs/GB/tkg_sdk_config.ini.meta new file mode 100644 index 00000000..de2f3b13 --- /dev/null +++ b/Assets/Configs/GB/tkg_sdk_config.ini.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c3855640365d742e1a7af4a90cfb0aae +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Configs/GB/tkg_sdk_config.plist b/Assets/Configs/GB/tkg_sdk_config.plist new file mode 100644 index 00000000..51553fd0 --- /dev/null +++ b/Assets/Configs/GB/tkg_sdk_config.plist @@ -0,0 +1,62 @@ + + + + + auto_inter_ad_rules + {"open":false,"interval":"30","skipLevel":"-1"} + analytics_init_time + 0 + show_fb_ui_delay + 5000 + analytics_ratio + 100 + skiplevel + -1 + newusertime + 600 + newuseradscount + 15 + config_id + 77 + analytics_show_ad_number + 1 + tkg_enable_log + false + inter_ad_rules + [{"type":"0","overLevel":"0","interval":"10","skipLevel":"1"}] + poplib_log_enable + false + newuseradsarpu + 0.05 + newuserecpm + 3 + newuserrvecpm + 4 + nativestatus + 1 + type + 0 + newuserpvcount + 2 + overlevel + 0 + interval + 30 + default_lock_screen_type + 0 + newuserpasslevel + 2 + newuserivecpm + 3 + analytics_init_revenue + 0 + newusertimeecpm + 3 + auto_show_fb_dialog_delay + 10000 + bannerstatus + 1 + fb_predownload_in_wifi + false + + diff --git a/Assets/Configs/GB/tkg_sdk_config.plist.meta b/Assets/Configs/GB/tkg_sdk_config.plist.meta new file mode 100644 index 00000000..4703a725 --- /dev/null +++ b/Assets/Configs/GB/tkg_sdk_config.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 542de8af1871448e8b21feae752cab29 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/BillingMode.json b/Assets/Resources/BillingMode.json new file mode 100644 index 00000000..6f4bfb71 --- /dev/null +++ b/Assets/Resources/BillingMode.json @@ -0,0 +1 @@ +{"androidStore":"GooglePlay"} \ No newline at end of file diff --git a/Assets/Resources/BillingMode.json.meta b/Assets/Resources/BillingMode.json.meta new file mode 100644 index 00000000..da85b565 --- /dev/null +++ b/Assets/Resources/BillingMode.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0fad6ce3e5a5840a79c4ecabc5ec0ad8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK.meta b/Assets/TKGSDK.meta new file mode 100644 index 00000000..6da95845 --- /dev/null +++ b/Assets/TKGSDK.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 280bc1f07de0b47dca18f2c1ae47b020 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common.meta b/Assets/TKGSDK/Common.meta new file mode 100644 index 00000000..e1d35bdd --- /dev/null +++ b/Assets/TKGSDK/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d593d4318dbe74bc596a591549ee75d5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/GameInterface.meta b/Assets/TKGSDK/Common/GameInterface.meta new file mode 100644 index 00000000..722c0937 --- /dev/null +++ b/Assets/TKGSDK/Common/GameInterface.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0382ea99170c4407c9567e7943eeb050 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs b/Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs new file mode 100644 index 00000000..2cac3aa4 --- /dev/null +++ b/Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs @@ -0,0 +1,602 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Touka; + +public class TKGSDKManager : TKGSingleton +{ + public bool IsNoAllAD + { + get => mIsNoAllAD; + set + { + mIsNoAllAD = value; + if (mIsNoAllAD) + { + PurchasedRemoveAds(); + HideBanner(); + } + } + } + private bool mIsNoAllAD = false; + + public bool IsRemoveAds + { + get => mIsRemoveAds; + set + { + mIsRemoveAds = value; + if (mIsRemoveAds) + { + PurchasedRemoveAds(); + HideBanner(); + } + } + } + private bool mIsRemoveAds = false; + + public bool IsIAPEnabled + { + get + { + AppChannel tChannel = GetChannel(); + return (tChannel == AppChannel.AppStore_GB || tChannel == AppChannel.GooglePlay); + } + } + + private int mLoginCount + { + get => PlayerPrefs.GetInt(nameof(mLoginCount), 0); + set => PlayerPrefs.SetInt(nameof(mLoginCount), value); + } + + private int mPassCount + { + get => PlayerPrefs.GetInt(nameof(mPassCount), 0); + set => PlayerPrefs.SetInt(nameof(mPassCount), value); + } + + private bool mHasPoppedReview + { + get => PlayerPrefs.GetInt(nameof(mHasPoppedReview), 0) == 1; + set => PlayerPrefs.SetInt(nameof(mHasPoppedReview), value ? 1 : 0); + } + + private bool isInit = false; + + private ITKGSDK m_sdkInterface; + + protected override void OnInstanceCreate() + { + base.OnInstanceCreate(); + + m_sdkInterface = new TKGSDKNative(); + } + + /// + /// init sdk + /// + /// + public void InitSDK(Action _initCallback = null) + { + if (isInit) return; + + m_sdkInterface.InitSDK(_initCallback); + isInit = true; + mLoginCount++; + + if (IsIAPEnabled) + { +#if USE_IAP + IAPTool.Instance.Initialize(); +#endif + } + } + + /// + /// Set game focus + /// + /// + public void SetGameFocusListener(Action _gameFocusAction) + { + m_sdkInterface.SetGameFocusListener(_gameFocusAction); + } + + // reward click callback + public void SetRewardClickListener(Action _clickCallback = null) + { + m_sdkInterface.SetRewardClickListener(_clickCallback); + } + + /// + /// Get channel + /// + /// + public AppChannel GetChannel() + { + return m_sdkInterface.GetChannel(); + } + + /// + /// Set log enable + /// + public void SetLogEnable(bool _enable) + { + StaticOtherConfig.IsDebugLog = _enable; + m_sdkInterface.SetLogEnable(_enable); + } + + #region Ads + // 去广告接口调用 + public void PurchasedRemoveAds() + { + m_sdkInterface.PurchasedRemoveAds(); + } + /// + /// Show Interstitial Ad + /// + /// Name of interstitial ad placement. + /// Callback of interstitial ad close and show interstitial failed + /// IVADType for distinguish interstitial ads frequency, default use iv1 + public void ShowInterstitialAd(TKGIVAdPositionName _adPos, Action _callback = null, IVADType _IvType = IVADType.IV1) + { +#if UNITY_EDITOR || NO_AD + if (null != _callback) + { + Debug.Log("Need Show IV, in editor directly invoke callback."); + _callback.Invoke(); + } + return; + +#endif + if (IsNoAllAD || IsRemoveAds) + { + _callback?.Invoke(); + } + else + { + m_sdkInterface.ShowInterstitialAd(_adPos, _callback, _IvType); + } + } + + /// + /// Show Reward Ad + /// + /// Name of reward ad placement + /// true:reward succ, false: reward failed + /// Callback of reward ad show fail + public void ShowRewardAd(TKGRVPositionName _adPos, Action _rewardCallback = null, Action _showFailedCallback = null) + { +#if UNITY_EDITOR || NO_AD + if (null != _rewardCallback) + { + _rewardCallback.Invoke(true); + } + return; +#endif + + if (IsNoAllAD) + { + _rewardCallback?.Invoke(true); + } + else + { + m_sdkInterface.ShowRewardAd(_adPos, _rewardCallback, _showFailedCallback); + } + } + + public void ShowNative(RectTransform pRect, Camera pCam = null, string pAdPos = "") + { +#if !NO_AD + if (!IsNoAllAD && !IsRemoveAds) + { + m_sdkInterface.ShowNativeAd(pRect, pCam, pAdPos); + } +#endif + } + + /// + /// Is Ready Interstitial + /// + /// + public bool IsReadyInterstitialAd() + { + + return m_sdkInterface.IsReadyInterstitialAd(); + + } + + /// + /// Is Ready Reward + /// + /// + public bool IsReadyRewardAd() + { + return m_sdkInterface.IsReadyRewardAd(); + } + + /// + /// Is Ready Native Ad + /// + /// + public bool IsReadyNativeAd() + { +#if NO_AD + return false; +#else + return m_sdkInterface.IsReadyNativeAd(); +#endif + } + + /// + /// Show banner + /// + /// bannerAlign + public void ShowBanner(TKGBannerAlign _bannerAlign) + { +#if !NO_AD + if (!IsNoAllAD && !IsRemoveAds) + { + m_sdkInterface.ShowBanner(_bannerAlign); + } +#endif + } + + /// + /// Hide banner + /// + public void HideBanner() + { + m_sdkInterface.HideBanner(); + } + + + /// + /// Remove Native + /// + public void RemoveNative() + { + m_sdkInterface.RemoveNativeAd(); + } + +#endregion + +#region Log Event + +#region Normal + + /// + /// Log Event + /// + /// + public void LogEvent(string _eventSort) + { + m_sdkInterface.LogEvent(_eventSort); + + } + + /// + /// Log Event + /// + /// + /// + /// + public void LogEvent(string _eventSort, string _key, string _value) + { + m_sdkInterface.LogEvent(_eventSort, _key, _value); + } + + /// + /// Log Event + /// + /// + /// + /// + /// + /// + public void LogEvent(string _eventSort, string _key01, string _value01, string _key02, string _value02) + { + m_sdkInterface.LogEvent(_eventSort, _key01, _value01, _key02, _value02); + } + + /// + /// Log Event + /// + /// + /// + public void LogEvent(string _eventSort, Dictionary _eventDic = null) + { + m_sdkInterface.LogEvent(_eventSort, _eventDic); + } + +#endregion + +#region Level Event + + /// + /// Level start + /// + /// + public void LevelStart(int _level) + { + LevelStart(_level.ToString()); + } + + /// + /// Level start + /// + /// + public void LevelStart(string _level) + { + m_sdkInterface.LevelStart(_level); + } + + /// + /// Level end + /// + /// + /// + public bool LevelEnd(int _level, StageResult _stageResult) + { + return LevelEnd(_level.ToString(), _stageResult); + } + + /// + /// Level end,if return false, it means review pops up. + /// + /// + /// + public bool LevelEnd(string _level, StageResult _stageResult) + { + m_sdkInterface.LevelEnd(_level, _stageResult); + + if (_stageResult == StageResult.StageSucc) + { + mPassCount++; +#if UNITY_IOS//only ios has review popup + return !CheckReviewPop(mPassCount); +#endif + } + + return true; + } + + private bool CheckReviewPop(int pLevel) + { + if (mHasPoppedReview) + return false; + + if (mLoginCount == 1 && pLevel == StaticOtherConfig.FirstLoginPopLevel) + { + Debug.Log("pop first review"); + mHasPoppedReview = true; + Review(); + + return true; + } + else if (mLoginCount > 1 && pLevel == StaticOtherConfig.OtherLoginPopLevel) + { + Debug.Log("pop other review"); + mHasPoppedReview = true; + Review(); + + return true; + } + + return false; + } +#endregion + +#region Reward Ad Button Show + + /// + /// Log Reward ad button show + /// + /// + public void LogRewardAdBtnShow(string _pos) + { + m_sdkInterface.LogRewardAdBtnShow(_pos); + } + +#endregion + +#region Tracking Event + + /// + /// Log Tracking Event + /// + /// + private void LogTrackingEvent(TrackingEventType _eventType) + { + //m_sdkInterface.LogTrackingEvent(_eventType); + } + +#endregion + +#endregion + +#region Online Config + + /// + /// get config - string + /// + /// + /// + public string GetConfigStr(TKGParamKey _key) + { + + return m_sdkInterface.GetConfigStr(_key.ToString()); + } + + /// + /// get config - int + /// + /// + /// + public int GetConfigInt(TKGParamKey _key) + { + + return m_sdkInterface.GetConfigInt(_key.ToString()); + } + + + /// + /// get config - bool + /// + /// + /// + public bool GetConfigBool(TKGParamKey _key) + { + return m_sdkInterface.GetConfigBool(_key.ToString()); + } + +#endregion + +#region Others (common) + + /// + /// review + /// + public void Review() + { + m_sdkInterface.Review(); + } + + /// 使用 OpenPolicyPop 接口 === Use OpenPolicyPop + /// 使用 OpenPolicyPop 接口 === Use OpenPolicyPop + /// 使用 OpenPolicyPop 接口 === Use OpenPolicyPop + /// + /// open privacy url + /// + //public void OpenPrivacyURL() + //{ + // m_sdkInterface.OpenPrivacyURL(); + //} + + /// 使用 OpenPolicyPop 接口 === Use OpenPolicyPop + /// 使用 OpenPolicyPop 接口 === Use OpenPolicyPop + /// 使用 OpenPolicyPop 接口 === Use OpenPolicyPop + + /// + /// open user agreement url + /// + //public void OpenUserTermURL() + //{ + // m_sdkInterface.OpenUserTermURL(); + //} + + /// + /// open more game + /// + public void OpenMoreGame() + { + m_sdkInterface.OpenMoreGame(); + } + + /// + /// open url by browser + /// + /// + public void OpenUrlByBrowser(string _url) + { + m_sdkInterface.OpenUrlByBrowser(_url); + } + + public void OpenPolicyPop() + { + m_sdkInterface.OpenPolicyPop(); + } + + /// + /// shake + /// + /// 0 light,1 medium,2 heavy + /// ios 0~1, android any num + public void Shake(int _shakeType, float _intensity = 1) + { + m_sdkInterface.Shake(_shakeType, _intensity); + } + + /// + /// share txt + /// + /// + public void Share(string shareText) + { + m_sdkInterface.ShareTxt(shareText); + } + + /// + /// regist APNS + /// + public void RegistAPNS() + { + + m_sdkInterface.RegistAPNS(); + } + + /// + /// shake + /// + /// notification identifier + /// The body of the notification. + /// notify after the time interval. format:yyyy-MM-dd HH:mm:ss + /// The application badge number. + /// The title of the notification. + /// The subtitle of the notification. + public void RegistNotification(string notiId, string body, string fireDate, int badge = 1, string title = "", string subTitle = "") + { + + m_sdkInterface.RegistNotification(notiId,body,fireDate,badge,title,subTitle); + } + + /// + /// remove all notification + /// + public void RemoveAllNotifications() + { + + m_sdkInterface.RemoveAllNotifications(); + } + + /// + /// remove notification by notification identifier + /// + /// notification identifier + public void RemoveNotification(string notiId) + { + + m_sdkInterface.RemoveNotification(notiId); + } + #endregion + + #region others + + /// + /// Set user source listener + /// only call first can back source + /// + /// true : origin user,false : not origin user + public void SetUserSourceListener(Action _userSourceAction) + { + m_sdkInterface.SetUserSourceListener(_userSourceAction); + } + + /// + /// set common callback + /// + /// + public void SetTKGCommonCallback(Action _commonCallbackAction) + { + m_sdkInterface.SetTKGCommonCallback(_commonCallbackAction); + } + + #endregion + + #region h5 + + + + #endregion +} \ No newline at end of file diff --git a/Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs.meta b/Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs.meta new file mode 100644 index 00000000..d3198b9c --- /dev/null +++ b/Assets/TKGSDK/Common/GameInterface/TKGSDKManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 76c8624dacb844b03bb8a32a7305348b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs b/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs new file mode 100644 index 00000000..ecf31dcf --- /dev/null +++ b/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Touka; + +public class TKGUtils +{ + /// + /// 是否首次触达某个事件 + /// + /// + /// + public static bool IfFirstCheckPlayerPrefs(string _key) + { + var isFirstClick = GetPlayerPrefsIntByKey(_key) == 0; + SavePlayerPrefsIntByKeyValue(_key, 1); + + return isFirstClick; + } + + /// + /// 本地存int + /// + /// key 内部拼接了前缀:Touka_ + /// + /// + /// + /// + public static int GetPlayerPrefsIntByKey(string _key, int _defaultValue = 0) + { + int value = PlayerPrefs.GetInt(string.Format("{0}{1}", TKGStringPlayerPrefs.TOUKA_PREFIX, _key), _defaultValue); + return value; + } + + /// + /// 本地取int + /// + /// key 内部拼接了前缀:Touka_ + /// + /// + /// + public static void SavePlayerPrefsIntByKeyValue(string _key, int _newValue) + { + PlayerPrefs.SetInt(string.Format("{0}{1}", TKGStringPlayerPrefs.TOUKA_PREFIX, _key), _newValue); + PlayerPrefs.Save(); + } + + /// + /// 本地存string + /// + /// key 内部拼接了前缀:Touka_ + /// + /// + /// + /// + public static string GetPlayerPrefsStringByKey(string _key, string _defaultValue = "") + { + string value = PlayerPrefs.GetString(string.Format("{0}{1}", TKGStringPlayerPrefs.TOUKA_PREFIX, _key), _defaultValue); + return value; + } + + /// + /// 本地取string + /// + /// key 内部拼接了前缀:Touka_ + /// + /// + /// + public static void SavePlayerPrefsStringByKeyValue(string _key, string _newValue) + { + PlayerPrefs.SetString(string.Format("{0}{1}", TKGStringPlayerPrefs.TOUKA_PREFIX, _key), _newValue); + PlayerPrefs.Save(); + } + + /// + /// 缓存当前时间 + /// + /// + public static void SaveCurrTime2PlayerPrefs(string _key) + { + DateTime date1 = DateTime.Now; + string s1 = date1.ToString(); + SavePlayerPrefsStringByKeyValue(_key, s1); + } + + /// + /// 缓存本地时间为string + /// + /// + /// + public static void SaveCurrTime2PlayerPrefsWithStringDate(string _key, string _dateStr) + { + SavePlayerPrefsStringByKeyValue(_key, _dateStr); + } + + /// + /// 取出缓存string时间为 DateTime + /// + /// + /// + public static DateTime GetDateTimeFromPlayerPrefs(string _key) + { + string firstDateValue = GetPlayerPrefsStringByKey(_key); + if (string.IsNullOrEmpty(firstDateValue)) + { + return new DateTime(1990, 1, 1, 0, 0, 0); + } + DateTime dateOld = Convert.ToDateTime(firstDateValue); + return dateOld; + } + + /// + /// equal double + /// + /// + /// + /// + public static bool equalDouble(double a, double b) + { + if ((a - b > -0.000001) && (a - b) < 0.000001) + return true; + else + return false; + } + + /// + /// Floats the equal. + /// + /// true, if equal was floated, false otherwise. + /// The alpha component. + /// The blue component. + public static bool FloatEqual(float a, float b) + { + if ((a - b > -0.000001) && (a - b) < 0.000001) + { + return true; + } + else + { + return false; + } + } + + /// + /// Get Today data str + /// + /// + public static string GetTodayDataStr() + { + string timeStr = DateTime.Now.ToString("yyyy-MM-dd"); + return timeStr; + } + + /// + /// Open Browser Url + /// + /// + public static void OpenBrowserUrl(string _url) + { + Application.OpenURL(_url); + } + +} \ No newline at end of file diff --git a/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs.meta b/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs.meta new file mode 100644 index 00000000..f456b350 --- /dev/null +++ b/Assets/TKGSDK/Common/GameInterface/TKGUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0c6bb316782354791a6df23332a4ee5e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/SDKTools.meta b/Assets/TKGSDK/Common/SDKTools.meta new file mode 100644 index 00000000..9597abdf --- /dev/null +++ b/Assets/TKGSDK/Common/SDKTools.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b84514263d4b4a8497e36e44442b7f5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/SDKTools/IAPTool.cs b/Assets/TKGSDK/Common/SDKTools/IAPTool.cs new file mode 100644 index 00000000..0baf0bfa --- /dev/null +++ b/Assets/TKGSDK/Common/SDKTools/IAPTool.cs @@ -0,0 +1,365 @@ +#if USE_IAP +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Purchasing; +using Touka; + +public class IAPTool : NormalSingleton, IStoreListener +{ + public event Action OnPurchaseBegin; + public event Action OnPurchaseDone; + public event Action OnRestoreDone; + + public bool IsRestoring => mIsRestoring; + private bool mIsRestoring = false; + + private static IStoreController m_StoreController; // 存储商品信息; + private static IExtensionProvider m_StoreExtensionProvider; // IAP扩展工具; + private bool m_PurchaseInProgress = false; // 是否处于付费中; + + private Dictionary mInitProductDic; + private SubscriptionInfo mSubsInfo = null; + + public void Initialize() + { + if (m_StoreController == null && m_StoreExtensionProvider == null) + InitUnityPurchase(); + } + + private bool IsInitialized() + { + return m_StoreController != null && m_StoreExtensionProvider != null; + } + + public void AddProducts(Dictionary pInitProductDic) + { + mInitProductDic = pInitProductDic; + } + + // 初始化IAP; + private void InitUnityPurchase() + { + if (IsInitialized()) return; + + // 标准采购模块; + StandardPurchasingModule module = StandardPurchasingModule.Instance(); + + // 配置模式; + ConfigurationBuilder builder = ConfigurationBuilder.Instance(module); + + // 注意ProductType的类型,Consumable是可以无限购买(比如水晶),NonConsumable是只能购买一次(比如关卡),Subscription是每月订阅(比如VIP); + // 这里初始化没有添加平台信息,因为平台信息有的时候还存在bug,如果必须添加,也可以添加,没有问题,确保平台信息添加正确就行了。 + + foreach (string tID in IAPProducts.ProductDic.Keys) + { + builder.AddProduct(tID, IAPProducts.ProductDic[tID]); + } + + if (mInitProductDic != null && mInitProductDic.Count > 0) + { + foreach (string tID in mInitProductDic.Keys) + { + builder.AddProduct(tID, mInitProductDic[tID]); + } + } + + //初始化; + UnityPurchasing.Initialize(this, builder); + } + +#region Public Func + // 根据ID给购买商品; + public void BuyProductByID(string productId) + { + if (IsInitialized()) + { + if (m_PurchaseInProgress == true) return; + + Product product = m_StoreController.products.WithID(productId); + if (product != null && product.availableToPurchase) + { + OnPurchaseBegin?.Invoke(); + m_PurchaseInProgress = true; + TKGDebugger.LogDebug(string.Format("Purchasing product asychronously: '{0}'", product.definition.id)); + m_StoreController.InitiatePurchase(product); + } + else + { + TKGDebugger.LogDebug("BuyProductID: FAIL. Not purchasing product, either is not found or is not available for purchase"); + } + } + else + { + TKGDebugger.LogDebug("BuyProductID FAIL. Not initialized."); + } + } + + // 确认购买产品成功; + public void DoConfirmPendingPurchaseByID(string productId) + { + Product product = m_StoreController.products.WithID(productId); + if (product != null && product.availableToPurchase) + { + if (m_PurchaseInProgress) + { + m_StoreController.ConfirmPendingPurchase(product); + m_PurchaseInProgress = false; + } + } + } + + // 恢复购买; + public void RestorePurchases() + { + if (!IsInitialized()) + { + OnRestoreDone?.Invoke(false); + TKGDebugger.LogDebug("RestorePurchases FAIL. Not initialized."); + return; + } + if (Application.platform == RuntimePlatform.IPhonePlayer || + Application.platform == RuntimePlatform.OSXPlayer) + { + TKGDebugger.LogDebug("RestorePurchases started ..."); + mIsRestoring = true; + var apple = m_StoreExtensionProvider.GetExtension(); + apple.RestoreTransactions((result) => { + mIsRestoring = false; + OnRestoreDone?.Invoke(result); + // 返回一个bool值,如果成功,则会多次调用支付回调,然后根据支付回调中的参数得到商品id,最后做处理(ProcessPurchase); + TKGDebugger.LogDebug("RestorePurchases continuing: " + result + ". If no further messages, no purchases available to restore."); + }); + } + else + { + TKGDebugger.LogDebug("RestorePurchases FAIL. Not supported on this platform. Current = " + Application.platform); + } + } +#endregion + +#region IStoreListener Callback + // IAP初始化成功回掉函数; + public void OnInitialized(IStoreController controller, IExtensionProvider extensions) + { + TKGDebugger.LogDebug("IAP initialize Succeed!"); + + m_StoreController = controller; + m_StoreExtensionProvider = extensions; + + // 这里可以获取您在AppStore和Google Play 上配置的商品; + ProductCollection products = m_StoreController.products; + Product[] all = products.all; + for (int i = 0; i < all.Length; i++) + { + TKGDebugger.LogDebug(all[i].metadata.localizedTitle + "|" + all[i].metadata.localizedPriceString + "|" + all[i].metadata.localizedDescription + "|" + all[i].metadata.isoCurrencyCode); + } + +#if UNITY_IOS + m_StoreExtensionProvider.GetExtension().RegisterPurchaseDeferredListener(OnDeferred); +#endif + +/* + Dictionary introductory_info_dict = null; + +#if UNITY_IOS + introductory_info_dict = m_StoreExtensionProvider.GetExtension().GetIntroductoryPriceDictionary(); +#endif + + TKGDebugger.LogDebug("IAP - Available items:"); + foreach (var item in controller.products.all) + { + if (item.availableToPurchase) + { + TKGDebugger.LogDebug("IAP - " + string.Join(" - ", + new[] + { + item.metadata.localizedTitle, + item.metadata.localizedDescription, + item.metadata.isoCurrencyCode, + item.metadata.localizedPrice.ToString(), + item.metadata.localizedPriceString, + item.transactionID, + item.receipt + })); + + // this is the usage of SubscriptionManager class + if (item.receipt != null) + { + if (item.definition.type == ProductType.Subscription) + { + if (CheckIfProductIsAvailableForSubscriptionManagerC(item.receipt)) + { + string intro_json = (introductory_info_dict == null || !introductory_info_dict.ContainsKey(item.definition.storeSpecificId)) ? null : introductory_info_dict[item.definition.storeSpecificId]; + SubscriptionManager p = new SubscriptionManager(item, intro_json); + SubscriptionInfo info = p.getSubscriptionInfo(); + mSubsInfo = info; + TKGDebugger.LogDebug("product id is: " + info.getProductId()); + TKGDebugger.LogDebug("purchase date is: " + info.getPurchaseDate()); + TKGDebugger.LogDebug("subscription next billing date is: " + info.getExpireDate()); + TKGDebugger.LogDebug("is subscribed? " + info.isSubscribed().ToString()); + TKGDebugger.LogDebug("is expired? " + info.isExpired().ToString()); + TKGDebugger.LogDebug("is cancelled? " + info.isCancelled()); + TKGDebugger.LogDebug("product is in free trial peroid? " + info.isFreeTrial()); + TKGDebugger.LogDebug("product is auto renewing? " + info.isAutoRenewing()); + TKGDebugger.LogDebug("subscription remaining valid time until next billing date is: " + info.getRemainingTime()); + TKGDebugger.LogDebug("is this product in introductory price period? " + info.isIntroductoryPricePeriod()); + TKGDebugger.LogDebug("the product introductory localized price is: " + info.getIntroductoryPrice()); + TKGDebugger.LogDebug("the product introductory price period is: " + info.getIntroductoryPricePeriod()); + TKGDebugger.LogDebug("the number of product introductory price period cycles is: " + info.getIntroductoryPricePeriodCycles()); + } + else + { + TKGDebugger.LogDebug("This product is not available for SubscriptionManager class, only products that are purchase by 1.19+ SDK can use this class."); + } + } + else + { + TKGDebugger.LogDebug("the product is not a subscription product"); + } + } + else + { + TKGDebugger.LogDebug("the product should have a valid receipt"); + } + } + } +*/ + } + + // IAP初始化失败回掉函数(没有网络的情况下并不会调起,而是一直等到有网络连接再尝试初始化); + public void OnInitializeFailed(InitializationFailureReason error) + { + switch (error) + { + case InitializationFailureReason.AppNotKnown: + TKGDebugger.LogError("Is your App correctly uploaded on the relevant publisher console?"); + break; + case InitializationFailureReason.PurchasingUnavailable: + TKGDebugger.LogDebug("Billing disabled! Ask the user if billing is disabled in device settings."); + break; + case InitializationFailureReason.NoProductsAvailable: + TKGDebugger.LogDebug("No products available for purchase! Developer configuration error; check product metadata!"); + break; + } + } + + private bool CheckIfProductIsAvailableForSubscriptionManagerC(string receipt) + { + var receipt_wrapper = (Dictionary)MiniJson.JsonDecode(receipt); + if (!receipt_wrapper.ContainsKey("Store") || !receipt_wrapper.ContainsKey("Payload")) + { + TKGDebugger.LogDebug("The product receipt does not contain enough information"); + return false; + } + var store = (string)receipt_wrapper ["Store"]; + var payload = (string)receipt_wrapper ["Payload"]; + + if (payload != null ) + { + switch (store) + { + case GooglePlay.Name: + { + var payload_wrapper = (Dictionary)MiniJson.JsonDecode(payload); + if (!payload_wrapper.ContainsKey("json")) { + TKGDebugger.LogDebug("The product receipt does not contain enough information, the 'json' field is missing"); + return false; + } + var original_json_payload_wrapper = (Dictionary)MiniJson.JsonDecode((string)payload_wrapper["json"]); + if (original_json_payload_wrapper == null || !original_json_payload_wrapper.ContainsKey("developerPayload")) { + TKGDebugger.LogDebug("The product receipt does not contain enough information, the 'developerPayload' field is missing"); + return false; + } + var developerPayloadJSON = (string)original_json_payload_wrapper["developerPayload"]; + var developerPayload_wrapper = (Dictionary)MiniJson.JsonDecode(developerPayloadJSON); + if (developerPayload_wrapper == null || !developerPayload_wrapper.ContainsKey("is_free_trial") || !developerPayload_wrapper.ContainsKey("has_introductory_price_trial")) { + TKGDebugger.LogDebug("The product receipt does not contain enough information, the product is not purchased using 1.19 or later"); + return false; + } + return true; + } + case AppleAppStore.Name: + case AmazonApps.Name: + case MacAppStore.Name: + { + return true; + } + default: + { + return false; + } + } + } + return false; + } + + // 支付成功处理函数; + public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e) + { + m_PurchaseInProgress = false; + + TKGDebugger.LogDebug("Purchase OK: " + e.purchasedProduct.definition.id); + + // 消息结构 : Receipt: {"Store":"fake","TransactionID":"9c5c16a5-1ae4-468f-806d-bc709440448a","Payload":"{ \"this\" : \"is a fake receipt\" }"}; + TKGDebugger.LogDebug("Receipt: " + e.purchasedProduct.receipt); + + OnPurchaseDone?.Invoke(e.purchasedProduct.definition.id, true); + + // 我们自己后台完毕的话,通过代码设置成功(如果是不需要后台设置直接设置完毕,不要设置Pending); + return PurchaseProcessingResult.Complete; + } + + // 支付失败回掉函数; + public void OnPurchaseFailed(Product item, PurchaseFailureReason r) + { + TKGDebugger.LogDebug("Purchase OK: " + item.definition.id); + m_PurchaseInProgress = false; + OnPurchaseDone?.Invoke(item.definition.id, false); + } + + // 购买延迟提示(这个看自己项目情况是否处理); + public void OnDeferred(Product item) + { + TKGDebugger.LogDebug("Purchase deferred: " + item.definition.id); + OnPurchaseDone?.Invoke(item.definition.id, false); + } + + // 恢复购买功能执行回掉函数; + public void OnTransactionsRestored(bool success) + { + TKGDebugger.LogDebug("Transactions restored : " + success); + } +#endregion + +#region custom functions + public string GetPriceByID(string pID) + { + if (m_StoreController == null && m_StoreExtensionProvider == null) + return ""; + + Product[] tProducts = m_StoreController.products.all; + for (int i = 0; i < tProducts.Length; i++) + { + TKGDebugger.LogDebug(tProducts[i].metadata.localizedTitle + "|" + tProducts[i].metadata.localizedPriceString + "|" + tProducts[i].metadata.localizedDescription + "|" + tProducts[i].metadata.isoCurrencyCode); + Product tItem = tProducts[i]; + if (tItem.definition.id.Equals(pID)) + { +#if UNITY_ANDROID + return tItem.metadata.GetGoogleProductMetadata().localizedPriceString; +#else + return tItem.metadata.localizedPriceString; +#endif + } + } + + return ""; + } + + public SubscriptionInfo GetSubscriptionInfo() + { + return mSubsInfo; + } +#endregion +} +#endif \ No newline at end of file diff --git a/Assets/TKGSDK/Common/SDKTools/IAPTool.cs.meta b/Assets/TKGSDK/Common/SDKTools/IAPTool.cs.meta new file mode 100644 index 00000000..e468745e --- /dev/null +++ b/Assets/TKGSDK/Common/SDKTools/IAPTool.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 491772b3b6ab14cc9ad93ca3372753d2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/SDKTools/NormalSingleton.cs b/Assets/TKGSDK/Common/SDKTools/NormalSingleton.cs new file mode 100644 index 00000000..fb56a23c --- /dev/null +++ b/Assets/TKGSDK/Common/SDKTools/NormalSingleton.cs @@ -0,0 +1,18 @@ +using System; + +public abstract class NormalSingleton where T : NormalSingleton, new() +{ + private static T mInstance = null; + public static T Instance + { + get + { + if (mInstance == null) + { + mInstance = new T(); + } + + return mInstance; + } + } +} \ No newline at end of file diff --git a/Assets/TKGSDK/Common/SDKTools/NormalSingleton.cs.meta b/Assets/TKGSDK/Common/SDKTools/NormalSingleton.cs.meta new file mode 100644 index 00000000..9b796e68 --- /dev/null +++ b/Assets/TKGSDK/Common/SDKTools/NormalSingleton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5f879dddbadcb47c59a66e24e018e1b4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/SDKTools/TKGAndroidCNHide.cs b/Assets/TKGSDK/Common/SDKTools/TKGAndroidCNHide.cs new file mode 100644 index 00000000..5f2294fd --- /dev/null +++ b/Assets/TKGSDK/Common/SDKTools/TKGAndroidCNHide.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class TKGAndroidCNHide : MonoBehaviour +{ + private void Awake() + { +#if UNITY_ANDROID + if (TKGSDKManager.Instance.GetChannel() == Touka.AppChannel.GooglePlay) + { + gameObject.SetActive(true); + } + else + { + gameObject.SetActive(false); + } +#endif + } +} diff --git a/Assets/TKGSDK/Common/SDKTools/TKGAndroidCNHide.cs.meta b/Assets/TKGSDK/Common/SDKTools/TKGAndroidCNHide.cs.meta new file mode 100644 index 00000000..f154fe61 --- /dev/null +++ b/Assets/TKGSDK/Common/SDKTools/TKGAndroidCNHide.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7d2f5b9bcc64b44b3a86f7c065e3de8a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/internal.meta b/Assets/TKGSDK/Common/internal.meta new file mode 100644 index 00000000..49929231 --- /dev/null +++ b/Assets/TKGSDK/Common/internal.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e07f9cec6bb0d421da6895e9b6326e41 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/internal/ITKGSDK.cs b/Assets/TKGSDK/Common/internal/ITKGSDK.cs new file mode 100644 index 00000000..9c688d12 --- /dev/null +++ b/Assets/TKGSDK/Common/internal/ITKGSDK.cs @@ -0,0 +1,398 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + public interface ITKGSDK + { + /// + /// init sdk + /// + void InitSDK(Action _initCallback = null); + + /// + /// Set game focus + /// + /// + void SetGameFocusListener(Action _gameFocusAction); + + /// + /// Set reward click listener + /// + void SetRewardClickListener(Action _rewardClickAction); + /// + /// Get channel + /// + /// + AppChannel GetChannel(); + + #region Ads + + // remove all ads + void PurchasedRemoveAds(); + + /// + /// Remove Native Ad + /// + void RemoveNativeAd(); + + /// + /// Is Ready Native Ad + /// + /// + bool IsReadyNativeAd(); + + /// + /// Show Native Ad + /// + /// position + void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = ""); + + /// + /// Show banner + /// + /// 1:top,2:bottom + void ShowBanner(TKGBannerAlign _bannerAlign); + + /// + /// Hide banner + /// + void HideBanner(); + + /// + /// Show Interstitial Ad + /// + /// Name of interstitial ad placement. + /// Callback of interstitial ad close and show interstitial failed + /// IVADType for distinguish interstitial ads frequency, default use iv1 + void ShowInterstitialAd(TKGIVAdPositionName _adPos, Action _callback = null, IVADType _IvType = IVADType.IV1); + + /// + /// Show Reward Ad + /// + /// Name of reward ad placement + /// true:reward succ, false: reward failed + /// Callback of reward ad show fail + void ShowRewardAd(TKGRVPositionName _adPos, Action _rewardCallback = null, Action _showFailedCallback = null); + + /// + /// Is Ready Reward + /// + /// + bool IsReadyRewardAd(); + + /// + /// Is Ready Interstitial + /// + /// + bool IsReadyInterstitialAd(); + + #endregion + + #region Log Event + + #region Normal + + /// + /// log event + /// + /// + void LogEvent(string _eventSort); + + /// + /// log event + /// + /// + /// + /// + void LogEvent(string _eventSort, string _key, string _value); + + /// + /// log event + /// + /// + /// + /// + /// + /// + void LogEvent(string _eventSort, string _key01, string _value01, string _key02, string _value02); + + /// + /// log event + /// + /// + /// + void LogEvent(string _eventSort, Dictionary _eventDic = null); + + #endregion + + #region Level Event + + /// + /// Notify game start + /// + /// + void LevelStart(int _level); + + /// + /// Notify game start + /// + /// + void LevelStart(string _level); + + /// + /// Notify game end + /// + /// + /// + bool LevelEnd(int _level, StageResult _stageResult); + + /// + /// Notify game end + /// + /// + /// + bool LevelEnd(string _level, StageResult _stageResult); + + #endregion + + #region Reward Ad Button Show + + /// + /// Log Reward ad button show + /// + /// + void LogRewardAdBtnShow(string _pos); + + #endregion + + #region Tracking Event + + ///// + ///// Log Tracking Event + ///// + ///// + //void LogTrackingEvent(TrackingEventType _eventType); + + #endregion + + #endregion + + #region Online Config + + /// + /// get config - string + /// + /// + /// + string GetConfigStr(string _key); + + /// + /// get config - int + /// + /// + /// + int GetConfigInt(string _key); + + /// + /// get config - bool + /// + /// + /// + bool GetConfigBool(string _key); + + #endregion + + #region Others(common) + + /// + /// review + /// + void Review(); + + /// + /// open privacy url + /// + void OpenPrivacyURL(); + + /// + /// open user term url + /// + void OpenUserTermURL(); + + /// + /// open more game + /// + void OpenMoreGame(); + + /// + /// open browser url + /// + /// + void OpenUrlByBrowser(string _url); + + void OpenPolicyPop(); + + /// + /// shake + /// + /// 0 light,1 medium,2 heavy + /// ios 0~1, android any num + void Shake(int _shakeType, float _intensity = 1); + + #endregion + + #region Others (unCommon) + + /// + /// Set game focus + /// + /// + void SetUserSourceListener(Action _userSourceAction); + + /// + /// common callback + /// + /// + void SetTKGCommonCallback(Action _commonCallback); + + /// + /// set log enable + /// + /// + void SetLogEnable(bool _enable); + + /// + /// share txt + /// + /// + void ShareTxt(string _shareTxt); + + /// + /// regist APNS + /// + void RegistAPNS(); + + + /// + /// shake + /// + /// notification identifier + /// The body of the notification. + /// notify after the time interval. format: yyyy-MM-dd HH:mm:ss + /// The application badge number. + /// The title of the notification. + /// The subtitle of the notification. + void RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle); + + + /// + /// remove all notification + /// + void RemoveAllNotifications(); + + /// + /// remove notification by notification identifier + /// + /// notification identifier + void RemoveNotification(string notiId); + + #endregion + } + + /// + /// IV Ad Type + /// Control different frequency interstitial Ads + /// + public enum IVADType + { + IV1 = 0, + IV2, + IV3, + IV4, + IV5, + IV6, + IV7, + iv8, + + MAX, + } + + /// + /// Tracking Event Type + /// + public enum TrackingEventType + { + GuildStart = 0, // guide start show + GuildEnd = 1, // guild end + FirstOperateGame = 2, // user operates the game for the first time + + Max, + } + + /// + /// ad show failed code type + /// + public enum AdShowFailCodeType + { + AdShowFailReal = 57, // ad real show failed + AdIsNotReady = 58, // The ad component is displayed and found not ready + AdIsReadyCannotShow = 59, // When the ad component is displayed, the ad is ready, but the rule that cannot display the ad is triggered + } + + /// + /// banner align + /// + public enum TKGBannerAlign : int + { + BannerCenterBottomAlign = 34, + BannerCenterTopAlign = 10, + } + + /// + /// tkg common callback code + /// + public enum CommonCallbackCode + { + FirebaseOnlineParamGet_Succ = 990001, + FirebaseOnlineParamGet_Failed = 990002, + } + + /// + /// stage result + /// + public enum StageResult + { + StageSucc = 0, + StageFail = 1, + StageRetry = 2, + StageBack = 3, + } + + /// + /// app channel + /// + public enum AppChannel + { + None, + AppStore_GB, + AppStore_CN, + GooglePlay, + DY012, + GW002, + HY003, + OP004, + VO005, + XM006, + HW007, + TX008, + TP009, + MM010, + ZX011, + KS012, + PJ000, + + AndroidRoot = 10000 + } +} diff --git a/Assets/TKGSDK/Common/internal/ITKGSDK.cs.meta b/Assets/TKGSDK/Common/internal/ITKGSDK.cs.meta new file mode 100644 index 00000000..6151c713 --- /dev/null +++ b/Assets/TKGSDK/Common/internal/ITKGSDK.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 622e60b39ae0b411f9b149c5f416bebe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/internal/TKGDebugger.cs b/Assets/TKGSDK/Common/internal/TKGDebugger.cs new file mode 100644 index 00000000..5b470063 --- /dev/null +++ b/Assets/TKGSDK/Common/internal/TKGDebugger.cs @@ -0,0 +1,40 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + public class TKGDebugger + { + public static void LogDebug(string content) + { + if (StaticOtherConfig.IsDebugLog) + { + Debug.Log(content); + } + } + + public static void LogWarning(string content) + { + if (StaticOtherConfig.IsDebugLog) + { + Debug.LogWarning(content); + } + } + + public static void LogError(string content) + { + //if (StaticOtherConfig.IsDebugLog) + { + Debug.LogError("[Error] " + content); + } + } + + public static void SetUnityLogger(bool _logEnable) + { + Debug.unityLogger.logEnabled = _logEnable; + } + + } +} + diff --git a/Assets/TKGSDK/Common/internal/TKGDebugger.cs.meta b/Assets/TKGSDK/Common/internal/TKGDebugger.cs.meta new file mode 100644 index 00000000..aca0ae8b --- /dev/null +++ b/Assets/TKGSDK/Common/internal/TKGDebugger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 169fefdadb00d497889c1805955ce461 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/internal/TKGSDKNative.cs b/Assets/TKGSDK/Common/internal/TKGSDKNative.cs new file mode 100644 index 00000000..b78e5681 --- /dev/null +++ b/Assets/TKGSDK/Common/internal/TKGSDKNative.cs @@ -0,0 +1,662 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + public class TKGSDKNative : ITKGSDK + { + private Dictionary mDefaultDic = new Dictionary(); + /// + /// init sdk + /// + /// + public void InitSDK(Action _initCallback = null) + { + TKGNativeInterface.Instance.Init(_initCallback); + SetOnlineConfigInit(); + } + + private void SetOnlineConfigInit() + { + //加入自定义参数列表 + foreach (string tKey in TKGParams.OnlineParamDic.Keys) + { + mDefaultDic.Add(tKey, TKGParams.OnlineParamDic[tKey]); + } + } + + /// + /// Set game focus + /// + /// + public void SetGameFocusListener(Action _gameFocusAction) + { + TKGNativeInterface.Instance.SetGameFocusListener(_gameFocusAction); + } + + public void SetRewardClickListener(Action _rewardClickAction) + { + TKGNativeInterface.Instance.SetRewardClickListener(_rewardClickAction); + } + + /// + /// Get channel + /// + /// + public AppChannel GetChannel() + { + Debug.Log("android back getchannel : " + TKGNativeInterface.Instance.GetChannel()); + string channelStr = TKGNativeInterface.Instance.GetChannel(); + + channelStr = channelStr.Equals("default") ? AppChannel.AndroidRoot.ToString() : channelStr; + AppChannel tChannel = AppChannel.None; + if (Enum.TryParse(channelStr, out tChannel)) + { + return tChannel; + } + + return AppChannel.None; + } + + #region Ads + + public void SetUnitySDKVersion(string sdkVersion) + { + TKGNativeInterface.Instance.SetUnitySDKVersion(sdkVersion); + } + + public void PurchasedRemoveAds() + { + TKGNativeInterface.Instance.PurchasedRemoveAds(); + } + + public void RemoveNativeAd() + { + TKGNativeInterface.Instance.RemoveNativeAd(); + } + + public bool IsReadyNativeAd() + { + return TKGNativeInterface.Instance.IsReadyNativeAd(); + } + + public void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = "") + { + + TKGNativeInterface.Instance.ShowNativeAd(pRect,pCam,pAdPos); + } + + /// + /// Show banner + /// + /// bannerAlign + public void ShowBanner(TKGBannerAlign _pos) + { +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.showBannerAd(_pos); + } + + /// + /// Hide banner + /// + public void HideBanner() + { +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.hideBannerAd(); + } + + /// + /// Show Interstitial Ad + /// + /// Name of interstitial ad placement. + /// Callback of interstitial ad close and show interstitial failed + /// IVADType for distinguish interstitial ads frequency, default use iv1 + public void ShowInterstitialAd(TKGIVAdPositionName _adPos, Action _callback = null, IVADType _IvType = IVADType.IV1) + { +#if UNITY_EDITOR + TKGDebugger.LogDebug("[TKGSDKNative] Show Interstitial call, _adPos : " + _adPos); + if (_callback != null) _callback(); + return; +#endif + TKGSDKCallback.mInterAdCallback = _callback; + TKGNativeInterface.Instance.showInterstitialAd(_adPos.ToString(), _IvType); + } + + /// + /// Show Reward Ad + /// + /// Name of reward ad placement + /// true:reward succ, false: reward failed + /// Callback of reward ad show fail + public void ShowRewardAd(TKGRVPositionName _adPos, Action _rewardCallback = null, Action _showFailedCallback = null) + { +#if UNITY_EDITOR + TKGDebugger.LogDebug("[TKGSDKNative] Show reward call, _adPos : " + _adPos); + if (_rewardCallback != null) _rewardCallback(true); + return; +#endif + + TKGSDKCallback.mRewardCallback = _rewardCallback; + TKGSDKCallback.mRewardShowFailedCallback = _showFailedCallback; + + TKGNativeInterface.Instance.showRewardAd(_adPos.ToString(), -1); + } + + /// + /// Is Ready Interstitial + /// + /// + public bool IsReadyInterstitialAd() + { +#if UNITY_EDITOR + return true; +#endif + return TKGNativeInterface.Instance.isInterstitialAdReady(); + } + + /// + /// Is Ready Reward + /// + /// + public bool IsReadyRewardAd() + { +#if UNITY_EDITOR + return true; +#endif + return TKGNativeInterface.Instance.isRewardAdReady(); + } + + #endregion + + #region Log Event + + #region Normal + + /// + /// log event + /// + /// + public void LogEvent(string _eventSort) + { + TKGDebugger.LogDebug("[TKGSDKNative] logEvent : " + _eventSort); +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.onEvent(_eventSort); + } + + + /// + /// log event + /// + /// + /// + /// + public void LogEvent(string _eventSort, string _key, string _value) + { + TKGDebugger.LogDebug("[TKGSDKNative] logEvent : " + _eventSort + " , _key : " + _key + " , _value : " + _value); +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.onEvent(_eventSort, _key, _value); + } + + /// + /// log event + /// + /// + /// + /// + /// + /// + public void LogEvent(string _eventSort, string _key01, string _value01, string _key02, string _value02) + { + TKGDebugger.LogDebug("[TKGSDKNative] logEvent : " + _eventSort + " , _key01 : " + _key01 + " , _value01 : " + _value01 + " , _key2 : " + _key02 + " , _value02 : " + _value02); +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.onEvent(_eventSort, _key01, _value01, _key02, _value02); + } + + /// + /// log event + /// + /// + /// + public void LogEvent(string _eventSort, Dictionary _eventDic = null) + { + TKGDebugger.LogDebug("[TKGSDKNative] logEvent : " + _eventSort + " , _eventDic.count : " + _eventDic.Count); +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.onEvent(_eventSort, _eventDic); + } + + #endregion + + #region Level Event + + /// + /// Notify game start + /// + /// + public void LevelStart(int _level) + { + TKGDebugger.LogDebug("[TKGSDKNative] LevelStart _level : " + _level); +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.LevelStart(_level.ToString()); + } + + /// + /// Notify game start + /// + /// + public void LevelStart(string _level) + { + TKGDebugger.LogDebug("[TKGSDKNative] LevelStart _level : " + _level); +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.LevelStart(_level); + } + + /// + /// Notify game end + /// + /// + /// + public bool LevelEnd(int _level, StageResult _stageResult) + { + TKGDebugger.LogDebug("[TKGSDKNative] LevelEnd _level : " + _level + " , _stageResult : " + _stageResult); +#if UNITY_EDITOR + return true; +#endif + TKGNativeInterface.Instance.LevelEnd(_level.ToString(), _stageResult); + return true; + } + + /// + /// Notify game end + /// + /// + /// + public bool LevelEnd(string _level, StageResult _stageResult) + { + TKGDebugger.LogDebug("[TKGSDKNative] LevelEnd _level : " + _level + " , _win : " + _stageResult); +#if UNITY_EDITOR + return true; +#endif + TKGNativeInterface.Instance.LevelEnd(_level, _stageResult); + return true; + } + + #endregion + + #region Reward Ad Button Show + + /// + /// Log Reward ad button show + /// + /// + public void LogRewardAdBtnShow(string _pos) + { + TKGDebugger.LogDebug("[TKGSDKNative] LogRewardAdBtnShow _pos : " + _pos); +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.onEvent(TKGStringEvent.Event_Sort_TKGInner_ad_button_show, TKGStringEvent.Event_Type_TKGInner_ad_position, _pos); + } + + #endregion + + #region Tracking Event + + /// + /// Log Tracking Event + /// + /// + public void LogTrackingEvent(TrackingEventType _eventType) + { + TKGDebugger.LogDebug("[TKGSDKNative] LogTrackingEvent _eventType : " + _eventType); +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.LogTrackingEvent(_eventType); + } + + #endregion + + #endregion + + #region Online Config + + /// + /// get config - string + /// + /// + /// + public string GetConfigStr(string _key) + { +#if UNITY_EDITOR + return GetConfigDefaultValue(_key); +#endif + string tempOnline = TKGNativeInterface.Instance.GetConfigString(_key, GetConfigDefaultValue(_key)); + TKGDebugger.LogDebug("[TKGSDKNative] tempOnline , _key : " + _key + " , tempOnline : " + tempOnline); + return tempOnline; + } + + /// + /// get config - int + /// + /// + /// + public int GetConfigInt(string _key) + { + string tDefaultValue = GetConfigDefaultValue(_key); + +#if UNITY_EDITOR + + if (int.TryParse(tDefaultValue, out int tIntVal)) + { + return tIntVal; + } + TKGDebugger.LogDebug("[TKGSDKNative]"); + return 0; +#endif + + int defaultInt = 0; + int.TryParse(tDefaultValue, out defaultInt); + + int tempInt = TKGNativeInterface.Instance.GetConfigInt(_key, defaultInt); + TKGDebugger.LogDebug("[TKGSDKNative] GetConfigInt , _key : " + _key + " , tempInt : " + tempInt); + return tempInt; + } + + /// + /// get config - bool + /// + /// + /// + public bool GetConfigBool(string _key) + { + string tDefaultValue = GetConfigDefaultValue(_key); +#if UNITY_EDITOR + if (int.TryParse(tDefaultValue, out int tIntVal)) + { + return tIntVal != 0; + } + TKGDebugger.LogDebug("[TKGSDKNative]"); + + return false; +#endif + + int defaultInt = 0; + int.TryParse(tDefaultValue, out defaultInt); + + bool tBoolValue = TKGNativeInterface.Instance.GetConfigBool(_key, defaultInt != 0); + TKGDebugger.LogDebug("[TKGSDKNative] GetConfigBool , _key : " + _key + " , tBoolValue : " + tBoolValue); + return tBoolValue; + } + + /// + /// get default config value + /// + /// + /// + private string GetConfigDefaultValue(string _key) + { + string tDefault = ""; + if (mDefaultDic.ContainsKey(_key)) + { + tDefault = mDefaultDic[_key].ToString(); + } + Debug.Log("getConfigDefaultValue, _key : " + _key + " , tDefault : " + tDefault); + return tDefault; + } + + #endregion + + #region Others (common) + + /// + /// review + /// + public void Review() + { + TKGDebugger.LogDebug("[TKGSDKNative] Review"); +#if UNITY_EDITOR +#if AppStore_GB + TKGDebugger.LogDebug("[TKGSDKNative] Review cannot be opened in editor, please open it in real machine"); +#else + + TKGDebugger.LogDebug("[TKGSDKNative] 编辑器中无法打开评价页面,请在真机中打开"); + +#endif + return; +#endif + TKGNativeInterface.Instance.Review(); + } + + /// + /// open privacy url + /// + public void OpenPrivacyURL() + { + TKGDebugger.LogDebug("[TKGSDKNative] OpenPrivacyURL"); +#if UNITY_EDITOR +#if AppStore_GB + TKGDebugger.LogDebug("[TKGSDKNative] Web page cannot be opened in editor, please open it in real machine"); +#else + + TKGDebugger.LogDebug("[TKGSDKNative] 编辑器中无法打开网页,请在真机中打开"); + +#endif + return; +#endif + TKGNativeInterface.Instance.OpenPrivacyURL(); + } + + /// + /// open user term url + /// + public void OpenUserTermURL() + { + TKGDebugger.LogDebug("[TKGSDKNative] OpenUserTermURL"); +#if UNITY_EDITOR +#if AppStore_GB + TKGDebugger.LogDebug("[TKGSDKNative] Web page cannot be opened in editor, please open it in real machine"); +#else + + TKGDebugger.LogDebug("[TKGSDKNative] 编辑器中无法打开网页,请在真机中打开"); + +#endif + return; +#endif + TKGNativeInterface.Instance.OpenUserTermURL(); + } + + /// + /// open policy pop + /// + public void OpenPolicyPop() + { + TKGDebugger.LogDebug("[TKGSDKNative] OpenPolicyPop"); +#if UNITY_EDITOR +#if AppStore_GB + TKGDebugger.LogDebug("[TKGSDKNative] Web page cannot be opened in editor, please open it in real machine"); +#else + + TKGDebugger.LogDebug("[TKGSDKNative] 编辑器中无法打开网页,请在真机中打开"); + +#endif + return; +#endif + TKGNativeInterface.Instance.OpenPolicyPop(); + } + + /// + /// open more game + /// + public void OpenMoreGame() + { + TKGDebugger.LogDebug("[TKGSDKNative] OpenMoreGame"); +#if UNITY_EDITOR +#if AppStore_GB + TKGDebugger.LogDebug("[TKGSDKNative] App Store cannot be opened in editor, please open it in real machine"); +#else + + TKGDebugger.LogDebug("[TKGSDKNative] 编辑器中无法打开App Store,请在真机中打开"); + +#endif + return; +#endif + TKGNativeInterface.Instance.OpenMoreGame(); + } + + /// + /// open url browser + /// + /// + public void OpenUrlByBrowser(string _url) + { + TKGDebugger.LogDebug("[TKGSDKNative] OpenUrlByBrowser"); +#if UNITY_EDITOR + return; +#endif + TKGUtils.OpenBrowserUrl(_url); + } + + + /// + /// shake + /// + /// 0 light,1 medium,2 heavy + /// ios 0~1, android any num + public void Shake(int _shakeType, float _intensity = 1) + { +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.shake(_shakeType, _intensity); + } + + #endregion + + #region others(uncommon) + + /// + /// SetUserSourceListener + /// + /// + public void SetUserSourceListener(Action _userSourceAction) + { +#if UNITY_EDITOR + return; +#endif + TKGSDKCallback.mTKGUserSourceCallback = _userSourceAction; + TKGNativeInterface.Instance.SetUserSourceCallback(new AndroidTKGUserSourceCalllback()); + } + + /// + /// Set TKG Common callback + /// + /// + public void SetTKGCommonCallback(Action _commonCallback) + { +#if UNITY_EDITOR + return; +#endif + TKGSDKCallback.mTKGCommonCallback = _commonCallback; + TKGNativeInterface.Instance.SetSDKCommonCallback(new AndroidTKGCommonCalllback()); + } + + /// + /// Set log enable + /// + public void SetLogEnable(bool _enable) + { +#if UNITY_EDITOR + return; +#endif + TKGNativeInterface.Instance.SetLogEnable(_enable); + } + /// + /// share txt + /// + public void ShareTxt(string _shareTxt) + { +#if UNITY_EDITOR + return; +#endif +#if UNITY_ANDROID + TKGNativeInterface.Instance.ShareTxt(_shareTxt); +#endif + } + + /// + /// regist APNS + /// + public void RegistAPNS() + { + +#if UNITY_EDITOR + return; +#else + TKGNativeInterface.Instance.RegistAPNS(); +#endif + + } + + /// + /// shake + /// + /// notification identifier + /// The body of the notification. + /// notify after the time interval. format: yyyy-MM-dd HH:mm:ss + /// The application badge number. + /// The title of the notification. + /// The subtitle of the notification. + public void RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle) { + +#if UNITY_EDITOR + return; +#else + TKGNativeInterface.Instance.RegistNotification(notiId,body,fireDate,badge,title,subTitle); +#endif + } + + /// + /// remove all notification + /// + public void RemoveAllNotifications() { + +#if UNITY_EDITOR + return; +#else + TKGNativeInterface.Instance.RemoveAllNotifications(); +#endif + } + + /// + /// remove notification by notification identifier + /// + /// notification identifier + public void RemoveNotification(string notiId) { + + +#if UNITY_EDITOR + return; +#else + TKGNativeInterface.Instance.RemoveNotification(notiId); +#endif + } +#endregion + } +} diff --git a/Assets/TKGSDK/Common/internal/TKGSDKNative.cs.meta b/Assets/TKGSDK/Common/internal/TKGSDKNative.cs.meta new file mode 100644 index 00000000..ba994fe9 --- /dev/null +++ b/Assets/TKGSDK/Common/internal/TKGSDKNative.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b56a352663e54b7da21c98ee4f04919 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/internal/TKGSingleton.cs b/Assets/TKGSDK/Common/internal/TKGSingleton.cs new file mode 100644 index 00000000..527ef73f --- /dev/null +++ b/Assets/TKGSDK/Common/internal/TKGSingleton.cs @@ -0,0 +1,45 @@ +using UnityEngine; +using System.Collections; + +namespace Touka +{ + /// + /// 单例类 + /// + /// + public class TKGSingleton : MonoBehaviour where T : MonoBehaviour + { + private static T _instance; + + public static T Instance + { + get + { + if (null == _instance) + { + _instance = Object.FindObjectOfType(typeof(T)) as T; + if (null != _instance) return _instance; + + GameObject container = new GameObject + { + name = typeof(T).ToString() + }; + container.hideFlags = HideFlags.HideInHierarchy; + _instance = container.AddComponent(typeof(T)) as T; + Object.DontDestroyOnLoad(container); + } + return _instance; + } + } + + private void Awake() + { + OnInstanceCreate(); + } + + protected virtual void OnInstanceCreate() + { + + } + } +} diff --git a/Assets/TKGSDK/Common/internal/TKGSingleton.cs.meta b/Assets/TKGSDK/Common/internal/TKGSingleton.cs.meta new file mode 100644 index 00000000..e0600027 --- /dev/null +++ b/Assets/TKGSDK/Common/internal/TKGSingleton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: da622b24dd1d24cfe97ee17033dd2cb0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/internal/TKGStringConst.cs b/Assets/TKGSDK/Common/internal/TKGStringConst.cs new file mode 100644 index 00000000..c02852df --- /dev/null +++ b/Assets/TKGSDK/Common/internal/TKGStringConst.cs @@ -0,0 +1,24 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + public static class TKGStringConst + { + + } + + + public static class TKGStringEvent + { + public const string Event_Sort_TKGInner_ad_button_show = "ad_button_show"; // ad button show + public const string Event_Type_TKGInner_ad_position = "ad_position"; // ad position + + } + + public static class TKGStringPlayerPrefs + { + public const string TOUKA_PREFIX = "Touka_"; + } +} \ No newline at end of file diff --git a/Assets/TKGSDK/Common/internal/TKGStringConst.cs.meta b/Assets/TKGSDK/Common/internal/TKGStringConst.cs.meta new file mode 100644 index 00000000..899be003 --- /dev/null +++ b/Assets/TKGSDK/Common/internal/TKGStringConst.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1c289d50c594c4d34864ee763e184865 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/internal/iOS.meta b/Assets/TKGSDK/Common/internal/iOS.meta new file mode 100644 index 00000000..3a03c0f0 --- /dev/null +++ b/Assets/TKGSDK/Common/internal/iOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d9516873035bb45598c991827ce79e3b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/internal/iOS/TGUniversalFunc.cs b/Assets/TKGSDK/Common/internal/iOS/TGUniversalFunc.cs new file mode 100644 index 00000000..6c887bfc --- /dev/null +++ b/Assets/TKGSDK/Common/internal/iOS/TGUniversalFunc.cs @@ -0,0 +1,90 @@ + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Runtime.InteropServices; +using System; +using UnityEngine.UI; + + +public class TGUniversalFunc : MonoBehaviour { + + //banner + public static Action onSetBannerListener_onAdLoaded; + + public static Action onSetBannerListener_onAdFailedToLoad; + + public static Action onSetBannerListener_onShowSuccess; + + public static Action onSetBannerListener_onClick; + + public static Action onSetBannerListener_onAdClosed; + + //interstitial + public static Action onSetInterstitialListener_onAdLoaded; + + public static Action onSetInterstitialListener_onAdFailedToLoad; + + public static Action onSetInterstitialListener_onShowSuccess; + + public static Action onSetInterstitialListener_onShowFailed; + + public static Action onSetInterstitialListener_onAdClosed; + + public static Action onSetInterstitialListener_onClick; + + public static Action onSetIntersititalAdsEndPlaying; + + public static Action onSetInterstitialListener_onFailedToPlay; + + public static Action onSetInterstitialListener_onStartPlayVideo; + + public static Action onSetInterstitialListener_onEndPlaying; + + //Native + public static Action onSetNativeListener_onAdLoaded; + + public static Action onSetNativeListener_onAdFailedToLoad; + + public static Action onSetNativeListener_onClick; + + public static Action onSetNativeListener_onShowSuccess; + + //reward + public static Action onSetRewardListener_onRewardedVideoAdLoaded; + + public static Action onSetRewardListener_onRewardedVideoAdFailedToLoad; + + public static Action onSetRewardListener_onRewardedVideoStarted; + + public static Action onSetRewardListener_onRewardedVideoAdClosed; + + public static Action onSetRewardListener_onRewardedVideoClickAd; + + public static Action onSetRewardListener_onRewardedVideoAdEnd; + + public static Action onSetRewardListener_onRewardedVideoAdPlayFail; + + public static Action onSetRewardListener_onRewarded; + + + //splash + public static Action onSetSplashListener_onAdLoaded; + + public static Action onSetSplashListener_onAdLoadFail; + + public static Action onSetSplashListener_onAdDidShow; + + public static Action onSetSplashListener_onAdDidClick; + + public static Action onSetSplashListener_onAdDidClose; + + //native banner + public static Action onSetNativeBannerListener_onAdLoaded; + + public static Action onSetNativeBannerListener_onAdLoadFail; + + + // User Source + public static Action onSetUserSourceListener_onSuccess; +} diff --git a/Assets/TKGSDK/Common/internal/iOS/TGUniversalFunc.cs.meta b/Assets/TKGSDK/Common/internal/iOS/TGUniversalFunc.cs.meta new file mode 100644 index 00000000..7472b454 --- /dev/null +++ b/Assets/TKGSDK/Common/internal/iOS/TGUniversalFunc.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7afbc8428cb074050bc3b66567a276f9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Common/internal/iOS/TGiOSAdmanager.cs b/Assets/TKGSDK/Common/internal/iOS/TGiOSAdmanager.cs new file mode 100644 index 00000000..d30ee111 --- /dev/null +++ b/Assets/TKGSDK/Common/internal/iOS/TGiOSAdmanager.cs @@ -0,0 +1,570 @@ +#if UNITY_IOS +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Runtime.InteropServices; +using System; +using Touka; +using System.Text; + +public class TGiOSAdManager : MonoBehaviour +{ + + private static TGiOSAdManager s_instance; + + public Action onAntiSuccessHander; + private System.Action m_userSourceCallback; + + public static TGiOSAdManager Instance + { + get + { + if (s_instance == null) + { + GameObject TGGameObject = new GameObject + { + name = "AdObject" + }; + s_instance = TGGameObject.AddComponent(); + DontDestroyOnLoad(TGGameObject); + } + return s_instance; + } + } + + + public void InitSDK() + { + // 暂停恢复声音 + pauseGameDelegate handler = new pauseGameDelegate(pauseGameHandle); + IntPtr pauseGame = Marshal.GetFunctionPointerForDelegate(handler); + pauseGameCallback(pauseGame); + + // 初始化设置 + initSDKDelegate inithandler = new initSDKDelegate(initSDKHandle); + IntPtr initSdk = Marshal.GetFunctionPointerForDelegate(inithandler); + initSDKCallback(initSdk); + + // 用户来源设置 + TKG_UsersourceDelegate usHandler = new TKG_UsersourceDelegate(userSourceHandle); + IntPtr us = Marshal.GetFunctionPointerForDelegate(usHandler); + userSourceCallback(us); + + // rv close + rewardCloseDelegate rvCloseHandler = new rewardCloseDelegate(rewardAdCloseHandle); + IntPtr rewardClose = Marshal.GetFunctionPointerForDelegate(rvCloseHandler); + rewardAdCloseCallback(rewardClose); + + // show fail + rewardShowFailDelegate rvfailHandler = new rewardShowFailDelegate(rewardAdShowFailHandle); + IntPtr rewardShowFail = Marshal.GetFunctionPointerForDelegate(rvfailHandler); + rewardAdShowFailCallback(rewardShowFail); + + // iv close + interCloseDelegate ivCloseHandler = new interCloseDelegate(interAdCloseHandle); + IntPtr interClose = Marshal.GetFunctionPointerForDelegate(ivCloseHandler); + interAdCloseCallback(interClose); + + // rv click + rewardClickDelegate rvClickHandler = new rewardClickDelegate(rewardAdClickHandle); + IntPtr rvClick = Marshal.GetFunctionPointerForDelegate(rvClickHandler); + rewardAdClickCallback(rvClick); + + TKG_InitSDK(); + + } + + // 通知 + public void registAPNS() + { + TKG_RegistAPNS(); + } + + public void registNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle) + { + TKG_RegistNotification(notiId,body,fireDate,badge,title,subTitle); + } + + public void removeNotification(string notiId) + { + TKG_RemoveNotification(notiId); + } + + public void removeAllNotifications() + { + TKG_RemoveAllNotification(); + } + // 震动 + public void shake(int mType, float mIntensity = 1) + { + TKG_Shake(mType,mIntensity); + } + + // ads + + public void RemoveAllAds() + { + TKG_RemoveAds(); + } + + //banner + public void LoadBanner() + { + TKG_LoadBanner(); + } + + public bool IsReadyBanner() + { + return TKG_IsReadyBanner(); + } + + public void ShowBanner(int align) + { + TKG_ShowBanner(align); + } + + public void HideBanner() + { + TKG_HideBanner(); + } + + // iv + public void LoadIntersititial() + { + TKG_LoadIntersititial(); + } + + public bool IsReadyIntersititial() + { + return TKG_IsReadyIntersititial(); + } + + public void ShowIntersititial(string _adPos, int ivType) + { + TKG_ShowIntersititial(_adPos,ivType); + } + + // rv + public void LoadRewardVideo() + { + TKG_LoadRewardVideo(); + } + + public bool IsReadyRewardVideo() + { + return TKG_IsReadyRewardVideo(); + } + + public void ShowRewardVideo(string adPos) + { + + TKG_ShowRewardVideo(adPos); + } + + // native + public void LoadNative(float width, float height) + { + TKG_LoadNative(width, height); + } + + public bool IsReadyNative() + { + return TKG_IsReadyNative(); + } + + public void ShowNative(RectTransform pRect, Camera pCam = null, string pAdPos = "") + { + TKG_TurnNativePosition(pRect, pCam, pAdPos); + } + + public void RemoveNative() + { + TKG_RemoveNative(); + } + + // other + public void Review() + { + TKG_Review(); + } + + public void OpenPrivacyURL() + { + TKG_OpenPrivacyURL(); + } + + public void OpenUserTermURL() + { + TKG_OpenUserTermURL(); + } + + public void OpenPolicyPop() + { + TKG_OpenPolicyPop(); + } + public void OpenMoreGame() + { + TKG_OpenMoreGame(); + } + + + // 在线参数 + public int GetConfigInt(string key, int defaultValue) + { + return TKG_GetConfigInt(key, defaultValue); + } + + public string GetConfigString(string key, string defaultValue) + { + return TKG_GetConfigString(key, defaultValue); + } + + public bool GetConfigBool(string key, bool defaultValue) + { + return TKG_GetConfigBool(key, defaultValue); + } + + // 游戏事件上报 + public void onEvent_GameStart(string levelId) + { + TKG_OnEvent_GameStart(levelId); + } + + public void onEvent_GameEnd(string levelId, int result) + { + TKG_OnEvent_GameEnd(levelId,result); + } + + // umeng 事件上报 + public void onEvent_UMeng(string eventSort) + { + TKG_OnEvent_UMeng1(eventSort); + } + + public void onEvent_UMeng(string eventSort, Dictionary _keyValues) + { + TKG_OnEvent_UMeng2(eventSort, TKG_DictionaryToJson(_keyValues)); + } + + public void onEvent_UMeng(string eventSort,string key,string value) + { + TKG_OnEvent_UMeng3(eventSort,key,value); + } + + public void onEvent_UMeng(string eventSort, string key1, string value1,string key2,string value2) + { + TKG_OnEvent_UMeng4(eventSort, key1, value1,key2,value2); + } + + // tenjin事件上报 + public void onEvent_Tenjin(int eventType) + { + TKG_OnEvent_Tenjin(eventType); + } + + // unity 字典转 json string + static string TKG_DictionaryToJson(Dictionary dict) + { + + var builder = new StringBuilder("{"); + foreach (KeyValuePair kv in dict) + { + builder.AppendFormat("\"{0}\":\"{1}\",", kv.Key, kv.Value); + } + builder[builder.Length - 1] = '}'; + return builder.ToString(); + } + + // 坐标转换 + public void TKG_TurnNativePosition(RectTransform pRect, Camera pCam = null, string pAdPos = "") + { + Vector3[] tWorldCorners = new Vector3[4]; + pRect.GetWorldCorners(tWorldCorners); + + Vector2 tTopLeft = RectTransformUtility.WorldToScreenPoint(pCam, tWorldCorners[1]); + Vector2 tBottomRight = RectTransformUtility.WorldToScreenPoint(pCam, tWorldCorners[3]); + float tWidth = Mathf.Abs(tBottomRight.x - tTopLeft.x); + float tHeight = Mathf.Abs(tBottomRight.y - tTopLeft.y); + //Debug.Log("x:" + tTopLeft.x + "y:" + (Screen.height - tTopLeft.y) + "width" + tWidth + "hei:" + tHeight); + + TKG_ShowNative(tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight, pAdPos); + } + + // callback + // iv callback + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate void interCloseDelegate(); + [AOT.MonoPInvokeCallback(typeof(interCloseDelegate))] + static void interAdCloseHandle() + { + if (TKGSDKCallback.mInterAdCallback != null) + { + TKGSDKCallback.mInterAdCallback.Invoke(); + TKGSDKCallback.mInterAdCallback = null; + } + } + + // rv close-reward callback + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate void rewardCloseDelegate(bool isReward); + [AOT.MonoPInvokeCallback(typeof(rewardCloseDelegate))] + static void rewardAdCloseHandle(bool isReward) + { + if (isReward) + { + if (TKGSDKCallback.mRewardCallback != null) + { + TKGSDKCallback.mRewardCallback.Invoke(true); + TKGSDKCallback.mRewardCallback = null; + } + } + else + { + if (TKGSDKCallback.mRewardCallback != null) + { + TKGSDKCallback.mRewardCallback.Invoke(false); + TKGSDKCallback.mRewardCallback = null; + } + } + } + + // rv show fail callback + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate void rewardShowFailDelegate(); + [AOT.MonoPInvokeCallback(typeof(rewardShowFailDelegate))] + static void rewardAdShowFailHandle() + { + if (TKGSDKCallback.mRewardShowFailedCallback != null) + { + TKGSDKCallback.mRewardShowFailedCallback(); + TKGSDKCallback.mRewardShowFailedCallback = null; + } + } + + // rv click callback + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate void rewardClickDelegate(); + [AOT.MonoPInvokeCallback(typeof(rewardClickDelegate))] + static void rewardAdClickHandle() + { + if (TKGSDKCallback.mRewardClickCallback != null) + { + TKGSDKCallback.mRewardClickCallback(); + } + } + + // pause game + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate void pauseGameDelegate(bool m_pause); + [AOT.MonoPInvokeCallback(typeof(pauseGameDelegate))] + static void pauseGameHandle(bool m_pause) + { + TKGSDKCallback.mGameFocusCallback?.Invoke(!m_pause); + } + + // init sdk + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate void initSDKDelegate(); + [AOT.MonoPInvokeCallback(typeof(initSDKDelegate))] + static void initSDKHandle() + { + if (TKGSDKCallback.mInitCallback != null) + { + TKGSDKCallback.mInitCallback(); + TKGSDKCallback.mInitCallback = null; + } + } + + // user source + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate void TKG_UsersourceDelegate(bool isOrganic,string source); + [AOT.MonoPInvokeCallback(typeof(TKG_UsersourceDelegate))] + static void userSourceHandle(bool isOrganic, string source) + { + if (TKGSDKCallback.mTKGUserSourceCallback != null) + { + TKGSDKCallback.mTKGUserSourceCallback(isOrganic,source); + TKGSDKCallback.mTKGUserSourceCallback = null; + } + } + + // dll + [DllImport("__Internal")] + private static extern void TKG_Shake(int mType, float mIntensity); + + [DllImport("__Internal")] + private static extern void TKG_InitSDK(); + + // event umeng + [DllImport("__Internal")] + private static extern void TKG_OnEvent_UMeng1(string s1); + + [DllImport("__Internal")] + private static extern void TKG_OnEvent_UMeng2(string s1, string s2); + + [DllImport("__Internal")] + private static extern void TKG_OnEvent_UMeng3(string s1, string key, string value); + + [DllImport("__Internal")] + private static extern void TKG_OnEvent_UMeng4(string s1, string key1, string value1, string key2, string value2); + + // event tenjin + [DllImport("__Internal")] + private static extern void TKG_OnEvent_Tenjin(int eventType); + + // event game + [DllImport("__Internal")] + private static extern void TKG_OnEvent_GameStart(string levelId); + [DllImport("__Internal")] + private static extern void TKG_OnEvent_GameEnd(string levelId, int result); + + // other + [DllImport("__Internal")] + private static extern void TKG_Review(); + + [DllImport("__Internal")] + private static extern void TKG_OpenPrivacyURL(); + + [DllImport("__Internal")] + private static extern void TKG_OpenUserTermURL(); + + [DllImport("__Internal")] + private static extern void TKG_OpenPolicyPop(); + + [DllImport("__Internal")] + private static extern void TKG_OpenMoreGame(); + + // ads + [DllImport("__Internal")] + private static extern void TKG_LoadBanner(); + + [DllImport("__Internal")] + private static extern bool TKG_IsReadyBanner(); + + [DllImport("__Internal")] + private static extern void TKG_ShowBanner(int align); + + [DllImport("__Internal")] + private static extern void TKG_HideBanner(); + + [DllImport("__Internal")] + private static extern void TKG_LoadIntersititial(); + + [DllImport("__Internal")] + private static extern bool TKG_IsReadyIntersititial(); + + [DllImport("__Internal")] + private static extern void TKG_ShowIntersititial(string adPos,int ivType); + + [DllImport("__Internal")] + private static extern void TKG_LoadRewardVideo(); + + [DllImport("__Internal")] + private static extern bool TKG_IsReadyRewardVideo(); + + [DllImport("__Internal")] + private static extern void TKG_ShowRewardVideo(string adPos); + + [DllImport("__Internal")] + private static extern void TKG_LoadNative(float width, float height); + + [DllImport("__Internal")] + private static extern bool TKG_IsReadyNative(); + + [DllImport("__Internal")] + private static extern void TKG_ShowNative(float x, float y, float w, float h, string adPos); + + [DllImport("__Internal")] + private static extern void TKG_RemoveNative(); + + // remote config + [DllImport("__Internal")] + private static extern int TKG_GetConfigInt(string key, int defaultValue); + + [DllImport("__Internal")] + private static extern string TKG_GetConfigString(string key, string defaultValue); + + [DllImport("__Internal")] + private static extern bool TKG_GetConfigBool(string key, bool defaultValue); + + [DllImport("__Internal")] + private static extern bool TKG_SetLogged(bool enable); + + [DllImport("__Internal")] + private static extern bool TKG_RemoveAds(); + + // callback + // iv close + [DllImport("__Internal")] + public static extern void interAdCloseCallback( + IntPtr interClose + ); + + // rv close + [DllImport("__Internal")] + public static extern void rewardAdCloseCallback( + IntPtr rewardClose + ); + + // rv click + [DllImport("__Internal")] + public static extern void rewardAdClickCallback( + IntPtr rewardClick + ); + + // rv show fail + [DllImport("__Internal")] + public static extern void rewardAdShowFailCallback( + IntPtr rewardShowFail + ); + + // pause game + [DllImport("__Internal")] + public static extern void pauseGameCallback( + IntPtr pauseGame + ); + + // init sdk + [DllImport("__Internal")] + public static extern void initSDKCallback( + IntPtr initSdk + ); + + // user source + [DllImport("__Internal")] + public static extern void userSourceCallback( + IntPtr userSource + ); + + // 设置unity版本 + [DllImport("__Internal")] + private static extern void TKG_SetUnityVersion(string version); + + // 通知 + [DllImport("__Internal")] + private static extern void TKG_RegistAPNS(); + + [DllImport("__Internal")] + private static extern void TKG_RemoveAllNotification(); + + [DllImport("__Internal")] + private static extern void TKG_RemoveNotification(string notiId); + + [DllImport("__Internal")] + private static extern void TKG_RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle); + + // ============================ old sdk todo ======================== + + //设置log开关 + public void SetLogEnable(bool enable) + { + TKG_SetLogged(enable); + } + + public void SetUnitySDKVersion(string version) + { + TKG_SetUnityVersion(version); + } +} + +#endif diff --git a/Assets/TKGSDK/Common/internal/iOS/TGiOSAdmanager.cs.meta b/Assets/TKGSDK/Common/internal/iOS/TGiOSAdmanager.cs.meta new file mode 100644 index 00000000..f538460a --- /dev/null +++ b/Assets/TKGSDK/Common/internal/iOS/TGiOSAdmanager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c4796c003fbf746869238b54b37eab3b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config.meta b/Assets/TKGSDK/Config.meta new file mode 100644 index 00000000..164c1f5e --- /dev/null +++ b/Assets/TKGSDK/Config.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6fb27b1d36bb84b9784a282b702a3ce0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/ConfigKeys.cs b/Assets/TKGSDK/Config/ConfigKeys.cs new file mode 100644 index 00000000..8a7a7058 --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigKeys.cs @@ -0,0 +1,79 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + public class ConfigKeys + { + #region App info + + // app name + public const string KEY_AppName = "app_name"; + // bundle id + public const string KEY_BunldId = "package_name"; + + #endregion + + #region Analytics + // umeng + public const string KEY_UMENG_APPKEY = "um_app_key"; + public const string KEY_UMENG_CHANNELID = "channel"; + + // ga + public const string KEY_GA_gameKey = "ga_key"; + public const string KEY_GA_secretKey = "ga_secretkey"; + + // tenjin + public const string KEY_TENJIN_KEY = "tenjin_api_key"; + + #endregion + + #region Ads + + // admob id + public const string KEY_Admob_AppID = "admob_id"; + + // app id + public const string KEY_TOUKA_SDK_APPID = "ad_appid"; + // app key + public const string KEY_TOUKA_SDK_APPKEY = "ad_appkey"; + + // iv id + public const string KEY_TOUKA_SDK_INTERID = "ad_interstital_id"; + // rv id + public const string KEY_TOUKA_SDK_REWARDID = "ad_reward_id"; + // splash id + public const string KEY_TOUKA_SDK_SPLASHID = "ad_splash_id"; + + // template native id // iOS use + public const string KEY_TOUKA_SDK_NATIVEID = "ad_templete_natvie_id"; + // render native id + public const string KEY_TOUKA_SDK_RENDERNATIVEID = "ad_render_native_id"; + // banner id + public const string KEY_TOUKA_SDK_BANNERID = "ad_banner_id"; + // native banner id + public const string KEY_TOUKA_SDK_NATIVEBANNERID = "ad_native_banner_id"; + // native splash id + public const string KEY_TOUKA_SDK_NATIVESPLASHID = "ad_native_splash_id"; + + + #endregion + + #region Basic Config + // PlayerAge + public const string KEY_PlayerAge = "tka_age"; + // GameTheme + public const string KEY_GameTheme = "tka_theme"; + // privacy url + public const string KEY_PrivacyURL = "tka_url_privacy"; + // agreement url + public const string KEY_AgreementURL = "tka_url_agreement"; + // more game url + public const string KEY_MoreGameURL = "tka_url_moregame"; + + #endregion + + } + +} diff --git a/Assets/TKGSDK/Config/ConfigKeys.cs.meta b/Assets/TKGSDK/Config/ConfigKeys.cs.meta new file mode 100644 index 00000000..691602ab --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigKeys.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6f1983a87ac847b694ceaea128c3867 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/ConfigTools.meta b/Assets/TKGSDK/Config/ConfigTools.meta new file mode 100644 index 00000000..70b2945f --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8dbadde55b7344be28aa3c3093247c8f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/ConfigTools/TKGFileTools.cs b/Assets/TKGSDK/Config/ConfigTools/TKGFileTools.cs new file mode 100644 index 00000000..1ff7d5b8 --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools/TKGFileTools.cs @@ -0,0 +1,58 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Networking; + +namespace Touka +{ + public class TKGFileTools + { + /// + /// 通过UnityWebRequest获取本地StreamingAssets文件夹中的文件 + /// + /// only for android .properties + /// + /// 文件名称 + /// + public static string UnityWebRequestFile(string fileName) + { + string url = GetFileURL(fileName); + TKGDebugger.LogError("Warning: If an exception occurs, check whether the 「Assets/StreamingAssets/Configs/tkg_config.properties」 file exists : " + url); + UnityWebRequest request = UnityWebRequest.Get(url); + request.SendWebRequest();//读取数据 + while (true) + { + if (request.downloadHandler.isDone)//是否读取完数据 + { + return request.downloadHandler.text; + } + } + } + + /// + /// get file url + /// + /// + /// + public static string GetFileURL(string fileName) + { + string url = ""; + + #region 分平台判断 StreamingAssets 路径 + //如果在编译器或者单机中 + #endregion + +#if UNITY_EDITOR || UNITY_STANDALONE + url = "file://" + Application.dataPath + "/StreamingAssets/" + fileName; + //否则如果在Iphone下 +#elif UNITY_IPHONE + url = "file://" + Application.dataPath + "/Raw/"+ fileName; + //否则如果在android下 +#elif UNITY_ANDROID + url = "jar:file://" + Application.dataPath + "!/assets/"+ fileName; +#endif + return url; + } + + } +} diff --git a/Assets/TKGSDK/Config/ConfigTools/TKGFileTools.cs.meta b/Assets/TKGSDK/Config/ConfigTools/TKGFileTools.cs.meta new file mode 100644 index 00000000..f6c54732 --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools/TKGFileTools.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3f79e2611bd44fde98da03664dc68ea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/ConfigTools/TKGLoadPlistConfig.cs b/Assets/TKGSDK/Config/ConfigTools/TKGLoadPlistConfig.cs new file mode 100644 index 00000000..24450ba5 --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools/TKGLoadPlistConfig.cs @@ -0,0 +1,93 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Xml; +using UnityEngine; + +namespace Touka +{ + public class TKGLoadPlistConfig + { + static string resourcePath = Application.dataPath; + static string extraStr = ".plist"; + + public static PlayerPrefPair[] GetToukaConfig( string _configFile , string region) + { + return GetAllFromPlist(resourcePath + "/Configs/"+region+"/" + _configFile + extraStr); + } + + public static PlayerPrefPair[] GetAllFromPlist(string _configPath) + { + if (File.Exists(_configPath)) + { + object plist = TKGPlist.readPlist(_configPath); + Dictionary parsed = plist as Dictionary; + + PlayerPrefPair[] tempPlayerPrefs = new PlayerPrefPair[parsed.Count]; + int i = 0; + foreach (KeyValuePair pair in parsed) + { + if (pair.Value.GetType() == typeof(double)) + { + // Some float values may come back as double, so convert them back to floats + tempPlayerPrefs[i] = new PlayerPrefPair() { Key = pair.Key, Value = (float)(double)pair.Value }; + } + else + { + tempPlayerPrefs[i] = new PlayerPrefPair() { Key = pair.Key, Value = pair.Value }; + } + + i++; + } + return tempPlayerPrefs; + } + else + { + Debug.LogError(_configPath + " Not Exist!"); + return new PlayerPrefPair[0]; + } + } + + public static PlayerPrefPair[] GetAllFromXML(string _configPath) + { + if (File.Exists(resourcePath + _configPath + ".xml")) + { + TextAsset configText = (TextAsset)Resources.Load(_configPath); + + object plist = TKGPlist.readPlistSource(configText.text); + Dictionary parsed = plist as Dictionary; + + PlayerPrefPair[] tempPlayerPrefs = new PlayerPrefPair[parsed.Count]; + int i = 0; + foreach (KeyValuePair pair in parsed) + { + if (pair.Value.GetType() == typeof(double)) + { + // Some float values may come back as double, so convert them back to floats + tempPlayerPrefs[i] = new PlayerPrefPair() { Key = pair.Key, Value = (float)(double)pair.Value }; + } + else + { + tempPlayerPrefs[i] = new PlayerPrefPair() { Key = pair.Key, Value = pair.Value }; + } + + i++; + } + return tempPlayerPrefs; + } + else + { + Debug.LogError(_configPath + " Not Exist!"); + return new PlayerPrefPair[0]; + } + } + } +} + + +public struct PlayerPrefPair +{ + public string Key { get; set; } + + public object Value { get; set; } +} diff --git a/Assets/TKGSDK/Config/ConfigTools/TKGLoadPlistConfig.cs.meta b/Assets/TKGSDK/Config/ConfigTools/TKGLoadPlistConfig.cs.meta new file mode 100644 index 00000000..4c5d4531 --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools/TKGLoadPlistConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fc8e0e50a0f134006ba379d27b5e42ea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/ConfigTools/TKGLoadPropertiesConfig.cs b/Assets/TKGSDK/Config/ConfigTools/TKGLoadPropertiesConfig.cs new file mode 100644 index 00000000..9ffc98ee --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools/TKGLoadPropertiesConfig.cs @@ -0,0 +1,61 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; +using UnityEngine; + +namespace Touka +{ + public class TKGLoadPropertiesConfig : MonoBehaviour + { + static string resourcePath = Application.dataPath + "/"; // + "Configs/"; + static string toukaconfigConfigPath = "Configs/"; + static string toukaconfigPathCN = "CN/"; + static string toukaconfigPathGB = "GB/"; + static string toukaConfigFileName = "tkg_config"; + + static string extraStr = ".properties"; + + public static PlayerPrefPair[] GetToukaConfig(AppChannel _appChannel) + { + string configpath = ""; + if(_appChannel == AppChannel.GooglePlay) + { + configpath = toukaconfigPathGB; + } + else + { + configpath = toukaconfigPathCN; + } + + return GetAllFromProperties(toukaconfigConfigPath + configpath + toukaConfigFileName + extraStr); + } + + public static PlayerPrefPair[] GetAllFromProperties(string _configPath) + { + string path = resourcePath + _configPath; + TKGDebugger.LogDebug("GetAllFromProperties path : " + path + " , _configPath : " + _configPath); + + Hashtable ht = TKGProperties.Load(path); + if(ht.Count > 0) + { + PlayerPrefPair[] tempPlayerPrefs = new PlayerPrefPair[ht.Count]; + int i = 0; + foreach (string key in ht.Keys) + { + tempPlayerPrefs[i] = new PlayerPrefPair() { Key = key, Value = ht[key] }; + i++; + } + + return tempPlayerPrefs; + } + else + { + TKGDebugger.LogDebug("Config is null, path : " + path); + return new PlayerPrefPair[0]; + } + + + } + } + +} diff --git a/Assets/TKGSDK/Config/ConfigTools/TKGLoadPropertiesConfig.cs.meta b/Assets/TKGSDK/Config/ConfigTools/TKGLoadPropertiesConfig.cs.meta new file mode 100644 index 00000000..34087827 --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools/TKGLoadPropertiesConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1033ac15a5e2645579fa3e884ef3db23 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/ConfigTools/TKGPlist.cs b/Assets/TKGSDK/Config/ConfigTools/TKGPlist.cs new file mode 100644 index 00000000..f85c0638 --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools/TKGPlist.cs @@ -0,0 +1,961 @@ +// +// PlistCS Property List (plist) serialization and parsing library. +// +// https://github.com/animetrics/PlistCS +// +// Copyright (c) 2011 Animetrics Inc. (marc@animetrics.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text; +using System.Xml; + +namespace Touka +{ + public static class TKGPlist + { + private static List offsetTable = new List(); + private static List objectTable = new List(); + private static int refCount; + private static int objRefSize; + private static int offsetByteSize; + private static long offsetTableOffset; + + #region Public Functions + + public static object readPlist(string path) + { + using (FileStream f = new FileStream(path, FileMode.Open, FileAccess.Read)) + { + return readPlist(f, plistType.Auto); + } + } + + public static object readPlistSource(string source) + { + return readPlist(System.Text.Encoding.UTF8.GetBytes(source)); + } + + public static object readPlist(byte[] data) + { + return readPlist(new MemoryStream(data), plistType.Auto); + } + + public static plistType getPlistType(Stream stream) + { + byte[] magicHeader = new byte[8]; + stream.Read(magicHeader, 0, 8); + + if (BitConverter.ToInt64(magicHeader, 0) == 3472403351741427810) + { + return plistType.Binary; + } + else + { + return plistType.Xml; + } + } + + public static object readPlist(Stream stream, plistType type) + { + if (type == plistType.Auto) + { + type = getPlistType(stream); + stream.Seek(0, SeekOrigin.Begin); + } + + if (type == plistType.Binary) + { + using (BinaryReader reader = new BinaryReader(stream)) + { + byte[] data = reader.ReadBytes((int) reader.BaseStream.Length); + return readBinary(data); + } + } + else + { + XmlDocument xml = new XmlDocument(); + xml.XmlResolver = null; + xml.Load(stream); + return readXml(xml); + } + } + + public static void writeXml(object value, string path) + { + using (StreamWriter writer = new StreamWriter(path)) + { + writer.Write(writeXml(value)); + } + } + + public static void writeXml(object value, Stream stream) + { + using (StreamWriter writer = new StreamWriter(stream)) + { + writer.Write(writeXml(value)); + } + } + + public static string writeXml(object value) + { + using (MemoryStream ms = new MemoryStream()) + { + XmlWriterSettings xmlWriterSettings = new XmlWriterSettings(); + xmlWriterSettings.Encoding = new System.Text.UTF8Encoding(false); + xmlWriterSettings.ConformanceLevel = ConformanceLevel.Document; + xmlWriterSettings.Indent = true; + + using (XmlWriter xmlWriter = XmlWriter.Create(ms, xmlWriterSettings)) + { + xmlWriter.WriteStartDocument(); + //xmlWriter.WriteComment("DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" " + "\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\""); + xmlWriter.WriteDocType("plist", "-//Apple Computer//DTD PLIST 1.0//EN", "http://www.apple.com/DTDs/PropertyList-1.0.dtd", null); + xmlWriter.WriteStartElement("plist"); + xmlWriter.WriteAttributeString("version", "1.0"); + compose(value, xmlWriter); + xmlWriter.WriteEndElement(); + xmlWriter.WriteEndDocument(); + xmlWriter.Flush(); + xmlWriter.Close(); + return System.Text.Encoding.UTF8.GetString(ms.ToArray()); + } + } + } + + public static void writeBinary(object value, string path) + { + using (BinaryWriter writer = new BinaryWriter(new FileStream(path, FileMode.Create))) + { + writer.Write(writeBinary(value)); + } + } + + public static void writeBinary(object value, Stream stream) + { + using (BinaryWriter writer = new BinaryWriter(stream)) + { + writer.Write(writeBinary(value)); + } + } + + public static byte[] writeBinary(object value) + { + offsetTable.Clear(); + objectTable.Clear(); + refCount = 0; + objRefSize = 0; + offsetByteSize = 0; + offsetTableOffset = 0; + + //Do not count the root node, subtract by 1 + int totalRefs = countObject(value) - 1; + + refCount = totalRefs; + + objRefSize = RegulateNullBytes(BitConverter.GetBytes(refCount)).Length; + + composeBinary(value); + + writeBinaryString("bplist00", false); + + offsetTableOffset = (long)objectTable.Count; + + offsetTable.Add(objectTable.Count - 8); + + offsetByteSize = RegulateNullBytes(BitConverter.GetBytes(offsetTable[offsetTable.Count-1])).Length; + + List offsetBytes = new List(); + + offsetTable.Reverse(); + + for (int i = 0; i < offsetTable.Count; i++) + { + offsetTable[i] = objectTable.Count - offsetTable[i]; + byte[] buffer = RegulateNullBytes(BitConverter.GetBytes(offsetTable[i]), offsetByteSize); + Array.Reverse(buffer); + offsetBytes.AddRange(buffer); + } + + objectTable.AddRange(offsetBytes); + + objectTable.AddRange(new byte[6]); + objectTable.Add(Convert.ToByte(offsetByteSize)); + objectTable.Add(Convert.ToByte(objRefSize)); + + var a = BitConverter.GetBytes((long) totalRefs + 1); + Array.Reverse(a); + objectTable.AddRange(a); + + objectTable.AddRange(BitConverter.GetBytes((long)0)); + a = BitConverter.GetBytes(offsetTableOffset); + Array.Reverse(a); + objectTable.AddRange(a); + + return objectTable.ToArray(); + } + + #endregion + + #region Private Functions + + private static object readXml(XmlDocument xml) + { + XmlNode rootNode = xml.DocumentElement.ChildNodes[0]; + return parse(rootNode); + } + + private static object readBinary(byte[] data) + { + offsetTable.Clear(); + List offsetTableBytes = new List(); + objectTable.Clear(); + refCount = 0; + objRefSize = 0; + offsetByteSize = 0; + offsetTableOffset = 0; + + List bList = new List(data); + + List trailer = bList.GetRange(bList.Count - 32, 32); + + parseTrailer(trailer); + + objectTable = bList.GetRange(0, (int)offsetTableOffset); + + offsetTableBytes = bList.GetRange((int)offsetTableOffset, bList.Count - (int)offsetTableOffset - 32); + + parseOffsetTable(offsetTableBytes); + + return parseBinary(0); + } + + private static Dictionary parseDictionary(XmlNode node) + { + XmlNodeList children = node.ChildNodes; + if (children.Count % 2 != 0) + { + throw new DataMisalignedException("Dictionary elements must have an even number of child nodes"); + } + + Dictionary dict = new Dictionary(); + + for (int i = 0; i < children.Count; i += 2) + { + XmlNode keynode = children[i]; + XmlNode valnode = children[i + 1]; + + if (keynode.Name != "key") + { + throw new ApplicationException("expected a key node"); + } + + object result = parse(valnode); + + if (result != null) + { + dict.Add(keynode.InnerText, result); + } + } + + return dict; + } + + private static List parseArray(XmlNode node) + { + List array = new List(); + + foreach (XmlNode child in node.ChildNodes) + { + object result = parse(child); + if (result != null) + { + array.Add(result); + } + } + + return array; + } + + private static void composeArray(List value, XmlWriter writer) + { + writer.WriteStartElement("array"); + foreach (object obj in value) + { + compose(obj, writer); + } + writer.WriteEndElement(); + } + + private static object parse(XmlNode node) + { + switch (node.Name) + { + case "dict": + return parseDictionary(node); + case "array": + return parseArray(node); + case "string": + return node.InnerText; + case "integer": + // int result; + //int.TryParse(node.InnerText, System.Globalization.NumberFormatInfo.InvariantInfo, out result); + return Convert.ToInt32(node.InnerText, System.Globalization.NumberFormatInfo.InvariantInfo); + case "real": + return Convert.ToDouble(node.InnerText,System.Globalization.NumberFormatInfo.InvariantInfo); + case "false": + return false; + case "true": + return true; + case "null": + return null; + case "date": + return XmlConvert.ToDateTime(node.InnerText, XmlDateTimeSerializationMode.Utc); + case "data": + return Convert.FromBase64String(node.InnerText); + } + + throw new ApplicationException(String.Format("Plist Node `{0}' is not supported", node.Name)); + } + + private static void compose(object value, XmlWriter writer) + { + + if (value == null || value is string) + { + writer.WriteElementString("string", value as string); + } + else if (value is int || value is long) + { + writer.WriteElementString("integer", ((int)value).ToString(System.Globalization.NumberFormatInfo.InvariantInfo)); + } + else if (value is System.Collections.Generic.Dictionary || + value.GetType().ToString().StartsWith("System.Collections.Generic.Dictionary`2[System.String")) + { + //Convert to Dictionary + Dictionary dic = value as Dictionary; + if (dic == null) + { + dic = new Dictionary(); + IDictionary idic = (IDictionary)value; + foreach (var key in idic.Keys) + { + dic.Add(key.ToString(), idic[key]); + } + } + writeDictionaryValues(dic, writer); + } + else if (value is List) + { + composeArray((List)value, writer); + } + else if (value is byte[]) + { + writer.WriteElementString("data", Convert.ToBase64String((Byte[])value)); + } + else if (value is float || value is double) + { + writer.WriteElementString("real", ((double)value).ToString(System.Globalization.NumberFormatInfo.InvariantInfo)); + } + else if (value is DateTime) + { + DateTime time = (DateTime)value; + string theString = XmlConvert.ToString(time, XmlDateTimeSerializationMode.Utc); + writer.WriteElementString("date", theString);//, "yyyy-MM-ddTHH:mm:ssZ")); + } + else if (value is bool) + { + writer.WriteElementString(value.ToString().ToLower(), ""); + } + else + { + throw new Exception(String.Format("Value type '{0}' is unhandled", value.GetType().ToString())); + } + } + + private static void writeDictionaryValues(Dictionary dictionary, XmlWriter writer) + { + writer.WriteStartElement("dict"); + foreach (string key in dictionary.Keys) + { + object value = dictionary[key]; + writer.WriteElementString("key", key); + compose(value, writer); + } + writer.WriteEndElement(); + } + + private static int countObject(object value) + { + int count = 0; + switch (value.GetType().ToString()) + { + case "System.Collections.Generic.Dictionary`2[System.String,System.Object]": + Dictionary dict = (Dictionary)value; + foreach (string key in dict.Keys) + { + count += countObject(dict[key]); + } + count += dict.Keys.Count; + count++; + break; + case "System.Collections.Generic.List`1[System.Object]": + List list = (List)value; + foreach (object obj in list) + { + count += countObject(obj); + } + count++; + break; + default: + count++; + break; + } + return count; + } + + private static byte[] writeBinaryDictionary(Dictionary dictionary) + { + List buffer = new List(); + List header = new List(); + List refs = new List(); + for (int i = dictionary.Count - 1; i >= 0; i--) + { + var o = new object[dictionary.Count]; + dictionary.Values.CopyTo(o, 0); + composeBinary(o[i]); + offsetTable.Add(objectTable.Count); + refs.Add(refCount); + refCount--; + } + for (int i = dictionary.Count - 1; i >= 0; i--) + { + var o = new string[dictionary.Count]; + dictionary.Keys.CopyTo(o, 0); + composeBinary(o[i]);//); + offsetTable.Add(objectTable.Count); + refs.Add(refCount); + refCount--; + } + + if (dictionary.Count < 15) + { + header.Add(Convert.ToByte(0xD0 | Convert.ToByte(dictionary.Count))); + } + else + { + header.Add(0xD0 | 0xf); + header.AddRange(writeBinaryInteger(dictionary.Count, false)); + } + + + foreach (int val in refs) + { + byte[] refBuffer = RegulateNullBytes(BitConverter.GetBytes(val), objRefSize); + Array.Reverse(refBuffer); + buffer.InsertRange(0, refBuffer); + } + + buffer.InsertRange(0, header); + + + objectTable.InsertRange(0, buffer); + + return buffer.ToArray(); + } + + private static byte[] composeBinaryArray(List objects) + { + List buffer = new List(); + List header = new List(); + List refs = new List(); + + for (int i = objects.Count - 1; i >= 0; i--) + { + composeBinary(objects[i]); + offsetTable.Add(objectTable.Count); + refs.Add(refCount); + refCount--; + } + + if (objects.Count < 15) + { + header.Add(Convert.ToByte(0xA0 | Convert.ToByte(objects.Count))); + } + else + { + header.Add(0xA0 | 0xf); + header.AddRange(writeBinaryInteger(objects.Count, false)); + } + + foreach (int val in refs) + { + byte[] refBuffer = RegulateNullBytes(BitConverter.GetBytes(val), objRefSize); + Array.Reverse(refBuffer); + buffer.InsertRange(0, refBuffer); + } + + buffer.InsertRange(0, header); + + objectTable.InsertRange(0, buffer); + + return buffer.ToArray(); + } + + private static byte[] composeBinary(object obj) + { + byte[] value; + switch (obj.GetType().ToString()) + { + case "System.Collections.Generic.Dictionary`2[System.String,System.Object]": + value = writeBinaryDictionary((Dictionary)obj); + return value; + + case "System.Collections.Generic.List`1[System.Object]": + value = composeBinaryArray((List)obj); + return value; + + case "System.Byte[]": + value = writeBinaryByteArray((byte[])obj); + return value; + + case "System.Double": + value = writeBinaryDouble((double)obj); + return value; + + case "System.Int32": + value = writeBinaryInteger((int)obj, true); + return value; + + case "System.String": + value = writeBinaryString((string)obj, true); + return value; + + case "System.DateTime": + value = writeBinaryDate((DateTime)obj); + return value; + + case "System.Boolean": + value = writeBinaryBool((bool)obj); + return value; + + default: + return new byte[0]; + } + } + + public static byte[] writeBinaryDate(DateTime obj) + { + List buffer =new List(RegulateNullBytes(BitConverter.GetBytes(PlistDateConverter.ConvertToAppleTimeStamp(obj)), 8)); + buffer.Reverse(); + buffer.Insert(0, 0x33); + objectTable.InsertRange(0, buffer); + return buffer.ToArray(); + } + + public static byte[] writeBinaryBool(bool obj) + { + List buffer = new List(new byte[1] { (bool)obj ? (byte)9 : (byte)8 }); + objectTable.InsertRange(0, buffer); + return buffer.ToArray(); + } + + private static byte[] writeBinaryInteger(int value, bool write) + { + List buffer = new List(BitConverter.GetBytes((long) value)); + buffer =new List(RegulateNullBytes(buffer.ToArray())); + while (buffer.Count != Math.Pow(2, Math.Log(buffer.Count) / Math.Log(2))) + buffer.Add(0); + int header = 0x10 | (int)(Math.Log(buffer.Count) / Math.Log(2)); + + buffer.Reverse(); + + buffer.Insert(0, Convert.ToByte(header)); + + if (write) + objectTable.InsertRange(0, buffer); + + return buffer.ToArray(); + } + + private static byte[] writeBinaryDouble(double value) + { + List buffer =new List(RegulateNullBytes(BitConverter.GetBytes(value), 4)); + while (buffer.Count != Math.Pow(2, Math.Log(buffer.Count) / Math.Log(2))) + buffer.Add(0); + int header = 0x20 | (int)(Math.Log(buffer.Count) / Math.Log(2)); + + buffer.Reverse(); + + buffer.Insert(0, Convert.ToByte(header)); + + objectTable.InsertRange(0, buffer); + + return buffer.ToArray(); + } + + private static byte[] writeBinaryByteArray(byte[] value) + { + List buffer = new List(value); + List header = new List(); + if (value.Length < 15) + { + header.Add(Convert.ToByte(0x40 | Convert.ToByte(value.Length))); + } + else + { + header.Add(0x40 | 0xf); + header.AddRange(writeBinaryInteger(buffer.Count, false)); + } + + buffer.InsertRange(0, header); + + objectTable.InsertRange(0, buffer); + + return buffer.ToArray(); + } + + private static byte[] writeBinaryString(string value, bool head) + { + List buffer = new List(); + List header = new List(); + foreach (char chr in value.ToCharArray()) + buffer.Add(Convert.ToByte(chr)); + + if (head) + { + if (value.Length < 15) + { + header.Add(Convert.ToByte(0x50 | Convert.ToByte(value.Length))); + } + else + { + header.Add(0x50 | 0xf); + header.AddRange(writeBinaryInteger(buffer.Count, false)); + } + } + + buffer.InsertRange(0, header); + + objectTable.InsertRange(0, buffer); + + return buffer.ToArray(); + } + + private static byte[] RegulateNullBytes(byte[] value) + { + return RegulateNullBytes(value, 1); + } + + private static byte[] RegulateNullBytes(byte[] value, int minBytes) + { + Array.Reverse(value); + List bytes = new List(value); + for (int i = 0; i < bytes.Count; i++) + { + if (bytes[i] == 0 && bytes.Count > minBytes) + { + bytes.Remove(bytes[i]); + i--; + } + else + break; + } + + if (bytes.Count < minBytes) + { + int dist = minBytes - bytes.Count; + for (int i = 0; i < dist; i++) + bytes.Insert(0, 0); + } + + value = bytes.ToArray(); + Array.Reverse(value); + return value; + } + + private static void parseTrailer(List trailer) + { + offsetByteSize = BitConverter.ToInt32(RegulateNullBytes(trailer.GetRange(6, 1).ToArray(), 4), 0); + objRefSize = BitConverter.ToInt32(RegulateNullBytes(trailer.GetRange(7, 1).ToArray(), 4), 0); + byte[] refCountBytes = trailer.GetRange(12, 4).ToArray(); + Array.Reverse(refCountBytes); + refCount = BitConverter.ToInt32(refCountBytes, 0); + byte[] offsetTableOffsetBytes = trailer.GetRange(24, 8).ToArray(); + Array.Reverse(offsetTableOffsetBytes); + offsetTableOffset = BitConverter.ToInt64(offsetTableOffsetBytes, 0); + } + + private static void parseOffsetTable(List offsetTableBytes) + { + for (int i = 0; i < offsetTableBytes.Count; i += offsetByteSize) + { + byte[] buffer = offsetTableBytes.GetRange(i, offsetByteSize).ToArray(); + Array.Reverse(buffer); + offsetTable.Add(BitConverter.ToInt32(RegulateNullBytes(buffer, 4), 0)); + } + } + + private static object parseBinaryDictionary(int objRef) + { + Dictionary buffer = new Dictionary(); + List refs = new List(); + int refCount = 0; + + int refStartPosition; + refCount = getCount(offsetTable[objRef], out refStartPosition); + + + if (refCount < 15) + refStartPosition = offsetTable[objRef] + 1; + else + refStartPosition = offsetTable[objRef] + 2 + RegulateNullBytes(BitConverter.GetBytes(refCount), 1).Length; + + for (int i = refStartPosition; i < refStartPosition + refCount * 2 * objRefSize; i += objRefSize) + { + byte[] refBuffer = objectTable.GetRange(i, objRefSize).ToArray(); + Array.Reverse(refBuffer); + refs.Add(BitConverter.ToInt32(RegulateNullBytes(refBuffer, 4), 0)); + } + + for (int i = 0; i < refCount; i++) + { + buffer.Add((string)parseBinary(refs[i]), parseBinary(refs[i + refCount])); + } + + return buffer; + } + + private static object parseBinaryArray(int objRef) + { + List buffer = new List(); + List refs = new List(); + int refCount = 0; + + int refStartPosition; + refCount = getCount(offsetTable[objRef], out refStartPosition); + + + if (refCount < 15) + refStartPosition = offsetTable[objRef] + 1; + else + //The following integer has a header aswell so we increase the refStartPosition by two to account for that. + refStartPosition = offsetTable[objRef] + 2 + RegulateNullBytes(BitConverter.GetBytes(refCount), 1).Length; + + for (int i = refStartPosition; i < refStartPosition + refCount * objRefSize; i += objRefSize) + { + byte[] refBuffer = objectTable.GetRange(i, objRefSize).ToArray(); + Array.Reverse(refBuffer); + refs.Add(BitConverter.ToInt32(RegulateNullBytes(refBuffer, 4), 0)); + } + + for (int i = 0; i < refCount; i++) + { + buffer.Add(parseBinary(refs[i])); + } + + return buffer; + } + + private static int getCount(int bytePosition, out int newBytePosition) + { + byte headerByte = objectTable[bytePosition]; + byte headerByteTrail = Convert.ToByte(headerByte & 0xf); + int count; + if (headerByteTrail < 15) + { + count = headerByteTrail; + newBytePosition = bytePosition + 1; + } + else + count = (int)parseBinaryInt(bytePosition + 1, out newBytePosition); + return count; + } + + private static object parseBinary(int objRef) + { + byte header = objectTable[offsetTable[objRef]]; + switch (header & 0xF0) + { + case 0: + { + //If the byte is + //0 return null + //9 return true + //8 return false + return (objectTable[offsetTable[objRef]] == 0) ? (object)null : ((objectTable[offsetTable[objRef]] == 9) ? true : false); + } + case 0x10: + { + return parseBinaryInt(offsetTable[objRef]); + } + case 0x20: + { + return parseBinaryReal(offsetTable[objRef]); + } + case 0x30: + { + return parseBinaryDate(offsetTable[objRef]); + } + case 0x40: + { + return parseBinaryByteArray(offsetTable[objRef]); + } + case 0x50://String ASCII + { + return parseBinaryAsciiString(offsetTable[objRef]); + } + case 0x60://String Unicode + { + return parseBinaryUnicodeString(offsetTable[objRef]); + } + case 0xD0: + { + return parseBinaryDictionary(objRef); + } + case 0xA0: + { + return parseBinaryArray(objRef); + } + } + throw new Exception("This type is not supported"); + } + + public static object parseBinaryDate(int headerPosition) + { + byte[] buffer = objectTable.GetRange(headerPosition + 1, 8).ToArray(); + Array.Reverse(buffer); + double appleTime = BitConverter.ToDouble(buffer, 0); + DateTime result = PlistDateConverter.ConvertFromAppleTimeStamp(appleTime); + return result; + } + + private static object parseBinaryInt(int headerPosition) + { + int output; + return parseBinaryInt(headerPosition, out output); + } + + private static object parseBinaryInt(int headerPosition, out int newHeaderPosition) + { + byte header = objectTable[headerPosition]; + int byteCount = (int)Math.Pow(2, header & 0xf); + byte[] buffer = objectTable.GetRange(headerPosition + 1, byteCount).ToArray(); + Array.Reverse(buffer); + //Add one to account for the header byte + newHeaderPosition = headerPosition + byteCount + 1; + return BitConverter.ToInt32(RegulateNullBytes(buffer, 4), 0); + } + + private static object parseBinaryReal(int headerPosition) + { + byte header = objectTable[headerPosition]; + int byteCount = (int)Math.Pow(2, header & 0xf); + byte[] buffer = objectTable.GetRange(headerPosition + 1, byteCount).ToArray(); + Array.Reverse(buffer); + + return BitConverter.ToDouble(RegulateNullBytes(buffer, 8), 0); + } + + private static object parseBinaryAsciiString(int headerPosition) + { + int charStartPosition; + int charCount = getCount(headerPosition, out charStartPosition); + + var buffer = objectTable.GetRange(charStartPosition, charCount); + return buffer.Count > 0 ? Encoding.ASCII.GetString(buffer.ToArray()) : string.Empty; + } + + private static object parseBinaryUnicodeString(int headerPosition) + { + int charStartPosition; + int charCount = getCount(headerPosition, out charStartPosition); + charCount = charCount * 2; + + byte[] buffer = new byte[charCount]; + byte one, two; + + for (int i = 0; i < charCount; i+=2) + { + one = objectTable.GetRange(charStartPosition+i,1)[0]; + two = objectTable.GetRange(charStartPosition + i+1, 1)[0]; + + if (BitConverter.IsLittleEndian) + { + buffer[i] = two; + buffer[i + 1] = one; + } + else + { + buffer[i] = one; + buffer[i + 1] = two; + } + } + + return Encoding.Unicode.GetString(buffer); + } + + private static object parseBinaryByteArray(int headerPosition) + { + int byteStartPosition; + int byteCount = getCount(headerPosition, out byteStartPosition); + return objectTable.GetRange(byteStartPosition, byteCount).ToArray(); + } + + #endregion + } + + public enum plistType + { + Auto, Binary, Xml + } + + public static class PlistDateConverter + { + public static long timeDifference = 978307200; + + public static long GetAppleTime(long unixTime) + { + return unixTime - timeDifference; + } + + public static long GetUnixTime(long appleTime) + { + return appleTime + timeDifference; + } + + public static DateTime ConvertFromAppleTimeStamp(double timestamp) + { + DateTime origin = new DateTime(2001, 1, 1, 0, 0, 0, 0); + return origin.AddSeconds(timestamp); + } + + public static double ConvertToAppleTimeStamp(DateTime date) + { + DateTime begin = new DateTime(2001, 1, 1, 0, 0, 0, 0); + TimeSpan diff = date - begin; + return Math.Floor(diff.TotalSeconds); + } + } +} diff --git a/Assets/TKGSDK/Config/ConfigTools/TKGPlist.cs.meta b/Assets/TKGSDK/Config/ConfigTools/TKGPlist.cs.meta new file mode 100644 index 00000000..8d060691 --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools/TKGPlist.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 381bd318429f34fab8edc6eb1d38d997 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/ConfigTools/TKGProperties.cs b/Assets/TKGSDK/Config/ConfigTools/TKGProperties.cs new file mode 100644 index 00000000..83808c6b --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools/TKGProperties.cs @@ -0,0 +1,42 @@ +using System; +using System.IO; +using System.Text; +using System.Collections; +using UnityEngine; + +namespace Touka +{ + public class TKGProperties + { + public static Hashtable Load(string file) + { + Hashtable ht = new Hashtable(16); + string content = null; + try + { + content = File.ReadAllText(file, Encoding.UTF8); + } + catch (Exception e) + { + return null; + } + string[] rows = content.Split('\n'); + string[] kv = null; + foreach (string c in rows) + { + if (c.Trim().Length == 0) + continue; + kv = c.Split('='); + if (kv.Length == 1) + { + ht[kv[0].Trim()] = ""; + } + else if (kv.Length == 2) + { + ht[kv[0].Trim()] = kv[1].Trim(); + } + } + return ht; + } + } +} \ No newline at end of file diff --git a/Assets/TKGSDK/Config/ConfigTools/TKGProperties.cs.meta b/Assets/TKGSDK/Config/ConfigTools/TKGProperties.cs.meta new file mode 100644 index 00000000..28c2a7f9 --- /dev/null +++ b/Assets/TKGSDK/Config/ConfigTools/TKGProperties.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 11fe57842d0ce30478249f770ab1bf06 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/Scripts.meta b/Assets/TKGSDK/Config/Scripts.meta new file mode 100644 index 00000000..4bc6d202 --- /dev/null +++ b/Assets/TKGSDK/Config/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9d379b89fde4f4ad4812b7f41a3cf719 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/Scripts/IAPProducts.cs b/Assets/TKGSDK/Config/Scripts/IAPProducts.cs new file mode 100644 index 00000000..dafba808 --- /dev/null +++ b/Assets/TKGSDK/Config/Scripts/IAPProducts.cs @@ -0,0 +1,16 @@ +#if USE_IAP +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Purchasing; + +public static class IAPProducts//商品ID统一小写 +{ + public const string NoAds = "com.hotpotgames.lovepuzzle.global.noads";//去广告商品ID + + public static readonly Dictionary ProductDic = new Dictionary() + { + { NoAds, ProductType.NonConsumable} + }; +} +#endif \ No newline at end of file diff --git a/Assets/TKGSDK/Config/Scripts/IAPProducts.cs.meta b/Assets/TKGSDK/Config/Scripts/IAPProducts.cs.meta new file mode 100644 index 00000000..65dae360 --- /dev/null +++ b/Assets/TKGSDK/Config/Scripts/IAPProducts.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 273966118b1974c51a4f05ecbad30d15 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/Scripts/StaticOtherConfig.cs b/Assets/TKGSDK/Config/Scripts/StaticOtherConfig.cs new file mode 100644 index 00000000..bbf4bd79 --- /dev/null +++ b/Assets/TKGSDK/Config/Scripts/StaticOtherConfig.cs @@ -0,0 +1,24 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public static class StaticOtherConfig +{ + #region // #define + + /* + NO_SDK : If there are no SDK related library files in the project, it will not cause error reporting + */ + + #endregion + + /// + /// isDebug + /// + public static bool IsDebugLog = true; + + #region Review popup + public static int FirstLoginPopLevel = -1;//首次进入游戏弹出评价的关卡 + public static int OtherLoginPopLevel = -1;//非首次进入游戏弹出评价的关卡 + #endregion +} \ No newline at end of file diff --git a/Assets/TKGSDK/Config/Scripts/StaticOtherConfig.cs.meta b/Assets/TKGSDK/Config/Scripts/StaticOtherConfig.cs.meta new file mode 100644 index 00000000..3471b739 --- /dev/null +++ b/Assets/TKGSDK/Config/Scripts/StaticOtherConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7109073540d94454b818a71ae1cb02c6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/Scripts/TKGAdPositionName.cs b/Assets/TKGSDK/Config/Scripts/TKGAdPositionName.cs new file mode 100644 index 00000000..19f31493 --- /dev/null +++ b/Assets/TKGSDK/Config/Scripts/TKGAdPositionName.cs @@ -0,0 +1,41 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// InterstitialAd PositionName +/// (get from the product requirements) +/// +public enum TKGIVAdPositionName +{ + Game_Autoiv, + + IV_Success, + IV_Fail, + IV_Retry, + IV_NextLevel, + IV_Back, +} + +public enum TKGNativePositionName +{ + Native_Stage_Success, + Native_Stage_Fail +} + +/// +/// RewardAd PositionName +/// (get from the product requirements) +/// +public enum TKGRVPositionName +{ + RV_GetDoubleCoin, + RV_GetTips, + RV_Get_Tips, + RV_Get_Skip, + RV_Get_Revive, + RV_Get_SpecialLevel, + RV_sound_unlock, + RV_level_unlock, + RV_end_skip, +} \ No newline at end of file diff --git a/Assets/TKGSDK/Config/Scripts/TKGAdPositionName.cs.meta b/Assets/TKGSDK/Config/Scripts/TKGAdPositionName.cs.meta new file mode 100644 index 00000000..d06e769d --- /dev/null +++ b/Assets/TKGSDK/Config/Scripts/TKGAdPositionName.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 26998be7ea9744ef4b965699148ba132 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/Scripts/TKGParams.cs b/Assets/TKGSDK/Config/Scripts/TKGParams.cs new file mode 100644 index 00000000..e0928199 --- /dev/null +++ b/Assets/TKGSDK/Config/Scripts/TKGParams.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; + +/* + Custom Remote Config + 1. add TKGParamKey below + 2. add key and default value to dic + 3. use online param + + */ +public static class TKGParams +{ + public static readonly Dictionary OnlineParamDic = new Dictionary() + { + // key - default value + { TKGParamKey.RemoveAdsShowCount.ToString(), 4 }, // int value // + { TKGParamKey.LevelList.ToString(), "1,78,72,70,64,65,4,66" }, // string value + { TKGParamKey.HasBlock.ToString(), 0 }, // bool value // 1:true 0:false + }; +} + +public enum TKGParamKey +{ + RemoveAdsShowCount, + LevelList, + HasBlock, +} \ No newline at end of file diff --git a/Assets/TKGSDK/Config/Scripts/TKGParams.cs.meta b/Assets/TKGSDK/Config/Scripts/TKGParams.cs.meta new file mode 100644 index 00000000..a33aae24 --- /dev/null +++ b/Assets/TKGSDK/Config/Scripts/TKGParams.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f40c87431a324172941102c4817923e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/StaticStringsKey.cs b/Assets/TKGSDK/Config/StaticStringsKey.cs new file mode 100644 index 00000000..566891a9 --- /dev/null +++ b/Assets/TKGSDK/Config/StaticStringsKey.cs @@ -0,0 +1,81 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka { + /// + /// Ads SDK Param + /// + public static class StaticStringsKey + { + #region App info + + // app name + public static string AppName = ""; + // bundle id + public static string BundleId = ""; + + #endregion + + #region Analytics + // umeng + public static string UMENG_APPKEY = ""; + public static string UMENG_CHANNELID = ""; + + // ga + public static string GA_gameKey = ""; + public static string GA_secretKey = ""; + + // tenjin + public static string TENJIN_KEY = ""; + + #endregion + + + #region Ads + + // admob id + public static string Admob_AppID = ""; + + // app id + public static string TOUKA_SDK_APPID = ""; + // app key + public static string TOUKA_SDK_APPKEY = ""; + + // iv id + public static string TOUKA_SDK_INTERID = ""; + // rv id + public static string TOUKA_SDK_REWARDID = ""; + // splash id + public static string TOUKA_SDK_SPLASHID = ""; + + // native id // iOS use + public static string TOUKA_SDK_NATIVEID = ""; + //// render native id + //public static string TOUKA_SDK_RENDERNATIVEID = ""; + // banner id + public static string TOUKA_SDK_BANNERID = ""; + // native banner id + public static string TOUKA_SDK_NATIVEBANNERID = ""; + // native splash id + public static string TOUKA_SDK_NATIVESPLASHID = ""; + + #endregion + + #region Basic Config + + // PlayerAge + public static string PlayerAge = ""; + // GameTheme + public static string GameTheme = ""; + // privacy url + public static string PrivacyURL = ""; + // agreement url + public static string AgreementURL = ""; + // more game url + public static string MoreGameURL = ""; + + #endregion + } +} + diff --git a/Assets/TKGSDK/Config/StaticStringsKey.cs.meta b/Assets/TKGSDK/Config/StaticStringsKey.cs.meta new file mode 100644 index 00000000..5b0491b6 --- /dev/null +++ b/Assets/TKGSDK/Config/StaticStringsKey.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c69a34df2d87c47a4ba9349c64b3562f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Config/TKGLoadConfig.cs b/Assets/TKGSDK/Config/TKGLoadConfig.cs new file mode 100644 index 00000000..469361a1 --- /dev/null +++ b/Assets/TKGSDK/Config/TKGLoadConfig.cs @@ -0,0 +1,241 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + public static class TKGLoadConfig + { + static string toukaconfigFile = "tkg_config"; + static string toukaconfigPathCN = "CN"; + static string toukaconfigPathGB = "GB"; + + /// + /// Load SDK Config + /// + public static void LoadSDKConfig() + { +#if UNITY_IOS + ParseiOSConfig(); +#elif UNITY_ANDROID + ParseAndroidConfig(); +#else + ParseiOSConfig(); +#endif + } + + /// + /// Parse iOS Config + /// .plist file + /// + private static PlayerPrefPair[] ParseiOSConfig() + { + PlayerPrefPair[] configs = TKGLoadConfig.ParseiOSConfigInner(); + return configs; + } + + /// + /// Parse Android Config + /// + private static PlayerPrefPair[] ParseAndroidConfig() + { +#if GooglePlay + PlayerPrefPair[] configs = TKGLoadPropertiesConfig.GetToukaConfig(AppChannel.GooglePlay); + ParseConfigsInner(configs); + return configs; +#else + PlayerPrefPair[] configs = TKGLoadPropertiesConfig.GetToukaConfig(AppChannel.GW002); + ParseConfigsInner(configs); + return configs; +#endif + + } + + /// + /// Parse iOS Config + /// .plist file + /// + private static PlayerPrefPair[] ParseiOSConfigInner() + { +#if AppStore_GB + PlayerPrefPair[] configs = TKGLoadPlistConfig.GetToukaConfig(toukaconfigFile,toukaconfigPathGB); +#else + PlayerPrefPair[] configs = TKGLoadPlistConfig.GetToukaConfig(toukaconfigFile, toukaconfigPathCN); +#endif + ParseConfigsInner(configs); + return configs; + } + + /// + /// Parse Android Config + /// + private static PlayerPrefPair[] ParseAndroidConfig(AppChannel _appChannel) + { + PlayerPrefPair[] configs = TKGLoadPropertiesConfig.GetToukaConfig(_appChannel); + ParseConfigsInner(configs); + return configs; + } + + + // get config value by key + public static string GetConfigByKey(string _key, AppChannel _appChannel) + { + PlayerPrefPair[] configs = new PlayerPrefPair[0]; +#if UNITY_IOS + configs = ParseiOSConfigInner(); +#elif UNITY_ANDROID + configs = ParseAndroidConfig(_appChannel); +#endif + for (int i = 0; i < configs.Length; i++) + { + if (configs[i].Key.Equals(_key)) + { + return configs[i].Value.ToString(); + } + } + return ""; + } + +#region parse inner + + // parse config + private static void ParseConfigsInner(PlayerPrefPair[] _configs) + { + TKGDebugger.LogDebug("----------- config content begin-----------"); + for (int i = 0; i < _configs.Length; i++) + { + bool isDebug = false; + string valueTemp = _configs[i].Value.ToString(); + // app info + if (_configs[i].Key.ToLower() == ConfigKeys.KEY_AppName.ToLower()) + { + StaticStringsKey.AppName = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_BunldId.ToLower()) + { + StaticStringsKey.BundleId = valueTemp; + isDebug = true; + } + // Analytics + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_UMENG_APPKEY.ToLower()) + { + StaticStringsKey.UMENG_APPKEY = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_UMENG_CHANNELID.ToLower()) + { + StaticStringsKey.UMENG_CHANNELID = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_GA_gameKey.ToLower()) + { + StaticStringsKey.GA_gameKey = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_GA_secretKey.ToLower()) + { + StaticStringsKey.GA_secretKey = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TENJIN_KEY.ToLower()) + { + StaticStringsKey.TENJIN_KEY = valueTemp; + isDebug = true; + } + // Ads + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_Admob_AppID.ToLower()) + { + StaticStringsKey.Admob_AppID = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TOUKA_SDK_APPID.ToLower()) + { + StaticStringsKey.TOUKA_SDK_APPID = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TOUKA_SDK_APPKEY.ToLower()) + { + StaticStringsKey.TOUKA_SDK_APPKEY = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TOUKA_SDK_INTERID.ToLower()) + { + StaticStringsKey.TOUKA_SDK_INTERID = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TOUKA_SDK_REWARDID.ToLower()) + { + StaticStringsKey.TOUKA_SDK_REWARDID = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TOUKA_SDK_SPLASHID.ToLower()) + { + StaticStringsKey.TOUKA_SDK_SPLASHID = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TOUKA_SDK_NATIVEID.ToLower()) + { + StaticStringsKey.TOUKA_SDK_NATIVEID = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TOUKA_SDK_RENDERNATIVEID.ToLower()) + { + StaticStringsKey.TOUKA_SDK_NATIVEID = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TOUKA_SDK_BANNERID.ToLower()) + { + StaticStringsKey.TOUKA_SDK_BANNERID = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TOUKA_SDK_NATIVEBANNERID.ToLower()) + { + StaticStringsKey.TOUKA_SDK_NATIVEBANNERID = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_TOUKA_SDK_NATIVESPLASHID.ToLower()) + { + StaticStringsKey.TOUKA_SDK_NATIVESPLASHID = valueTemp; + isDebug = true; + } + // Basic Config + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_PlayerAge.ToLower()) + { + StaticStringsKey.PlayerAge = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_GameTheme.ToLower()) + { + StaticStringsKey.GameTheme = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_PrivacyURL.ToLower()) + { + StaticStringsKey.PrivacyURL = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_AgreementURL.ToLower()) + { + StaticStringsKey.AgreementURL = valueTemp; + isDebug = true; + } + else if (_configs[i].Key.ToLower() == ConfigKeys.KEY_MoreGameURL.ToLower()) + { + StaticStringsKey.MoreGameURL = valueTemp; + isDebug = true; + } + + if (isDebug) + { + TKGDebugger.LogDebug(_configs[i].Key + " - " + _configs[i].Value); + } + } + TKGDebugger.LogDebug("----------- config content end -----------"); + } + + +#endregion + + } +} diff --git a/Assets/TKGSDK/Config/TKGLoadConfig.cs.meta b/Assets/TKGSDK/Config/TKGLoadConfig.cs.meta new file mode 100644 index 00000000..2e7d556b --- /dev/null +++ b/Assets/TKGSDK/Config/TKGLoadConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2bd116d0b8ee64d9599a1033dd163600 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Demo.meta b/Assets/TKGSDK/Demo.meta new file mode 100644 index 00000000..e3fd19a5 --- /dev/null +++ b/Assets/TKGSDK/Demo.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5f9fc490b051448298138ce3172b399 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Demo/ToukaSDKDemo.cs b/Assets/TKGSDK/Demo/ToukaSDKDemo.cs new file mode 100644 index 00000000..86392c12 --- /dev/null +++ b/Assets/TKGSDK/Demo/ToukaSDKDemo.cs @@ -0,0 +1,311 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +namespace Touka +{ + public class ToukaSDKDemo : MonoBehaviour + { + + + public Image nativeImage; + + // Start is called before the first frame update + void Start() + { + InitSDK(); + } + + #region Init + + public void OnShowNativeAd() + { + TKGSDKManager.Instance.ShowNative(nativeImage.rectTransform); + } + + public void OnButton_Init() + { + Debug.Log("[ToukaSDKDemo] OnButton_Init click, InitSDK auto Callfirst"); + + } + + private void InitSDK() + { + OnButton_UserSource(); + OnButton_SetLogEnable(); + + TKGSDKManager.Instance.InitSDK(initCallback); + TKGSDKManager.Instance.SetLogEnable(true); + TKGSDKManager.Instance.SetRewardClickListener(ClickRewardCallback); + TKGSDKManager.Instance.RegistAPNS(); + } + + private void ClickRewardCallback() + { + Debug.Log("[ToukaSDKDemo] click reward callback"); + } + private void initCallback() + { + Debug.Log("[ToukaSDKDemo] init callback"); + } + + public void OnButton_SetLogEnable() + { + Debug.Log("[ToukaSDKDemo] SetLogEnable btn click"); + //TKGSDKManager.Instance.SetLogEnable(true); + } + + #endregion + + #region Ads + + public void OnButton_ShowInterstitialAd() + { + Debug.Log("[ToukaSDKDemo] OnButton_ShowInterstitialAd click"); + //TKGSDKManager.Instance.ShowInterstitialAd(TKGIVAdPositionName.IV_Retry, IVCallback); + DateTime now; + DateTime delay; + now = DateTime.Now; + TKGSDKManager.Instance.RegistNotification("yangwu","hello world", now.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss"),1,"Title","SubTitle"); + } + + + private void IV2Callback() + { + Debug.Log("unity [ToukaSDKDemo] IVCallback"); + } + + private void IVCallback() + { + Debug.Log("unity [ToukaSDKDemo] IVCallback 2" ); + } + + public void OnButton_ShowRewardAd() + { + Debug.Log("[ToukaSDKDemo] OnButton_ShowRewardAd click"); + TKGSDKManager.Instance.ShowRewardAd(TKGRVPositionName.RV_GetDoubleCoin, RewardResult, RvShowFailed); + } + + /// + /// Reward result + /// + /// true:reward succ, false: reward failed + private void RewardResult(bool pSucceed) + { + Debug.Log("[ToukaSDKDemo] Reward result:" + pSucceed); + + } + + /// + /// Callback of reward ad show fail + /// + private void RvShowFailed() + { + Debug.Log("[ToukaSDKDemo] Reward ads show failed"); + } + + public void OnButton_IsReadyIV() + { + Debug.Log("[ToukaSDKDemo] OnButton_IsReadyIV click"); + bool isReadyIV = TKGSDKManager.Instance.IsReadyInterstitialAd(); + Debug.Log("[ToukaSDKDemo] isReadyIV : " + isReadyIV); + } + + public void OnButton_IsReadyRV() + { + Debug.Log("[ToukaSDKDemo] OnButton_IsReadyRV click"); + bool isReadyRV = TKGSDKManager.Instance.IsReadyRewardAd(); + Debug.Log("[ToukaSDKDemo] isReadyRV : " + isReadyRV); + } + + public void OnButton_ShowBanner() + { + Debug.Log("[ToukaSDKDemo] OnButton_ShowBanner click"); + TKGSDKManager.Instance.ShowBanner(TKGBannerAlign.BannerCenterBottomAlign); + } + + public void OnButton_HideBanner() + { + Debug.Log("[ToukaSDKDemo] OnButton_HideBanner click"); + TKGSDKManager.Instance.HideBanner(); + } + + #endregion + + #region Event Tracking + + public void OnButton_LevelStart() + { + Debug.Log("[ToukaSDKDemo] OnButton_LevelStart click"); + TKGSDKManager.Instance.LevelStart(1); + } + + public void OnButton_LevelSucc() + { + Debug.Log("[ToukaSDKDemo] OnButton_LevelSucc click"); + TKGSDKManager.Instance.LevelEnd(1, StageResult.StageSucc); + } + + public void OnButton_LevelFailed() + { + Debug.Log("[ToukaSDKDemo] OnButton_LevelFailed click"); + TKGSDKManager.Instance.LevelEnd(2, StageResult.StageFail); + } + + public void OnButton_LevelRetry() + { + Debug.Log("[ToukaSDKDemo] OnButton_LevelRetry click"); + TKGSDKManager.Instance.LevelEnd(3, StageResult.StageRetry); + } + + public void OnButton_LevelBack() + { + Debug.Log("[ToukaSDKDemo] OnButton_LevelBack click"); + TKGSDKManager.Instance.LevelEnd("S_1", StageResult.StageBack); + } + + public void OnButton_LogEventClick() + { + Debug.Log("[ToukaSDKDemo] OnButton_LogEventClick click"); + TKGSDKManager.Instance.LogEvent("logEvent01"); + TKGSDKManager.Instance.LogEvent("logEvent02", "key02", "value02"); + TKGSDKManager.Instance.LogEvent("logEvent03", "key03-1", "value03-1", "key03-2", "value03-2"); + TKGSDKManager.Instance.LogEvent("logEvent04", new Dictionary { { "DicKey04", "DicKey04" } }); + + } + + #endregion + + #region Get Remote Config + + public void OnButton_GetConfigInt() + { + Debug.Log("[ToukaSDKDemo] OnButton_GetConfigInt click"); + int onlineIntValue = TKGSDKManager.Instance.GetConfigInt(TKGParamKey.RemoveAdsShowCount); + Debug.Log("online int value : " + onlineIntValue); + } + + public void OnButton_GetConfigStr() + { + Debug.Log("[ToukaSDKDemo] OnButton_GetConfigStr click"); + string onlineStrValue = TKGSDKManager.Instance.GetConfigStr(TKGParamKey.LevelList); + Debug.Log("online string value : " + onlineStrValue); + } + + public void OnButton_GetConfigBool() + { + Debug.Log("[ToukaSDKDemo] OnButton_GetConfigBool click"); + bool onlineBoolValue = TKGSDKManager.Instance.GetConfigBool(TKGParamKey.HasBlock); + Debug.Log("online bool value : " + onlineBoolValue); + } + + #endregion + + #region Privacy Compliance + + public void OnButton_OpenPrivacyUrl() + { + Debug.Log("[ToukaSDKDemo] OnButton_OpenPrivacyUrl click"); + TKGSDKManager.Instance.OpenPolicyPop(); + } + + public void OnButton_OpenUserTermBtn() + { + Debug.Log("[ToukaSDKDemo] OnButton_OpenUserTermBtn click"); + } + + #endregion + + #region Others + + public void OnButton_OpenMoreGame() + { + Debug.Log("[ToukaSDKDemo] OnButton_OpenMoreGame click"); + TKGSDKManager.Instance.OpenMoreGame(); + } + + public void OnButton_ReviewBtn() + { + Debug.Log("[ToukaSDKDemo] OnButton_ReviewBtn click"); + TKGSDKManager.Instance.Review(); + } + + + public void OnButton_SetGameFocusListener() + { + Debug.Log("[ToukaSDKDemo] OnButton_SetGameFocusListener click"); + TKGSDKManager.Instance.SetGameFocusListener((_flg) => { + if (_flg) + { + Debug.Log("[ToukaSDKDemo] OnButton_SetGameFocusListener false flg"); + PauseGame(); + } + else + { + Debug.Log("[ToukaSDKDemo] OnButton_SetGameFocusListener true flg"); + ResumeGame(); + } + }); + } + + private void PauseGame() + { + Debug.Log("[ToukaSDKDemo] pause game callback"); + } + + private void ResumeGame() + { + Debug.Log("[ToukaSDKDemo] resume game callback"); + } + + public void OnButton_OpenLocalPush() + { + Debug.Log("[ToukaSDKDemo] OpenLocalPush click"); + + /* + * Assets/TKGSDK/Config/Scripts/StaticOtherConfig.cs + 1. set LocalNotitcifaction_Switch = true; + 2. set pushContent; // copy from product requirements + MorrowMsgCN = ""; + Day357MsgCN = ""; + Day468MsgCN = ""; + */ + } + + public void OnButton_UserSource() + { + Debug.Log("[ToukaSDKDemo] Set UserSource Click, call before init"); + + TKGSDKManager.Instance.SetUserSourceListener((_isOrigin, _source) => + { + Debug.Log("usersource"+_isOrigin+_source); + if (_isOrigin) + { + Debug.Log("is origin user"); + } + else + { + Debug.Log("is not origin user"); + } + }); + } + + public void OnButton_CommonCallback() + { + Debug.Log("[ToukaSDKDemo] Set commonCallback Click"); + TKGSDKManager.Instance.SetTKGCommonCallback((code, msg) => { + Debug.Log("common callback, code : " + code + " , msg : " + msg); + }); + } + + public void OnButton_GetChannel() + { + Debug.Log("[ToukaSDKDemo] getChannel click"); + Debug.Log("channel : " + TKGSDKManager.Instance.GetChannel()); + } + + #endregion + } +} \ No newline at end of file diff --git a/Assets/TKGSDK/Demo/ToukaSDKDemo.cs.meta b/Assets/TKGSDK/Demo/ToukaSDKDemo.cs.meta new file mode 100644 index 00000000..b3fae985 --- /dev/null +++ b/Assets/TKGSDK/Demo/ToukaSDKDemo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 542a9563293ba47b4b6070cc9197f431 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Demo/ToukaSDKDemo.unity b/Assets/TKGSDK/Demo/ToukaSDKDemo.unity new file mode 100644 index 00000000..a9adbcc1 --- /dev/null +++ b/Assets/TKGSDK/Demo/ToukaSDKDemo.unity @@ -0,0 +1,6017 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657838, g: 0.49641234, b: 0.57481676, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &3537536 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3537537} + - component: {fileID: 3537540} + - component: {fileID: 3537539} + - component: {fileID: 3537538} + m_Layer: 5 + m_Name: ShowInterstitialAd + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3537537 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3537536} + 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: 937706851} + m_Father: {fileID: 325825367} + 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: -343, y: 594} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3537538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3537536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 3537539} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_ShowInterstitialAd + 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!114 &3537539 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3537536} + 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.8666667, g: 0.6666667, b: 0.6666667, a: 1} + m_RaycastTarget: 1 + 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!222 &3537540 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3537536} + m_CullTransparentMesh: 0 +--- !u!1 &51009052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 51009053} + - component: {fileID: 51009055} + - component: {fileID: 51009054} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &51009053 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 51009052} + 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: 1566732038} + 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!114 &51009054 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 51009052} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: GetConfigStr +--- !u!222 &51009055 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 51009052} + m_CullTransparentMesh: 0 +--- !u!1 &75690272 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 75690273} + - component: {fileID: 75690275} + - component: {fileID: 75690274} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &75690273 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 75690272} + 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: 376717127} + 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!114 &75690274 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 75690272} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: LevelStart +--- !u!222 &75690275 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 75690272} + m_CullTransparentMesh: 0 +--- !u!1 &94457502 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 94457503} + - component: {fileID: 94457506} + - component: {fileID: 94457505} + - component: {fileID: 94457504} + m_Layer: 5 + m_Name: LevelFailed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &94457503 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 94457502} + 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: 709686346} + m_Father: {fileID: 325825367} + m_RootOrder: 9 + 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: 21, y: 362} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &94457504 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 94457502} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 94457505} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_LevelFailed + 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!114 &94457505 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 94457502} + 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.8679245, g: 0.6673193, b: 0.6673193, a: 1} + m_RaycastTarget: 1 + 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!222 &94457506 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 94457502} + m_CullTransparentMesh: 0 +--- !u!1 &128301538 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 128301539} + - component: {fileID: 128301542} + - component: {fileID: 128301541} + - component: {fileID: 128301540} + m_Layer: 5 + m_Name: OpenLocalPush + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &128301539 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 128301538} + 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: 631627959} + m_Father: {fileID: 325825367} + m_RootOrder: 21 + 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: 360, y: -544} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &128301540 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 128301538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 128301541} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_OpenLocalPush + 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!114 &128301541 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 128301538} + 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_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!222 &128301542 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 128301538} + m_CullTransparentMesh: 0 +--- !u!1 &139068136 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 139068137} + - component: {fileID: 139068139} + - component: {fileID: 139068138} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &139068137 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 139068136} + 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: 833040323} + 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!114 &139068138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 139068136} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 30 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: IsReadyInterstitialAd +--- !u!222 &139068139 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 139068136} + m_CullTransparentMesh: 0 +--- !u!1 &184230246 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 184230247} + - component: {fileID: 184230250} + - component: {fileID: 184230249} + - component: {fileID: 184230248} + m_Layer: 5 + m_Name: UserSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &184230247 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 184230246} + 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: 1602270784} + m_Father: {fileID: 325825367} + m_RootOrder: 22 + 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: -343, y: -784} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &184230248 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 184230246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 0.8490566, g: 0.8490566, b: 0.8490566, 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: 184230249} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_UserSource + 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!114 &184230249 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 184230246} + 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_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!222 &184230250 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 184230246} + m_CullTransparentMesh: 0 +--- !u!1 &207883109 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 207883110} + - component: {fileID: 207883113} + - component: {fileID: 207883112} + - component: {fileID: 207883111} + m_Layer: 5 + m_Name: SetLogEnable + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &207883110 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 207883109} + 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: 519471260} + m_Father: {fileID: 325825367} + m_RootOrder: 25 + 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: 357, y: -93} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &207883111 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 207883109} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 207883112} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_LogEventClick + 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!114 &207883112 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 207883109} + 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_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!222 &207883113 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 207883109} + m_CullTransparentMesh: 0 +--- !u!1 &214015475 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 214015476} + - component: {fileID: 214015478} + - component: {fileID: 214015477} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &214015476 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214015475} + 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: 1878439527} + 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!114 &214015477 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214015475} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: OpenMoreGame +--- !u!222 &214015478 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214015475} + m_CullTransparentMesh: 0 +--- !u!1 &283656277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 283656278} + - component: {fileID: 283656281} + - component: {fileID: 283656280} + - component: {fileID: 283656279} + m_Layer: 5 + m_Name: LevelSucc + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &283656278 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 283656277} + 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: 2117151082} + m_Father: {fileID: 325825367} + m_RootOrder: 8 + 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: 21, y: 595} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &283656279 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 283656277} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 283656280} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_LevelSucc + 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!114 &283656280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 283656277} + 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.8679245, g: 0.6673193, b: 0.6673193, a: 1} + m_RaycastTarget: 1 + 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!222 &283656281 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 283656277} + m_CullTransparentMesh: 0 +--- !u!1 &303924128 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 303924130} + - component: {fileID: 303924129} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &303924129 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 303924128} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &303924130 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 303924128} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &325825363 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 325825367} + - component: {fileID: 325825366} + - component: {fileID: 325825365} + - component: {fileID: 325825364} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &325825364 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325825363} + 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!114 &325825365 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325825363} + 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: 1080, y: 1920} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 1 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &325825366 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325825363} + 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 &325825367 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325825363} + 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: 1003927778} + - {fileID: 3537537} + - {fileID: 334027820} + - {fileID: 833040323} + - {fileID: 2068216387} + - {fileID: 1768773390} + - {fileID: 1431857565} + - {fileID: 376717127} + - {fileID: 283656278} + - {fileID: 94457503} + - {fileID: 1618017043} + - {fileID: 2091151499} + - {fileID: 1390492138} + - {fileID: 663673964} + - {fileID: 1566732038} + - {fileID: 1756377908} + - {fileID: 1738281941} + - {fileID: 1607946295} + - {fileID: 1878439527} + - {fileID: 1716363525} + - {fileID: 1412624023} + - {fileID: 128301539} + - {fileID: 184230247} + - {fileID: 435487952} + - {fileID: 925781833} + - {fileID: 207883110} + - {fileID: 1152021903} + m_Father: {fileID: 0} + m_RootOrder: 3 + 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!1 &334027819 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 334027820} + - component: {fileID: 334027823} + - component: {fileID: 334027822} + - component: {fileID: 334027821} + m_Layer: 5 + m_Name: ShowRewardAd + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &334027820 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 334027819} + 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: 1767319390} + m_Father: {fileID: 325825367} + m_RootOrder: 2 + 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: -343, y: 363} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &334027821 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 334027819} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 334027822} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_ShowRewardAd + 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!114 &334027822 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 334027819} + 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.8666667, g: 0.6666667, b: 0.6666667, a: 1} + m_RaycastTarget: 1 + 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!222 &334027823 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 334027819} + m_CullTransparentMesh: 0 +--- !u!1 &376717126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 376717127} + - component: {fileID: 376717130} + - component: {fileID: 376717129} + - component: {fileID: 376717128} + m_Layer: 5 + m_Name: LevelStart + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &376717127 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376717126} + 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: 75690273} + m_Father: {fileID: 325825367} + m_RootOrder: 7 + 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: 21, y: 826} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &376717128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376717126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 376717129} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_LevelStart + 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!114 &376717129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376717126} + 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.8679245, g: 0.6673193, b: 0.6673193, a: 1} + m_RaycastTarget: 1 + 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!222 &376717130 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 376717126} + m_CullTransparentMesh: 0 +--- !u!1 &380199652 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 380199653} + - component: {fileID: 380199655} + - component: {fileID: 380199654} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &380199653 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380199652} + 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: 1003927778} + 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!114 &380199654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380199652} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'InitSDK + + (*Call First*)' +--- !u!222 &380199655 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 380199652} + m_CullTransparentMesh: 0 +--- !u!1 &435487951 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 435487952} + - component: {fileID: 435487955} + - component: {fileID: 435487954} + - component: {fileID: 435487953} + m_Layer: 5 + m_Name: CommonCallback + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &435487952 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 435487951} + 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: 1994770553} + m_Father: {fileID: 325825367} + m_RootOrder: 23 + 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: 7, y: -784} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &435487953 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 435487951} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 0.8490566, g: 0.8490566, b: 0.8490566, 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: 435487954} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_CommonCallback + 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!114 &435487954 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 435487951} + 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_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!222 &435487955 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 435487951} + m_CullTransparentMesh: 0 +--- !u!1 &472859312 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 472859313} + - component: {fileID: 472859315} + - component: {fileID: 472859314} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &472859313 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472859312} + 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: 1431857565} + 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!114 &472859314 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472859312} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: HideBanner +--- !u!222 &472859315 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 472859312} + m_CullTransparentMesh: 0 +--- !u!1 &506627926 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 506627927} + - component: {fileID: 506627929} + - component: {fileID: 506627928} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &506627927 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506627926} + 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: 1716363525} + 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!114 &506627928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506627926} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Review +--- !u!222 &506627929 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506627926} + m_CullTransparentMesh: 0 +--- !u!1 &519471259 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 519471260} + - component: {fileID: 519471262} + - component: {fileID: 519471261} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &519471260 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519471259} + 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: 207883110} + 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!114 &519471261 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519471259} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: SetLogEnable +--- !u!222 &519471262 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 519471259} + m_CullTransparentMesh: 0 +--- !u!1 &631627958 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 631627959} + - component: {fileID: 631627961} + - component: {fileID: 631627960} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &631627959 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631627958} + 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: 128301539} + 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!114 &631627960 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631627958} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: OpenLocalPush +--- !u!222 &631627961 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631627958} + m_CullTransparentMesh: 0 +--- !u!1 &663673963 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 663673964} + - component: {fileID: 663673967} + - component: {fileID: 663673966} + - component: {fileID: 663673965} + m_Layer: 5 + m_Name: GetConfigInt + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &663673964 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663673963} + 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: 1241734249} + m_Father: {fileID: 325825367} + m_RootOrder: 13 + 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: -333, y: -308.99997} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &663673965 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663673963} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 663673966} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_GetConfigInt + 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!114 &663673966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663673963} + 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.5098344, g: 0.6320754, b: 0.61225694, a: 1} + m_RaycastTarget: 1 + 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!222 &663673967 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663673963} + m_CullTransparentMesh: 0 +--- !u!1 &709686345 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 709686346} + - component: {fileID: 709686348} + - component: {fileID: 709686347} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &709686346 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 709686345} + 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: 94457503} + 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!114 &709686347 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 709686345} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 34 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: LevelEnd-Fail +--- !u!222 &709686348 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 709686345} + m_CullTransparentMesh: 0 +--- !u!1 &802373410 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 802373411} + - component: {fileID: 802373413} + - component: {fileID: 802373412} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &802373411 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 802373410} + 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: 2091151499} + 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!114 &802373412 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 802373410} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 34 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: LevelEnd-Retry +--- !u!222 &802373413 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 802373410} + m_CullTransparentMesh: 0 +--- !u!1 &814770823 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 814770824} + - component: {fileID: 814770826} + - component: {fileID: 814770825} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &814770824 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 814770823} + 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: 1618017043} + 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!114 &814770825 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 814770823} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 34 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: LevelEnd-Back +--- !u!222 &814770826 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 814770823} + m_CullTransparentMesh: 0 +--- !u!1 &833040322 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 833040323} + - component: {fileID: 833040326} + - component: {fileID: 833040325} + - component: {fileID: 833040324} + m_Layer: 5 + m_Name: IsReadyInterstitialAd + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &833040323 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833040322} + 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: 139068137} + m_Father: {fileID: 325825367} + m_RootOrder: 3 + 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: -343, y: 116} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &833040324 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833040322} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 833040325} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_IsReadyIV + 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!114 &833040325 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833040322} + 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_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!222 &833040326 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 833040322} + m_CullTransparentMesh: 0 +--- !u!1 &925781832 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 925781833} + - component: {fileID: 925781836} + - component: {fileID: 925781835} + - component: {fileID: 925781834} + m_Layer: 5 + m_Name: GetChannel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &925781833 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 925781832} + 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: 1467075331} + m_Father: {fileID: 325825367} + m_RootOrder: 24 + 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: 353, y: -784} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &925781834 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 925781832} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 0.8490566, g: 0.8490566, b: 0.8490566, 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: 925781835} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_GetChannel + 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!114 &925781835 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 925781832} + 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_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!222 &925781836 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 925781832} + m_CullTransparentMesh: 0 +--- !u!1 &937706850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 937706851} + - component: {fileID: 937706853} + - component: {fileID: 937706852} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &937706851 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 937706850} + 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: 3537537} + 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!114 &937706852 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 937706850} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 34 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: ShowInterstitialAd +--- !u!222 &937706853 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 937706850} + m_CullTransparentMesh: 0 +--- !u!1 &971625574 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 971625577} + - component: {fileID: 971625576} + - component: {fileID: 971625575} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &971625575 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971625574} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &971625576 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971625574} + 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!4 &971625577 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 971625574} + 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: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &997167158 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 997167159} + - component: {fileID: 997167161} + - component: {fileID: 997167160} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &997167159 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 997167158} + 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: 1738281941} + 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!114 &997167160 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 997167158} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: OpenPrivacyURL +--- !u!222 &997167161 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 997167158} + m_CullTransparentMesh: 0 +--- !u!1 &1003927777 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1003927778} + - component: {fileID: 1003927781} + - component: {fileID: 1003927780} + - component: {fileID: 1003927779} + m_Layer: 5 + m_Name: InitSDK + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1003927778 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003927777} + 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: 380199653} + m_Father: {fileID: 325825367} + 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: -343, y: 824} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1003927779 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003927777} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1003927780} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_Init + 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!114 &1003927780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003927777} + 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.8490566, g: 0.3484336, b: 0.3484336, a: 1} + m_RaycastTarget: 1 + 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!222 &1003927781 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003927777} + m_CullTransparentMesh: 0 +--- !u!1 &1152021902 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1152021903} + - component: {fileID: 1152021905} + - component: {fileID: 1152021904} + m_Layer: 5 + m_Name: nativeImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1152021903 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152021902} + 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: 325825367} + m_RootOrder: 26 + 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: 800, y: 700} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1152021904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152021902} + 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_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!222 &1152021905 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1152021902} + m_CullTransparentMesh: 0 +--- !u!1 &1227552509 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1227552510} + - component: {fileID: 1227552511} + m_Layer: 0 + m_Name: ToukaSDKDemo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1227552510 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1227552509} + 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: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1227552511 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1227552509} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 542a9563293ba47b4b6070cc9197f431, type: 3} + m_Name: + m_EditorClassIdentifier: + nativeImage: {fileID: 1152021904} +--- !u!1 &1241734248 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1241734249} + - component: {fileID: 1241734251} + - component: {fileID: 1241734250} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1241734249 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1241734248} + 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: 663673964} + 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!114 &1241734250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1241734248} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: GetConfigInt +--- !u!222 &1241734251 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1241734248} + m_CullTransparentMesh: 0 +--- !u!1 &1259755077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1259755078} + - component: {fileID: 1259755080} + - component: {fileID: 1259755079} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1259755078 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259755077} + 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: 1756377908} + 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!114 &1259755079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259755077} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: GetConfigBool +--- !u!222 &1259755080 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1259755077} + m_CullTransparentMesh: 0 +--- !u!1 &1301630990 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1301630993} + - component: {fileID: 1301630992} + - component: {fileID: 1301630991} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1301630991 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1301630990} + m_Enabled: 1 +--- !u!20 &1301630992 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1301630990} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1301630993 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1301630990} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1390492137 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1390492138} + - component: {fileID: 1390492141} + - component: {fileID: 1390492140} + - component: {fileID: 1390492139} + m_Layer: 5 + m_Name: LogEventButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1390492138 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1390492137} + 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: 2028574759} + m_Father: {fileID: 325825367} + m_RootOrder: 12 + 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: -333, y: -546} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1390492139 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1390492137} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1390492140} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_LogEventClick + 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!114 &1390492140 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1390492137} + 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_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!222 &1390492141 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1390492137} + m_CullTransparentMesh: 0 +--- !u!1 &1412624022 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1412624023} + - component: {fileID: 1412624026} + - component: {fileID: 1412624025} + - component: {fileID: 1412624024} + m_Layer: 5 + m_Name: SetGameFocus + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1412624023 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1412624022} + 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: 1727005810} + m_Father: {fileID: 325825367} + m_RootOrder: 20 + 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: 19, y: -543} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1412624024 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1412624022} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1412624025} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_SetGameFocusListener + 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!114 &1412624025 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1412624022} + 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_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!222 &1412624026 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1412624022} + m_CullTransparentMesh: 0 +--- !u!1 &1431857564 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1431857565} + - component: {fileID: 1431857568} + - component: {fileID: 1431857567} + - component: {fileID: 1431857566} + m_Layer: 5 + m_Name: HideBanner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1431857565 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1431857564} + 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: 472859313} + m_Father: {fileID: 325825367} + m_RootOrder: 6 + 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: -343, y: -560} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1431857566 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1431857564} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1431857567} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_HideBanner + 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!114 &1431857567 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1431857564} + 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_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!222 &1431857568 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1431857564} + m_CullTransparentMesh: 0 +--- !u!1 &1467075330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1467075331} + - component: {fileID: 1467075333} + - component: {fileID: 1467075332} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1467075331 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1467075330} + 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: 925781833} + 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!114 &1467075332 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1467075330} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 32 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: GetChannel +--- !u!222 &1467075333 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1467075330} + m_CullTransparentMesh: 0 +--- !u!1 &1566732037 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1566732038} + - component: {fileID: 1566732041} + - component: {fileID: 1566732040} + - component: {fileID: 1566732039} + m_Layer: 5 + m_Name: GetConfigStr + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1566732038 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566732037} + 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: 51009053} + m_Father: {fileID: 325825367} + m_RootOrder: 14 + 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: 365, y: -310} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1566732039 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566732037} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1566732040} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_GetConfigStr + 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!114 &1566732040 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566732037} + 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.5137255, g: 0.63529414, b: 0.6156863, a: 1} + m_RaycastTarget: 1 + 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!222 &1566732041 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566732037} + m_CullTransparentMesh: 0 +--- !u!1 &1602270783 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1602270784} + - component: {fileID: 1602270786} + - component: {fileID: 1602270785} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1602270784 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1602270783} + 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: 184230247} + 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!114 &1602270785 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1602270783} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: User Source(GB) +--- !u!222 &1602270786 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1602270783} + m_CullTransparentMesh: 0 +--- !u!1 &1607946294 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1607946295} + - component: {fileID: 1607946298} + - component: {fileID: 1607946297} + - component: {fileID: 1607946296} + m_Layer: 5 + m_Name: OpenUserTermURL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1607946295 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607946294} + 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: 2074289756} + m_Father: {fileID: 325825367} + m_RootOrder: 17 + 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: 360, y: 592} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1607946296 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607946294} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1607946297} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_OpenUserTermBtn + 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!114 &1607946297 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607946294} + 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.8666667, g: 0.6666667, b: 0.6666667, a: 1} + m_RaycastTarget: 1 + 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!222 &1607946298 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1607946294} + m_CullTransparentMesh: 0 +--- !u!1 &1618017042 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1618017043} + - component: {fileID: 1618017046} + - component: {fileID: 1618017045} + - component: {fileID: 1618017044} + m_Layer: 5 + m_Name: LevelBack + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1618017043 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618017042} + 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: 814770824} + m_Father: {fileID: 325825367} + m_RootOrder: 10 + 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: 21, y: 123} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1618017044 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618017042} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1618017045} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_LevelBack + 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!114 &1618017045 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618017042} + 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_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!222 &1618017046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1618017042} + m_CullTransparentMesh: 0 +--- !u!1 &1716363524 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1716363525} + - component: {fileID: 1716363528} + - component: {fileID: 1716363527} + - component: {fileID: 1716363526} + m_Layer: 5 + m_Name: Review + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1716363525 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1716363524} + 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: 506627927} + m_Father: {fileID: 325825367} + m_RootOrder: 19 + 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: 360, y: 119} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1716363526 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1716363524} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1716363527} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_ReviewBtn + 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!114 &1716363527 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1716363524} + 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_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!222 &1716363528 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1716363524} + m_CullTransparentMesh: 0 +--- !u!1 &1727005809 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1727005810} + - component: {fileID: 1727005812} + - component: {fileID: 1727005811} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1727005810 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1727005809} + 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: 1412624023} + 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!114 &1727005811 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1727005809} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 32 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: SetGameFocus +--- !u!222 &1727005812 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1727005809} + m_CullTransparentMesh: 0 +--- !u!1 &1738281940 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1738281941} + - component: {fileID: 1738281944} + - component: {fileID: 1738281943} + - component: {fileID: 1738281942} + m_Layer: 5 + m_Name: OpenPrivacyURL + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1738281941 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1738281940} + 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: 997167159} + m_Father: {fileID: 325825367} + m_RootOrder: 16 + 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: 360, y: 825} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1738281942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1738281940} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1738281943} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_OpenPrivacyUrl + 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!114 &1738281943 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1738281940} + 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.8666667, g: 0.6666667, b: 0.6666667, a: 1} + m_RaycastTarget: 1 + 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!222 &1738281944 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1738281940} + m_CullTransparentMesh: 0 +--- !u!1 &1756377907 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1756377908} + - component: {fileID: 1756377911} + - component: {fileID: 1756377910} + - component: {fileID: 1756377909} + m_Layer: 5 + m_Name: GetConfigBool + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1756377908 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756377907} + 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: 1259755078} + m_Father: {fileID: 325825367} + m_RootOrder: 15 + 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: 21, y: -310.99997} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1756377909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756377907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1756377910} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_GetConfigBool + 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!114 &1756377910 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756377907} + 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.5137255, g: 0.63529414, b: 0.6156863, a: 1} + m_RaycastTarget: 1 + 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!222 &1756377911 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1756377907} + m_CullTransparentMesh: 0 +--- !u!1 &1767319389 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1767319390} + - component: {fileID: 1767319392} + - component: {fileID: 1767319391} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1767319390 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1767319389} + 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: 334027820} + 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!114 &1767319391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1767319389} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: ShowRewardAd +--- !u!222 &1767319392 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1767319389} + m_CullTransparentMesh: 0 +--- !u!1 &1768773389 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1768773390} + - component: {fileID: 1768773393} + - component: {fileID: 1768773392} + - component: {fileID: 1768773391} + m_Layer: 5 + m_Name: ShowBanner + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1768773390 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768773389} + 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: 2002019465} + m_Father: {fileID: 325825367} + m_RootOrder: 5 + 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: -343, y: -340} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1768773391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768773389} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1768773392} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_ShowBanner + 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!114 &1768773392 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768773389} + 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_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!222 &1768773393 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768773389} + m_CullTransparentMesh: 0 +--- !u!1 &1817295530 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1817295531} + - component: {fileID: 1817295533} + - component: {fileID: 1817295532} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1817295531 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817295530} + 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: 2068216387} + 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!114 &1817295532 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817295530} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 32 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: IsReadyRewardAd +--- !u!222 &1817295533 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1817295530} + m_CullTransparentMesh: 0 +--- !u!1 &1878439526 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1878439527} + - component: {fileID: 1878439530} + - component: {fileID: 1878439529} + - component: {fileID: 1878439528} + m_Layer: 5 + m_Name: OpenMoreGame + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1878439527 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1878439526} + 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: 214015476} + m_Father: {fileID: 325825367} + m_RootOrder: 18 + 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: 360, y: 362} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1878439528 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1878439526} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 1878439529} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_OpenMoreGame + 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!114 &1878439529 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1878439526} + 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_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!222 &1878439530 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1878439526} + m_CullTransparentMesh: 0 +--- !u!1 &1994770552 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1994770553} + - component: {fileID: 1994770555} + - component: {fileID: 1994770554} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1994770553 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1994770552} + 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: 435487952} + 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!114 &1994770554 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1994770552} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 32 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Common Callback +--- !u!222 &1994770555 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1994770552} + m_CullTransparentMesh: 0 +--- !u!1 &2002019464 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2002019465} + - component: {fileID: 2002019467} + - component: {fileID: 2002019466} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2002019465 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002019464} + 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: 1768773390} + 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!114 &2002019466 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002019464} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: ShowBanner +--- !u!222 &2002019467 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2002019464} + m_CullTransparentMesh: 0 +--- !u!1 &2028574758 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2028574759} + - component: {fileID: 2028574761} + - component: {fileID: 2028574760} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2028574759 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2028574758} + 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: 1390492138} + 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!114 &2028574760 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2028574758} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: LogEvent +--- !u!222 &2028574761 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2028574758} + m_CullTransparentMesh: 0 +--- !u!1 &2068216386 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2068216387} + - component: {fileID: 2068216390} + - component: {fileID: 2068216389} + - component: {fileID: 2068216388} + m_Layer: 5 + m_Name: IsReadyRewardAd + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2068216387 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2068216386} + 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: 1817295531} + m_Father: {fileID: 325825367} + m_RootOrder: 4 + 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: -343, y: -91} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2068216388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2068216386} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 2068216389} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_IsReadyRV + 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!114 &2068216389 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2068216386} + 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_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!222 &2068216390 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2068216386} + m_CullTransparentMesh: 0 +--- !u!1 &2074289755 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2074289756} + - component: {fileID: 2074289758} + - component: {fileID: 2074289757} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2074289756 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2074289755} + 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: 1607946295} + 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!114 &2074289757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2074289755} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 32 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: OpenUserTermURL +--- !u!222 &2074289758 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2074289755} + m_CullTransparentMesh: 0 +--- !u!1 &2091151498 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2091151499} + - component: {fileID: 2091151502} + - component: {fileID: 2091151501} + - component: {fileID: 2091151500} + m_Layer: 5 + m_Name: LevelRetry + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2091151499 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091151498} + 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: 802373411} + m_Father: {fileID: 325825367} + m_RootOrder: 11 + 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: 21, y: -94} + m_SizeDelta: {x: 300, y: 160} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2091151500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091151498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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_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: 2091151501} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1227552511} + m_MethodName: OnButton_LevelRetry + 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!114 &2091151501 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091151498} + 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_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!222 &2091151502 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091151498} + m_CullTransparentMesh: 0 +--- !u!1 &2117151081 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2117151082} + - component: {fileID: 2117151084} + - component: {fileID: 2117151083} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2117151082 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117151081} + 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: 283656278} + 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!114 &2117151083 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117151081} + 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_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 38 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: LevelEnd-Succ +--- !u!222 &2117151084 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117151081} + m_CullTransparentMesh: 0 diff --git a/Assets/TKGSDK/Demo/ToukaSDKDemo.unity.meta b/Assets/TKGSDK/Demo/ToukaSDKDemo.unity.meta new file mode 100644 index 00000000..be1ff020 --- /dev/null +++ b/Assets/TKGSDK/Demo/ToukaSDKDemo.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6981b962eb4cd450398514e00a5f7a11 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Editor.meta b/Assets/TKGSDK/Editor.meta new file mode 100644 index 00000000..4d6d0b4f --- /dev/null +++ b/Assets/TKGSDK/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3b72e726f1d95467aa884508bee4f00e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Editor/TKGAllPostprocessor.cs b/Assets/TKGSDK/Editor/TKGAllPostprocessor.cs new file mode 100644 index 00000000..a6fa003c --- /dev/null +++ b/Assets/TKGSDK/Editor/TKGAllPostprocessor.cs @@ -0,0 +1,55 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +public class MyAllPostprocessor : AssetPostprocessor +{ + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + { + foreach (string str in importedAssets) + { + if (str.Contains("tkg_game_configs.json")) + { + Debug.Log("Reimported Asset: " + str); + + TKGInnerGameConfig configs = LoadJson.LoadJsonFromFile(str); + Debug.Log("configs : " + configs.TKGParams.Count); + + for(int i = 0; i < configs.TKGParams.Count; i++) + { + Debug.Log("param key : " + configs.TKGParams[i].key + " , value : " + configs.TKGParams[i].value); + } + + for (int i = 0; i < configs.TKGAdPositionName.TKGIVAdPositionName.Count; i++) + { + Debug.Log("iv pos : " + configs.TKGAdPositionName.TKGIVAdPositionName[i]); + } + + for (int i = 0; i < configs.TKGAdPositionName.TKGRVPositionName.Count; i++) + { + Debug.Log("rv pos : " + configs.TKGAdPositionName.TKGRVPositionName[i]); + } + } + } + } +} + +public class PlayerState : MonoBehaviour +{ + public string playerName; + public int lives; + public float health; + + public string SaveToString() + { + return JsonUtility.ToJson(this); + } + + // Given: + // playerName = "Dr Charles" + // lives = 3 + // health = 0.8f + // SaveToString returns: + // {"playerName":"Dr Charles","lives":3,"health":0.8} +} diff --git a/Assets/TKGSDK/Editor/TKGAllPostprocessor.cs.meta b/Assets/TKGSDK/Editor/TKGAllPostprocessor.cs.meta new file mode 100644 index 00000000..01486c2c --- /dev/null +++ b/Assets/TKGSDK/Editor/TKGAllPostprocessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8fcede2e4317b4d1197e85047dbbd880 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Editor/TKGParseGameConfig.cs b/Assets/TKGSDK/Editor/TKGParseGameConfig.cs new file mode 100644 index 00000000..82ffd109 --- /dev/null +++ b/Assets/TKGSDK/Editor/TKGParseGameConfig.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using UnityEngine; + +public class TKGParseGameConfig +{ + public static void Test() + { + TKGInnerParamsKey paramKey01 = new TKGInnerParamsKey(); + paramKey01.key = "LevelList"; + paramKey01.value = "1,78,72,70,64,65,4,66"; + + TKGInnerParamsKey paramKey02 = new TKGInnerParamsKey(); + paramKey02.key = "HasBlock"; + paramKey02.value = "0"; + + TKGInnerGameConfig config01 = new TKGInnerGameConfig(); + config01.TKGParams.Add(paramKey01); + config01.TKGParams.Add(paramKey02); + + config01.TKGAdPositionName = new TKGInnerAdPositionName(); + + config01.TKGAdPositionName.TKGIVAdPositionName.Add("IV_Success"); + config01.TKGAdPositionName.TKGIVAdPositionName.Add("IV_Fail"); + + config01.TKGAdPositionName.TKGRVPositionName.Add("RV_GetDoubleCoin"); + config01.TKGAdPositionName.TKGRVPositionName.Add("RV_GetTips"); + + + string ss = config01.SaveToString(); + Debug.Log("ss : " + ss); + } +} + +#region Inner Class + +[Serializable] +public class TKGInnerParamsKey +{ + public string key; + public string value; + +} + +[Serializable] +public class TKGInnerAdPositionName +{ + public List TKGIVAdPositionName = new List(); + public List TKGRVPositionName = new List(); +} + + +[Serializable] +public class TKGInnerGameConfig +{ + public List TKGParams = new List(); + public TKGInnerAdPositionName TKGAdPositionName; + + public string SaveToString() + { + return JsonUtility.ToJson(this); + } +} + +#endregion + +#region load json + +public class LoadJson +{ + public static T LoadJsonFromFile(string _path) where T : class + { + if (!File.Exists(_path)) + { + Debug.LogError("Don't Find " + _path); + return null; + } + + StreamReader sr = new StreamReader(_path); + if (sr == null) + { + return null; + } + string json = sr.ReadToEnd(); + + if (json.Length > 0) + { + return JsonUtility.FromJson(json); + } + return null; + } +} + +#endregion + + diff --git a/Assets/TKGSDK/Editor/TKGParseGameConfig.cs.meta b/Assets/TKGSDK/Editor/TKGParseGameConfig.cs.meta new file mode 100644 index 00000000..a05d8a86 --- /dev/null +++ b/Assets/TKGSDK/Editor/TKGParseGameConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 069e18db978ff4c3cbf25edac908307d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Editor/ToukaAdsBuildPostProcessor.cs b/Assets/TKGSDK/Editor/ToukaAdsBuildPostProcessor.cs new file mode 100644 index 00000000..a3a7d56f --- /dev/null +++ b/Assets/TKGSDK/Editor/ToukaAdsBuildPostProcessor.cs @@ -0,0 +1,733 @@ +using System.IO; +using System.Runtime.InteropServices.WindowsRuntime; +using UnityEditor; +using UnityEditor.Callbacks; +#if UNITY_IOS +using UnityEditor.iOS.Xcode; +#endif +using UnityEngine; +#if UNITY_IOS +namespace Touka +{ + public partial class ToukaAdsBuildPostProcessor + { + [PostProcessBuild] + public static void OnPostprocessBuild(BuildTarget buildTarget, string path) + { + if (buildTarget != BuildTarget.iOS) return; + +#if UNITY_IOS + ModifyURLTypes(path); + ModifyCode(path); + ModifyBundle(path); +#endif + } + + + +#if UNITY_IOS + private static void ModifyURLTypes(string _path) + { + var plistPath = Path.Combine(_path, "Info.plist"); + var plist = new PlistDocument(); + plist.ReadFromFile(plistPath); + + + plist.root.SetBoolean("GADIsAdManagerApp", true); + +#if !AppStore_GB + plist.root.SetString("GADApplicationIdentifier", TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_Admob_AppID, AppChannel.AppStore_CN)); + plist.root.SetString("AppId", TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_TOUKA_SDK_APPID, AppChannel.AppStore_CN)); + + plist.root.SetString("AppKey", TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_TOUKA_SDK_APPKEY, AppChannel.AppStore_CN) ); + plist.root.SetString("splashPlacement", TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_TOUKA_SDK_SPLASHID, AppChannel.AppStore_CN)); + + +#else + plist.root.SetString("GADApplicationIdentifier", TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_Admob_AppID, AppChannel.AppStore_GB)); + plist.root.SetString("AppLovinSdkKey", TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_TOUKA_SDK_APPKEY, AppChannel.AppStore_GB)); + + +#endif + + plist.root.SetBoolean("ITSAppUsesNonExemptEncryption", false); + + //NSAppTransportSecurity set yes + PlistElementDict atf = plist.root["NSAppTransportSecurity"].AsDict(); + atf.SetBoolean("NSAllowsArbitraryLoads", true); + + #region iOS 14 + //SKAdnetwork追加 + PlistElementArray URLWhiteListArr2 = plist.root.CreateArray("SKAdNetworkItems"); + + //admob (1) + PlistElementDict dic01; + dic01 = URLWhiteListArr2.AddDict(); + dic01.SetString("SKAdNetworkIdentifier", "cstr6suwn9.skadnetwork"); + + //ironsource(1) + PlistElementDict dic02; + dic02 = URLWhiteListArr2.AddDict(); + dic02.SetString("SKAdNetworkIdentifier", "su67r6k2v3.skadnetwork"); + + //mintegral (19) + PlistElementDict dic03; + dic03 = URLWhiteListArr2.AddDict(); + dic03.SetString("SKAdNetworkIdentifier", "kbd757ywx3.skadnetwork"); + + PlistElementDict dic04; + dic04 = URLWhiteListArr2.AddDict(); + dic04.SetString("SKAdNetworkIdentifier", "wg4vff78zm.skadnetwork"); + + PlistElementDict dic05; + dic05 = URLWhiteListArr2.AddDict(); + dic05.SetString("SKAdNetworkIdentifier", "737z793b9f.skadnetwork"); + + PlistElementDict dic06; + dic06 = URLWhiteListArr2.AddDict(); + dic06.SetString("SKAdNetworkIdentifier", "ydx93a7ass.skadnetwork"); + + PlistElementDict dic07; + dic07 = URLWhiteListArr2.AddDict(); + dic07.SetString("SKAdNetworkIdentifier", "prcb7njmu6.skadnetwork"); + + PlistElementDict dic08; + dic08 = URLWhiteListArr2.AddDict(); + dic08.SetString("SKAdNetworkIdentifier", "7ug5zh24hu.skadnetwork"); + + PlistElementDict dic09; + dic09 = URLWhiteListArr2.AddDict(); + dic09.SetString("SKAdNetworkIdentifier", "44jx6755aq.skadnetwork"); + + + PlistElementDict dic10; + dic10 = URLWhiteListArr2.AddDict(); + dic10.SetString("SKAdNetworkIdentifier", "w9q455wk68.skadnetwork"); + + + + PlistElementDict dic11; + dic11 = URLWhiteListArr2.AddDict(); + dic11.SetString("SKAdNetworkIdentifier", "8s468mfl3y.skadnetwork"); + + PlistElementDict dic12; + dic12 = URLWhiteListArr2.AddDict(); + dic12.SetString("SKAdNetworkIdentifier", "glqzh8vgby.skadnetwork"); + + PlistElementDict dic13; + dic13 = URLWhiteListArr2.AddDict(); + dic13.SetString("SKAdNetworkIdentifier", "c6k4g5qg8m.skadnetwork"); + + PlistElementDict dic14; + dic14 = URLWhiteListArr2.AddDict(); + dic14.SetString("SKAdNetworkIdentifier", "mlmmfzh3r3.skadnetwork"); + + PlistElementDict dic15; + dic15 = URLWhiteListArr2.AddDict(); + dic15.SetString("SKAdNetworkIdentifier", "4pfyvq9l8r.skadnetwork"); + + PlistElementDict dic16; + dic16 = URLWhiteListArr2.AddDict(); + dic16.SetString("SKAdNetworkIdentifier", "av6w8kgt66.skadnetwork"); + + PlistElementDict dic17; + dic17 = URLWhiteListArr2.AddDict(); + dic17.SetString("SKAdNetworkIdentifier", "6xzpu9s2p8.skadnetwork"); + + PlistElementDict dic18; + dic18 = URLWhiteListArr2.AddDict(); + dic18.SetString("SKAdNetworkIdentifier", "hs6bdukanm.skadnetwork"); + + + //adcolony (19) + PlistElementDict dic19; + dic19 = URLWhiteListArr2.AddDict(); + dic19.SetString("SKAdNetworkIdentifier", "v72qych5uu.skadnetwork"); + + + + PlistElementDict dic20; + dic20 = URLWhiteListArr2.AddDict(); + dic20.SetString("SKAdNetworkIdentifier", "ppxm28t8ap.skadnetwork"); + + + + PlistElementDict dic21; + dic21 = URLWhiteListArr2.AddDict(); + dic21.SetString("SKAdNetworkIdentifier", "klf5c3l5u5.skadnetwork"); + + + + PlistElementDict dic22; + dic22 = URLWhiteListArr2.AddDict(); + dic22.SetString("SKAdNetworkIdentifier", "4468km3ulz.skadnetwork"); + + PlistElementDict dic23; + dic23 = URLWhiteListArr2.AddDict(); + dic23.SetString("SKAdNetworkIdentifier", "3rd42ekr43.skadnetwork"); + + //unity ads (2) + PlistElementDict dic24; + dic24 = URLWhiteListArr2.AddDict(); + dic24.SetString("SKAdNetworkIdentifier", "4dzt52r2t5.skadnetwork"); + + PlistElementDict dic25; + dic25 = URLWhiteListArr2.AddDict(); + dic25.SetString("SKAdNetworkIdentifier", "bvpn9ufa9b.skadnetwork"); + + //maio (1) + PlistElementDict dic26; + dic26 = URLWhiteListArr2.AddDict(); + dic26.SetString("SKAdNetworkIdentifier", "V4NXQHLYQP.skadnetwork"); + + //facebook(2) + PlistElementDict dic27; + dic27 = URLWhiteListArr2.AddDict(); + dic27.SetString("SKAdNetworkIdentifier", "v9wttpbfk9.skadnetwork"); + + PlistElementDict dic28; + dic28 = URLWhiteListArr2.AddDict(); + dic28.SetString("SKAdNetworkIdentifier", "n38lu8286q.skadnetwork"); + //vungle (1) + PlistElementDict dic29; + dic29 = URLWhiteListArr2.AddDict(); + dic29.SetString("SKAdNetworkIdentifier", "gta9lk7p23.skadnetwork"); + + //pangle (2) + PlistElementDict dic30; + dic30 = URLWhiteListArr2.AddDict(); + dic30.SetString("SKAdNetworkIdentifier", "238da6jt44.skadnetwork"); + + PlistElementDict dic31; + dic31 = URLWhiteListArr2.AddDict(); + dic31.SetString("SKAdNetworkIdentifier", "22mmun2rn5.skadnetwork"); + + //applovin(19) + + PlistElementDict dic32; + dic32 = URLWhiteListArr2.AddDict(); + dic32.SetString("SKAdNetworkIdentifier", "2u9pt9hc89.skadnetwork"); + + PlistElementDict dic33; + dic33 = URLWhiteListArr2.AddDict(); + dic33.SetString("SKAdNetworkIdentifier", "275upjj5gd.skadnetwork"); + + PlistElementDict dic34; + dic34 = URLWhiteListArr2.AddDict(); + dic34.SetString("SKAdNetworkIdentifier", "4fzdc2evr5.skadnetwork"); + + + PlistElementDict dic35; + dic35 = URLWhiteListArr2.AddDict(); + dic35.SetString("SKAdNetworkIdentifier", "9rd848q2bz.skadnetwork"); + + PlistElementDict dic36; + dic36 = URLWhiteListArr2.AddDict(); + dic36.SetString("SKAdNetworkIdentifier", "9t245vhmpl.skadnetwork"); + + + + PlistElementDict dic37; + dic37 = URLWhiteListArr2.AddDict(); + dic37.SetString("SKAdNetworkIdentifier", "f38h382jlk.skadnetwork"); + + PlistElementDict dic38; + dic38 = URLWhiteListArr2.AddDict(); + dic38.SetString("SKAdNetworkIdentifier", "ludvb6z3bs.skadnetwork"); + + PlistElementDict dic39; + dic39 = URLWhiteListArr2.AddDict(); + dic39.SetString("SKAdNetworkIdentifier", "m8dbw4sv7c.skadnetwork"); + + PlistElementDict dic40; + dic40 = URLWhiteListArr2.AddDict(); + dic40.SetString("SKAdNetworkIdentifier", "t38b2kh725.skadnetwork"); + + PlistElementDict dic41; + dic41 = URLWhiteListArr2.AddDict(); + dic41.SetString("SKAdNetworkIdentifier", "tl55sbb4fm.skadnetwork"); + + PlistElementDict dic42; + dic42 = URLWhiteListArr2.AddDict(); + dic42.SetString("SKAdNetworkIdentifier", "wzmmz9fp6w.skadnetwork"); + + PlistElementDict dic43; + dic43 = URLWhiteListArr2.AddDict(); + dic43.SetString("SKAdNetworkIdentifier", "yclnxrl5pm.skadnetwork"); + + PlistElementDict dic44; + dic44 = URLWhiteListArr2.AddDict(); + dic44.SetString("SKAdNetworkIdentifier", "2fnua5tdw4.skadnetwork"); + + PlistElementDict dic45; + dic45 = URLWhiteListArr2.AddDict(); + dic45.SetString("SKAdNetworkIdentifier", "3qcr597p9d.skadnetwork"); + + PlistElementDict dic46; + dic46 = URLWhiteListArr2.AddDict(); + dic46.SetString("SKAdNetworkIdentifier", "3qy4746246.skadnetwork"); + + PlistElementDict dic47; + dic47 = URLWhiteListArr2.AddDict(); + dic47.SetString("SKAdNetworkIdentifier", "3sh42y64q3.skadnetwork"); + + PlistElementDict dic48; + dic48 = URLWhiteListArr2.AddDict(); + dic48.SetString("SKAdNetworkIdentifier", "424m5254lk.skadnetwork"); + + PlistElementDict dic49; + dic49 = URLWhiteListArr2.AddDict(); + dic49.SetString("SKAdNetworkIdentifier", "5a6flpkh64.skadnetwork"); + + PlistElementDict dic50; + dic50 = URLWhiteListArr2.AddDict(); + dic50.SetString("SKAdNetworkIdentifier", "e5fvkxwrpn.skadnetwork"); + + PlistElementDict dic51; + dic51 = URLWhiteListArr2.AddDict(); + dic51.SetString("SKAdNetworkIdentifier", "ecpz2srf59.skadnetwork"); + + PlistElementDict dic52; + dic52 = URLWhiteListArr2.AddDict(); + dic52.SetString("SKAdNetworkIdentifier", "hjevpa356n.skadnetwork"); + PlistElementDict dic53; + dic53 = URLWhiteListArr2.AddDict(); + dic53.SetString("SKAdNetworkIdentifier", "k674qkevps.skadnetwork"); + + + PlistElementDict dic54; + dic54 = URLWhiteListArr2.AddDict(); + dic54.SetString("SKAdNetworkIdentifier", "n6fk4nfna4.skadnetwork"); + + PlistElementDict dic55; + dic55 = URLWhiteListArr2.AddDict(); + dic55.SetString("SKAdNetworkIdentifier", "p78axxw29g.skadnetwork"); + + PlistElementDict dic56; + dic56 = URLWhiteListArr2.AddDict(); + dic56.SetString("SKAdNetworkIdentifier", "s39g8k73mm.skadnetwork"); + PlistElementDict dic57; + dic57 = URLWhiteListArr2.AddDict(); + dic57.SetString("SKAdNetworkIdentifier", "uw77j35x4d.skadnetwork"); + + PlistElementDict dic58; + dic58 = URLWhiteListArr2.AddDict(); + dic58.SetString("SKAdNetworkIdentifier", "y2ed4ez56y.skadnetwork"); + + PlistElementDict dic59; + dic59 = URLWhiteListArr2.AddDict(); + dic59.SetString("SKAdNetworkIdentifier", "zq492l623r.skadnetwork"); + + PlistElementDict dic60; + dic60 = URLWhiteListArr2.AddDict(); + dic60.SetString("SKAdNetworkIdentifier", "24t9a8vw3c.skadnetwork"); + + PlistElementDict dic61; + dic61 = URLWhiteListArr2.AddDict(); + dic61.SetString("SKAdNetworkIdentifier", "32z4fx6l9h.skadnetwork"); + + PlistElementDict dic62; + dic62 = URLWhiteListArr2.AddDict(); + dic62.SetString("SKAdNetworkIdentifier", "523jb4fst2.skadnetwork"); + + PlistElementDict dic63; + dic63 = URLWhiteListArr2.AddDict(); + dic63.SetString("SKAdNetworkIdentifier", "54nzkqm89y.skadnetwork"); + + PlistElementDict dic64; + dic64 = URLWhiteListArr2.AddDict(); + dic64.SetString("SKAdNetworkIdentifier", "578prtvx9j.skadnetwork"); + + PlistElementDict dic65; + dic65 = URLWhiteListArr2.AddDict(); + dic65.SetString("SKAdNetworkIdentifier", "5l3tpt7t6e.skadnetwork"); + + PlistElementDict dic66; + dic66 = URLWhiteListArr2.AddDict(); + dic66.SetString("SKAdNetworkIdentifier", "5lm9lj6jb7.skadnetwork"); + + PlistElementDict dic67; + dic67 = URLWhiteListArr2.AddDict(); + dic67.SetString("SKAdNetworkIdentifier", "79pbpufp6p.skadnetwork"); + + PlistElementDict dic68; + dic68 = URLWhiteListArr2.AddDict(); + dic68.SetString("SKAdNetworkIdentifier", "7rz58n8ntl.skadnetwork"); + + PlistElementDict dic69; + dic69 = URLWhiteListArr2.AddDict(); + dic69.SetString("SKAdNetworkIdentifier", "n66cz3y3bx.skadnetwork"); + + PlistElementDict dic70; + dic70 = URLWhiteListArr2.AddDict(); + dic70.SetString("SKAdNetworkIdentifier", "9b89h5y424.skadnetwork"); + + PlistElementDict dic71; + dic71 = URLWhiteListArr2.AddDict(); + dic71.SetString("SKAdNetworkIdentifier", "9nlqeag3gk.skadnetwork"); + + PlistElementDict dic72; + dic72 = URLWhiteListArr2.AddDict(); + dic72.SetString("SKAdNetworkIdentifier", "cg4yq2srnc.skadnetwork"); + + PlistElementDict dic73; + dic73 = URLWhiteListArr2.AddDict(); + dic73.SetString("SKAdNetworkIdentifier", "cj5566h2ga.skadnetwork"); + + PlistElementDict dic74; + dic74 = URLWhiteListArr2.AddDict(); + dic74.SetString("SKAdNetworkIdentifier", "5tjdwbrq8w.skadnetwork"); + PlistElementDict dic75; + dic75 = URLWhiteListArr2.AddDict(); + dic75.SetString("SKAdNetworkIdentifier", "ejvt5qm6ak.skadnetwork"); + + PlistElementDict dic76; + dic76 = URLWhiteListArr2.AddDict(); + dic76.SetString("SKAdNetworkIdentifier", "feyaarzu9v.skadnetwork"); + + PlistElementDict dic77; + dic77 = URLWhiteListArr2.AddDict(); + dic77.SetString("SKAdNetworkIdentifier", "g28c52eehv.skadnetwork"); + + PlistElementDict dic78; + dic78 = URLWhiteListArr2.AddDict(); + dic78.SetString("SKAdNetworkIdentifier", "ggvn48r87g.skadnetwork"); + + PlistElementDict dic79; + dic79 = URLWhiteListArr2.AddDict(); + dic79.SetString("SKAdNetworkIdentifier", "mtkv5xtk9e.skadnetwork"); + + PlistElementDict dic80; + dic80 = URLWhiteListArr2.AddDict(); + dic80.SetString("SKAdNetworkIdentifier", "n9x2a789qt.skadnetwork"); + + PlistElementDict dic81; + dic81 = URLWhiteListArr2.AddDict(); + dic81.SetString("SKAdNetworkIdentifier", "pwa73g5rt2.skadnetwork"); + + PlistElementDict dic82; + dic82 = URLWhiteListArr2.AddDict(); + dic82.SetString("SKAdNetworkIdentifier", "xy9t38ct57.skadnetwork"); + + PlistElementDict dic83; + dic83 = URLWhiteListArr2.AddDict(); + dic83.SetString("SKAdNetworkIdentifier", "zmvfpc5aq8.skadnetwork"); + + PlistElementDict dic84; + dic84 = URLWhiteListArr2.AddDict(); + dic84.SetString("SKAdNetworkIdentifier", "44n7hlldy6.skadnetwork"); + + PlistElementDict dic85; + dic85 = URLWhiteListArr2.AddDict(); + dic85.SetString("SKAdNetworkIdentifier", "488r3q3dtq.skadnetwork"); + + PlistElementDict dic86; + dic86 = URLWhiteListArr2.AddDict(); + dic86.SetString("SKAdNetworkIdentifier", "f73kdq92p3.skadnetwork"); + + PlistElementDict dic87; + dic87 = URLWhiteListArr2.AddDict(); + dic87.SetString("SKAdNetworkIdentifier", "f7s53z58qe.skadnetwork"); + + PlistElementDict dic88; + dic88 = URLWhiteListArr2.AddDict(); + dic88.SetString("SKAdNetworkIdentifier", "lr83yxwka7.skadnetwork"); + + PlistElementDict dic89; + dic89 = URLWhiteListArr2.AddDict(); + dic89.SetString("SKAdNetworkIdentifier", "v79kvwwj4g.skadnetwork"); + + PlistElementDict dic90; + dic90 = URLWhiteListArr2.AddDict(); + dic90.SetString("SKAdNetworkIdentifier", "7953jerfzd.skadnetwork"); + + PlistElementDict dic91; + dic91 = URLWhiteListArr2.AddDict(); + dic91.SetString("SKAdNetworkIdentifier", "9yg77x724h.skadnetwork"); + + PlistElementDict dic92; + dic92 = URLWhiteListArr2.AddDict(); + dic92.SetString("SKAdNetworkIdentifier", "mls7yz5dvl.skadnetwork"); + + PlistElementDict dic93; + dic93 = URLWhiteListArr2.AddDict(); + dic93.SetString("SKAdNetworkIdentifier", "x8jxxk4ff5.skadnetwork"); + + PlistElementDict dic94; + dic94 = URLWhiteListArr2.AddDict(); + dic94.SetString("SKAdNetworkIdentifier", "mp6xlyr22a.skadnetwork"); + + PlistElementDict dic95; + dic95 = URLWhiteListArr2.AddDict(); + dic95.SetString("SKAdNetworkIdentifier", "x44k69ngh6.skadnetwork"); + + PlistElementDict dic96; + dic96 = URLWhiteListArr2.AddDict(); + dic96.SetString("SKAdNetworkIdentifier", "6g9af3uyq4.skadnetwork"); + + PlistElementDict dic97; + dic97 = URLWhiteListArr2.AddDict(); + dic97.SetString("SKAdNetworkIdentifier", "qqp299437r.skadnetwork"); + + PlistElementDict dic98; + dic98 = URLWhiteListArr2.AddDict(); + dic98.SetString("SKAdNetworkIdentifier", "252b5q8x7y.skadnetwork"); + + PlistElementDict dic99; + dic99 = URLWhiteListArr2.AddDict(); + dic99.SetString("SKAdNetworkIdentifier", "rx5hdcabgc.skadnetwork"); + + PlistElementDict dic100; + dic100 = URLWhiteListArr2.AddDict(); + dic100.SetString("SKAdNetworkIdentifier", "294l99pt4k.skadnetwork"); + + PlistElementDict dic101; + dic101 = URLWhiteListArr2.AddDict(); + dic101.SetString("SKAdNetworkIdentifier", "kbmxgpxpgc.skadnetwork"); + + PlistElementDict dic102; + dic102 = URLWhiteListArr2.AddDict(); + dic102.SetString("SKAdNetworkIdentifier", "52fl2v3hgk.skadnetwork"); + + PlistElementDict dic103; + dic103 = URLWhiteListArr2.AddDict(); + dic103.SetString("SKAdNetworkIdentifier", "r45fhb6rf7.skadnetwork"); + + PlistElementDict dic104; + dic104 = URLWhiteListArr2.AddDict(); + dic104.SetString("SKAdNetworkIdentifier", "rvh3l7un93.skadnetwork"); + + PlistElementDict dic105; + dic105 = URLWhiteListArr2.AddDict(); + dic105.SetString("SKAdNetworkIdentifier", "97r2b46745.skadnetwork"); + + PlistElementDict dic106; + dic106 = URLWhiteListArr2.AddDict(); + dic106.SetString("SKAdNetworkIdentifier", "9g2aggbj52.skadnetwork"); + + PlistElementDict dic107; + dic107 = URLWhiteListArr2.AddDict(); + dic107.SetString("SKAdNetworkIdentifier", "dzg6xy7pwj.skadnetwork"); + + PlistElementDict dic108; + dic108 = URLWhiteListArr2.AddDict(); + dic108.SetString("SKAdNetworkIdentifier", "x8uqf25wch.skadnetwork"); + + PlistElementDict dic109; + dic109 = URLWhiteListArr2.AddDict(); + dic109.SetString("SKAdNetworkIdentifier", "58922nb4gd.skadnetwork"); + + PlistElementDict dic110; + dic110 = URLWhiteListArr2.AddDict(); + dic110.SetString("SKAdNetworkIdentifier", "gvmwg8q7h5.skadnetwork"); + + PlistElementDict dic111; + dic111 = URLWhiteListArr2.AddDict(); + dic111.SetString("SKAdNetworkIdentifier", "hdw39hrw9y.skadnetwork"); + + PlistElementDict dic112; + dic112 = URLWhiteListArr2.AddDict(); + dic112.SetString("SKAdNetworkIdentifier", "8c4e2ghe7u.skadnetwork"); + + PlistElementDict dic113; + dic113 = URLWhiteListArr2.AddDict(); + dic113.SetString("SKAdNetworkIdentifier", "v4nxqhlyqp.skadnetwork"); + + PlistElementDict dic114; + dic114 = URLWhiteListArr2.AddDict(); + dic114.SetString("SKAdNetworkIdentifier", "c3frkrj4fj.skadnetwork"); + + PlistElementDict dic115; + dic115 = URLWhiteListArr2.AddDict(); + dic115.SetString("SKAdNetworkIdentifier", "nzq8sh4pbs.skadnetwork"); + + PlistElementDict dic116; + dic116 = URLWhiteListArr2.AddDict(); + dic116.SetString("SKAdNetworkIdentifier", "pu4na253f3.skadnetwork"); + + PlistElementDict dic117; + dic117 = URLWhiteListArr2.AddDict(); + dic117.SetString("SKAdNetworkIdentifier", "6964rsfnh4.skadnetwork"); + + PlistElementDict dic118; + dic118 = URLWhiteListArr2.AddDict(); + dic118.SetString("SKAdNetworkIdentifier", "74b6s63p6l.skadnetwork"); + + PlistElementDict dic119; + dic119 = URLWhiteListArr2.AddDict(); + dic119.SetString("SKAdNetworkIdentifier", "84993kbrcf.skadnetwork"); + + PlistElementDict dic120; + dic120 = URLWhiteListArr2.AddDict(); + dic120.SetString("SKAdNetworkIdentifier", "y45688jllp.skadnetwork"); + + PlistElementDict dic121; + dic121 = URLWhiteListArr2.AddDict(); + dic121.SetString("SKAdNetworkIdentifier", "yrqqpx2mcb.skadnetwork"); + + PlistElementDict dic122; + dic122 = URLWhiteListArr2.AddDict(); + dic122.SetString("SKAdNetworkIdentifier", "z4gj7hsk7h.skadnetwork"); + + PlistElementDict dic123; + dic123 = URLWhiteListArr2.AddDict(); + dic123.SetString("SKAdNetworkIdentifier", "u679fj5vs4.skadnetwork"); + + PlistElementDict dic124; + dic124 = URLWhiteListArr2.AddDict(); + dic124.SetString("SKAdNetworkIdentifier", "a7xqa6mtl2.skadnetwork"); + + PlistElementDict dic125; + dic125 = URLWhiteListArr2.AddDict(); + dic125.SetString("SKAdNetworkIdentifier", "g2y4y55b64.skadnetwork"); + + PlistElementDict dic126; + dic126 = URLWhiteListArr2.AddDict(); + dic126.SetString("SKAdNetworkIdentifier", "pwdxu55a5a.skadnetwork"); + #endregion + + PlistElementArray urlTypes = plist.root.CreateArray("CFBundleURLTypes"); + + PlistElementDict dict = urlTypes.AddDict(); + dict.SetString("CFBundleURLName", Application.identifier); + PlistElementArray schemesArray = dict.CreateArray("CFBundleURLSchemes"); + schemesArray.AddString(Application.identifier); + + File.WriteAllText(plistPath, plist.WriteToString()); + } + + private static void ModifyBundle(string _path) + { +#if !AppStore_GB + string projectPath = PBXProject.GetPBXProjectPath(_path); + + PBXProject pbxProject = new PBXProject(); + pbxProject.ReadFromFile(projectPath); + // 获取主 target +#if UNITY_2019_3_OR_NEWER + string mainTarget = pbxProject.GetUnityMainTargetGuid(); +#else + string targetName = UnityEditor.iOS.Xcode.PBXProject.GetUnityTargetName(); + string mainTarget = pbxProject.TargetGuidByName(targetName); +#endif + pbxProject.AddFileToBuild(mainTarget, pbxProject.AddFile("Frameworks/Plugins/ToukaGames/Plugins/iOS/ToponSDK/Core/AnyThinkSDK.bundle", "Frameworks/Plugins/ToukaGames/Plugins/iOS/ToponSDK/Core/AnyThinkSDK.bundle", PBXSourceTree.Sdk)); + pbxProject.AddFileToBuild(mainTarget, pbxProject.AddFile("Frameworks/Plugins/ToukaGames/Plugins/iOS/ToponSDK/pangle_China/BUAdSDK.bundle", "Frameworks/Plugins/ToukaGames/Plugins/iOS/ToponSDK/pangle_China/BUAdSDK.bundle", PBXSourceTree.Sdk)); + pbxProject.WriteToFile(projectPath); +#endif + } + + private static void ModifyCode(string _path) + { +#if !AppStore_GB + ToukaClassHelper SplashScreenController = new ToukaClassHelper(_path + "/Classes/UI/SplashScreen.mm"); + + if (!SplashScreenController.HasBolow("#import ")) + { + + SplashScreenController.WriteBelow("#include \"SplashScreen.h\"", "#import "); + SplashScreenController.WriteBelow("void HideSplashScreen()\n{", "[[TONativeSplashHelper helper]showSplashInLaunch];"); + + } +#endif + +#if USE_SPLASH + + ToukaClassHelper SplashScreenControllers = new ToukaClassHelper(_path + "/Classes/UI/SplashScreen.mm"); + + if (!SplashScreenControllers.HasBolow("#import ")) + { + + SplashScreenControllers.WriteBelow("#include \"SplashScreen.h\"", "#import "); + SplashScreenControllers.WriteBelow("void HideSplashScreen()\n{", "[[TKGSplashManager manager]showSplashInLaunch];"); + + } + + ToukaClassHelper UnityAppController = new ToukaClassHelper(_path + "/Classes/UnityAppController.mm"); + if (!UnityAppController.HasBolow("[[TKGSplashManager manager] showSplashInEnterForground];")) + { + UnityAppController.WriteBelow("#import \"UnityAppController.h\"", "\n#import "); + UnityAppController.WriteBelow("UnityPause(0);", "\n[[TKGSplashManager manager] showSplashInEnterForground];"); + } + + +#endif + + + } +#endif + } + + public partial class ToukaClassHelper + { + + private string filePath; + + public ToukaClassHelper(string fPath) + { + filePath = fPath; + if (!System.IO.File.Exists(filePath)) + { + TKGDebugger.LogError(filePath + "路径下文件不存在"); + return; + } + } + + public void WriteBelow(string below, string text) + { + StreamReader streamReader = new StreamReader(filePath); + string text_all = streamReader.ReadToEnd(); + streamReader.Close(); + + int beginIndex = text_all.IndexOf(below); + if (beginIndex == -1) + { + TKGDebugger.LogError(filePath + "中没有找到标致" + below); + return; + } + + int endIndex = text_all.LastIndexOf("\n", beginIndex + below.Length); + + text_all = text_all.Substring(0, endIndex) + "\n" + text + "\n" + text_all.Substring(endIndex); + + StreamWriter streamWriter = new StreamWriter(filePath); + streamWriter.Write(text_all); + streamWriter.Close(); + } + + public void Replace(string below, string newText) + { + StreamReader streamReader = new StreamReader(filePath); + string text_all = streamReader.ReadToEnd(); + streamReader.Close(); + + int beginIndex = text_all.IndexOf(below); + if (beginIndex == -1) + { + TKGDebugger.LogError(filePath + "中没有找到标致" + below); + return; + } + + text_all = text_all.Replace(below, newText); + StreamWriter streamWriter = new StreamWriter(filePath); + streamWriter.Write(text_all); + streamWriter.Close(); + + } + + public bool HasBolow(string below) + { + StreamReader streamReader = new StreamReader(filePath); + string text_all = streamReader.ReadToEnd(); + streamReader.Close(); + + int beginIndex = text_all.IndexOf(below); + if (beginIndex == -1) + { + TKGDebugger.LogDebug("[" + GetType() + "]" + filePath + "中没有找到标致" + below); + return false; + } + return true; + } + } +} +#endif diff --git a/Assets/TKGSDK/Editor/ToukaAdsBuildPostProcessor.cs.meta b/Assets/TKGSDK/Editor/ToukaAdsBuildPostProcessor.cs.meta new file mode 100644 index 00000000..87befe95 --- /dev/null +++ b/Assets/TKGSDK/Editor/ToukaAdsBuildPostProcessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d5a192a0244ba471d9b62fcbd74eb4ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Editor/ToukaAnalyticsBuildPostProcessor.cs b/Assets/TKGSDK/Editor/ToukaAnalyticsBuildPostProcessor.cs new file mode 100644 index 00000000..4d09d37b --- /dev/null +++ b/Assets/TKGSDK/Editor/ToukaAnalyticsBuildPostProcessor.cs @@ -0,0 +1,221 @@ +#if UNITY_IOS +using System.IO; +using System.Runtime.InteropServices.WindowsRuntime; +using UnityEditor; +using UnityEditor.Callbacks; +#if UNITY_IOS +using UnityEditor.iOS.Xcode; +#endif +using UnityEngine; + +public class ToukaAnalyticsBuildPostProcessor +{ + [PostProcessBuild] + public static void OnPostprocessBuild(BuildTarget buildTarget, string path) + { + if (buildTarget != BuildTarget.iOS) return; + +#if UNITY_IOS + copyConfigFile(path); + SetTeamIdAutoSign(path); + ModifyFrameworks(path); + ModifyBuildSettings(path); + + ModifyInfoPlist(path); + + //AddLocalization(path); + CopySplashImg(path); +#endif + } + + private static void ModifyFrameworks(string _path) + { +#if UNITY_IOS + string projPath = PBXProject.GetPBXProjectPath(_path); + PBXProject proj = new PBXProject(); + + + proj.ReadFromString(File.ReadAllText(projPath)); +#if UNITY_2019_3_OR_NEWER + string target = proj.GetUnityFrameworkTargetGuid(); +#else + string target = proj.TargetGuidByName("Unity-iPhone"); +#endif + + proj.AddFrameworkToProject(target, "GLKit.framework", false); + proj.AddFrameworkToProject(target, "CoreGraphics.framework", false); + proj.AddFrameworkToProject(target, "SystemConfiguration.framework", false); + proj.AddFrameworkToProject(target, "Photos.framework", false); + proj.AddFrameworkToProject(target, "AppTrackingTransparency.framework", false); + proj.AddFrameworkToProject(target, "StoreKit.framework", false); + proj.AddFrameworkToProject(target, "CoreData.framework", false); + proj.AddFrameworkToProject(target, "AVFoundation.framework", false); + proj.AddFrameworkToProject(target, "Accelerate.framework", false); + proj.AddFrameworkToProject(target, "AdSupport.framework", false); + proj.AddFrameworkToProject(target, "AudioToolbox.framework", false); + proj.AddFrameworkToProject(target, "CoreLocation.framework", false); + proj.AddFrameworkToProject(target, "CoreMedia.framework", false); + proj.AddFrameworkToProject(target, "CoreMotion.framework", false); + proj.AddFrameworkToProject(target, "CoreTelephony.framework", false); + proj.AddFrameworkToProject(target, "MobileCoreServices.framework", false); + proj.AddFrameworkToProject(target, "SafariServices.framework", false); + proj.AddFrameworkToProject(target, "VideoToolbox.framework", false); + proj.AddFrameworkToProject(target, "WebKit.framework", false); + + + + string fileGuidSqlite = proj.AddFile("usr/lib/libxml2.tbd", "Libraries/libxml2.tbd", PBXSourceTree.Sdk); + proj.AddFileToBuild(target, fileGuidSqlite); + fileGuidSqlite = proj.AddFile("usr/lib/libsqlite3.tbd", "Libraries/libsqlite3.tbd", PBXSourceTree.Sdk); + proj.AddFileToBuild(target, fileGuidSqlite); + fileGuidSqlite = proj.AddFile("usr/lib/libc++.tbd", "Libraries/libc++.tbd", PBXSourceTree.Sdk); + proj.AddFileToBuild(target, fileGuidSqlite); + fileGuidSqlite = proj.AddFile("usr/lib/libz.tbd", "Libraries/libz.tbd", PBXSourceTree.Sdk); + proj.AddFileToBuild(target, fileGuidSqlite); + fileGuidSqlite = proj.AddFile("usr/lib/libresolv.tbd", "Libraries/libresolv.tbd", PBXSourceTree.Sdk); + proj.AddFileToBuild(target, fileGuidSqlite); + fileGuidSqlite = proj.AddFile("usr/lib/libbz2.1.0.tbd", "Libraries/libbz2.1.0.tbd", PBXSourceTree.Sdk); + proj.AddFileToBuild(target, fileGuidSqlite); + fileGuidSqlite = proj.AddFile("usr/lib/libresolv.9.tbd", "Libraries/libresolv.9.tbd", PBXSourceTree.Sdk); + proj.AddFileToBuild(target, fileGuidSqlite); + fileGuidSqlite = proj.AddFile("usr/lib/libc++abi.tbd", "Libraries/libc++abi.tbd", PBXSourceTree.Sdk); + proj.AddFileToBuild(target, fileGuidSqlite); + + // sdk config files + proj.AddFileToBuild(target, proj.AddFile("tkg_config.plist", "tkg_config.plist",PBXSourceTree.Source)); + File.WriteAllText(projPath, proj.WriteToString()); + +#if UNITY_2019_3_OR_NEWER + string mainTarget = proj.GetUnityMainTargetGuid(); +#else + string targetName = UnityEditor.iOS.Xcode.PBXProject.GetUnityTargetName(); + string mainTarget = proj.TargetGuidByName(targetName); +#endif + proj.AddFileToBuild(mainTarget, proj.AddFile("tkg_config.plist", "tkg_config.plist", PBXSourceTree.Source)); + proj.WriteToFile(projPath); + + proj.AddFileToBuild(target, proj.AddFile("tkg_sdk_config.plist", "tkg_sdk_config.plist", PBXSourceTree.Source)); + File.WriteAllText(projPath, proj.WriteToString()); + + proj.AddFileToBuild(mainTarget, proj.AddFile("tkg_sdk_config.plist", "tkg_sdk_config.plist", PBXSourceTree.Source)); + proj.WriteToFile(projPath); + +#if AppStore_GB + proj.AddFileToBuild(target, proj.AddFile("GoogleService-Info.plist", "GoogleService-Info.plist", PBXSourceTree.Source)); + File.WriteAllText(projPath, proj.WriteToString()); + + proj.AddFileToBuild(mainTarget, proj.AddFile("GoogleService-Info.plist", "GoogleService-Info.plist", PBXSourceTree.Source)); + proj.WriteToFile(projPath); + +#endif + +#endif + } + + private static void copyConfigFile(string path) + { +#if AppStore_GB + string configPath = Application.dataPath + "/Configs/GB/tkg_config.plist"; + File.Copy(configPath, path + "/tkg_config.plist", true); + + string sdkConfigPath = Application.dataPath + "/Configs/GB/tkg_sdk_config.plist"; + File.Copy(sdkConfigPath, path + "/tkg_sdk_config.plist", true); + + string googlePath = Application.dataPath + "/Configs/GB/GoogleService-Info.plist"; + File.Copy(googlePath, path + "/GoogleService-Info.plist", true); +#else + string configPath = Application.dataPath + "/Configs/CN/tkg_config.plist"; + File.Copy(configPath, path + "/tkg_config.plist", true); + + string sdkConfigPath = Application.dataPath + "/Configs/CN/tkg_sdk_config.plist"; + File.Copy(sdkConfigPath, path + "/tkg_sdk_config.plist", true); +#endif + } + + + private static void ModifyBuildSettings(string _path) + { +#if UNITY_IOS + string projPath = PBXProject.GetPBXProjectPath(_path); + PBXProject proj = new PBXProject(); + proj.ReadFromString(File.ReadAllText(projPath)); + +#if UNITY_2019_3_OR_NEWER + string target = proj.GetUnityFrameworkTargetGuid(); +#else + string target = proj.TargetGuidByName("Unity-iPhone"); +#endif + + proj.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC"); + proj.SetBuildProperty(target, "ENABLE_BITCODE", "NO"); + proj.SetBuildProperty(target, "GCC_C_LANGUAGE_STANDARD", "gnu11"); + + + File.WriteAllText(projPath, proj.WriteToString()); +#endif + } + + private static void SetTeamIdAutoSign(string _path) + { +#if UNITY_IOS + string projPath = PBXProject.GetPBXProjectPath(_path); + PBXProject proj = new PBXProject(); + proj.ReadFromString(File.ReadAllText(projPath)); + File.WriteAllText(projPath, proj.WriteToString()); +#endif + } + + private static void ModifyInfoPlist(string _path) + { +#if UNITY_IOS + //2、修改Info.plist文件 + var plistPath = Path.Combine(_path, "Info.plist"); + var plist = new PlistDocument(); + plist.ReadFromFile(plistPath); +#if !AppStore_GB + plist.root.SetString("NSLocationAlwaysUsageDescription", "为了更好的体验游戏"); + plist.root.SetString("NSLocationWhenInUseUsageDescription", "为了更好的体验游戏"); + plist.root.SetString("NSUserTrackingUsageDescription", "该标识符将用于向您投放个性化广告"); + plist.root.SetString("NSPhotoLibraryUsageDescription", "为了更好的体验游戏,请允许APP保存图片到您的相册"); +#else + plist.root.SetString ("NSLocationAlwaysUsageDescription", "for better experience the game"); + plist.root.SetString ("NSLocationWhenInUseUsageDescription", "for better experience the game"); + plist.root.SetString("NSUserTrackingUsageDescription", "This identifier will be used to deliver personalized ads to you."); + plist.root.SetString("NSPhotoLibraryUsageDescription", "In order to experience the game better, please allow the APP to save pictures to your album."); + +#endif + File.WriteAllText(plistPath, plist.WriteToString()); +#endif + } + + + +// static void AddLocalization(string path) +// { +//#if !NO_SDK +// string pliststringPath = Application.dataPath + "/TKGSDK/UnitySDK/Plugins/ToukaGames/iOS/CommonPackage/lang/infoplist"; +// NativeLocale.AddLocalizedStringsIOS(path, pliststringPath); +//#endif +// } + + static void CopySplashImg(string path) + { +#if !AppStore_GB + string splashImgPath = Application.dataPath + "/TKGSDK/Splash/CN/LaunchScreen-iPhonePortrait.png"; + File.Copy(splashImgPath, path + "/LaunchScreen-iPhonePortrait.png", true); + + string splashImgPathIpad = Application.dataPath + "/TKGSDK/Splash/CN/LaunchScreen-iPad.png"; + File.Copy(splashImgPathIpad, path + "/LaunchScreen-iPad.png", true); +#else + + string splashImgPath = Application.dataPath + "/TKGSDK/Splash/GB/LaunchScreen-iPhonePortrait.png"; + File.Copy(splashImgPath, path + "/LaunchScreen-iPhonePortrait.png", true); + + string splashImgPathIpad = Application.dataPath + "/TKGSDK/Splash/GB/LaunchScreen-iPad.png"; + File.Copy(splashImgPathIpad, path + "/LaunchScreen-iPad.png", true); +#endif + + } + +} +#endif \ No newline at end of file diff --git a/Assets/TKGSDK/Editor/ToukaAnalyticsBuildPostProcessor.cs.meta b/Assets/TKGSDK/Editor/ToukaAnalyticsBuildPostProcessor.cs.meta new file mode 100644 index 00000000..edadab3f --- /dev/null +++ b/Assets/TKGSDK/Editor/ToukaAnalyticsBuildPostProcessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1c02797fe6f3e4bdea04105d52492716 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Editor/ToukaEditor.cs b/Assets/TKGSDK/Editor/ToukaEditor.cs new file mode 100644 index 00000000..ee700f9e --- /dev/null +++ b/Assets/TKGSDK/Editor/ToukaEditor.cs @@ -0,0 +1,208 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using System; +using System.IO; +using System.Text; + +namespace Touka +{ + public class ToukaEditor + { + static string assetPath = Application.dataPath; + static string maxPath = assetPath + "/Plugins/ToukaGames/ADSSDK/MAXSDKs"; + static string toponPath = assetPath + "/Plugins/ToukaGames/ADSSDK/ToponSDK"; + static string maxPathX = assetPath + "/Plugins/ToukaGames/ADSSDK/MAXSDKs~"; + static string toponPathX = assetPath + "/Plugins/ToukaGames/ADSSDK/ToponSDK~"; + + [MenuItem("ToukaGames/ClearPlayerPrefs", priority = 1)] + public static void ClearPlayerPrefs() + { + PlayerPrefs.DeleteAll(); + PlayerPrefs.Save(); + } + + [MenuItem("ToukaGames/Settings For IOS CN", priority=1001)] + public static void SetIOSCNTOPONSeting() + { +#if UNITY_IOS + SetAPPSetting(AppChannel.AppStore_CN); +#endif + } + + [MenuItem("ToukaGames/Settings For Android CN", priority = 1002)] + public static void SetAndroidCNSeting() + { +#if UNITY_ANDROID + SetAPPSetting(AppChannel.GW002); +#endif + } + + [MenuItem("ToukaGames/Settings For IOS GB", priority = 10001)] + public static void SetIOSUSSeting() + { +#if UNITY_IOS + SetAPPSetting(AppChannel.AppStore_GB); +#endif + } + + [MenuItem("ToukaGames/Settings For Android GB", priority = 10002)] + public static void SetAndroidGPSeting() + { +#if UNITY_ANDROID + + SetAPPSetting(AppChannel.GooglePlay); +#endif + + } + + + + #region inner + + /// + /// Set APP Setting + /// + /// + public static void SetAPPSetting(AppChannel _appChannel) + { + Debug.Log("SetAPPSetting _appChannel : " + _appChannel); +#if UNITY_IOS + // bundle id + if(_appChannel == AppChannel.AppStore_CN || _appChannel == AppChannel.AppStore_GB) + { + Debug.Log("SetAPPSetting 01 ----- _AppChannelSymbol : " + _appChannel); + PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.iOS, TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_BunldId, _appChannel)); + } +#endif + +#if UNITY_ANDROID + Debug.Log("SetAPPSetting 02 android ----- _AppChannelSymbol : " + _appChannel); + PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_BunldId, _appChannel)); +#endif + + // game name + PlayerSettings.productName = TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_AppName, _appChannel); + Debug.Log("productName : " + PlayerSettings.productName); + + // ScriptingDefineSymbols & ads sdks + ChangeDefineSymbols(_appChannel); + } + + + /// + /// change define symbols + /// + /// + private static void ChangeDefineSymbols(AppChannel _appChannel) + { + BuildTargetGroup buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup; + string symbolsStr = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup); + Debug.Log("symbolsStr : " + symbolsStr); + + string[] symbols = symbolsStr.Split(';'); + HashSet symbolSet = new HashSet(); + for (int i = 0; i < symbols.Length; ++i) + { + if (!symbolSet.Contains(symbols[i])) + { + symbolSet.Add(symbols[i]); + } + } + + // remove all + if (symbolSet.Contains(AppChannel.AppStore_CN.ToString())) + { + symbolSet.Remove(AppChannel.AppStore_CN.ToString()); + } + + if (symbolSet.Contains(AppChannel.AppStore_GB.ToString())) + { + symbolSet.Remove(AppChannel.AppStore_GB.ToString()); + } + + if (symbolSet.Contains(AppChannel.GooglePlay.ToString())) + { + symbolSet.Remove(AppChannel.GooglePlay.ToString()); + } + + if (symbolSet.Contains(AppChannel.GW002.ToString())) + { + symbolSet.Remove(AppChannel.GW002.ToString()); + } + + // set new + if (_appChannel == AppChannel.AppStore_GB || _appChannel == AppChannel.GooglePlay) + { + symbolSet.Add(_appChannel.ToString()); + } + + + + // save data + StringBuilder sb = new StringBuilder(); + foreach (string s in symbolSet) + { + sb.Append(s + ";"); + } + PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, sb.ToString()); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + + /// + /// SeIOSSDKDir + /// + /// + private static void SeIOSSDKDir(AppChannel _AppChannelSymbol) + { + if (_AppChannelSymbol == AppChannel.AppStore_CN) // iOS CN + { + if (Directory.Exists(maxPath)) + { + ChangePathName(maxPath, maxPathX); + } + + if (!Directory.Exists(toponPath)) + { + if (Directory.Exists(toponPathX)) + { + ChangePathName(toponPathX, toponPath); + } + } + } + else if (_AppChannelSymbol == AppChannel.AppStore_GB) // iOS GB + { + if (Directory.Exists(toponPath)) + { + ChangePathName(toponPath, toponPathX); + } + + if (!Directory.Exists(maxPath)) + { + if (Directory.Exists(maxPathX)) + { + ChangePathName(maxPathX, maxPath); + } + } + } + else + { + TKGDebugger.LogDebug("other channel"); + } + } + + /// + /// change path name + /// + /// + /// + private static void ChangePathName(string _oldPath, string _newPath) + { + System.IO.File.Move(_oldPath, _newPath); + } + +#endregion + } +} \ No newline at end of file diff --git a/Assets/TKGSDK/Editor/ToukaEditor.cs.meta b/Assets/TKGSDK/Editor/ToukaEditor.cs.meta new file mode 100644 index 00000000..a81b2d67 --- /dev/null +++ b/Assets/TKGSDK/Editor/ToukaEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 715e90528ea174aef907d1f891638973 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK.meta b/Assets/TKGSDK/NativeSDK.meta new file mode 100644 index 00000000..57e4f451 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bc968b79be21f4edc9adab0ca6fba537 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts.meta b/Assets/TKGSDK/NativeSDK/Scripts.meta new file mode 100644 index 00000000..fec5dfb9 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eed640b9c819040d39a8835cc0c84f43 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK.meta b/Assets/TKGSDK/NativeSDK/Scripts/SDK.meta new file mode 100644 index 00000000..71ef2c46 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9a1639d320c7b43edbd68ef2df35cad7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterface.cs b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterface.cs new file mode 100644 index 00000000..447a2cc5 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterface.cs @@ -0,0 +1,447 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + /// + /// TKG Native SDK interface call + /// + public abstract class TKGNativeInterface + { + private static TKGNativeInterface _instance; + + private string UnitySDKVersion = "2.2.2"; + + public static TKGNativeInterface Instance + { + get + { + if (_instance == null) + { +#if UNITY_EDITOR || UNITY_STANDLONE + _instance = new TKGNativeInterfaceWebgl(); +#elif UNITY_ANDROID + _instance = new TKGNativeInterfaceAndroid(); +#elif UNITY_IOS + _instance = new TKGNativeInterfaceIOS(); +#elif UNITY_WEBGL + _instance = new TKGNativeInterfaceWebgl(); +#endif + } + + return _instance; + } + } + + /// + /// init + /// + public virtual void Init(Action _initCallback = null) + { + TKGSDKCallback.SetInitCallback(_initCallback); + SetUnitySDKVersion(UnitySDKVersion); + } + + /// + /// Set game focus + /// + /// + public virtual void SetGameFocusListener(Action _gameFocusAction) + { + TKGSDKCallback.SetGameFocusCallback(_gameFocusAction); + } + + public virtual void SetRewardClickListener(Action _rewardClickAction) + { + TKGSDKCallback.SetRewardClickCallback(_rewardClickAction); + } + + /// + /// Get Channel + /// + /// + public abstract string GetChannel(); + + #region Ads + + public abstract void PurchasedRemoveAds(); + + public abstract void SetUnitySDKVersion(string sdkVersion); + + + #region Ads Show + + public abstract void RemoveNativeAd(); + + public abstract bool IsReadyNativeAd(); + + public abstract void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = ""); + + /// + /// Show banner Ad + /// + /// bannerAlign + public abstract void showBannerAd(TKGBannerAlign _pos); + + /// + /// Hide Banner Ad + /// + public abstract void hideBannerAd(); + + /// + /// Show Interstitial Ad + /// + /// auto log event : iv_ad_show + /// + public abstract void showInterstitialAd(); + + /// + /// Show Interstitial Ad + /// + /// auto log event : iv_ad_show & _adPos(eg.stage_end) + /// + /// + public abstract void showInterstitialAd(string _adPos, IVADType _IvType = IVADType.IV1); + + /// + /// Show Reward Ad + /// + /// + /// + public abstract void showRewardAd(string _adPos, int _itemCount = -1); + + /// + /// Show Reward Ad + /// + /// + /// + /// + public abstract void showRewardAd(string _adPos, int _itemCount, Dictionary _extraEvent); + + /// + /// Show Video Ad + /// + /// + /// + public abstract void showVideoAd(string _adPos, int _itemCount = -1); + + #endregion + + #region Ads isready + + /// + /// banner isReady + /// + /// + public abstract bool isBannerAdReady(); + + /// + /// Interstitial isReady + /// + /// + public abstract bool isInterstitialAdReady(); + + /// + /// Reward isReady + /// + /// + public abstract bool isRewardAdReady(); + + /// + /// FullScreen isReady + /// + /// + public abstract bool isVideoAdReady(); + + + #endregion + + #region Set Ads callback + + /// + /// Set Banner Ad Callback + /// + /// + public abstract void SetBannerAdCallback(AndroidBannerADTKGAdCallback _bannerCallback); + + /// + /// Set Interstital Ad Callback + /// + /// + public abstract void setInterstitalAdCallback(AndroidInterADTKGAdCallback _interCallback); + + /// + /// Set reward Ad Callback + /// + /// + public abstract void SetRewardAdCallback(AndroidRewardADTKGAdCallback _rewardCallback); + + /// + /// Set video Ad Callback(full screen ad, reward ad with no reward callback) + /// + /// + public abstract void setVideoAdCallback(AndroidInterADTKGAdCallback _videoCallback); + + + #endregion + + #region load ads + + /// + /// load interstitial ad + /// (retry 3 times, per time interval 10s) + /// + public abstract void loadInterstitialAD(); + + /// + /// load reward ad + /// (retry 3 times, per time interval 10s) + /// + public abstract void loadRewardAD(); + + /// + /// load video ad + /// (retry 3 times, per time interval 10s) + /// + public abstract void loadVideoAD(); + + #endregion + + + #endregion + + #region Log Event + + #region Normal + + /// + /// onEvent + /// + /// + /// + public abstract void onEvent(string _eventName); + + /// + /// onEvent + /// + /// + /// + /// + /// + public abstract void onEvent(string _eventName, string _key01, string _value01); + + /// + /// onEvent + /// + /// + /// + /// + /// + /// + /// + public abstract void onEvent(string _eventName, string _key01, string _value01, string _key02, string _value02); + + /// + /// onEvent + /// + /// + /// + public abstract void onEvent(string _eventName, Dictionary _keyValues); + + #endregion + + #region Level Event + + /// + /// Level Start + /// + /// + public abstract void LevelStart(string _levelId); + + /// + /// Level end + /// + /// + /// + public abstract void LevelEnd(string _levelId, StageResult _stageResult); + + #endregion + + #region Tracking Event + + /// + /// Log Tracking Event + /// + /// + public abstract void LogTrackingEvent(TrackingEventType _eventType); + + #endregion + + #endregion + + #region Online Config + + /// + /// get config - int + /// + /// + /// + public abstract int GetConfigInt(string _key, int _default); + + /// + /// get config - string + /// + /// + /// + /// + public abstract string GetConfigString(string _key, string _default); + + /// + /// get config - bool + /// + /// + /// + /// + public abstract bool GetConfigBool(string _key, bool _default); + + #endregion + + #region Others (Common) + + /// + /// review + /// + public abstract void Review(); + + /// + /// open Privacy url + /// + public abstract void OpenPrivacyURL(); + + /// + /// open user term url + /// + public abstract void OpenUserTermURL(); + + /// + /// open policy pop + /// + public abstract void OpenPolicyPop(); + + + /// + /// More Games + /// + public abstract void OpenMoreGame(); + + #endregion + + #region Others (Uncommon) + + /// + /// shake(no repeat) + /// + /// shake time + public abstract void shake(int _shakeType, float _intensity = 1); + + /// + /// shake(can repeat) + /// + /// repeat times : -1 + /// wait time,shake time(100,1000,100,111) + //public abstract void shake(int _repeatTimes, params int[] _shakeTime); + + /// + /// cancel shake + /// + public abstract void cancelShake(); + + /// + /// Show Tips + /// Pop-up prompt (the one with black transparent background) unified style, Chinese, Japanese, Korean and English, support multi-language, multi-language text + /// + /// game judges different languages ​​by itself and passes different strings + /// + /// title + /// content + public abstract void dialogTips(string _titleStr, string _contentStr); + + /// + /// Open ULR by Browser + /// + /// + public abstract void openUrlBrowser(string _url); + + /// + /// Open ULR By WEB POP + /// + /// + public abstract void openWebUrl(string _url); + + /// + /// show Toast + /// + /// + public abstract void toast(string _content); + + /// + /// push message + /// + public abstract void pushMsg(); + + /// + /// set log enable + /// + /// + public abstract void SetLogEnable(bool _enable); + + /// + /// share txt + /// + /// + public abstract void ShareTxt(string _shareTxt); + + /// + /// regist APNS + /// + public abstract void RegistAPNS(); + + /// + /// shake + /// + /// notification identifier + /// The body of the notification. + /// notify after the time interval. format: yyyy-MM-dd HH:mm:ss + /// The application badge number. + /// The title of the notification. + /// The subtitle of the notification. + public abstract void RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle); + + /// + /// remove all notification + /// + public abstract void RemoveAllNotifications(); + + /// + /// remove notification by notification identifier + /// + /// notification identifier + public abstract void RemoveNotification(string notiId); + #endregion + + #region other callback + + /// + /// set tkg common callback + /// + public abstract void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback); + + /// + /// set user source callback + /// + public abstract void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback); + + #endregion + } +} \ No newline at end of file diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterface.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterface.cs.meta new file mode 100644 index 00000000..2dbda7d6 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterface.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e6ecace952721427f90ad8d4b4f8f6c4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceAndroid.cs b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceAndroid.cs new file mode 100644 index 00000000..1e60d526 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceAndroid.cs @@ -0,0 +1,712 @@ +#if UNITY_ANDROID + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + /// + /// TKG Native SDK Android platform interface call + /// + public class TKGNativeInterfaceAndroid : TKGNativeInterface + { + + private AndroidJavaObject jo; + + public TKGNativeInterfaceAndroid() + { + // java interface class + using (AndroidJavaClass jc = new AndroidJavaClass("com.touka.tkg.TKGProxyJava")) + { + jo = jc.CallStatic("getInstance"); + } + } + + private T SDKCall(string _method, params object[] _param) + { + try + { + return jo.Call(_method, _param); + } + catch (Exception e) + { + Debug.LogError(e); + } + return default(T); + } + + private void SDKCall(string _method, params object[] _param) + { + try + { + jo.Call(_method, _param); + } + catch (Exception e) + { + Debug.LogError(e); + } + } + +#region init + + /// + /// init + /// + /// + public override void Init(Action _initCallback = null) + { + TKGDebugger.LogDebug("init ----- 00"); + base.Init(_initCallback); + TKGDebugger.LogDebug("init ----- 01"); + SetBannerAdCallback(new AndroidBannerADTKGAdCallback()); + TKGDebugger.LogDebug("init ----- 01 ------- a"); + setInterstitalAdCallback(new AndroidInterADTKGAdCallback()); + TKGDebugger.LogDebug("init ----- 01 ------- b"); + SetRewardAdCallback(new AndroidRewardADTKGAdCallback()); + TKGDebugger.LogDebug("init ----- 01 ------- c"); + SetSDKCommonCallback(new AndroidTKGCommonCalllback()); + TKGDebugger.LogDebug("init ----- 01 ------- d"); + + SDKCall("init", new AndroidProxyCallback()); + TKGDebugger.LogDebug("init ----- 02"); + } + +#endregion + + /// + /// Get Channel + /// + /// + public override string GetChannel() + { +#if UNITY_ANDROID + return SDKCall("getChannel"); +#endif + return "AndroidRoot"; + } + +#region Ads + + public override void PurchasedRemoveAds() + { +#if UNITY_ANDROID + SDKCall("purchasedRemoveAds"); +#endif + } + + public override void SetUnitySDKVersion(string sdkVersion) + { + +#if UNITY_ANDROID + SDKCall("setUnitySDKVersion","UnitySDK",sdkVersion); +#endif + + } + +#region Ads Show + + /// + /// Show banner Ad + /// + /// bannerAlign + public override void showBannerAd(TKGBannerAlign _pos) + { + int _posIndex = 2; + if(_pos == TKGBannerAlign.BannerCenterTopAlign) + { + _posIndex = 1; + + } + else if(_pos == TKGBannerAlign.BannerCenterBottomAlign) + { + _posIndex = 2; + } +#if UNITY_ANDROID + SDKCall("showBannerAd", _posIndex); +#endif + } + + /// + /// Hide Banner Ad + /// + public override void hideBannerAd() + { +#if UNITY_ANDROID + SDKCall("hideBannerAd"); +#endif + } + + public override void RemoveNativeAd() + { +#if UNITY_ANDROID + SDKCall("hideNative"); +#endif + } + + /// + /// Show Interstitial Ad + /// + public override void showInterstitialAd() + { +#if UNITY_ANDROID + SDKCall("showInterstitialAd"); +#endif + } + + /// + /// Show Interstitial Ad + /// + /// + public override void showInterstitialAd(string _adPos, IVADType _IvType = IVADType.IV1) + { + +#if UNITY_ANDROID + SDKCall("showInterstitialAd", _adPos, (int)_IvType); +#endif + } + + /// + /// Show Reward Ad + /// + /// + /// + public override void showRewardAd(string _adPos, int _itemCount = -1) + { + +#if UNITY_ANDROID + SDKCall("showRewardAd", _adPos, _itemCount); +#endif + } + + /// + /// Show Reward Ad + /// + /// + /// + /// + public override void showRewardAd(string _adPos, int _itemCount, Dictionary _extraEvent) + { +#if UNITY_ANDROID + SDKCall("showRewardAd", _adPos, _itemCount, _extraEvent); +#endif + } + + /// + /// Show Video Ad + /// + /// + /// + public override void showVideoAd(string _adPos, int _itemCount = -1) + { +#if UNITY_ANDROID + SDKCall("showVideoAd", _adPos, _itemCount); +#endif + } + + public override void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = "") + { +#if UNITY_ANDROID + Vector3[] tWorldCorners = new Vector3[4]; + pRect.GetWorldCorners(tWorldCorners); + + Vector2 tTopLeft = RectTransformUtility.WorldToScreenPoint(pCam, tWorldCorners[1]); + Vector2 tBottomRight = RectTransformUtility.WorldToScreenPoint(pCam, tWorldCorners[3]); + float tWidth = Mathf.Abs(tBottomRight.x - tTopLeft.x); + float tHeight = Mathf.Abs(tBottomRight.y - tTopLeft.y); + // x , y , width , height + // ((tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight) + SDKCall("showNative", pAdPos, tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight, pAdPos); +#endif + + } +#endregion + + +#region Ads isready + + /// + /// banner isReady + /// + /// + public override bool isBannerAdReady() + { + +#if UNITY_ANDROID + bool isReady = SDKCall("isBannerAdReady"); + return isReady; +#else + return false; +#endif + } + + /// + /// Interstitial isReady + /// + /// + public override bool isInterstitialAdReady() + { +#if UNITY_ANDROID + bool isReady = SDKCall("isInterstitialAdReady"); + return isReady; +#else + return false; +#endif + } + + /// + /// Reward isReady + /// + /// + public override bool isRewardAdReady() + { + +#if UNITY_ANDROID + bool isReady = SDKCall("isRewardAdReady"); + return isReady; +#else + return false; +#endif + } + + /// + /// FullScreen isReady + /// + /// + public override bool isVideoAdReady() + { +#if UNITY_ANDROID + bool isReady = SDKCall("isVideoAdReady"); + return isReady; +#else + return false; +#endif + } + + public override bool IsReadyNativeAd() + { +#if UNITY_ANDROID + bool isReady = SDKCall("isNativeReady"); + return isReady; +#else + return false; +#endif + } + +#endregion + +#region Set ads callback + + /// + /// Set Banner Ad Callback + /// + /// + public override void SetBannerAdCallback(AndroidBannerADTKGAdCallback _bannerCallback) + { +#if UNITY_ANDROID + SDKCall("setBannerAdCallback", _bannerCallback); +#endif + } + + /// + /// Set Interstital Ad Callback + /// + /// + public override void setInterstitalAdCallback(AndroidInterADTKGAdCallback _interCallback) + { +#if UNITY_ANDROID + SDKCall("setInterstitalAdCallback", _interCallback); +#endif + } + + /// + /// Set reward Ad Callback + /// + /// + public override void SetRewardAdCallback(AndroidRewardADTKGAdCallback _rewardCallback) + { +#if UNITY_ANDROID + SDKCall("setRewardAdCallback", _rewardCallback); +#endif + } + + + /// + /// Set video Ad Callback(full screen ad, reward ad with no reward callback) + /// + /// + public override void setVideoAdCallback(AndroidInterADTKGAdCallback _videoCallback) + { + +#if UNITY_ANDROID + SDKCall("setVideoAdCallback", _videoCallback); +#endif + } + +#endregion + +#region load ads + + /// + /// load interstitial ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadInterstitialAD() + { +#if UNITY_ANDROID + SDKCall("loadInterstitialAD"); +#endif + } + + /// + /// load reward ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadRewardAD() + { +#if UNITY_ANDROID + SDKCall("loadRewardAD"); +#endif + } + + /// + /// load video ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadVideoAD() + { +#if UNITY_ANDROID + SDKCall("loadVideoAD"); +#endif + } + +#endregion + +#endregion + + +#region Log Event + +#region Normal + + /// + /// onEvent + /// + /// + /// + public override void onEvent(string _eventName) + { +#if UNITY_ANDROID + SDKCall("onEvent", _eventName); +#endif + } + + /// + /// onEvent + /// + /// + /// + /// + /// + public override void onEvent(string _eventName, string _key01, string _value01) + { +#if UNITY_ANDROID + SDKCall("onEvent", _eventName, _key01, _value01); +#endif + } + + /// + /// onEvent + /// + /// + /// + /// + /// + /// + /// + public override void onEvent(string _eventName, string _key01, string _value01, string _key02, string _value02) + { +#if UNITY_ANDROID + SDKCall("onEvent", _eventName, _key01, _value01, _key02, _value02); +#endif + } + + /// + /// onEvent + /// + /// + /// + public override void onEvent(string _eventName, Dictionary _keyValues) + { +#if UNITY_ANDROID + SDKCall("onEvent", _eventName, Analytics.ToJavaHashMap(_keyValues)); +#endif + } + +#endregion + +#region Level Event + + /// + /// Level Start + /// + /// + public override void LevelStart(string _levelId) + { +#if UNITY_ANDROID + SDKCall("levelStart", _levelId); +#endif + } + + /// + /// Level end + /// + /// + /// + public override void LevelEnd(string _levelId, StageResult _stageResult) + { +#if UNITY_ANDROID + SDKCall("levelEnd", _levelId, (int)_stageResult); +#endif + } + +#endregion + +#region Tracking Event + + /// + /// Log Tracking Event + /// + /// + public override void LogTrackingEvent(TrackingEventType _eventType) + { +#if UNITY_ANDROID + SDKCall("LogTrackingEvent", (int)_eventType); +#endif + } + +#endregion + +#endregion + +#region Online Config + + /// + /// get config - int + /// + /// + /// + public override int GetConfigInt(string _key, int _default) + { + TKGDebugger.LogDebug("int _key : " + _key + " , _default : " + _default); + int newValue = SDKCall("getConfigInt", _key, _default); + return newValue; + } + + /// + /// get config - string + /// + /// + /// + public override string GetConfigString(string _key, string _default) + { + TKGDebugger.LogDebug("string _key : " + _key + " , _default : " + _default); + string newValue = SDKCall("getConfigString", _key, _default); + return newValue; + } + + /// + /// get config - bool + /// + /// + /// + public override bool GetConfigBool(string _key, bool _default) + { + TKGDebugger.LogDebug("bool _key : " + _key + " , _default : " + _default); + bool newValue = SDKCall("getConfigBool", _key, _default); + return newValue; + } + + +#endregion + +#region Others (Common) + + /// + /// review + /// + public override void Review() + { + SDKCall("review"); + } + + /// + /// open Privacy + /// + public override void OpenPrivacyURL() + { + SDKCall("openPrivacy"); + } + + /// + /// open agreement + /// + public override void OpenUserTermURL() + { + SDKCall("openAgreement"); + } + + /// + /// open policy pop + /// + public override void OpenPolicyPop() + { + SDKCall("openPrivacyDialog"); + } + + /// + /// More Games + /// + public override void OpenMoreGame() + { + SDKCall("moreGames"); + } + + /// + /// Set Log Enable + /// + /// + public override void SetLogEnable(bool _enable) + { + SDKCall("setEnableLog", _enable); + } +#endregion + +#region Others (Uncommon) + + /// + /// shake(no repeat) + /// + /// shake time + public override void shake(int _shakeType, float _intensity = 1) + { + long tShakeMS = _shakeType * _shakeType * 20 + (int)(_intensity * (_shakeType + 1) * 10); + SDKCall("shake", tShakeMS); + } + + /// + /// shake(can repeat) + /// + /// repeat times : -1 + /// wait time,shake time(100,1000,100,111) + //public override void shake(int _repeatTimes, params int[] _shakeTime) + //{ + // SDKCall("shake", _repeatTimes, _shakeTime); + //} + + /// + /// cancel shake + /// + public override void cancelShake() + { + SDKCall("cancelShake"); + } + + /// + /// Show Tips + /// Pop-up prompt (the one with black transparent background) unified style, Chinese, Japanese, Korean and English, support multi-language, multi-language text + /// + /// game judges different languages ​​by itself and passes different strings + /// + /// title + /// content + public override void dialogTips(string _titleStr, string _contentStr = "") + { + SDKCall("dialogTips", _titleStr); + } + + /// + /// Open ULR by Browser + /// + /// + public override void openUrlBrowser(string _url) + { + SDKCall("openUrlBrowser", _url); + } + + /// + /// Open ULR By WEB POP + /// + /// + public override void openWebUrl(string _url) + { + SDKCall("openWebUrl", _url); + } + + /// + /// show Toast + /// + /// + public override void toast(string _content) + { + SDKCall("toast"); + } + + /// + /// push message + /// + public override void pushMsg() + { + SDKCall("pushMsg"); + } + + // + /// share txt + /// + /// + public override void ShareTxt(string _shareTxt) + { + SDKCall("localShareTxt", _shareTxt); + } + + public override void RegistAPNS() + { + + } + + public override void RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle) + { + + } + + public override void RemoveNotification(string notiId) + { + + } + + public override void RemoveAllNotifications() + { + + } + +#endregion + +#region common callback + + public override void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback) + { + SDKCall("setTkgCallback", _commonCallback); + } + + public override void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback) + { + SDKCall("getUserSource", _userSourceCallback); + } + +#endregion + + } +} + +#endif \ No newline at end of file diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceAndroid.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceAndroid.cs.meta new file mode 100644 index 00000000..7c3f3409 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceAndroid.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7dfe4c5b853244cd9bcb80a48b5d9ae2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceDefault.cs b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceDefault.cs new file mode 100644 index 00000000..f2903d7e --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceDefault.cs @@ -0,0 +1,544 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + /// + /// TKG Native SDK Default platform interface call + /// + public class TKGNativeInterfaceDefault : TKGNativeInterface + { + public override void Init(Action _initCallback = null) + { + _initCallback?.Invoke(); + } + + public override void SetUnitySDKVersion(string sdkVersion) + { + + } + + /// + /// Get Channel + /// + /// + public override string GetChannel() + { + return ""; + } + + /// + /// Set Log Enable + /// + /// + public override void SetLogEnable(bool _enable) + { + + } + + #region Ads + + public override void PurchasedRemoveAds() + { + + } + + #region Ads Show + + /// + /// Show banner Ad + /// + /// bannerAlign + public override void showBannerAd(TKGBannerAlign _pos) + { + + } + + /// + /// Hide Banner Ad + /// + public override void hideBannerAd() + { + + } + + /// + /// Show Interstitial Ad + /// + public override void showInterstitialAd() + { + + } + + /// + /// Show Interstitial Ad + /// + public override void showInterstitialAd(string _adPos, IVADType _IvType = IVADType.IV1) + { + + } + + /// + /// Show Reward Ad + /// + public override void showRewardAd(string _adPos, int _itemCount = -1) + { + + } + + /// + /// Show Reward Ad + /// + /// + /// + /// + public override void showRewardAd(string _adPos, int _itemCount, Dictionary _extraEvent) + { + + } + + /// + /// Show FullScreen Ad(is RV without reward callback) + /// + public override void showVideoAd(string _adPos, int _itemCount = -1) + { + + } + + #endregion + + + #region Ads isready + + /// + /// banner isReady + /// + /// + public override bool isBannerAdReady() + { + return false; + } + + /// + /// Interstitial isReady + /// + /// + public override bool isInterstitialAdReady() + { + return false; + } + + /// + /// Reward isReady + /// + /// + public override bool isRewardAdReady() + { + return false; + } + + /// + /// FullScreen isReady + /// + /// + public override bool isVideoAdReady() + { + return false; + } + + #endregion + + #region Set callback + + /// + /// Set Banner Ad Callback + /// + /// + public override void SetBannerAdCallback(AndroidBannerADTKGAdCallback _bannerCallback) + { + + } + + /// + /// Set reward video click Callback + /// + /// + public override void SetRewardClickListener(Action _rewardClickAction) + { + + } + + /// + /// Set game focus Callback + /// + /// + public override void SetGameFocusListener(Action _gameFocusAction) + { + + } + + /// + /// Set Interstital Ad Callback + /// + /// + public override void setInterstitalAdCallback(AndroidInterADTKGAdCallback _interCallback) + { + + } + + /// + /// Set reward Ad Callback + /// + /// + public override void SetRewardAdCallback(AndroidRewardADTKGAdCallback _rewardCallback) + { + + } + + /// + /// Set video Ad Callback(full screen ad, reward ad with no reward callback) + /// + /// + public override void setVideoAdCallback(AndroidInterADTKGAdCallback _videoCallback) + { + + } + + #endregion + + #region load ads + + /// + /// load interstitial ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadInterstitialAD() + { + + } + + /// + /// load reward ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadRewardAD() + { + + } + + /// + /// load video ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadVideoAD() + { + + } + + + #endregion + + #endregion + + + #region Log Event + + /// + /// onEvent + /// + /// + /// + public override void onEvent(string _eventName) + { + + } + + /// + /// onEvent + /// + /// + /// + /// + /// + public override void onEvent(string _eventName, string _key01, string _value01) + { + + } + + /// + /// onEvent + /// + /// + /// + /// + /// + /// + /// + public override void onEvent(string _eventName, string _key01, string _value01, string _key02, string _value02) + { + + } + + /// + /// onEvent + /// + /// + /// + public override void onEvent(string _eventName, Dictionary _keyValues) + { + + } + + #region Level Event + + /// + /// Level Start + /// + /// + public override void LevelStart(string _levelId) + { + + } + + /// + /// Level end + /// + /// + /// + public override void LevelEnd(string _levelId, StageResult _stageResult) + { + + } + + #endregion + + #region Tracking Event + + /// + /// Log Tracking Event + /// + /// + public override void LogTrackingEvent(TrackingEventType _eventType) + { + + } + + #endregion + + + #endregion + + #region Online Config + + /// + /// get config - int + /// + /// + /// + public override int GetConfigInt(string _key, int _default) + { + return _default; + } + + /// + /// get config - string + /// + /// + /// + public override string GetConfigString(string _key, string _default) + { + return _default; + } + + /// + /// get config - bool + /// + /// + /// + public override bool GetConfigBool(string _key, bool _default) + { + return default; + } + + #endregion + + #region Others (Common) + + /// + /// review + /// + public override void Review() + { + + } + + /// + /// open Privacy + /// + public override void OpenPrivacyURL() + { + + } + + /// + /// open agreement + /// + public override void OpenUserTermURL() + { + + } + + /// + /// open policy pop + /// + public override void OpenPolicyPop() + { + + } + + /// + /// More Games + /// + public override void OpenMoreGame() + { + + } + + #endregion + + #region Others (Uncommon) + + /// + /// shake(no repeat) + /// + /// shake time + public override void shake(int _shakeType, float _intensity = 1) + { + + } + + /// + /// shake(can repeat) + /// + /// repeat times : -1 + /// wait time,shake time(100,1000,100,111) + //public override void shake(int _repeatTimes, params int[] _shakeTime) + //{ + + //} + + /// + /// cancel shake + /// + public override void cancelShake() + { + + } + + /// + /// Show Tips + /// Pop-up prompt (the one with black transparent background) unified style, Chinese, Japanese, Korean and English, support multi-language, multi-language text + /// + /// game judges different languages ​​by itself and passes different strings + /// + /// title + /// content + public override void dialogTips(string _titleStr, string _contentStr) + { + + } + + /// + /// Open ULR by Browser + /// + /// + public override void openUrlBrowser(string _url) + { + + } + + /// + /// Open ULR By WEB POP + /// + /// + public override void openWebUrl(string _url) + { + + } + + /// + /// show Toast + /// + /// + public override void toast(string _content) + { + + } + + /// + /// push message + /// + public override void pushMsg() + { + + } + + #endregion + + #region common callback + + public override void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback) + { + + } + + public override void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback) + { + + } + + public override void RemoveNativeAd() + { + } + + public override bool IsReadyNativeAd() + { + return false; + } + + public override void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = "") + { + + } + + public override void ShareTxt(string _shareTxt) + { + + } + + + public override void RegistAPNS() + { + + } + + public override void RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle) + { + + } + + public override void RemoveNotification(string notiId) + { + + } + + public override void RemoveAllNotifications() + { + + } + #endregion + + } +} \ No newline at end of file diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceDefault.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceDefault.cs.meta new file mode 100644 index 00000000..93b3e3ef --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceDefault.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d6a7921bd400e458ca857e2f180fa5ce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceIOS.cs b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceIOS.cs new file mode 100644 index 00000000..c947555f --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceIOS.cs @@ -0,0 +1,635 @@ +#if UNITY_IPHONE + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + /// + /// TKG Native SDK iOS platform interface call + /// + public class TKGNativeInterfaceIOS : TKGNativeInterface + { + + public override void Init(Action _initCallback = null) + { + base.Init(_initCallback); +#if !UNITY_EDITOR + TGiOSAdManager.Instance.InitSDK(); +#endif + } + /// + /// Get Channel + /// + /// + public override string GetChannel() + { +#if !AppStore_GB + return "AppStore_CN"; +#else + return "AppStore_GB"; +#endif + } + + /// + /// Set Log Enable + /// + /// + public override void SetLogEnable(bool _enable) + { + TGiOSAdManager.Instance.SetLogEnable(_enable); + } + +#region Ads + public override void PurchasedRemoveAds() + { + +#if !UNITY_EDITOR + TGiOSAdManager.Instance.RemoveAllAds(); +#endif + + } + + public override void SetUnitySDKVersion(string sdkVersion) + { + +#if !UNITY_EDITOR + TGiOSAdManager.Instance.SetUnitySDKVersion(sdkVersion); +#endif + } + + + public override void RemoveNativeAd() + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.RemoveNative(); +#endif + } + + public override bool IsReadyNativeAd() + { +#if !UNITY_EDITOR + + return TGiOSAdManager.Instance.IsReadyNative(); +#else + return false; +#endif + + } + + public override void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = "") + { + +#if !UNITY_EDITOR + TGiOSAdManager.Instance.ShowNative(pRect, pCam, pAdPos); +#endif + } + +#region Ads Show + + /// + /// Show banner Ad + /// + /// bannerAlign + public override void showBannerAd(TKGBannerAlign _pos) + { + +#if !UNITY_EDITOR + TGiOSAdManager.Instance.ShowBanner((int)_pos); +#endif + } + + /// + /// Hide Banner Ad + /// + public override void hideBannerAd() + { + + +#if !UNITY_EDITOR + TGiOSAdManager.Instance.HideBanner(); +#endif + } + + /// + /// Show Interstitial Ad + /// + public override void showInterstitialAd() + { + +#if !UNITY_EDITOR + TGiOSAdManager.Instance.ShowIntersititial("",0); +#endif + } + + /// + /// Show Interstitial Ad + /// + /// + public override void showInterstitialAd(string _adPos, IVADType _IvType = IVADType.IV1) + { +#if !UNITY_EDITOR + + TGiOSAdManager.Instance.ShowIntersititial(_adPos, (int)_IvType); +#endif + } + + /// + /// Show Reward Ad + /// + public override void showRewardAd(string _adPos, int _itemCount = -1) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.ShowRewardVideo(_adPos); +#endif + } + + /// + /// Show Reward Ad + /// + /// + /// + /// + public override void showRewardAd(string _adPos, int _itemCount, Dictionary _extraEvent) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.ShowRewardVideo(_adPos); +#endif + } + + /// + /// Show FullScreen Ad(is RV without reward callback) + /// + public override void showVideoAd(string _adPos, int _itemCount = -1) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.ShowRewardVideo(_adPos); +#endif + } + +#endregion + + +#region Ads isready + + /// + /// banner isReady + /// + /// + public override bool isBannerAdReady() + { +#if !UNITY_EDITOR + return TGiOSAdManager.Instance.IsReadyBanner(); +#else + return false; +#endif + } + + /// + /// Interstitial isReady + /// + /// + public override bool isInterstitialAdReady() + { +#if !UNITY_EDITOR + return TGiOSAdManager.Instance.IsReadyIntersititial(); +#else + return false; +#endif + } + + /// + /// Reward isReady + /// + /// + public override bool isRewardAdReady() + { +#if !UNITY_EDITOR + return TGiOSAdManager.Instance.IsReadyRewardVideo(); +#else + return false; +#endif + } + + /// + /// FullScreen isReady + /// + /// + public override bool isVideoAdReady() + { +#if !UNITY_EDITOR + return TGiOSAdManager.Instance.IsReadyRewardVideo(); +#else + return false; +#endif + } + +#endregion + +#region Set ads callback + + /// + /// Set Banner Ad Callback + /// + /// + public override void SetBannerAdCallback(AndroidBannerADTKGAdCallback _bannerCallback) + { + + } + + /// + /// Set Interstital Ad Callback + /// + /// + public override void setInterstitalAdCallback(AndroidInterADTKGAdCallback _interCallback) + { + + } + + /// + /// Set reward Ad Callback + /// + /// + public override void SetRewardAdCallback(AndroidRewardADTKGAdCallback _rewardCallback) + { + + } + + /// + /// Set video Ad Callback(full screen ad, reward ad with no reward callback) + /// + /// + public override void setVideoAdCallback(AndroidInterADTKGAdCallback _videoCallback) + { + + } + +#endregion + +#region load ads + + /// + /// load interstitial ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadInterstitialAD() + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.LoadIntersititial(); +#endif + } + + /// + /// load reward ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadRewardAD() + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.LoadRewardVideo(); +#endif + } + + /// + /// load video ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadVideoAD() + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.LoadRewardVideo(); +#endif + } + +#endregion + +#endregion + + +#region Log Event + + /// + /// onEvent + /// + /// + /// + public override void onEvent(string _eventName) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.onEvent_UMeng(_eventName); +#endif + } + + /// + /// onEvent + /// + /// + /// + /// + /// + public override void onEvent(string _eventName, string _key01, string _value01) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.onEvent_UMeng(_eventName,_key01,_value01); +#endif + } + + /// + /// onEvent + /// + /// + /// + /// + /// + /// + /// + public override void onEvent(string _eventName, string _key01, string _value01, string _key02, string _value02) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.onEvent_UMeng(_eventName,_key01,_value01,_key02,_value02); +#endif + } + + /// + /// onEvent + /// + /// + /// + public override void onEvent(string _eventName, Dictionary _keyValues) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.onEvent_UMeng(_eventName,_keyValues); +#endif + } + +#region Level Event + + /// + /// Level Start + /// + /// + public override void LevelStart(string _levelId) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.onEvent_GameStart(_levelId); +#endif + } + + /// + /// Level end + /// + /// + public override void LevelEnd(string _levelId, StageResult _stageResult) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.onEvent_GameEnd(_levelId,(int)_stageResult); +#endif + + } + +#endregion + +#region Tracking Event + + /// + /// Log Tracking Event + /// + /// + public override void LogTrackingEvent(TrackingEventType _eventType) + { +#if !UNITY_EDITOR + + TGiOSAdManager.Instance.onEvent_Tenjin((int)_eventType); +#endif + } + +#endregion + +#endregion + +#region Online Config + + /// + /// get config - int + /// + /// + /// + public override int GetConfigInt(string _key, int _default) + { + return TGiOSAdManager.Instance.GetConfigInt(_key, _default); + } + + /// + /// get config - string + /// + /// + /// + public override string GetConfigString(string _key, string _default) + { + return TGiOSAdManager.Instance.GetConfigString(_key, _default); + } + + /// + /// get config - bool + /// + /// + /// + public override bool GetConfigBool(string _key, bool _default) + { + return TGiOSAdManager.Instance.GetConfigBool(_key, _default); + } + +#endregion + +#region Others (Common) + + /// + /// review + /// + public override void Review() + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.Review(); +#endif + } + + /// + /// open Privacy + /// + public override void OpenPrivacyURL() + { +#if !UNITY_EDITOR + + TGiOSAdManager.Instance.OpenPrivacyURL(); +#endif + } + + /// + /// open agreement + /// + public override void OpenUserTermURL() + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.OpenUserTermURL(); +#endif + } + + /// + /// open policy pop + /// + public override void OpenPolicyPop() + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.OpenPolicyPop(); +#endif + } + + /// + /// More Games + /// + public override void OpenMoreGame() + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.OpenMoreGame(); +#endif + } + // + /// share txt + /// + /// + public override void ShareTxt(string _shareTxt) + { + + } + + public override void RegistAPNS() + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.registAPNS(); +#endif + } + + public override void RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.registNotification(notiId,body,fireDate,badge,title,subTitle); +#endif + } + + public override void RemoveNotification(string notiId) + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.removeNotification(notiId); +#endif + } + + public override void RemoveAllNotifications() + { +#if !UNITY_EDITOR + TGiOSAdManager.Instance.removeAllNotifications(); +#endif + } +#endregion + +#region Others (Uncommon) + + /// + /// shake(no repeat) + /// + /// shake time + public override void shake(int _shakeType, float _intensity = 1) + { + TGiOSAdManager.Instance.shake(_shakeType,_intensity); + } + + /// + /// shake(can repeat) + /// + /// repeat times : -1 + /// wait time,shake time(100,1000,100,111) + //public override void shake(int _repeatTimes, params int[] _shakeTime) + //{ + + //} + + /// + /// cancel shake + /// + public override void cancelShake() + { + + } + + /// + /// Show Tips + /// Pop-up prompt (the one with black transparent background) unified style, Chinese, Japanese, Korean and English, support multi-language, multi-language text + /// + /// game judges different languages ​​by itself and passes different strings + /// + /// title + /// content + public override void dialogTips(string _titleStr, string _contentStr) + { + + } + + /// + /// Open ULR by Browser + /// + /// + public override void openUrlBrowser(string _url) + { + + } + + /// + /// Open ULR By WEB POP + /// + /// + public override void openWebUrl(string _url) + { + + } + + /// + /// show Toast + /// + /// + public override void toast(string _content) + { + + } + + /// + /// push message + /// + public override void pushMsg() + { + + } + +#endregion + +#region common callback + + public override void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback) + { + + } + + public override void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback) + { + + } + + + +#endregion + + + } +} + +#endif \ No newline at end of file diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceIOS.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceIOS.cs.meta new file mode 100644 index 00000000..3932dd7a --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceIOS.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fdae982dad895469192477b35a39b5e3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceWebgl.cs b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceWebgl.cs new file mode 100644 index 00000000..5f04bc74 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceWebgl.cs @@ -0,0 +1,759 @@ +#if UNITY_WEBGL + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using WeChatWASM; + +namespace Touka +{ + /// + /// TKG Native SDK Android platform interface call + /// + public class TKGNativeInterfaceWebgl : TKGNativeInterface + { + + private AndroidJavaObject jo; + + private WXBannerAd bannerAd; + private WXInterstitialAd interstitialAd; + private WXRewardedVideoAd rewardAd; + private WeChatWASM.SystemInfo sysInfo; + + public TKGNativeInterfaceWebgl() + { + + } + +#region init + + /// + /// init + /// + /// + public override void Init(Action _initCallback = null) + { + TKGDebugger.LogDebug("init ----- 00"); + SetBannerAdCallback(new AndroidBannerADTKGAdCallback()); + TKGDebugger.LogDebug("init ----- 01 ------- a"); + setInterstitalAdCallback(new AndroidInterADTKGAdCallback()); + TKGDebugger.LogDebug("init ----- 01 ------- b"); + SetRewardAdCallback(new AndroidRewardADTKGAdCallback()); + TKGDebugger.LogDebug("init ----- 01 ------- c"); + SetSDKCommonCallback(new AndroidTKGCommonCalllback()); + TKGDebugger.LogDebug("init ----- 01 ------- d"); + + WXBase.InitSDK((_code) => { + _initCallback(); + initAds(); + }); + TKGDebugger.LogDebug("init ----- 02"); + } + +#endregion + + /// + /// Get Channel + /// + /// + public override string GetChannel() + { + + return "WEBGL"; + } + +#region Ads + + public override void PurchasedRemoveAds() + { + + } + + public override void SetUnitySDKVersion(string sdkVersion) + { + + } + +#region Ads Show + + private void initAds() + { + Debug.Log("tkg native webgl initAds -----"); + + initBanner(); + initInterstitialAd(); + initRewardAd(); + } + + private void initBanner() + { + Debug.Log("tkg native webgl initBanner -----"); + sysInfo = WX.GetSystemInfoSync(); + bannerAd = WX.CreateBannerAd(new WXCreateBannerAdParam() + { + adUnitId = "adunit-2e20328227ca771b", + adIntervals = 30, + style = new Style() + { + left = 0, + top = (int)sysInfo.windowHeight - 100, + width = (int)sysInfo.windowWidth, + height = 100 + } + }); + bannerAd.OnError((WXADErrorResponse res) => + { + Debug.Log("bannerad error response"); + }); + bannerAd.OnLoad((WXADLoadResponse res) => + { + + }); + bannerAd.OnResize((WXADResizeResponse res) => + { + //拉取的广告可能跟设置的不一样,需要动态调整位置 + bannerAd.style.top = (int)sysInfo.windowHeight - res.height; + }); + } + + /// + /// Show banner Ad + /// + /// todo banner pos + /// + /// bannerAlign + public override void showBannerAd(TKGBannerAlign _pos) + { + Debug.Log("tkg native webgl showBannerAd -----"); + //int _posIndex = 2; + //if(_pos == TKGBannerAlign.BannerCenterTopAlign) + //{ + // _posIndex = 1; + + //} + //else if(_pos == TKGBannerAlign.BannerCenterBottomAlign) + //{ + // _posIndex = 2; + //} + + if(bannerAd != null) + { + Debug.Log("tkg native webgl showBannerAd ----- 01"); + bannerAd.Show(); + } + else + { + Debug.Log("tkg native webgl showBannerAd ----- 02"); + } + } + + /// + /// Hide Banner Ad + /// + public override void hideBannerAd() + { + if (bannerAd != null) + { + bannerAd.Hide(); + } + } + + private void initInterstitialAd() + { + Debug.Log("tkg native webgl initInterstitialAd -----"); + interstitialAd = WX.CreateInterstitialAd(new WXCreateInterstitialAdParam() + { + adUnitId = "" + }); + } + + /// + /// Show Interstitial Ad + /// + public override void showInterstitialAd() + { + + } + + /// + /// Show Interstitial Ad + /// + /// + public override void showInterstitialAd(string _adPos, IVADType _IvType = IVADType.IV1) + { + Debug.Log("tkg native webgl showInterstitialAd -----"); + if(interstitialAd != null) + { + Debug.Log("tkg native webgl showInterstitialAd ----- 01"); + interstitialAd.Show(); + } + else + { + Debug.Log("tkg native webgl showInterstitialAd ----- 02"); + } + } + + private void initRewardAd() + { + Debug.Log("tkg native webgl initRewardAd -----"); + rewardAd = WX.CreateRewardedVideoAd(new WXCreateRewardedVideoAdParam() { + adUnitId = "" + }); + } + + /// + /// Show Reward Ad + /// + /// + /// + public override void showRewardAd(string _adPos, int _itemCount = -1) + { + Debug.Log("tkg native webgl showRewardAd -----"); + if (rewardAd != null) + { + Debug.Log("tkg native webgl showRewardAd ----- 01"); + rewardAd.Show(); + } + else + { + Debug.Log("tkg native webgl showRewardAd ----- 02"); + } + } + + /// + /// Show Reward Ad + /// + /// + /// + /// + public override void showRewardAd(string _adPos, int _itemCount, Dictionary _extraEvent) + { + + } + + /// + /// Show Video Ad + /// + /// + /// + public override void showVideoAd(string _adPos, int _itemCount = -1) + { +#if UNITY_ANDROID + SDKCall("showVideoAd", _adPos, _itemCount); +#endif + } + + public override void ShowNativeAd(RectTransform pRect, Camera pCam = null, string pAdPos = "") + { +#if UNITY_ANDROID + Vector3[] tWorldCorners = new Vector3[4]; + pRect.GetWorldCorners(tWorldCorners); + + Vector2 tTopLeft = RectTransformUtility.WorldToScreenPoint(pCam, tWorldCorners[1]); + Vector2 tBottomRight = RectTransformUtility.WorldToScreenPoint(pCam, tWorldCorners[3]); + float tWidth = Mathf.Abs(tBottomRight.x - tTopLeft.x); + float tHeight = Mathf.Abs(tBottomRight.y - tTopLeft.y); + // x , y , width , height + // ((tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight) + SDKCall("showNative", pAdPos, tTopLeft.x, Screen.height - tTopLeft.y, tWidth, tHeight, pAdPos); +#endif + + } + + + public override void RemoveNativeAd() + { +#if UNITY_ANDROID + SDKCall("hideNative"); +#endif + } + #endregion + + + #region Ads isready + + /// + /// banner isReady + /// + /// + public override bool isBannerAdReady() + { + +#if UNITY_ANDROID + bool isReady = SDKCall("isBannerAdReady"); + return isReady; +#else + return false; +#endif + } + + /// + /// Interstitial isReady + /// + /// + public override bool isInterstitialAdReady() + { +#if UNITY_ANDROID + bool isReady = SDKCall("isInterstitialAdReady"); + return isReady; +#else + return false; +#endif + } + + /// + /// Reward isReady + /// + /// + public override bool isRewardAdReady() + { + +#if UNITY_ANDROID + bool isReady = SDKCall("isRewardAdReady"); + return isReady; +#else + return false; +#endif + } + + /// + /// FullScreen isReady + /// + /// + public override bool isVideoAdReady() + { +#if UNITY_ANDROID + bool isReady = SDKCall("isVideoAdReady"); + return isReady; +#else + return false; +#endif + } + + public override bool IsReadyNativeAd() + { +#if UNITY_ANDROID + bool isReady = SDKCall("isNativeReady"); + return isReady; +#else + return false; +#endif + } + +#endregion + +#region Set ads callback + + /// + /// Set Banner Ad Callback + /// + /// + public override void SetBannerAdCallback(AndroidBannerADTKGAdCallback _bannerCallback) + { +#if UNITY_ANDROID + SDKCall("setBannerAdCallback", _bannerCallback); +#endif + } + + /// + /// Set Interstital Ad Callback + /// + /// + public override void setInterstitalAdCallback(AndroidInterADTKGAdCallback _interCallback) + { +#if UNITY_ANDROID + SDKCall("setInterstitalAdCallback", _interCallback); +#endif + } + + /// + /// Set reward Ad Callback + /// + /// + public override void SetRewardAdCallback(AndroidRewardADTKGAdCallback _rewardCallback) + { +#if UNITY_ANDROID + SDKCall("setRewardAdCallback", _rewardCallback); +#endif + } + + + /// + /// Set video Ad Callback(full screen ad, reward ad with no reward callback) + /// + /// + public override void setVideoAdCallback(AndroidInterADTKGAdCallback _videoCallback) + { + +#if UNITY_ANDROID + SDKCall("setVideoAdCallback", _videoCallback); +#endif + } + +#endregion + +#region load ads + + /// + /// load interstitial ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadInterstitialAD() + { +#if UNITY_ANDROID + SDKCall("loadInterstitialAD"); +#endif + } + + /// + /// load reward ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadRewardAD() + { +#if UNITY_ANDROID + SDKCall("loadRewardAD"); +#endif + } + + /// + /// load video ad + /// (retry 3 times, per time interval 10s) + /// + public override void loadVideoAD() + { +#if UNITY_ANDROID + SDKCall("loadVideoAD"); +#endif + } + +#endregion + +#endregion + + +#region Log Event + +#region Normal + + /// + /// onEvent + /// + /// + /// + public override void onEvent(string _eventName) + { +#if UNITY_ANDROID + SDKCall("onEvent", _eventName); +#endif + } + + /// + /// onEvent + /// + /// + /// + /// + /// + public override void onEvent(string _eventName, string _key01, string _value01) + { +#if UNITY_ANDROID + SDKCall("onEvent", _eventName, _key01, _value01); +#endif + } + + /// + /// onEvent + /// + /// + /// + /// + /// + /// + /// + public override void onEvent(string _eventName, string _key01, string _value01, string _key02, string _value02) + { +#if UNITY_ANDROID + SDKCall("onEvent", _eventName, _key01, _value01, _key02, _value02); +#endif + } + + /// + /// onEvent + /// + /// + /// + public override void onEvent(string _eventName, Dictionary _keyValues) + { +#if UNITY_ANDROID + SDKCall("onEvent", _eventName, Analytics.ToJavaHashMap(_keyValues)); +#endif + } + +#endregion + +#region Level Event + + /// + /// Level Start + /// + /// + public override void LevelStart(string _levelId) + { +#if UNITY_ANDROID + SDKCall("levelStart", _levelId); +#endif + } + + /// + /// Level end + /// + /// + /// + public override void LevelEnd(string _levelId, StageResult _stageResult) + { +#if UNITY_ANDROID + SDKCall("levelEnd", _levelId, (int)_stageResult); +#endif + } + +#endregion + +#region Tracking Event + + /// + /// Log Tracking Event + /// + /// + public override void LogTrackingEvent(TrackingEventType _eventType) + { +#if UNITY_ANDROID + SDKCall("LogTrackingEvent", (int)_eventType); +#endif + } + +#endregion + +#endregion + +#region Online Config + + /// + /// get config - int + /// + /// + /// + public override int GetConfigInt(string _key, int _default) + { + TKGDebugger.LogDebug("int _key : " + _key + " , _default : " + _default); + //int newValue = SDKCall("getConfigInt", _key, _default); + return _default; + } + + /// + /// get config - string + /// + /// + /// + public override string GetConfigString(string _key, string _default) + { + TKGDebugger.LogDebug("string _key : " + _key + " , _default : " + _default); + //string newValue = SDKCall("getConfigString", _key, _default); + return _default; + } + + /// + /// get config - bool + /// + /// + /// + public override bool GetConfigBool(string _key, bool _default) + { + TKGDebugger.LogDebug("bool _key : " + _key + " , _default : " + _default); + //bool newValue = SDKCall("getConfigBool", _key, _default); + return _default; + } + + +#endregion + +#region Others (Common) + + /// + /// review + /// + public override void Review() + { + //SDKCall("review"); + } + + /// + /// open Privacy + /// + public override void OpenPrivacyURL() + { + //SDKCall("openPrivacy"); + } + + /// + /// open agreement + /// + public override void OpenUserTermURL() + { + //SDKCall("openAgreement"); + } + + /// + /// open policy pop + /// + public override void OpenPolicyPop() + { + //SDKCall("openPrivacyDialog"); + } + + /// + /// More Games + /// + public override void OpenMoreGame() + { + //SDKCall("moreGames"); + } + + /// + /// Set Log Enable + /// + /// + public override void SetLogEnable(bool _enable) + { + //SDKCall("setEnableLog", _enable); + } +#endregion + +#region Others (Uncommon) + + /// + /// shake(no repeat) + /// + /// shake time + public override void shake(int _shakeType, float _intensity = 1) + { + //long tShakeMS = _shakeType * _shakeType * 20 + (int)(_intensity * (_shakeType + 1) * 10); + //SDKCall("shake", tShakeMS); + } + + /// + /// shake(can repeat) + /// + /// repeat times : -1 + /// wait time,shake time(100,1000,100,111) + //public override void shake(int _repeatTimes, params int[] _shakeTime) + //{ + // SDKCall("shake", _repeatTimes, _shakeTime); + //} + + /// + /// cancel shake + /// + public override void cancelShake() + { + //SDKCall("cancelShake"); + } + + /// + /// Show Tips + /// Pop-up prompt (the one with black transparent background) unified style, Chinese, Japanese, Korean and English, support multi-language, multi-language text + /// + /// game judges different languages ​​by itself and passes different strings + /// + /// title + /// content + public override void dialogTips(string _titleStr, string _contentStr = "") + { + //SDKCall("dialogTips", _titleStr); + } + + /// + /// Open ULR by Browser + /// + /// + public override void openUrlBrowser(string _url) + { + //SDKCall("openUrlBrowser", _url); + } + + /// + /// Open ULR By WEB POP + /// + /// + public override void openWebUrl(string _url) + { + //SDKCall("openWebUrl", _url); + } + + /// + /// show Toast + /// + /// + public override void toast(string _content) + { + //SDKCall("toast"); + } + + /// + /// push message + /// + public override void pushMsg() + { + //SDKCall("pushMsg"); + } + + // + /// share txt + /// + /// + public override void ShareTxt(string _shareTxt) + { + //SDKCall("localShareTxt", _shareTxt); + } + + public override void RegistAPNS() + { + + } + + public override void RegistNotification(string notiId, string body, string fireDate, int badge, string title, string subTitle) + { + + } + + public override void RemoveNotification(string notiId) + { + + } + + public override void RemoveAllNotifications() + { + + } + +#endregion + +#region common callback + + public override void SetSDKCommonCallback(AndroidTKGCommonCalllback _commonCallback) + { + //SDKCall("setTkgCallback", _commonCallback); + } + + public override void SetUserSourceCallback(AndroidTKGUserSourceCalllback _userSourceCallback) + { + //SDKCall("getUserSource", _userSourceCallback); + } + +#endregion + + } +} + +#endif \ No newline at end of file diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceWebgl.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceWebgl.cs.meta new file mode 100644 index 00000000..9ed419d7 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGNativeInterfaceWebgl.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a725d99411d1b4029b1f1a64afa4957b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallback.cs b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallback.cs new file mode 100644 index 00000000..e981a741 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallback.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + /// + /// TKG Native SDK callback, Android & IOS use the same callback interface to ensure the uniformity of the interface + /// + public class TKGSDKCallback + { + // init callback + public static Action mInitCallback = null; + // game pause/resume callback + public static Action mGameFocusCallback = null; + + // tkg user source + public static Action mTKGUserSourceCallback = null; + + // tkg common callback + public static Action mTKGCommonCallback = null; + + // tkg reward click callback + public static Action mRewardClickCallback = null; + + + #region 插屏广告 + + /// + /// interad callback + /// + public static Action mInterAdCallback = null; + + #endregion + + + #region 激励视频广告 + + /// + /// reward callback + /// + public static Action mRewardCallback = null; + + /// + /// reward show failed + /// + public static Action mRewardShowFailedCallback = null; + + #endregion + + + /// + /// set init callback + /// + /// + public static void SetInitCallback(Action _initCallback = null) + { + mInitCallback = _initCallback; + } + + /// + /// set game pause/resume callback + /// + /// + public static void SetGameFocusCallback(Action _gameFocusAction) + { + mGameFocusCallback = _gameFocusAction; + } + + /// + /// set common callback + /// + /// + public static void SetTKGCommonCallback(Action _commonCallbackAction) + { + mTKGCommonCallback = _commonCallbackAction; + } + + /// + /// set user source callback + /// + /// + public static void SetTKGUserSourceCallback(Action _userSourceCallbackAction) + { + mTKGUserSourceCallback = _userSourceCallbackAction; + } + + public static void SetRewardClickCallback(Action _rewardClickAction) + { + mRewardClickCallback = _rewardClickAction; + } + } +} \ No newline at end of file diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallback.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallback.cs.meta new file mode 100644 index 00000000..f0718df7 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallback.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d3e32a23cce1e4187a505a6f7506666d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackAndroid.cs b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackAndroid.cs new file mode 100644 index 00000000..d1152d9e --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackAndroid.cs @@ -0,0 +1,347 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Touka +{ + public class TKGSDKCallbackAndroid + { + + } + + + + /// + /// TGK framework level callback + /// + public class AndroidProxyCallback : AndroidJavaProxy + { + public AndroidProxyCallback() : base("com.touka.tkg.idal.ITKGProxyCallback") { } + + // init succ callback + public void onInitSuccess() + { + TKGDebugger.LogDebug("onInitSuccess in AndroidProxyCallback"); + + Loom.QueueOnMainThread((pObj) => + { + if (TKGSDKCallback.mInitCallback != null) + { + TKGSDKCallback.mInitCallback.Invoke(); + TKGSDKCallback.mInitCallback = null; + } + }, ""); + } + + // init fail callback + public void onInitFail() + { + TKGDebugger.LogDebug("onInitFail"); + + Loom.QueueOnMainThread((pObj) => + { + if (TKGSDKCallback.mInitCallback != null) + { + TKGSDKCallback.mInitCallback.Invoke(); + TKGSDKCallback.mInitCallback = null; + } + }, ""); + } + + // game Activity disable callback + public void onPause() + { + TKGDebugger.LogDebug("onPause"); + + Loom.QueueOnMainThread((pObj) => + { + if (TKGSDKCallback.mGameFocusCallback != null) + { + TKGSDKCallback.mGameFocusCallback.Invoke(false); + } + }, ""); + } + + // game Activity visible callback + public void onResume() + { + TKGDebugger.LogDebug("onResume"); + + Loom.QueueOnMainThread((pObj) => + { + if (TKGSDKCallback.mGameFocusCallback != null) + { + TKGSDKCallback.mGameFocusCallback.Invoke(true); + } + }, ""); + } + + // pause callback, like stop sound + public void pauseGame() + { + TKGDebugger.LogDebug("pauseGame"); + + Loom.QueueOnMainThread((pObj) => + { + if (TKGSDKCallback.mGameFocusCallback != null) + { + TKGSDKCallback.mGameFocusCallback.Invoke(false); + } + + }, ""); + } + + // result callback, like replay sound + public void resumeGame() + { + TKGDebugger.LogDebug("resumeGame"); + + Loom.QueueOnMainThread((pObj) => + { + if (TKGSDKCallback.mGameFocusCallback != null) + { + TKGSDKCallback.mGameFocusCallback.Invoke(true); + } + }, ""); + } + + } + + /// + /// InterAd callback + /// + public class AndroidInterADTKGAdCallback : AndroidJavaProxy + { + public AndroidInterADTKGAdCallback() : base("com.touka.tkg.idal.ITKGAdCallback") { } + + public void onClosed() + { + TKGDebugger.LogDebug("onClosed"); + Loom.QueueOnMainThread((pObj) => + { + if (TKGSDKCallback.mInterAdCallback != null) + { + TKGSDKCallback.mInterAdCallback.Invoke(); + TKGSDKCallback.mInterAdCallback = null; + } + }, ""); + + } + public void onClicked() + { + TKGDebugger.LogDebug("onClicked"); + } + + // click to skip ad + public void onSkip() + { + TKGDebugger.LogDebug("onSkip"); + } + public void onLoaded() + { + TKGDebugger.LogDebug("onLoaded"); + } + public void onLoadFail(int code, string msg) + { + TKGDebugger.LogDebug("onLoadFail"); + } + public void onShow() + { + TKGDebugger.LogDebug("onShow"); + } + public void onShowFail(int code, string msg) + { + TKGDebugger.LogDebug("onShowFail"); + + if (code == (int)AdShowFailCodeType.AdIsNotReady) + { + TKGDebugger.LogDebug("iv show failed - AdIsNotReady"); + }else if(code == (int)AdShowFailCodeType.AdIsReadyCannotShow) + { + TKGDebugger.LogDebug("iv show failed - AdIsReadyCannotShow"); + } + else + { + TKGDebugger.LogDebug("iv show failed - AdShowFailReal"); + } + + Loom.QueueOnMainThread((pObj) => + { + if (TKGSDKCallback.mInterAdCallback != null) + { + TKGSDKCallback.mInterAdCallback.Invoke(); + TKGSDKCallback.mInterAdCallback = null; + } + }, ""); + } + } + + /// + /// RewardAd callback + /// + public class AndroidRewardADTKGAdCallback : AndroidJavaProxy + { + public AndroidRewardADTKGAdCallback() : base("com.touka.tkg.idal.ITKGRewardADCallback") { } + + public void onClosed() + { + TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onClosed"); + } + public void onClicked() + { + TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onClicked"); + Loom.QueueOnMainThread((pObj) => + { + if (TKGSDKCallback.mRewardClickCallback != null) + { + TKGSDKCallback.mRewardClickCallback.Invoke(); + } + }, ""); + } + + // click to skip ad + public void onSkip() + { + TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onSkip"); + } + public void onLoaded() + { + TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onLoaded"); + } + public void onLoadFail(int code, string msg) + { + TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onLoadFail, code : " + code + " , msg : " + msg); + } + public void onShow() + { + TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onShow"); + } + + public void onShowFail(int code, string msg) + { + TKGDebugger.LogDebug("AndroidRewardADTKGAdCallback onShowFail, code : " + code + " , msg : " + msg); + Loom.QueueOnMainThread((pObj) => + { + if (TKGSDKCallback.mRewardShowFailedCallback != null) + { + TKGSDKCallback.mRewardShowFailedCallback.Invoke(); + TKGSDKCallback.mRewardShowFailedCallback = null; + } + }, ""); + } + + /// + /// RewardAd give reward in this method + /// + /// when show rv succ, close rv must call back this, can use as iOS close callback + /// + /// + /// + /// + public void onReward(string msg, int code, bool isReward) + { + TKGDebugger.LogDebug("onReward, msg : " + msg + " , code : " + code + " , isReward : " + isReward); + Loom.QueueOnMainThread((pObj) => + { + if (isReward) + { + if (TKGSDKCallback.mRewardCallback != null) + { + TKGSDKCallback.mRewardCallback.Invoke(true); + TKGSDKCallback.mRewardCallback = null; + } + } + else + { + if (TKGSDKCallback.mRewardCallback != null) + { + TKGSDKCallback.mRewardCallback.Invoke(false); + TKGSDKCallback.mRewardCallback = null; + } + } + }, ""); + } + } + + /// + /// bannerAd callback + /// + public class AndroidBannerADTKGAdCallback : AndroidJavaProxy + { + public AndroidBannerADTKGAdCallback() : base("com.touka.tkg.idal.ITKGAdCallback") { } + + public void onClosed() + { + TKGDebugger.LogDebug("onClosed"); + } + public void onClicked() + { + TKGDebugger.LogDebug("onClicked"); + } + public void onSkip() + { + TKGDebugger.LogDebug("onSkip"); + } + public void onLoaded() + { + TKGDebugger.LogDebug("onLoaded"); + } + public void onLoadFail(int code, string msg) + { + TKGDebugger.LogDebug("onLoadFail, code : " + code + " , msg : " + msg); + } + public void onShow() + { + TKGDebugger.LogDebug("onShow"); + } + public void onShowFail(int code, string msg) + { + TKGDebugger.LogDebug("onShowFail, code : " + code + " , msg : " + msg); + } + } + + /// + /// tkg callback + /// + public class AndroidTKGCommonCalllback : AndroidJavaProxy + { + public AndroidTKGCommonCalllback() : base("com.touka.tkg.idal.TKGCalllback") { } + + public void onCall(int _code, string _msg) + { + TKGDebugger.LogDebug("TKGCallback onCall, code : " + _code + " , msg : " + _msg); + if(TKGSDKCallback.mTKGCommonCallback != null) + { + TKGSDKCallback.mTKGCommonCallback.Invoke((CommonCallbackCode)_code, _msg); + TKGSDKCallback.mTKGCommonCallback = null; + } + } + } + + /// + /// tkg callback + /// + public class AndroidTKGUserSourceCalllback : AndroidJavaProxy + { + public AndroidTKGUserSourceCalllback() : base("com.touka.tkg.idal.UserSourceCallback") { } + + public void onResult(bool _isOrganic, string _userSource) + { + TKGDebugger.LogDebug("TKGCallback onCall, isOrganic : " + _isOrganic + " , userSource : " + _userSource); + if(TKGSDKCallback.mTKGUserSourceCallback != null) + { + TKGSDKCallback.mTKGUserSourceCallback.Invoke(_isOrganic, _userSource); + TKGSDKCallback.mTKGUserSourceCallback = null; + } + } + } + + /* + Loom.QueueOnMainThread((pObj) => + { + + }, ""); + */ + +} + diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackAndroid.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackAndroid.cs.meta new file mode 100644 index 00000000..59e91fca --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackAndroid.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dc167804e776c4f849e823abc9f340bd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackIOS.cs b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackIOS.cs new file mode 100644 index 00000000..21dabd81 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackIOS.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; + +namespace Touka +{ + public class TKGSDKCallbackIOS + { + + + } +} + diff --git a/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackIOS.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackIOS.cs.meta new file mode 100644 index 00000000..4260592e --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/SDK/TKGSDKCallbackIOS.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4f7da094c07e543bcb390b93b01aba44 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/Utils.meta b/Assets/TKGSDK/NativeSDK/Scripts/Utils.meta new file mode 100644 index 00000000..77e47af2 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/Utils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 49988ebe4ee55484ba94dff7acaadc7c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/Utils/DplusAgent.cs b/Assets/TKGSDK/NativeSDK/Scripts/Utils/DplusAgent.cs new file mode 100644 index 00000000..f4abb407 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/Utils/DplusAgent.cs @@ -0,0 +1,250 @@ +//#undef UNITY_EDITOR + +using UnityEngine; +using System; +using System.Runtime.InteropServices; +using System.Collections; +using System.Collections.Generic; +using System.Text; + + + +namespace Touka +{ + + public partial class Analytics + { + + +#if UNITY_ANDROID + + private static AndroidJavaObject AndroidJavaJsonObject(JSONObject jSONObject) + { + return new AndroidJavaObject("org.json.JSONObject", jSONObject.ToString()); + } + + private static JSONObject jsonObjectFromJava(AndroidJavaObject androidJavaJsonObject) + { + return (JSONObject)JSONNode.Parse(androidJavaJsonObject.Call("toString")); + } + + private static AndroidJavaObject ToJavaObject(object obj) + { + if (obj is int) + { + return new AndroidJavaObject("java.lang.Integer", obj); + } + else if (obj is long) + { + return new AndroidJavaObject("java.lang.Long", obj); + } + + else if (obj is float) + { + return new AndroidJavaObject("java.lang.Float", obj); + + } + else if (obj is double) + { + return new AndroidJavaObject("java.lang.Double", obj); + } + else if (obj is string) + { + return new AndroidJavaObject("java.lang.String", obj); + + } + else if(obj is bool) + { + + return new AndroidJavaObject("java.lang.Integer", Convert.ToInt32((bool)obj)); + + } + else + { + Debug.Log("不支持加入" + obj.GetType()+"类型,此kv对被丢弃"); + return null; + } + + + + + } + + + + private static AndroidJavaObject ToJavaHashMap(Dictionary dic) + { + var hashMap = new AndroidJavaObject("java.util.HashMap"); + + + foreach (var kv in dic) + { + var vauleObj = ToJavaObject(kv.Value); + if (vauleObj != null) + { + + hashMap.Call("put", kv.Key, vauleObj); + } + + } + + return hashMap; + } + public static AndroidJavaObject ToJavaHashMap(Dictionary dic) + { + var hashMap = new AndroidJavaObject("java.util.HashMap"); + foreach (var entry in dic) + { + hashMap.Call("put", entry.Key, entry.Value); + } + return hashMap; + + } + + private static AndroidJavaObject ToJavaList(String[] list) + { + var javaList = new AndroidJavaObject("java.util.ArrayList"); + + + foreach (String str in list) + { + javaList.Call("add", str); + } + + return javaList; + } + +#elif UNITY_IPHONE + + private static string ToJsonStr(Dictionary dict) + { + + var builder = new StringBuilder("{"); + foreach (KeyValuePair kv in dict) + { + if(kv.Value is string) + { + builder.AppendFormat("\"{0}\":\"{1}\",", kv.Key, kv.Value); + } + else if(kv.Value is float || kv.Value is double|| kv.Value is int || kv.Value is long) + { + builder.AppendFormat("\"{0}\":{1},", kv.Key, kv.Value.ToString()); + } + else if( kv.Value is bool) + { + builder.AppendFormat("\"{0}\":{1},", kv.Key, Convert.ToInt32(kv.Value)); + } + else + { + Debug.Log("不支持此类型"); + + } + + + + } + builder[builder.Length - 1] = '}'; + return builder.ToString(); + + + } +#endif + + + + + public static void EventObject(String eventID,Dictionary dict) + { + + } + + + + + public static void RegisterPreProperties(JSONObject jsonObject) + { + JSONObject filteredJsonObject = new JSONObject(); + + foreach (KeyValuePair kv in jsonObject) + { + if (kv.Value.IsObject || kv.Value.IsArray) + { + Debug.LogError("不支持加入Object/Array类型,此kv对被丢弃"); + + + } + else if ( kv.Value.IsBoolean) + { + + filteredJsonObject.Add(kv.Key, Convert.ToInt32(kv.Value.AsBool)); + + + } + else + { + filteredJsonObject.Add(kv.Key, kv.Value); + } + + + + } + + + + + } + + + + public static void UnregisterPreProperty(String propertyName) + { + + + } + + + + + + public static JSONObject GetPreProperties() + { + return null; + + + } + public static void ClearPreProperties() + { + + } + + + public static void SetFirstLaunchEvent(string[] trackID) + { + + + } + +#if UNITY_IPHONE + [DllImport("__Internal")] + private static extern void _EventObject(string eventID, string jsonStr); + [DllImport("__Internal")] + private static extern void _RegisterSuperProperty(string jsonStr); + [DllImport("__Internal")] + private static extern void _UnregisterSuperProperty(string propertyName); + [DllImport("__Internal")] + private static extern string _GetSuperProperties(); + [DllImport("__Internal")] + private static extern void _ClearSuperProperties(); + [DllImport("__Internal")] + private static extern void _SetFirstLaunchEvent(string[] propertyName,int len); +#endif + + + } + + + + + + +} diff --git a/Assets/TKGSDK/NativeSDK/Scripts/Utils/DplusAgent.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/Utils/DplusAgent.cs.meta new file mode 100644 index 00000000..efec719d --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/Utils/DplusAgent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 683ed0c395fa44a26b9d5ba286cb521c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/Utils/Loom.cs b/Assets/TKGSDK/NativeSDK/Scripts/Utils/Loom.cs new file mode 100644 index 00000000..ac51d04a --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/Utils/Loom.cs @@ -0,0 +1,178 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using System; +using System.Threading; +using System.Linq; + +namespace Touka +{ + public class Loom : MonoBehaviour + { + public static int maxThreads = 8; + static int numThreads; + + private static Loom _current; + //private int _count; + public static Loom Current + { + get + { + Initialize(); + return _current; + } + } + + void Awake() + { + _current = this; + initialized = true; + } + + static bool initialized; + + public static void Initialize() + { + if (!initialized) + { + + if (!Application.isPlaying) + return; + initialized = true; + var g = new GameObject("Loom"); + _current = g.AddComponent(); +#if !ARTIST_BUILD + UnityEngine.Object.DontDestroyOnLoad(g); +#endif + } + + } + public struct NoDelayedQueueItem + { + public Action action; + public object param; + } + + private List _actions = new List(); + public struct DelayedQueueItem + { + public float time; + public Action action; + public object param; + } + private List _delayed = new List(); + + List _currentDelayed = new List(); + + public static void QueueOnMainThread(Action taction, object tparam) + { + QueueOnMainThread(taction, tparam, 0f); + } + public static void QueueOnMainThread(Action taction, object tparam, float time) + { + if (time != 0) + { + lock (Current._delayed) + { + Current._delayed.Add(new DelayedQueueItem { time = Time.time + time, action = taction, param = tparam }); + } + } + else + { + lock (Current._actions) + { + Current._actions.Add(new NoDelayedQueueItem { action = taction, param = tparam }); + } + } + } + + public static Thread RunAsync(Action a) + { + Initialize(); + while (numThreads >= maxThreads) + { + Thread.Sleep(100); + } + Interlocked.Increment(ref numThreads); + ThreadPool.QueueUserWorkItem(RunAction, a); + return null; + } + + private static void RunAction(object action) + { + try + { + ((Action)action)(); + } + catch + { + } + finally + { + Interlocked.Decrement(ref numThreads); + } + + } + + + void OnDisable() + { + if (_current == this) + { + + _current = null; + } + } + + public void ToukaGamesInit() + { + + } + + + + // Use this for initialization + void Start() + { + + } + + List _currentActions = new List(); + + // Update is called once per frame + void Update() + { + if (_actions.Count > 0) + { + lock (_actions) + { + _currentActions.Clear(); + _currentActions.AddRange(_actions); + _actions.Clear(); + } + for (int i = 0; i < _currentActions.Count; i++) + { + _currentActions[i].action(_currentActions[i].param); + } + } + + if (_delayed.Count > 0) + { + lock (_delayed) + { + _currentDelayed.Clear(); + _currentDelayed.AddRange(_delayed.Where(d => d.time <= Time.time)); + for (int i = 0; i < _currentDelayed.Count; i++) + { + _delayed.Remove(_currentDelayed[i]); + } + } + + for (int i = 0; i < _currentDelayed.Count; i++) + { + _currentDelayed[i].action(_currentDelayed[i].param); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/TKGSDK/NativeSDK/Scripts/Utils/Loom.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/Utils/Loom.cs.meta new file mode 100644 index 00000000..41035f77 --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/Utils/Loom.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9035aca16cc8640a780f0553de2035aa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/Utils/MiniJSON.cs b/Assets/TKGSDK/NativeSDK/Scripts/Utils/MiniJSON.cs new file mode 100644 index 00000000..89a1c8ec --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/Utils/MiniJSON.cs @@ -0,0 +1,637 @@ +/* + * Copyright (c) 2013 Calvin Rien + * + * Based on the JSON parser by Patrick van Bergen + * http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html + * + * Simplified it so that it doesn't throw exceptions + * and can be used in Unity iPhone with maximum code stripping. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace Touka +{ + namespace MiniJSON + { + // Example usage: + // + // using UnityEngine; + // using System.Collections; + // using System.Collections.Generic; + // using MiniJSON; + // + // public class MiniJSONTest : MonoBehaviour { + // void Start () { + // var jsonString = "{ \"array\": [1.44,2,3], " + + // "\"object\": {\"key1\":\"value1\", \"key2\":256}, " + + // "\"string\": \"The quick brown fox \\\"jumps\\\" over the lazy dog \", " + + // "\"unicode\": \"\\u3041 Men\u00fa sesi\u00f3n\", " + + // "\"int\": 65536, " + + // "\"float\": 3.1415926, " + + // "\"bool\": true, " + + // "\"null\": null }"; + // + // var dict = Json.Deserialize(jsonString) as Dictionary; + // + // Debuger.Log("deserialized: " + dict.GetType()); + // Debuger.Log("dict['array'][0]: " + ((List) dict["array"])[0]); + // Debuger.Log("dict['string']: " + (string) dict["string"]); + // Debuger.Log("dict['float']: " + (double) dict["float"]); // floats come out as doubles + // Debuger.Log("dict['int']: " + (long) dict["int"]); // ints come out as longs + // Debuger.Log("dict['unicode']: " + (string) dict["unicode"]); + // + // var str = Json.Serialize(dict); + // + // Debuger.Log("serialized: " + str); + // } + // } + + /// + /// This class encodes and decodes JSON strings. + /// Spec. details, see http://www.json.org/ + /// + /// JSON uses Arrays and Objects. These correspond here to the datatypes IList and IDictionary. + /// All numbers are parsed to doubles. + /// + public static class Json + { + /// + /// Parses the string json into a value + /// + /// A JSON string. + /// An List<object>, a Dictionary<string, object>, a double, an integer,a string, null, true, or false + public static object Deserialize(string json) + { + // save the string for debug information + if (json == null) + { + return null; + } + + return Parser.Parse(json); + } + + sealed class Parser : IDisposable + { + const string WORD_BREAK = "{}[],:\""; + + public static bool IsWordBreak(char c) + { + return Char.IsWhiteSpace(c) || WORD_BREAK.IndexOf(c) != -1; + } + + enum TOKEN + { + NONE, + CURLY_OPEN, + CURLY_CLOSE, + SQUARED_OPEN, + SQUARED_CLOSE, + COLON, + COMMA, + STRING, + NUMBER, + TRUE, + FALSE, + NULL + }; + + StringReader json; + + Parser(string jsonString) + { + json = new StringReader(jsonString); + } + + public static object Parse(string jsonString) + { + using (var instance = new Parser(jsonString)) + { + return instance.ParseValue(); + } + } + + public void Dispose() + { + json.Dispose(); + json = null; + } + + Dictionary ParseObject() + { + Dictionary table = new Dictionary(); + + // ditch opening brace + json.Read(); + + // { + while (true) + { + switch (NextToken) + { + case TOKEN.NONE: + return null; + case TOKEN.COMMA: + continue; + case TOKEN.CURLY_CLOSE: + return table; + default: + // name + string name = ParseString(); + if (name == null) + { + return null; + } + + // : + if (NextToken != TOKEN.COLON) + { + return null; + } + // ditch the colon + json.Read(); + + // value + table[name] = ParseValue(); + break; + } + } + } + + List ParseArray() + { + List array = new List(); + + // ditch opening bracket + json.Read(); + + // [ + var parsing = true; + while (parsing) + { + TOKEN nextToken = NextToken; + + switch (nextToken) + { + case TOKEN.NONE: + return null; + case TOKEN.COMMA: + continue; + case TOKEN.SQUARED_CLOSE: + parsing = false; + break; + default: + object value = ParseByToken(nextToken); + + array.Add(value); + break; + } + } + + return array; + } + + object ParseValue() + { + TOKEN nextToken = NextToken; + return ParseByToken(nextToken); + } + + object ParseByToken(TOKEN token) + { + switch (token) + { + case TOKEN.STRING: + return ParseString(); + case TOKEN.NUMBER: + return ParseNumber(); + case TOKEN.CURLY_OPEN: + return ParseObject(); + case TOKEN.SQUARED_OPEN: + return ParseArray(); + case TOKEN.TRUE: + return true; + case TOKEN.FALSE: + return false; + case TOKEN.NULL: + return null; + default: + return null; + } + } + + string ParseString() + { + StringBuilder s = new StringBuilder(); + char c; + + // ditch opening quote + json.Read(); + + bool parsing = true; + while (parsing) + { + + if (json.Peek() == -1) + { + parsing = false; + break; + } + + c = NextChar; + switch (c) + { + case '"': + parsing = false; + break; + case '\\': + if (json.Peek() == -1) + { + parsing = false; + break; + } + + c = NextChar; + switch (c) + { + case '"': + case '\\': + case '/': + s.Append(c); + break; + case 'b': + s.Append('\b'); + break; + case 'f': + s.Append('\f'); + break; + case 'n': + s.Append('\n'); + break; + case 'r': + s.Append('\r'); + break; + case 't': + s.Append('\t'); + break; + case 'u': + var hex = new char[4]; + + for (int i = 0; i < 4; i++) + { + hex[i] = NextChar; + } + + s.Append((char)Convert.ToInt32(new string(hex), 16)); + break; + } + break; + default: + s.Append(c); + break; + } + } + + return s.ToString(); + } + + object ParseNumber() + { + string number = NextWord; + + if (number.IndexOf('.') == -1) + { + long parsedInt; + Int64.TryParse(number, out parsedInt); + return parsedInt; + } + + double parsedDouble; + Double.TryParse(number, out parsedDouble); + return parsedDouble; + } + + void EatWhitespace() + { + while (json.Peek() != -1) + { + if (Char.IsWhiteSpace(PeekChar)) + json.Read(); + else + break; + } + } + + char PeekChar + { + get + { + return Convert.ToChar(json.Peek()); + } + } + + char NextChar + { + get + { + return Convert.ToChar(json.Read()); + } + } + + string NextWord + { + get + { + StringBuilder word = new StringBuilder(); + + while (json.Peek() != -1) + { + if (!IsWordBreak(PeekChar)) + { + word.Append(NextChar); + } + else + { + break; + } + } + + return word.ToString(); + } + } + + TOKEN NextToken + { + get + { + EatWhitespace(); + + if (json.Peek() == -1) + { + return TOKEN.NONE; + } + + switch (PeekChar) + { + case '{': + return TOKEN.CURLY_OPEN; + case '}': + json.Read(); + return TOKEN.CURLY_CLOSE; + case '[': + return TOKEN.SQUARED_OPEN; + case ']': + json.Read(); + return TOKEN.SQUARED_CLOSE; + case ',': + json.Read(); + return TOKEN.COMMA; + case '"': + return TOKEN.STRING; + case ':': + return TOKEN.COLON; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '-': + return TOKEN.NUMBER; + } + + switch (NextWord) + { + case "false": + return TOKEN.FALSE; + case "true": + return TOKEN.TRUE; + case "null": + return TOKEN.NULL; + } + + return TOKEN.NONE; + } + } + } + + /// + /// Converts a IDictionary / IList object or a simple type (string, int, etc.) into a JSON string + /// + /// A Dictionary<string, object> / List<object> + /// A JSON encoded string, or null if object 'json' is not serializable + public static string Serialize(object obj) + { + return Serializer.Serialize(obj); + } + + sealed class Serializer + { + StringBuilder builder; + + Serializer() + { + builder = new StringBuilder(); + } + + public static string Serialize(object obj) + { + var instance = new Serializer(); + + instance.SerializeValue(obj); + + return instance.builder.ToString(); + } + + void SerializeValue(object value) + { + IList asList; + IDictionary asDict; + string asStr; + + if (value == null) + { + builder.Append("null"); + } + else if ((asStr = value as string) != null) + { + SerializeString(asStr); + } + else if (value is bool) + { + builder.Append((bool)value ? "true" : "false"); + } + else if ((asList = value as IList) != null) + { + SerializeArray(asList); + } + else if ((asDict = value as IDictionary) != null) + { + SerializeObject(asDict); + } + else if (value is char) + { + SerializeString(new string((char)value, 1)); + } + else + { + SerializeOther(value); + } + } + + void SerializeObject(IDictionary obj) + { + bool first = true; + + builder.Append('{'); + + foreach (object e in obj.Keys) + { + if (!first) + { + builder.Append(','); + } + + SerializeString(e.ToString()); + builder.Append(':'); + + SerializeValue(obj[e]); + + first = false; + } + + builder.Append('}'); + } + + void SerializeArray(IList anArray) + { + builder.Append('['); + + bool first = true; + + foreach (object obj in anArray) + { + if (!first) + { + builder.Append(','); + } + + SerializeValue(obj); + + first = false; + } + + builder.Append(']'); + } + + void SerializeString(string str) + { + builder.Append('\"'); + + char[] charArray = str.ToCharArray(); + foreach (var c in charArray) + { + switch (c) + { + case '"': + builder.Append("\\\""); + break; + case '\\': + builder.Append("\\\\"); + break; + case '\b': + builder.Append("\\b"); + break; + case '\f': + builder.Append("\\f"); + break; + case '\n': + builder.Append("\\n"); + break; + case '\r': + builder.Append("\\r"); + break; + case '\t': + builder.Append("\\t"); + break; + default: + int codepoint = Convert.ToInt32(c); + if ((codepoint >= 32) && (codepoint <= 126)) + { + builder.Append(c); + } + else + { + builder.Append("\\u"); + builder.Append(codepoint.ToString("x4")); + } + break; + } + } + + builder.Append('\"'); + } + + void SerializeOther(object value) + { + // NOTE: decimals lose precision during serialization. + // They always have, I'm just letting you know. + // Previously floats and doubles lost precision too. + if (value is float) + { + builder.Append(((float)value).ToString("R")); + } + else if (value is int + || value is uint + || value is long + || value is sbyte + || value is byte + || value is short + || value is ushort + || value is ulong) + { + builder.Append(value); + } + else if (value is double + || value is decimal) + { + builder.Append(Convert.ToDouble(value).ToString("R")); + } + else + { + SerializeString(value.ToString()); + } + } + } + } + } + +} + diff --git a/Assets/TKGSDK/NativeSDK/Scripts/Utils/MiniJSON.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/Utils/MiniJSON.cs.meta new file mode 100644 index 00000000..2b2b7bab --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/Utils/MiniJSON.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4c9cd188383844150974623f9279ff48 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/NativeSDK/Scripts/Utils/SimpleJSON.cs b/Assets/TKGSDK/NativeSDK/Scripts/Utils/SimpleJSON.cs new file mode 100644 index 00000000..68b19e4c --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/Utils/SimpleJSON.cs @@ -0,0 +1,1398 @@ +//#define USE_SharpZipLib +#if !UNITY_WEBPLAYER +#define USE_FileIO +#endif +/* * * * * + * A simple JSON Parser / builder + * ------------------------------ + * + * It mainly has been written as a simple JSON parser. It can build a JSON string + * from the node-tree, or generate a node tree from any valid JSON string. + * + * If you want to use compression when saving to file / stream / B64 you have to include + * SharpZipLib ( http://www.icsharpcode.net/opensource/sharpziplib/ ) in your project and + * define "USE_SharpZipLib" at the top of the file + * + * Written by Bunny83 + * 2012-06-09 + * + * + * Features / attributes: + * - provides strongly typed node classes and lists / dictionaries + * - provides easy access to class members / array items / data values + * - the parser now properly identifies types. So generating JSON with this framework should work. + * - only double quotes (") are used for quoting strings. + * - provides "casting" properties to easily convert to / from those types: + * int / float / double / bool + * - provides a common interface for each node so no explicit casting is required. + * - the parser tries to avoid errors, but if malformed JSON is parsed the result is more or less undefined + * - It can serialize/deserialize a node tree into/from an experimental compact binary format. It might + * be handy if you want to store things in a file and don't want it to be easily modifiable + * + * + * 2012-12-17 Update: + * - Added internal JSONLazyCreator class which simplifies the construction of a JSON tree + * Now you can simple reference any item that doesn't exist yet and it will return a JSONLazyCreator + * The class determines the required type by it's further use, creates the type and removes itself. + * - Added binary serialization / deserialization. + * - Added support for BZip2 zipped binary format. Requires the SharpZipLib ( http://www.icsharpcode.net/opensource/sharpziplib/ ) + * The usage of the SharpZipLib library can be disabled by removing or commenting out the USE_SharpZipLib define at the top + * - The serializer uses different types when it comes to store the values. Since my data values + * are all of type string, the serializer will "try" which format fits best. The order is: int, float, double, bool, string. + * It's not the most efficient way but for a moderate amount of data it should work on all platforms. + * + * 2017-03-08 Update: + * - Optimised parsing by using a StringBuilder for token. This prevents performance issues when large + * string data fields are contained in the json data. + * - Finally refactored the badly named JSONClass into JSONObject. + * - Replaced the old JSONData class by distict typed classes ( JSONString, JSONNumber, JSONBool, JSONNull ) this + * allows to propertly convert the node tree back to json without type information loss. The actual value + * parsing now happens at parsing time and not when you actually access one of the casting properties. + * + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 Markus Göbel + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * * * * */ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Touka +{ + public enum JSONNodeType + { + Array = 1, + Object = 2, + String = 3, + Number = 4, + NullValue = 5, + Boolean = 6, + None = 7, + } + + public abstract partial class JSONNode + { + #region common interface + + public virtual JSONNode this[int aIndex] { get { return null; } set { } } + + public virtual JSONNode this[string aKey] { get { return null; } set { } } + + public virtual string Value { get { return ""; } set { } } + + public virtual int Count { get { return 0; } } + + public virtual bool IsNumber { get { return false; } } + public virtual bool IsString { get { return false; } } + public virtual bool IsBoolean { get { return false; } } + public virtual bool IsNull { get { return false; } } + public virtual bool IsArray { get { return false; } } + public virtual bool IsObject { get { return false; } } + + public virtual void Add(string aKey, JSONNode aItem) + { + } + public virtual void Add(JSONNode aItem) + { + Add("", aItem); + } + + public virtual JSONNode Remove(string aKey) + { + return null; + } + + public virtual JSONNode Remove(int aIndex) + { + return null; + } + + public virtual JSONNode Remove(JSONNode aNode) + { + return aNode; + } + + public virtual IEnumerable Children + { + get + { + yield break; + } + } + + public IEnumerable DeepChildren + { + get + { + foreach (var C in Children) + foreach (var D in C.DeepChildren) + yield return D; + } + } + + public override string ToString() + { + return "JSONNode"; + } + + public virtual string ToString(string aIndent) + { + return ToString(aIndent, ""); + } + + internal abstract string ToString(string aIndent, string aPrefix); + + #endregion common interface + + #region typecasting properties + + public abstract JSONNodeType Tag { get; } + + public virtual double AsDouble + { + get + { + double v = 0.0; + if (double.TryParse(Value, out v)) + return v; + return 0.0; + } + set + { + Value = value.ToString(); + } + } + + public virtual int AsInt + { + get { return (int)AsDouble; } + set { AsDouble = value; } + } + + public virtual float AsFloat + { + get { return (float)AsDouble; } + set { AsDouble = value; } + } + + public virtual bool AsBool + { + get + { + bool v = false; + if (bool.TryParse(Value, out v)) + return v; + return !string.IsNullOrEmpty(Value); + } + set + { + Value = (value) ? "true" : "false"; + } + } + + public virtual JSONArray AsArray + { + get + { + return this as JSONArray; + } + } + + public virtual JSONObject AsObject + { + get + { + return this as JSONObject; + } + } + + + #endregion typecasting properties + + #region operators + + public static implicit operator JSONNode(string s) + { + return new JSONString(s); + } + public static implicit operator string(JSONNode d) + { + return (d == null) ? null : d.Value; + } + + public static implicit operator JSONNode(double n) + { + return new JSONNumber(n); + } + public static implicit operator double(JSONNode d) + { + return (d == null) ? 0 : d.AsDouble; + } + + public static implicit operator JSONNode(float n) + { + return new JSONNumber(n); + } + public static implicit operator float(JSONNode d) + { + return (d == null) ? 0 : d.AsFloat; + } + + public static implicit operator JSONNode(int n) + { + return new JSONNumber(n); + } + public static implicit operator int(JSONNode d) + { + return (d == null) ? 0 : d.AsInt; + } + + public static implicit operator JSONNode(bool b) + { + return new JSONBool(b); + } + public static implicit operator bool(JSONNode d) + { + return (d == null) ? false : d.AsBool; + } + + public static bool operator ==(JSONNode a, object b) + { + if (ReferenceEquals(a, b)) + return true; + bool aIsNull = a is JSONNull || ReferenceEquals(a, null) || a is JSONLazyCreator; + bool bIsNull = b is JSONNull || ReferenceEquals(b, null) || b is JSONLazyCreator; + return (aIsNull && bIsNull); + } + + public static bool operator !=(JSONNode a, object b) + { + return !(a == b); + } + + public override bool Equals(object obj) + { + return System.Object.ReferenceEquals(this, obj); + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + + #endregion operators + internal static StringBuilder m_EscapeBuilder = new StringBuilder(); + internal static string Escape(string aText) + { + m_EscapeBuilder.Length = 0; + if (m_EscapeBuilder.Capacity < aText.Length + aText.Length / 10) + m_EscapeBuilder.Capacity = aText.Length + aText.Length / 10; + foreach (char c in aText) + { + switch (c) + { + case '\\': + m_EscapeBuilder.Append("\\\\"); + break; + case '\"': + m_EscapeBuilder.Append("\""); + break; + case '\n': + m_EscapeBuilder.Append("\\n"); + break; + case '\r': + m_EscapeBuilder.Append("\\r"); + break; + case '\t': + m_EscapeBuilder.Append("\\t"); + break; + case '\b': + m_EscapeBuilder.Append("\\b"); + break; + case '\f': + m_EscapeBuilder.Append("\\f"); + break; + default: + m_EscapeBuilder.Append(c); + break; + } + } + string result = m_EscapeBuilder.ToString(); + m_EscapeBuilder.Length = 0; + return result; + } + + static void ParseElement(JSONNode ctx, string token, string tokenName, bool quoted) + { + if (quoted) + { + ctx.Add(tokenName, token); + return; + } + string tmp = token.ToLower(); + if (tmp == "false" || tmp == "true") + ctx.Add(tokenName, tmp == "true"); + else if (tmp == "null") + ctx.Add(tokenName, null); + else + { + double val; + if (double.TryParse(token, out val)) + ctx.Add(tokenName, val); + else + ctx.Add(tokenName, token); + } + } + + public static JSONNode Parse(string aJSON) + { + Stack stack = new Stack(); + JSONNode ctx = null; + int i = 0; + StringBuilder Token = new StringBuilder(); + string TokenName = ""; + bool QuoteMode = false; + bool TokenIsQuoted = false; + while (i < aJSON.Length) + { + switch (aJSON[i]) + { + case '{': + if (QuoteMode) + { + Token.Append(aJSON[i]); + break; + } + stack.Push(new JSONObject()); + if (ctx != null) + { + ctx.Add(TokenName, stack.Peek()); + } + TokenName = ""; + Token.Length = 0; + ctx = stack.Peek(); + break; + + case '[': + if (QuoteMode) + { + Token.Append(aJSON[i]); + break; + } + + stack.Push(new JSONArray()); + if (ctx != null) + { + ctx.Add(TokenName, stack.Peek()); + } + TokenName = ""; + Token.Length = 0; + ctx = stack.Peek(); + break; + + case '}': + case ']': + if (QuoteMode) + { + + Token.Append(aJSON[i]); + break; + } + if (stack.Count == 0) + throw new Exception("JSON Parse: Too many closing brackets"); + + stack.Pop(); + if (Token.Length > 0) + { + ParseElement(ctx, Token.ToString(), TokenName, TokenIsQuoted); + TokenIsQuoted = false; + } + TokenName = ""; + Token.Length = 0; + if (stack.Count > 0) + ctx = stack.Peek(); + break; + + case ':': + if (QuoteMode) + { + Token.Append(aJSON[i]); + break; + } + TokenName = Token.ToString().Trim(); + Token.Length = 0; + TokenIsQuoted = false; + break; + + case '"': + QuoteMode ^= true; + TokenIsQuoted |= QuoteMode; + break; + + case ',': + if (QuoteMode) + { + Token.Append(aJSON[i]); + break; + } + if (Token.Length > 0) + { + ParseElement(ctx, Token.ToString(), TokenName, TokenIsQuoted); + TokenIsQuoted = false; + } + TokenName = ""; + Token.Length = 0; + TokenIsQuoted = false; + break; + + case '\r': + case '\n': + break; + + case ' ': + case '\t': + if (QuoteMode) + Token.Append(aJSON[i]); + break; + + case '\\': + ++i; + if (QuoteMode) + { + char C = aJSON[i]; + switch (C) + { + case 't': + Token.Append('\t'); + break; + case 'r': + Token.Append('\r'); + break; + case 'n': + Token.Append('\n'); + break; + case 'b': + Token.Append('\b'); + break; + case 'f': + Token.Append('\f'); + break; + case 'u': + { + string s = aJSON.Substring(i + 1, 4); + Token.Append((char)int.Parse( + s, + System.Globalization.NumberStyles.AllowHexSpecifier)); + i += 4; + break; + } + default: + Token.Append(C); + break; + } + } + break; + + default: + Token.Append(aJSON[i]); + break; + } + ++i; + } + if (QuoteMode) + { + throw new Exception("JSON Parse: Quotation marks seems to be messed up."); + } + return ctx; + } + + public virtual void Serialize(System.IO.BinaryWriter aWriter) + { + } + + public void SaveToStream(System.IO.Stream aData) + { + var W = new System.IO.BinaryWriter(aData); + Serialize(W); + } + + #if USE_SharpZipLib + public void SaveToCompressedStream(System.IO.Stream aData) + { + using (var gzipOut = new ICSharpCode.SharpZipLib.BZip2.BZip2OutputStream(aData)) + { + gzipOut.IsStreamOwner = false; + SaveToStream(gzipOut); + gzipOut.Close(); + } + } + + public void SaveToCompressedFile(string aFileName) + { + + #if USE_FileIO + System.IO.Directory.CreateDirectory((new System.IO.FileInfo(aFileName)).Directory.FullName); + using(var F = System.IO.File.OpenWrite(aFileName)) + { + SaveToCompressedStream(F); + } + + #else + throw new Exception("Can't use File IO stuff in the webplayer"); + #endif + } + public string SaveToCompressedBase64() + { + using (var stream = new System.IO.MemoryStream()) + { + SaveToCompressedStream(stream); + stream.Position = 0; + return System.Convert.ToBase64String(stream.ToArray()); + } + } + + #else + public void SaveToCompressedStream(System.IO.Stream aData) + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + + public void SaveToCompressedFile(string aFileName) + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + + public string SaveToCompressedBase64() + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + #endif + + public void SaveToFile(string aFileName) + { + #if USE_FileIO + System.IO.Directory.CreateDirectory((new System.IO.FileInfo(aFileName)).Directory.FullName); + using (var F = System.IO.File.OpenWrite(aFileName)) + { + SaveToStream(F); + } + #else + throw new Exception ("Can't use File IO stuff in the webplayer"); + #endif + } + + public string SaveToBase64() + { + using (var stream = new System.IO.MemoryStream()) + { + SaveToStream(stream); + stream.Position = 0; + return System.Convert.ToBase64String(stream.ToArray()); + } + } + + public static JSONNode Deserialize(System.IO.BinaryReader aReader) + { + JSONNodeType type = (JSONNodeType)aReader.ReadByte(); + switch (type) + { + case JSONNodeType.Array: + { + int count = aReader.ReadInt32(); + JSONArray tmp = new JSONArray(); + for (int i = 0; i < count; i++) + tmp.Add(Deserialize(aReader)); + return tmp; + } + case JSONNodeType.Object: + { + int count = aReader.ReadInt32(); + JSONObject tmp = new JSONObject(); + for (int i = 0; i < count; i++) + { + string key = aReader.ReadString(); + var val = Deserialize(aReader); + tmp.Add(key, val); + } + return tmp; + } + case JSONNodeType.String: + { + return new JSONString(aReader.ReadString()); + } + case JSONNodeType.Number: + { + return new JSONNumber(aReader.ReadDouble()); + } + case JSONNodeType.Boolean: + { + return new JSONBool(aReader.ReadBoolean()); + } + case JSONNodeType.NullValue: + { + return new JSONNull(); + } + default: + { + throw new Exception("Error deserializing JSON. Unknown tag: " + type); + } + } + } + + #if USE_SharpZipLib + public static JSONNode LoadFromCompressedStream(System.IO.Stream aData) + { + var zin = new ICSharpCode.SharpZipLib.BZip2.BZip2InputStream(aData); + return LoadFromStream(zin); + } + public static JSONNode LoadFromCompressedFile(string aFileName) + { + #if USE_FileIO + using(var F = System.IO.File.OpenRead(aFileName)) + { + return LoadFromCompressedStream(F); + } + #else + throw new Exception("Can't use File IO stuff in the webplayer"); + #endif + } + public static JSONNode LoadFromCompressedBase64(string aBase64) + { + var tmp = System.Convert.FromBase64String(aBase64); + var stream = new System.IO.MemoryStream(tmp); + stream.Position = 0; + return LoadFromCompressedStream(stream); + } + #else + public static JSONNode LoadFromCompressedFile(string aFileName) + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + + public static JSONNode LoadFromCompressedStream(System.IO.Stream aData) + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + + public static JSONNode LoadFromCompressedBase64(string aBase64) + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + #endif + + public static JSONNode LoadFromStream(System.IO.Stream aData) + { + using (var R = new System.IO.BinaryReader(aData)) + { + return Deserialize(R); + } + } + + public static JSONNode LoadFromFile(string aFileName) + { + #if USE_FileIO + using (var F = System.IO.File.OpenRead(aFileName)) + { + return LoadFromStream(F); + } + #else + throw new Exception ("Can't use File IO stuff in the webplayer"); + #endif + } + + public static JSONNode LoadFromBase64(string aBase64) + { + var tmp = System.Convert.FromBase64String(aBase64); + var stream = new System.IO.MemoryStream(tmp); + stream.Position = 0; + return LoadFromStream(stream); + } + } + // End of JSONNode + + public class JSONArray : JSONNode, IEnumerable + { + private List m_List = new List(); + + public override JSONNodeType Tag { get { return JSONNodeType.Array; } } + public override bool IsArray { get { return true; } } + + + + public override JSONNode this[int aIndex] + { + get + { + if (aIndex < 0 || aIndex >= m_List.Count) + return new JSONLazyCreator(this); + return m_List[aIndex]; + } + set + { + if (value == null) + value = new JSONNull(); + if (aIndex < 0 || aIndex >= m_List.Count) + m_List.Add(value); + else + m_List[aIndex] = value; + } + } + + public override JSONNode this[string aKey] + { + get { return new JSONLazyCreator(this); } + set + { + if (value == null) + value = new JSONNull(); + m_List.Add(value); + } + } + + public override int Count + { + get { return m_List.Count; } + } + + public override void Add(string aKey, JSONNode aItem) + { + if (aItem == null) + aItem = new JSONNull(); + m_List.Add(aItem); + } + + public override JSONNode Remove(int aIndex) + { + if (aIndex < 0 || aIndex >= m_List.Count) + return null; + JSONNode tmp = m_List[aIndex]; + m_List.RemoveAt(aIndex); + return tmp; + } + + public override JSONNode Remove(JSONNode aNode) + { + m_List.Remove(aNode); + return aNode; + } + + public override IEnumerable Children + { + get + { + foreach (JSONNode N in m_List) + yield return N; + } + } + + public IEnumerator GetEnumerator() + { + foreach (JSONNode N in m_List) + yield return N; + } + + public override string ToString() + { + string result = "[ "; + foreach (JSONNode N in m_List) + { + if (result.Length > 2) + result += ", "; + result += N.ToString(); + } + result += " ]"; + return result; + } + + internal override string ToString(string aIndent, string aPrefix) + { + string result = "[ "; + foreach (JSONNode N in m_List) + { + if (result.Length > 3) + result += ", "; + result += "\n"+aPrefix + aIndent + N.ToString(aIndent, aPrefix + aIndent); + } + result += "\n" + aPrefix + "]"; + return result; + } + + public override void Serialize(System.IO.BinaryWriter aWriter) + { + aWriter.Write((byte)JSONNodeType.Array); + aWriter.Write(m_List.Count); + for (int i = 0; i < m_List.Count; i++) + { + m_List[i].Serialize(aWriter); + } + } + } + // End of JSONArray + + public class JSONObject : JSONNode, IEnumerable + { + private Dictionary m_Dict = new Dictionary(); + + public override JSONNodeType Tag { get { return JSONNodeType.Object; } } + public override bool IsObject { get { return true; } } + + + public override JSONNode this[string aKey] + { + get + { + if (m_Dict.ContainsKey(aKey)) + return m_Dict[aKey]; + else + return new JSONLazyCreator(this, aKey); + } + set + { + if (value == null) + value = new JSONNull(); + if (m_Dict.ContainsKey(aKey)) + m_Dict[aKey] = value; + else + m_Dict.Add(aKey, value); + } + } + + public override JSONNode this[int aIndex] + { + get + { + if (aIndex < 0 || aIndex >= m_Dict.Count) + return null; + return m_Dict.ElementAt(aIndex).Value; + } + set + { + if (value == null) + value = new JSONNull(); + if (aIndex < 0 || aIndex >= m_Dict.Count) + return; + string key = m_Dict.ElementAt(aIndex).Key; + m_Dict[key] = value; + } + } + + public override int Count + { + get { return m_Dict.Count; } + } + + public override void Add(string aKey, JSONNode aItem) + { + if (aItem == null) + aItem = new JSONNull(); + + if (!string.IsNullOrEmpty(aKey)) + { + if (m_Dict.ContainsKey(aKey)) + m_Dict[aKey] = aItem; + else + m_Dict.Add(aKey, aItem); + } + else + m_Dict.Add(Guid.NewGuid().ToString(), aItem); + } + + public override JSONNode Remove(string aKey) + { + if (!m_Dict.ContainsKey(aKey)) + return null; + JSONNode tmp = m_Dict[aKey]; + m_Dict.Remove(aKey); + return tmp; + } + + public override JSONNode Remove(int aIndex) + { + if (aIndex < 0 || aIndex >= m_Dict.Count) + return null; + var item = m_Dict.ElementAt(aIndex); + m_Dict.Remove(item.Key); + return item.Value; + } + + public override JSONNode Remove(JSONNode aNode) + { + try + { + var item = m_Dict.Where(k => k.Value == aNode).First(); + m_Dict.Remove(item.Key); + return aNode; + } + catch + { + return null; + } + } + + public override IEnumerable Children + { + get + { + foreach (KeyValuePair N in m_Dict) + yield return N.Value; + } + } + + public IEnumerator GetEnumerator() + { + foreach (KeyValuePair N in m_Dict) + yield return N; + } + + public override string ToString() + { + string result = "{"; + foreach (KeyValuePair N in m_Dict) + { + if (result.Length > 2) + result += ", "; + result += "\"" + Escape(N.Key) + "\":" + N.Value.ToString(); + } + result += "}"; + return result; + } + + internal override string ToString(string aIndent, string aPrefix) + { + string result = "{ "; + foreach (KeyValuePair N in m_Dict) + { + if (result.Length > 3) + result += ", "; + result += "\n" + aPrefix + aIndent + "\"" + Escape(N.Key) + "\" : "; + result += N.Value.ToString(aIndent, aPrefix + aIndent); + } + result += "\n" + aPrefix + "}"; + return result; + } + + public override void Serialize(System.IO.BinaryWriter aWriter) + { + aWriter.Write((byte)JSONNodeType.Object); + aWriter.Write(m_Dict.Count); + foreach (string K in m_Dict.Keys) + { + aWriter.Write(K); + m_Dict[K].Serialize(aWriter); + } + } + } + // End of JSONObject + + public class JSONString : JSONNode + { + private string m_Data; + + public override JSONNodeType Tag { get { return JSONNodeType.String; } } + public override bool IsString { get { return true; } } + + public override string Value + { + get { return m_Data; } + set + { + m_Data = value; + } + } + + public JSONString(string aData) + { + m_Data = aData; + } + + public override string ToString() + { + return "\"" + Escape(m_Data) + "\""; + } + + internal override string ToString(string aIndent, string aPrefix) + { + return "\"" + Escape(m_Data) + "\""; + } + + public override void Serialize(System.IO.BinaryWriter aWriter) + { + aWriter.Write((byte)JSONNodeType.String); + aWriter.Write(m_Data); + } + } + // End of JSONString + + + public class JSONNumber : JSONNode + { + private double m_Data; + + public override JSONNodeType Tag { get { return JSONNodeType.Number; } } + public override bool IsNumber { get { return true; } } + + + public override string Value + { + get { return m_Data.ToString(); } + set + { + double v; + if (double.TryParse(value, out v)) + m_Data = v; + } + } + + public override double AsDouble + { + get { return m_Data; } + set { m_Data = value; } + } + + public JSONNumber(double aData) + { + m_Data = aData; + } + + public JSONNumber(string aData) + { + Value = aData; + } + + public override string ToString() + { + return m_Data.ToString(); + } + + internal override string ToString(string aIndent, string aPrefix) + { + return m_Data.ToString(); + } + + public override void Serialize(System.IO.BinaryWriter aWriter) + { + aWriter.Write((byte)JSONNodeType.Number); + aWriter.Write(m_Data); + } + } + // End of JSONNumber + + + public class JSONBool : JSONNode + { + private bool m_Data; + + public override JSONNodeType Tag { get { return JSONNodeType.Boolean; } } + public override bool IsBoolean { get { return true; } } + + + public override string Value + { + get { return m_Data.ToString(); } + set + { + bool v; + if (bool.TryParse(value, out v)) + m_Data = v; + } + } + public override bool AsBool + { + get { return m_Data; } + set { m_Data = value; } + } + + public JSONBool(bool aData) + { + m_Data = aData; + } + + public JSONBool(string aData) + { + Value = aData; + } + + public override string ToString() + { + return (m_Data) ? "true" : "false"; + } + + internal override string ToString(string aIndent, string aPrefix) + { + return (m_Data) ? "true" : "false"; + } + + public override void Serialize(System.IO.BinaryWriter aWriter) + { + aWriter.Write((byte)JSONNodeType.Boolean); + aWriter.Write(m_Data); + } + } + // End of JSONBool + + + public class JSONNull : JSONNode + { + + public override JSONNodeType Tag { get { return JSONNodeType.NullValue; } } + public override bool IsNull { get { return true; } } + + + public override string Value + { + get { return "null"; } + set { } + } + public override bool AsBool + { + get { return false; } + set { } + } + + public override string ToString() + { + return "null"; + } + + internal override string ToString(string aIndent, string aPrefix) + { + return "null"; + } + + public override bool Equals(object obj) + { + if (object.ReferenceEquals(this, obj)) + return true; + return (obj is JSONNull); + } + public override int GetHashCode() + { + return base.GetHashCode(); + } + + public override void Serialize(System.IO.BinaryWriter aWriter) + { + aWriter.Write((byte)JSONNodeType.NullValue); + } + } + // End of JSONNull + + internal class JSONLazyCreator : JSONNode + { + private JSONNode m_Node = null; + private string m_Key = null; + + public override JSONNodeType Tag { get { return JSONNodeType.None; } } + + public JSONLazyCreator(JSONNode aNode) + { + m_Node = aNode; + m_Key = null; + } + + public JSONLazyCreator(JSONNode aNode, string aKey) + { + m_Node = aNode; + m_Key = aKey; + } + + private void Set(JSONNode aVal) + { + if (m_Key == null) + { + m_Node.Add(aVal); + } + else + { + m_Node.Add(m_Key, aVal); + } + m_Node = null; // Be GC friendly. + } + + public override JSONNode this[int aIndex] + { + get + { + return new JSONLazyCreator(this); + } + set + { + var tmp = new JSONArray(); + tmp.Add(value); + Set(tmp); + } + } + + public override JSONNode this[string aKey] + { + get + { + return new JSONLazyCreator(this, aKey); + } + set + { + var tmp = new JSONObject(); + tmp.Add(aKey, value); + Set(tmp); + } + } + + public override void Add(JSONNode aItem) + { + var tmp = new JSONArray(); + tmp.Add(aItem); + Set(tmp); + } + + public override void Add(string aKey, JSONNode aItem) + { + var tmp = new JSONObject(); + tmp.Add(aKey, aItem); + Set(tmp); + } + + public static bool operator ==(JSONLazyCreator a, object b) + { + if (b == null) + return true; + return System.Object.ReferenceEquals(a, b); + } + + public static bool operator !=(JSONLazyCreator a, object b) + { + return !(a == b); + } + + public override bool Equals(object obj) + { + if (obj == null) + return true; + return System.Object.ReferenceEquals(this, obj); + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + + public override string ToString() + { + return ""; + } + + internal override string ToString(string aIndent, string aPrefix) + { + return ""; + } + + public override int AsInt + { + get + { + JSONNumber tmp = new JSONNumber(0); + Set(tmp); + return 0; + } + set + { + JSONNumber tmp = new JSONNumber(value); + Set(tmp); + } + } + + public override float AsFloat + { + get + { + JSONNumber tmp = new JSONNumber(0.0f); + Set(tmp); + return 0.0f; + } + set + { + JSONNumber tmp = new JSONNumber(value); + Set(tmp); + } + } + + public override double AsDouble + { + get + { + JSONNumber tmp = new JSONNumber(0.0); + Set(tmp); + return 0.0; + } + set + { + JSONNumber tmp = new JSONNumber(value); + Set(tmp); + } + } + + public override bool AsBool + { + get + { + JSONBool tmp = new JSONBool(false); + Set(tmp); + return false; + } + set + { + JSONBool tmp = new JSONBool(value); + Set(tmp); + } + } + + public override JSONArray AsArray + { + get + { + JSONArray tmp = new JSONArray(); + Set(tmp); + return tmp; + } + } + + public override JSONObject AsObject + { + get + { + JSONObject tmp = new JSONObject(); + Set(tmp); + return tmp; + } + } + } + // End of JSONLazyCreator + + public static class JSON + { + public static JSONNode Parse(string aJSON) + { + return JSONNode.Parse(aJSON); + } + } +} \ No newline at end of file diff --git a/Assets/TKGSDK/NativeSDK/Scripts/Utils/SimpleJSON.cs.meta b/Assets/TKGSDK/NativeSDK/Scripts/Utils/SimpleJSON.cs.meta new file mode 100644 index 00000000..7d15768a --- /dev/null +++ b/Assets/TKGSDK/NativeSDK/Scripts/Utils/SimpleJSON.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3dcf67a23d7ab42919daedb76af0ccf0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Splash.meta b/Assets/TKGSDK/Splash.meta new file mode 100644 index 00000000..e32791b8 --- /dev/null +++ b/Assets/TKGSDK/Splash.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ab9a089694bb44658f9bfb34f7407fd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Splash/CN.meta b/Assets/TKGSDK/Splash/CN.meta new file mode 100644 index 00000000..b84db6f2 --- /dev/null +++ b/Assets/TKGSDK/Splash/CN.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 556531118fc8a482299d3ea23c693893 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Splash/CN/LaunchScreen-iPad.png b/Assets/TKGSDK/Splash/CN/LaunchScreen-iPad.png new file mode 100644 index 0000000000000000000000000000000000000000..d0511971d75245a65425f5b0eee1257bc846fe5a GIT binary patch literal 176488 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 z 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

9Tu>7@?Mi;rHgxo6A=5E^0Z%! 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

f8Wkkc%i7To7cOg9)ZK!);4?0Z2 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 literal 0 HcmV?d00001 diff --git a/Assets/TKGSDK/Splash/CN/LaunchScreen-iPhoneLandscape.png.meta b/Assets/TKGSDK/Splash/CN/LaunchScreen-iPhoneLandscape.png.meta new file mode 100644 index 00000000..9b4bee30 --- /dev/null +++ b/Assets/TKGSDK/Splash/CN/LaunchScreen-iPhoneLandscape.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 0727d3a9546764cd983b0b285dd1161b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + 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: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Splash/CN/LaunchScreen-iPhonePortrait.png b/Assets/TKGSDK/Splash/CN/LaunchScreen-iPhonePortrait.png new file mode 100644 index 0000000000000000000000000000000000000000..29a2ea933cdaa8e98bfbb5941881875a0aae6e8e GIT binary patch literal 156143 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 JB`P)%{|6Sh2Uh?9 literal 0 HcmV?d00001 diff --git a/Assets/TKGSDK/Splash/GB/LaunchScreen-iPad.png.meta b/Assets/TKGSDK/Splash/GB/LaunchScreen-iPad.png.meta new file mode 100644 index 00000000..2b1aa3c0 --- /dev/null +++ b/Assets/TKGSDK/Splash/GB/LaunchScreen-iPad.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: bef43eec04a7941dbaaf6a35a82252cd +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + 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: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TKGSDK/Splash/GB/LaunchScreen-iPhoneLandscape.png b/Assets/TKGSDK/Splash/GB/LaunchScreen-iPhoneLandscape.png new file mode 100644 index 0000000000000000000000000000000000000000..5c7a83cf8e7155350dfb9806dd601822b731d32b GIT binary patch literal 66043 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 z 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 i5NNg!KLkzMkwt_&-l^cDppW}-Ilzkpy`G? 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 B{ow!r literal 0 HcmV?d00001 diff --git a/Assets/TKGSDK/Splash/GB/LaunchScreen-iPhonePortrait.png.meta b/Assets/TKGSDK/Splash/GB/LaunchScreen-iPhonePortrait.png.meta new file mode 100644 index 00000000..63ca0ced --- /dev/null +++ b/Assets/TKGSDK/Splash/GB/LaunchScreen-iPhonePortrait.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: e25c6fd89502243e7976e0f0ae8f7402 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + 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: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ThirdPlugins/Easy Save 3/Resources/ES3/ES3Defaults.asset b/Assets/ThirdPlugins/Easy Save 3/Resources/ES3/ES3Defaults.asset index 91f1747e..e331e7e5 100644 --- a/Assets/ThirdPlugins/Easy Save 3/Resources/ES3/ES3Defaults.asset +++ b/Assets/ThirdPlugins/Easy Save 3/Resources/ES3/ES3Defaults.asset @@ -29,13 +29,13 @@ MonoBehaviour: referenceMode: 2 serializationDepthLimit: 64 assemblyNames: - - StompyRobot.SRDebugger - Assembly-CSharp - StompyRobot.SRF - - Mischief.MDV.Editor - - StompyRobot.SRDebugger.Editor + - StompyRobot.SRDebugger - PsdPlugin + - Mischief.MDV.Editor - StompyRobot.SRF.Editor + - StompyRobot.SRDebugger.Editor showAdvancedSettings: 0 addMgrToSceneAutomatically: 0 autoUpdateReferences: 1