From 5d09c432419c55fab110b9f1842c5024e588e3eb Mon Sep 17 00:00:00 2001
From: zhangaotian <8474238@qq.com>
Date: Fri, 28 Jun 2024 18:47:48 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=B9=BF=E5=91=8A=E3=80=91=E5=AF=BC?=
=?UTF-8?q?=E5=85=A5AudienceNetwork?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Forest/Assets/AudienceNetwork.meta | 10 +
Forest/Assets/AudienceNetwork/Editor.meta | 8 +
.../Editor/AudienceNetworkDependencies.xml | 10 +
.../AudienceNetworkDependencies.xml.meta | 7 +
Forest/Assets/AudienceNetwork/Library.meta | 10 +
.../AudienceNetwork/Library/AdHandler.cs | 50 +
.../AudienceNetwork/Library/AdHandler.cs.meta | 13 +
.../AudienceNetwork/Library/AdSettings.cs | 303 +++
.../Library/AdSettings.cs.meta | 13 +
.../AudienceNetwork/Library/AdUtility.cs | 211 ++
.../AudienceNetwork/Library/AdUtility.cs.meta | 13 +
.../Assets/AudienceNetwork/Library/AdView.cs | 1010 ++++++++++
.../AudienceNetwork/Library/AdView.cs.meta | 13 +
.../Library/AudienceNetworkAds.cs | 42 +
.../Library/AudienceNetworkAds.cs.meta | 11 +
.../AudienceNetwork/Library/ExtraHints.cs | 118 ++
.../Library/ExtraHints.cs.meta | 11 +
.../AudienceNetwork/Library/InterstitialAd.cs | 950 +++++++++
.../Library/InterstitialAd.cs.meta | 13 +
.../Library/RewardedVideoAd.cs | 1181 +++++++++++
.../Library/RewardedVideoAd.cs.meta | 13 +
.../AudienceNetwork/Library/SdkVersion.cs | 33 +
.../Library/SdkVersion.cs.meta | 13 +
Forest/Assets/AudienceNetwork/Scenes.meta | 8 +
.../Assets/AudienceNetwork/Scenes/Banner.meta | 10 +
.../Scenes/Banner/AdViewScene.cs | 149 ++
.../Scenes/Banner/AdViewScene.cs.meta | 13 +
.../Scenes/Banner/AdViewScene.unity | 1578 +++++++++++++++
.../Scenes/Banner/AdViewScene.unity.meta | 9 +
.../AudienceNetwork/Scenes/BaseScene.cs | 23 +
.../AudienceNetwork/Scenes/BaseScene.cs.meta | 11 +
.../AudienceNetwork/Scenes/Interstitial.meta | 10 +
.../Interstitial/InterstitialAdScene.cs | 117 ++
.../Interstitial/InterstitialAdScene.cs.meta | 13 +
.../Interstitial/InterstitialAdScene.unity | 1374 +++++++++++++
.../InterstitialAdScene.unity.meta | 9 +
.../AudienceNetwork/Scenes/RewardedVideo.meta | 10 +
.../RewardedVideo/RewardedVideoAdScene.cs | 148 ++
.../RewardedVideoAdScene.cs.meta | 13 +
.../RewardedVideo/RewardedVideoAdScene.unity | 1360 +++++++++++++
.../RewardedVideoAdScene.unity.meta | 9 +
.../AudienceNetwork/Scenes/Settings.meta | 8 +
.../Scenes/Settings/SettingsScene.cs | 54 +
.../Scenes/Settings/SettingsScene.cs.meta | 11 +
.../Scenes/Settings/SettingsScene.unity | 1759 +++++++++++++++++
.../Scenes/Settings/SettingsScene.unity.meta | 7 +
Forest/ProjectSettings/GvhProjectSettings.xml | 18 -
47 files changed, 10759 insertions(+), 18 deletions(-)
create mode 100644 Forest/Assets/AudienceNetwork.meta
create mode 100644 Forest/Assets/AudienceNetwork/Editor.meta
create mode 100644 Forest/Assets/AudienceNetwork/Editor/AudienceNetworkDependencies.xml
create mode 100644 Forest/Assets/AudienceNetwork/Editor/AudienceNetworkDependencies.xml.meta
create mode 100644 Forest/Assets/AudienceNetwork/Library.meta
create mode 100644 Forest/Assets/AudienceNetwork/Library/AdHandler.cs
create mode 100644 Forest/Assets/AudienceNetwork/Library/AdHandler.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Library/AdSettings.cs
create mode 100644 Forest/Assets/AudienceNetwork/Library/AdSettings.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Library/AdUtility.cs
create mode 100644 Forest/Assets/AudienceNetwork/Library/AdUtility.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Library/AdView.cs
create mode 100644 Forest/Assets/AudienceNetwork/Library/AdView.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Library/AudienceNetworkAds.cs
create mode 100644 Forest/Assets/AudienceNetwork/Library/AudienceNetworkAds.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Library/ExtraHints.cs
create mode 100644 Forest/Assets/AudienceNetwork/Library/ExtraHints.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Library/InterstitialAd.cs
create mode 100644 Forest/Assets/AudienceNetwork/Library/InterstitialAd.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Library/RewardedVideoAd.cs
create mode 100644 Forest/Assets/AudienceNetwork/Library/RewardedVideoAd.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Library/SdkVersion.cs
create mode 100644 Forest/Assets/AudienceNetwork/Library/SdkVersion.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Banner.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.cs
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.unity
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.unity.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/BaseScene.cs
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/BaseScene.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Interstitial.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.cs
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.unity
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.unity.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/RewardedVideo.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.cs
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.unity
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.unity.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Settings.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.cs
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.cs.meta
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.unity
create mode 100644 Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.unity.meta
diff --git a/Forest/Assets/AudienceNetwork.meta b/Forest/Assets/AudienceNetwork.meta
new file mode 100644
index 0000000..1471fad
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: bbaa99a7e4be14aee98635ce9f81dab0
+folderAsset: yes
+timeCreated: 1531986660
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Editor.meta b/Forest/Assets/AudienceNetwork/Editor.meta
new file mode 100644
index 0000000..eea0741
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 07842ad4a92814a3b80d63d5bda584fc
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Editor/AudienceNetworkDependencies.xml b/Forest/Assets/AudienceNetwork/Editor/AudienceNetworkDependencies.xml
new file mode 100644
index 0000000..32d4ee1
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Editor/AudienceNetworkDependencies.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Forest/Assets/AudienceNetwork/Editor/AudienceNetworkDependencies.xml.meta b/Forest/Assets/AudienceNetwork/Editor/AudienceNetworkDependencies.xml.meta
new file mode 100644
index 0000000..e6efdab
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Editor/AudienceNetworkDependencies.xml.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 53e2520257ee14884b66cb776c6a5600
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Library.meta b/Forest/Assets/AudienceNetwork/Library.meta
new file mode 100644
index 0000000..a5fa651
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: a033615a8b9d9480392002260025f399
+folderAsset: yes
+timeCreated: 1531986660
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Library/AdHandler.cs b/Forest/Assets/AudienceNetwork/Library/AdHandler.cs
new file mode 100644
index 0000000..84d27f3
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/AdHandler.cs
@@ -0,0 +1,50 @@
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+
+namespace AudienceNetwork
+{
+ public class AdHandler : MonoBehaviour
+ {
+ private static readonly Queue executeOnMainThreadQueue = new Queue();
+
+ public void ExecuteOnMainThread(Action action)
+ {
+ lock (executeOnMainThreadQueue)
+ {
+ executeOnMainThreadQueue.Enqueue(action);
+ }
+ }
+
+ void Update()
+ {
+ // dispatch stuff on main thread
+ while (executeOnMainThreadQueue.Count > 0)
+ {
+ Action dequeuedAction = null;
+ lock (executeOnMainThreadQueue)
+ {
+ try
+ {
+ dequeuedAction = executeOnMainThreadQueue.Dequeue();
+ }
+ catch (Exception e)
+ {
+ Debug.LogException(e);
+ }
+ }
+ if (dequeuedAction != null)
+ {
+ dequeuedAction.Invoke();
+ }
+ }
+ }
+
+ public void RemoveFromParent()
+ {
+#if !UNITY_EDITOR
+ UnityEngine.Object.Destroy(this);
+#endif
+ }
+ }
+}
diff --git a/Forest/Assets/AudienceNetwork/Library/AdHandler.cs.meta b/Forest/Assets/AudienceNetwork/Library/AdHandler.cs.meta
new file mode 100644
index 0000000..b05bb61
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/AdHandler.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: d47bb3b71586b48dd954f5cdb11b8d19
+timeCreated: 1531986666
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Library/AdSettings.cs b/Forest/Assets/AudienceNetwork/Library/AdSettings.cs
new file mode 100644
index 0000000..b8f023b
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/AdSettings.cs
@@ -0,0 +1,303 @@
+using UnityEngine;
+using System.Runtime.InteropServices;
+
+namespace AudienceNetwork
+{
+ public static class AdSettings
+ {
+ public static void AddTestDevice(string deviceID)
+ {
+ AdSettingsBridge.Instance.AddTestDevice(deviceID);
+ }
+
+ public static void SetUrlPrefix(string urlPrefix)
+ {
+ AdSettingsBridge.Instance.SetUrlPrefix(urlPrefix);
+ }
+
+ public static void SetMixedAudience(bool mixedAudience)
+ {
+ AdSettingsBridge.Instance.SetMixedAudience(mixedAudience);
+ }
+
+ public static void SetDataProcessingOptions(string[] dataProcessingOptions)
+ {
+ AdSettingsBridge.Instance.SetDataProcessingOptions(dataProcessingOptions);
+ }
+
+ public static void SetDataProcessingOptions(string[] dataProcessingOptions, int country, int state)
+ {
+ AdSettingsBridge.Instance.SetDataProcessingOptions(dataProcessingOptions, country, state);
+ }
+
+ public static string GetBidderToken()
+ {
+ return AdSettingsBridge.Instance.GetBidderToken();
+ }
+#if UNITY_IOS
+ public static void SetAdvertiserTrackingEnabled(bool advertiserTrackingEnabled)
+ {
+ AdSettingsBridge.Instance.SetAdvertiserTrackingEnabled(advertiserTrackingEnabled);
+ }
+#endif
+ }
+
+ internal static class AdLogger
+ {
+
+ private enum AdLogLevel
+ {
+ None,
+ Notification,
+ Error,
+ Warning,
+ Log,
+ Debug,
+ Verbose
+ }
+
+ private static AdLogLevel logLevel = AdLogLevel.Log;
+ private static readonly string logPrefix = "Audience Network Unity ";
+
+ internal static void Log(string message)
+ {
+ AdLogLevel level = AdLogLevel.Log;
+ if (logLevel >= level)
+ {
+ Debug.Log(logPrefix + LevelAsString(level) + message);
+ }
+ }
+
+ internal static void LogWarning(string message)
+ {
+ AdLogLevel level = AdLogLevel.Warning;
+ if (logLevel >= level)
+ {
+ Debug.LogWarning(logPrefix + LevelAsString(level) + message);
+ }
+ }
+
+ internal static void LogError(string message)
+ {
+ AdLogLevel level = AdLogLevel.Error;
+ if (logLevel >= level)
+ {
+ Debug.LogError(logPrefix + LevelAsString(level) + message);
+ }
+ }
+
+ private static string LevelAsString(AdLogLevel logLevel)
+ {
+ switch (logLevel)
+ {
+ case AdLogLevel.Error:
+ {
+ return ": ";
+ }
+ case AdLogLevel.Warning:
+ {
+ return ": ";
+ }
+ case AdLogLevel.Log:
+ {
+ return ": ";
+ }
+ case AdLogLevel.Debug:
+ {
+ return ": ";
+ }
+ case AdLogLevel.Verbose:
+ {
+ return ": ";
+ }
+ default:
+ {
+ return "";
+ }
+ }
+ }
+ }
+
+ internal interface IAdSettingsBridge
+ {
+ void AddTestDevice(string deviceID);
+ void SetUrlPrefix(string urlPrefix);
+ void SetMixedAudience(bool mixedAudience);
+ void SetDataProcessingOptions(string[] dataProcessingOptions);
+ void SetDataProcessingOptions(string[] dataProcessingOptions, int country, int state);
+ string GetBidderToken();
+#if UNITY_IOS
+ void SetAdvertiserTrackingEnabled(bool advertiserTrackingEnabled);
+#endif
+ }
+
+ internal class AdSettingsBridge : IAdSettingsBridge
+ {
+
+ public static readonly IAdSettingsBridge Instance;
+
+ internal AdSettingsBridge()
+ {
+ }
+
+ static AdSettingsBridge()
+ {
+ Instance = CreateInstance();
+ }
+
+ private static IAdSettingsBridge CreateInstance()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+#if UNITY_IOS
+ return new AdSettingsBridgeIOS();
+#elif UNITY_ANDROID
+ return new AdSettingsBridgeAndroid();
+#endif
+ }
+ return new AdSettingsBridge();
+ }
+
+ public virtual void AddTestDevice(string deviceID)
+ {
+ }
+
+ public virtual void SetUrlPrefix(string urlPrefix)
+ {
+ }
+
+ public virtual void SetMixedAudience(bool mixedAudience)
+ {
+ }
+
+ public virtual void SetDataProcessingOptions(string[] dataProcessingOptions)
+ {
+ }
+
+ public virtual void SetDataProcessingOptions(string[] dataProcessingOptions, int country, int state)
+ {
+ }
+
+ public virtual string GetBidderToken()
+ {
+ return string.Empty;
+ }
+#if UNITY_IOS
+ public virtual void SetAdvertiserTrackingEnabled(bool advertiserTrackingEnabled)
+ {
+ }
+#endif
+ }
+
+#if UNITY_ANDROID
+ internal class AdSettingsBridgeAndroid : AdSettingsBridge
+ {
+
+ public override void AddTestDevice(string deviceID)
+ {
+ AndroidJavaClass adSettings = GetAdSettingsObject();
+ adSettings.CallStatic("addTestDevice", deviceID);
+ }
+
+ public override void SetUrlPrefix(string urlPrefix)
+ {
+ AndroidJavaClass adSettings = GetAdSettingsObject();
+ adSettings.CallStatic("setUrlPrefix", urlPrefix);
+ }
+
+ public override void SetMixedAudience(bool mixedAudience)
+ {
+ AndroidJavaClass adSettings = GetAdSettingsObject();
+ adSettings.CallStatic("setMixedAudience", mixedAudience);
+ }
+
+ public override void SetDataProcessingOptions(string[] dataProcessingOptions)
+ {
+ AndroidJavaClass adSettings = GetAdSettingsObject();
+ adSettings.CallStatic("setDataProcessingOptions", (object) dataProcessingOptions);
+ }
+
+ public override void SetDataProcessingOptions(string[] dataProcessingOptions, int country, int state)
+ {
+ AndroidJavaClass adSettings = GetAdSettingsObject();
+ adSettings.CallStatic("setDataProcessingOptions", (object) dataProcessingOptions, country, state);
+ }
+
+ public override string GetBidderToken()
+ {
+ AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ AndroidJavaObject activity = unityPlayer.GetStatic("currentActivity");
+ AndroidJavaObject context = activity.Call("getApplicationContext");
+ AndroidJavaClass bidderTokenProvider = new AndroidJavaClass("com.facebook.ads.BidderTokenProvider");
+ return bidderTokenProvider.CallStatic("getBidderToken", context);
+ }
+
+ private AndroidJavaClass GetAdSettingsObject()
+ {
+ return new AndroidJavaClass("com.facebook.ads.AdSettings");
+ }
+
+ }
+#endif
+
+#if UNITY_IOS
+ internal class AdSettingsBridgeIOS : AdSettingsBridge
+ {
+ [DllImport("__Internal")]
+ private static extern void FBAdSettingsBridgeAddTestDevice(string deviceID);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdSettingsBridgeSetURLPrefix(string urlPrefix);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdSettingsBridgeSetMixedAudience(bool mixedAudience);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdSettingsBridgeSetDataProcessingOptions(string[] dataProcessingOptions, int length);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdSettingsBridgeSetDetailedDataProcessingOptions(string[] dataProcessingOptions, int length, int country, int state);
+
+ [DllImport("__Internal")]
+ private static extern string FBAdSettingsBridgeGetBidderToken();
+
+ [DllImport("__Internal")]
+ private static extern void FBAdSettingsBridgeSetAdvertiserTrackingEnabled(bool advertiserTrackingEnabled);
+
+ public override void AddTestDevice(string deviceID)
+ {
+ FBAdSettingsBridgeAddTestDevice(deviceID);
+ }
+
+ public override void SetUrlPrefix(string urlPrefix)
+ {
+ FBAdSettingsBridgeSetURLPrefix(urlPrefix);
+ }
+
+ public override void SetMixedAudience(bool mixedAudience)
+ {
+ FBAdSettingsBridgeSetMixedAudience(mixedAudience);
+ }
+
+ public override void SetDataProcessingOptions(string[] dataProcessingOptions)
+ {
+ FBAdSettingsBridgeSetDataProcessingOptions(dataProcessingOptions, dataProcessingOptions.Length);
+ }
+
+ public override void SetDataProcessingOptions(string[] dataProcessingOptions, int country, int state)
+ {
+ FBAdSettingsBridgeSetDetailedDataProcessingOptions(dataProcessingOptions, dataProcessingOptions.Length, country, state);
+ }
+
+ public override string GetBidderToken()
+ {
+ return FBAdSettingsBridgeGetBidderToken();
+ }
+
+ public override void SetAdvertiserTrackingEnabled(bool advertiserTrackingEnabled)
+ {
+ FBAdSettingsBridgeSetAdvertiserTrackingEnabled(advertiserTrackingEnabled);
+ }
+ }
+#endif
+}
diff --git a/Forest/Assets/AudienceNetwork/Library/AdSettings.cs.meta b/Forest/Assets/AudienceNetwork/Library/AdSettings.cs.meta
new file mode 100644
index 0000000..8047113
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/AdSettings.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 2c6dc3140db0d40609e64d86ea8038bc
+timeCreated: 1531986666
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Library/AdUtility.cs b/Forest/Assets/AudienceNetwork/Library/AdUtility.cs
new file mode 100644
index 0000000..15e20e0
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/AdUtility.cs
@@ -0,0 +1,211 @@
+using UnityEngine;
+using System.Runtime.InteropServices;
+using System;
+
+namespace AudienceNetwork.Utility
+{
+ public static class AdUtility
+ {
+ internal static double Width()
+ {
+ return AdUtilityBridge.Instance.Width();
+ }
+
+ internal static double Height()
+ {
+ return AdUtilityBridge.Instance.Height();
+ }
+
+ internal static double Convert(double deviceSize)
+ {
+ return AdUtilityBridge.Instance.Convert(deviceSize);
+ }
+
+ internal static void Prepare()
+ {
+ AdUtilityBridge.Instance.Prepare();
+ }
+
+ internal static bool IsLandscape()
+ {
+ return Screen.orientation == ScreenOrientation.LandscapeLeft || Screen.orientation == ScreenOrientation.LandscapeLeft || Screen.orientation == ScreenOrientation.LandscapeRight;
+ }
+ }
+
+ internal interface IAdUtilityBridge
+ {
+ double DeviceWidth();
+ double DeviceHeight();
+ double Width();
+ double Height();
+ double Convert(double deviceSize);
+ void Prepare();
+ }
+
+ internal class AdUtilityBridge : IAdUtilityBridge
+ {
+ public static readonly IAdUtilityBridge Instance;
+
+ internal AdUtilityBridge()
+ {
+ }
+
+ static AdUtilityBridge()
+ {
+ Instance = CreateInstance();
+ }
+
+ private static IAdUtilityBridge CreateInstance()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+#if UNITY_IOS
+ return new AdUtilityBridgeIOS();
+#elif UNITY_ANDROID
+ return new AdUtilityBridgeAndroid();
+#endif
+ }
+ return new AdUtilityBridge();
+ }
+
+ public virtual double DeviceWidth()
+ {
+ return 2208;
+ }
+
+ public virtual double DeviceHeight()
+ {
+ return 1242;
+ }
+
+ public virtual double Width()
+ {
+ return 1104;
+ }
+
+ public virtual double Height()
+ {
+ return 621;
+ }
+
+ public virtual double Convert(double deviceSize)
+ {
+ return 2;
+ }
+
+ public virtual void Prepare()
+ {
+ }
+ }
+
+#if UNITY_ANDROID
+ internal class AdUtilityBridgeAndroid : AdUtilityBridge
+ {
+
+ private T GetPropertyOfDisplayMetrics(string property)
+ {
+ AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ AndroidJavaObject activity = unityPlayer.GetStatic("currentActivity");
+ AndroidJavaObject context = activity.Call("getApplicationContext");
+ AndroidJavaObject resources = context.Call("getResources");
+ AndroidJavaObject displayMetrics = resources.Call("getDisplayMetrics");
+ return displayMetrics.Get(property);
+ }
+
+ private double Density()
+ {
+ return GetPropertyOfDisplayMetrics("density");
+ }
+
+ public override double DeviceWidth()
+ {
+ return GetPropertyOfDisplayMetrics("widthPixels");
+ }
+
+ public override double DeviceHeight()
+ {
+ return GetPropertyOfDisplayMetrics("heightPixels");
+ }
+
+ public override double Width()
+ {
+ // Leaving the original code commented out for now - for reference. Will remove it eventually.
+ // return this.convert(this.deviceWidth());
+ return Convert(Screen.width);
+ }
+
+ public override double Height()
+ {
+ // Leaving the original code commented out for now - for reference. Will remove it eventually.
+ //return this.convert(this.deviceHeight());
+ return Convert(Screen.height);
+ }
+
+ public override double Convert(double deviceSize)
+ {
+ return deviceSize / Density();
+ }
+
+ public override void Prepare()
+ {
+#if UNITY_ANDROID
+
+ try
+ {
+ AndroidJavaClass looperClass = new AndroidJavaClass("android.os.Looper");
+ looperClass.CallStatic("prepare");
+ }
+ catch (Exception)
+ {
+
+ }
+#endif
+ }
+ }
+#endif
+
+#if UNITY_IOS
+ internal class AdUtilityBridgeIOS : AdUtilityBridge
+ {
+ [DllImport("__Internal")]
+ private static extern double FBAdUtilityBridgeGetDeviceWidth();
+
+ [DllImport("__Internal")]
+ private static extern double FBAdUtilityBridgeGetDeviceHeight();
+
+ [DllImport("__Internal")]
+ private static extern double FBAdUtilityBridgeGetWidth();
+
+ [DllImport("__Internal")]
+ private static extern double FBAdUtilityBridgeGetHeight();
+
+ [DllImport("__Internal")]
+ private static extern double FBAdUtilityBridgeConvertFromDeviceSize(double deviceSize);
+
+ public override double DeviceWidth()
+ {
+ return FBAdUtilityBridgeGetDeviceWidth();
+ }
+
+ public override double DeviceHeight()
+ {
+ return FBAdUtilityBridgeGetDeviceHeight();
+ }
+
+ public override double Width()
+ {
+ return FBAdUtilityBridgeGetWidth();
+ }
+
+ public override double Height()
+ {
+ return FBAdUtilityBridgeGetHeight();
+ }
+
+ public override double Convert(double deviceSize)
+ {
+ return FBAdUtilityBridgeConvertFromDeviceSize(deviceSize);
+ }
+ }
+#endif
+}
diff --git a/Forest/Assets/AudienceNetwork/Library/AdUtility.cs.meta b/Forest/Assets/AudienceNetwork/Library/AdUtility.cs.meta
new file mode 100644
index 0000000..12b5895
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/AdUtility.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 50f6966ab7c694899a9a6ec5bfe13ce7
+timeCreated: 1531986666
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Library/AdView.cs b/Forest/Assets/AudienceNetwork/Library/AdView.cs
new file mode 100644
index 0000000..e5cf0e9
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/AdView.cs
@@ -0,0 +1,1010 @@
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+using AudienceNetwork.Utility;
+using System.Runtime.InteropServices;
+using AOT;
+
+namespace AudienceNetwork
+{
+ public delegate void FBAdViewBridgeCallback();
+ public delegate void FBAdViewBridgeErrorCallback(string error);
+ internal delegate void FBAdViewBridgeExternalCallback(int uniqueId);
+ internal delegate void FBAdViewBridgeErrorExternalCallback(int uniqueId, string error);
+
+ public enum AdSize
+ {
+ BANNER_HEIGHT_50,
+ BANNER_HEIGHT_90,
+ RECTANGLE_HEIGHT_250
+ }
+ ;
+
+ public enum AdPosition
+ {
+ CUSTOM,
+ TOP,
+ BOTTOM
+ };
+
+ public sealed class AdView : IDisposable
+ {
+
+ private readonly int uniqueId;
+ private bool isLoaded;
+ private readonly AdSize size;
+ private AdHandler handler;
+
+ public string PlacementId { get; private set; }
+
+ public FBAdViewBridgeCallback AdViewDidLoad
+ {
+ internal get
+ {
+ return adViewDidLoad;
+ }
+ set
+ {
+ adViewDidLoad = value;
+ AdViewBridge.Instance.OnLoad(uniqueId, adViewDidLoad);
+ }
+ }
+
+ public FBAdViewBridgeCallback AdViewWillLogImpression
+ {
+ internal get
+ {
+ return adViewWillLogImpression;
+ }
+ set
+ {
+ adViewWillLogImpression = value;
+ AdViewBridge.Instance.OnImpression(uniqueId, adViewWillLogImpression);
+ }
+ }
+
+ public FBAdViewBridgeErrorCallback AdViewDidFailWithError
+ {
+ internal get
+ {
+ return adViewDidFailWithError;
+ }
+ set
+ {
+ adViewDidFailWithError = value;
+ AdViewBridge.Instance.OnError(uniqueId, adViewDidFailWithError);
+ }
+ }
+
+ public FBAdViewBridgeCallback AdViewDidClick
+ {
+ internal get
+ {
+ return adViewDidClick;
+ }
+ set
+ {
+ adViewDidClick = value;
+ AdViewBridge.Instance.OnClick(uniqueId, adViewDidClick);
+ }
+ }
+
+ public FBAdViewBridgeCallback AdViewDidFinishClick
+ {
+ internal get
+ {
+ return adViewDidFinishClick;
+ }
+ set
+ {
+ adViewDidFinishClick = value;
+ AdViewBridge.Instance.OnFinishedClick(uniqueId, adViewDidFinishClick);
+ }
+ }
+
+ public FBAdViewBridgeCallback adViewDidLoad;
+ public FBAdViewBridgeCallback adViewWillLogImpression;
+ public FBAdViewBridgeErrorCallback adViewDidFailWithError;
+ public FBAdViewBridgeCallback adViewDidClick;
+ public FBAdViewBridgeCallback adViewDidFinishClick;
+
+ public AdView(string placementId,
+ AdSize size)
+ {
+ AudienceNetworkAds.Initialize();
+
+ PlacementId = placementId;
+ this.size = size;
+
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ uniqueId = AdViewBridge.Instance.Create(placementId, this, size);
+
+ AdViewBridge.Instance.OnLoad(uniqueId, AdViewDidLoad);
+ AdViewBridge.Instance.OnImpression(uniqueId, AdViewWillLogImpression);
+ AdViewBridge.Instance.OnClick(uniqueId, AdViewDidClick);
+ AdViewBridge.Instance.OnError(uniqueId, AdViewDidFailWithError);
+ AdViewBridge.Instance.OnFinishedClick(uniqueId, AdViewDidFinishClick);
+ }
+ }
+
+ ~AdView()
+ {
+ Dispose(false);
+ }
+
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ private void Dispose(Boolean iAmBeingCalledFromDisposeAndNotFinalize)
+ {
+ Debug.Log("Banner Ad Disposed.");
+ AdViewBridge.Instance.Release(uniqueId);
+ }
+
+ public override string ToString()
+ {
+ return string.Format(
+ "[AdView: " +
+ "PlacementId={0}, " +
+ "AdViewDidLoad={1}, " +
+ "AdViewWillLogImpression={2}, " +
+ "AdViewDidFailWithError={3}, " +
+ "AdViewDidClick={4}, " +
+ "adViewDidFinishClick={5}]",
+ PlacementId,
+ AdViewDidLoad,
+ AdViewWillLogImpression,
+ AdViewDidFailWithError,
+ AdViewDidClick,
+ adViewDidFinishClick);
+ }
+
+ public void Register(GameObject gameObject)
+ {
+ handler = gameObject.AddComponent();
+ }
+
+ public void LoadAd()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ AdViewBridge.Instance.Load(uniqueId);
+ }
+ else
+ {
+ AdViewDidLoad();
+ }
+ }
+
+ public void LoadAd(String bidPayload)
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ AdViewBridge.Instance.Load(uniqueId, bidPayload);
+ }
+ else
+ {
+ AdViewDidLoad();
+ }
+ }
+
+ public bool IsValid()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ return (isLoaded && AdViewBridge.Instance.IsValid(uniqueId));
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ internal void LoadAdFromData()
+ {
+ isLoaded = true;
+
+ if (AdViewDidLoad != null)
+ {
+ handler.ExecuteOnMainThread(() =>
+ {
+ AdViewDidLoad();
+ });
+ }
+ }
+
+ private static double HeightFromType(AdView instance, AdSize size)
+ {
+ switch (size)
+ {
+ case AdSize.BANNER_HEIGHT_50:
+ {
+ return 50;
+ }
+ case AdSize.BANNER_HEIGHT_90:
+ {
+ return 90;
+ }
+ case AdSize.RECTANGLE_HEIGHT_250:
+ {
+ return 250;
+ }
+ }
+ return 0;
+ }
+
+ public bool Show(AdPosition position)
+ {
+ double y = 0; // default y-asix to 0
+ switch (position)
+ {
+ case AdPosition.TOP:
+ {
+ break;
+ }
+ case AdPosition.BOTTOM:
+ {
+ y = AdUtility.Height() - AdView.HeightFromType(this, size);
+ break;
+ }
+ case AdPosition.CUSTOM:
+ {
+ Debug.LogWarning("Use Show(double y) instead");
+ break;
+ }
+ }
+ return Show(y);
+ }
+
+ public bool Show(double y)
+ {
+ return Show(0, y);
+ }
+
+ public bool Show(double x,
+ double y)
+ {
+ return Show(x, y, AdUtility.Width(), AdView.HeightFromType(this, size));
+ }
+
+ private bool Show(double x,
+ double y,
+ double width,
+ double height)
+ {
+ return AdViewBridge.Instance.Show(uniqueId, x, y, width, height);
+ }
+
+ public void SetExtraHints(ExtraHints extraHints)
+ {
+ AdViewBridge.Instance.SetExtraHints(uniqueId, extraHints);
+ }
+
+ internal void ExecuteOnMainThread(Action action)
+ {
+ if (handler)
+ {
+ handler.ExecuteOnMainThread(action);
+ }
+ }
+
+ public static implicit operator bool(AdView obj)
+ {
+ return !(object.ReferenceEquals(obj, null));
+ }
+ }
+
+ internal interface IAdViewBridge
+ {
+ int Create(string placementId,
+ AdView adView,
+ AdSize size);
+
+ int Load(int uniqueId);
+
+ int Load(int uniqueId, String bidPayload);
+
+ bool IsValid(int uniqueId);
+
+ bool Show(int uniqueId,
+ double x,
+ double y,
+ double width,
+ double height);
+
+ void SetExtraHints(int uniqueId, ExtraHints extraHints);
+
+ void Release(int uniqueId);
+
+ void OnLoad(int uniqueId,
+ FBAdViewBridgeCallback callback);
+
+ void OnImpression(int uniqueId,
+ FBAdViewBridgeCallback callback);
+
+ void OnClick(int uniqueId,
+ FBAdViewBridgeCallback callback);
+
+ void OnError(int uniqueId,
+ FBAdViewBridgeErrorCallback callback);
+
+ void OnFinishedClick(int uniqueId,
+ FBAdViewBridgeCallback callback);
+ }
+
+ internal class AdViewBridge : IAdViewBridge
+ {
+
+ /* Interface to Interstitial implementation */
+
+ public static readonly IAdViewBridge Instance;
+
+ internal AdViewBridge()
+ {
+ }
+
+ static AdViewBridge()
+ {
+ Instance = AdViewBridge.CreateInstance();
+ }
+
+ private static IAdViewBridge CreateInstance()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+#if UNITY_IOS
+ return new AdViewBridgeIOS();
+#elif UNITY_ANDROID
+ return new AdViewBridgeAndroid();
+#endif
+ }
+ return new AdViewBridge();
+
+ }
+
+ public virtual int Create(string placementId,
+ AdView AdView,
+ AdSize size)
+ {
+ return 123;
+ }
+
+ public virtual int Load(int uniqueId)
+ {
+ return 123;
+ }
+
+ public virtual int Load(int uniqueId, String bidPayload)
+ {
+ return 123;
+ }
+
+ public virtual bool IsValid(int uniqueId)
+ {
+ return true;
+ }
+
+ public virtual bool Show(int uniqueId,
+ double x,
+ double y,
+ double width,
+ double height)
+ {
+ return true;
+ }
+
+ public virtual void SetExtraHints(int uniqueId, ExtraHints extraHints)
+ {
+ }
+
+ public virtual void Release(int uniqueId)
+ {
+ }
+
+ public virtual void OnLoad(int uniqueId,
+ FBAdViewBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnImpression(int uniqueId,
+ FBAdViewBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnClick(int uniqueId,
+ FBAdViewBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnError(int uniqueId,
+ FBAdViewBridgeErrorCallback callback)
+ {
+ }
+
+ public virtual void OnFinishedClick(int uniqueId,
+ FBAdViewBridgeCallback callback)
+ {
+ }
+
+ }
+
+#if UNITY_ANDROID
+ internal class AdViewBridgeAndroid : AdViewBridge
+ {
+
+ private static Dictionary adViews = new Dictionary();
+ private static int lastKey;
+
+ private AndroidJavaObject AdViewForAdViewId(int uniqueId)
+ {
+ AdViewContainer adViewContainer = null;
+ bool success = AdViewBridgeAndroid.adViews.TryGetValue(uniqueId, out adViewContainer);
+ if (success) {
+ return adViewContainer.bridgedAdView;
+ } else {
+ return null;
+ }
+ }
+
+ private AdViewContainer AdViewContainerForAdViewId(int uniqueId)
+ {
+ AdViewContainer adViewContainer = null;
+ bool success = AdViewBridgeAndroid.adViews.TryGetValue(uniqueId, out adViewContainer);
+ if (success)
+ {
+ return adViewContainer;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ private string GetStringForAdViewId(int uniqueId,
+ string method)
+ {
+ AndroidJavaObject adView = AdViewForAdViewId(uniqueId);
+ if (adView != null) {
+ return adView.Call (method);
+ } else {
+ return null;
+ }
+ }
+
+ private string GetImageURLForAdViewId(int uniqueId,
+ string method)
+ {
+ AndroidJavaObject adView = AdViewForAdViewId(uniqueId);
+ if (adView != null) {
+ AndroidJavaObject image = adView.Call (method);
+ if (image != null) {
+ return image.Call ("getUrl");
+ }
+ }
+ return null;
+ }
+
+ private AndroidJavaObject JavaAdSizeFromAdSize(AdSize size)
+ {
+ AndroidJavaObject retValue = null;
+ AndroidJavaClass sizeEnum = new AndroidJavaClass("com.facebook.ads.AdSize");
+ switch (size) {
+ case AdSize.BANNER_HEIGHT_50:
+ retValue = sizeEnum.GetStatic("BANNER_HEIGHT_50");
+ break;
+ case AdSize.BANNER_HEIGHT_90:
+ retValue = sizeEnum.GetStatic("BANNER_HEIGHT_90");
+ break;
+ case AdSize.RECTANGLE_HEIGHT_250:
+ retValue = sizeEnum.GetStatic("RECTANGLE_HEIGHT_250");
+ break;
+ }
+ return retValue;
+ }
+
+ public override int Create(string placementId,
+ AdView adView,
+ AdSize size)
+ {
+ AdUtility.Prepare();
+ AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ AndroidJavaObject currentActivity = unityPlayer.GetStatic("currentActivity");
+ AndroidJavaObject context = currentActivity.Call("getApplicationContext");
+
+ AndroidJavaObject bridgedAdView = new AndroidJavaObject("com.facebook.ads.AdView",
+ context,
+ placementId,
+ JavaAdSizeFromAdSize(size));
+
+ AdViewBridgeListenerProxy proxy = new AdViewBridgeListenerProxy(adView, bridgedAdView);
+
+ AdViewContainer adViewContainer = new AdViewContainer(adView)
+ {
+ bridgedAdView = bridgedAdView,
+ listenerProxy = proxy
+ };
+
+ int key = AdViewBridgeAndroid.lastKey;
+ AdViewBridgeAndroid.adViews.Add(key, adViewContainer);
+ AdViewBridgeAndroid.lastKey++;
+ return key;
+ }
+
+ public override int Load(int uniqueId)
+ {
+ AdUtility.Prepare();
+ AdViewContainer adViewContainer = AdViewContainerForAdViewId(uniqueId);
+ if (adViewContainer != null) {
+ adViewContainer.Load();
+ }
+ return uniqueId;
+ }
+
+ public override int Load(int uniqueId, String bidPayload)
+ {
+ AdUtility.Prepare();
+ AdViewContainer adViewContainer = AdViewContainerForAdViewId(uniqueId);
+ if (adViewContainer != null)
+ {
+ adViewContainer.Load(bidPayload);
+ }
+ return uniqueId;
+ }
+
+ public override bool IsValid(int uniqueId)
+ {
+ AndroidJavaObject adView = AdViewForAdViewId(uniqueId);
+ if (adView != null)
+ {
+ return !adView.Call("isAdInvalidated");
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public override bool Show(int uniqueId,
+ double x,
+ double y,
+ double width,
+ double height)
+ {
+ AndroidJavaObject adView = AdViewForAdViewId(uniqueId);
+ if (adView == null) {
+ return false;
+ }
+ AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ AndroidJavaObject activity = unityPlayer.GetStatic("currentActivity");
+ activity.Call("runOnUiThread", new AndroidJavaRunnable(() => {
+ AndroidJavaObject context = activity.Call("getApplicationContext");
+ AndroidJavaObject resources = context.Call ("getResources");
+ AndroidJavaObject displayMetrics =
+ resources.Call ("getDisplayMetrics");
+ float density = displayMetrics.Get ("density");
+
+ AndroidJavaObject layoutParams = new AndroidJavaObject("android.widget.LinearLayout$LayoutParams",
+ (int)(width * density),
+ (int)(height * density));
+ AndroidJavaObject linearLayout = new AndroidJavaObject("android.widget.LinearLayout", activity);
+ AndroidJavaClass R = new AndroidJavaClass("android.R$id");
+ AndroidJavaObject view = activity.Call ("findViewById", R.GetStatic ("content"));
+
+ AndroidJavaObject parent = adView.Call("getParent");
+ if (parent != null) {
+ IntPtr ptr = AndroidJNI.GetMethodID(parent.GetRawClass(), "removeView", "(Landroid/view/View;)V");
+ if (ptr != IntPtr.Zero) {
+ parent.Call("removeView", adView);
+ } else {
+ AndroidJNI.ExceptionClear();
+ }
+ }
+
+ layoutParams.Call("setMargins", (int)(x * density), (int)(y * density), 0, 0);
+ linearLayout.Call("addView", adView, layoutParams);
+ view.Call("addView", linearLayout);
+ }));
+ return true;
+ }
+
+ public override void SetExtraHints(int uniqueId, ExtraHints extraHints)
+ {
+ AndroidJavaObject adView = AdViewForAdViewId(uniqueId);
+
+ if (adView != null)
+ {
+ adView.Call("setExtraHints", extraHints.GetAndroidObject());
+ }
+ }
+
+ public override void Release(int uniqueId)
+ {
+ AndroidJavaObject activity =
+ new AndroidJavaClass("com.unity3d.player.UnityPlayer")
+ .GetStatic("currentActivity");
+ AndroidJavaObject adView = AdViewForAdViewId(uniqueId);
+ AdViewBridgeAndroid.adViews.Remove(uniqueId);
+ if (adView != null) {
+ activity.Call("runOnUiThread", new AndroidJavaRunnable(() => {
+ adView.Call("destroy");
+ AndroidJavaObject parent = adView.Call ("getParent");
+ parent.Call("removeView", adView);
+ }));
+ }
+ }
+
+ public override void OnLoad(int uniqueId,
+ FBAdViewBridgeCallback callback) {}
+ public override void OnImpression(int uniqueId,
+ FBAdViewBridgeCallback callback) {}
+ public override void OnClick(int uniqueId,
+ FBAdViewBridgeCallback callback) {}
+ public override void OnError(int uniqueId,
+ FBAdViewBridgeErrorCallback callback) {}
+ public override void OnFinishedClick(int uniqueId,
+ FBAdViewBridgeCallback callback) {}
+
+ }
+
+#endif
+
+#if UNITY_IOS
+ internal class AdViewBridgeIOS : AdViewBridge
+ {
+
+ private static Dictionary adViews = new Dictionary();
+
+ private static AdViewContainer adViewContainerForAdViewId(int uniqueId)
+ {
+ AdViewContainer adView = null;
+ bool success = AdViewBridgeIOS.adViews.TryGetValue(uniqueId, out adView);
+ if (success)
+ {
+ return adView;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ [DllImport("__Internal")]
+ private static extern int FBAdViewBridgeCreate(string placementId,
+ int size);
+
+ [DllImport("__Internal")]
+ private static extern int FBAdViewBridgeLoad(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern int FBAdViewBridgeLoadWithBidPayload(int uniqueId, string bidPayload);
+
+ [DllImport("__Internal")]
+ private static extern bool FBAdViewBridgeIsValid(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern bool FBAdViewBridgeShow(int uniqueId,
+ double x,
+ double y,
+ double width,
+ double height);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdViewBridgeSetExtraHints(int uniqueId, string extraHints);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdViewBridgeRelease(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdViewBridgeOnLoad(int uniqueId,
+ FBAdViewBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdViewBridgeOnImpression(int uniqueId,
+ FBAdViewBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdViewBridgeOnClick(int uniqueId,
+ FBAdViewBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdViewBridgeOnError(int uniqueId,
+ FBAdViewBridgeErrorExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBAdViewBridgeOnFinishedClick(int uniqueId,
+ FBAdViewBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern int FBAdViewBridgeSizeHeight50Banner();
+ [DllImport("__Internal")]
+ private static extern int FBAdViewBridgeSizeHeight90Banner();
+ [DllImport("__Internal")]
+ private static extern int FBAdViewBridgeSizeInterstital();
+ [DllImport("__Internal")]
+ private static extern int FBAdViewBridgeSizeHeight250Rectangle();
+
+ int intFromAdSize(AdSize size)
+ {
+ int retValue = -1;
+ switch (size)
+ {
+ case AdSize.BANNER_HEIGHT_50:
+ retValue = AdViewBridgeIOS.FBAdViewBridgeSizeHeight50Banner();
+ break;
+ case AdSize.BANNER_HEIGHT_90:
+ retValue = AdViewBridgeIOS.FBAdViewBridgeSizeHeight90Banner();
+ break;
+ case AdSize.RECTANGLE_HEIGHT_250:
+ retValue = AdViewBridgeIOS.FBAdViewBridgeSizeHeight250Rectangle();
+ break;
+ }
+ return retValue;
+ }
+
+ public override int Create(string placementId,
+ AdView adView,
+ AdSize size)
+ {
+ int uniqueId = AdViewBridgeIOS.FBAdViewBridgeCreate(placementId, intFromAdSize(size));
+ AdViewBridgeIOS.adViews.Add(uniqueId, new AdViewContainer(adView));
+ AdViewBridgeIOS.FBAdViewBridgeOnLoad(uniqueId, adViewDidLoadBridgeCallback);
+ AdViewBridgeIOS.FBAdViewBridgeOnImpression(uniqueId, adViewWillLogImpressionBridgeCallback);
+ AdViewBridgeIOS.FBAdViewBridgeOnClick(uniqueId, adViewDidClickBridgeCallback);
+ AdViewBridgeIOS.FBAdViewBridgeOnError(uniqueId, adViewDidFailWithErrorBridgeCallback);
+ AdViewBridgeIOS.FBAdViewBridgeOnFinishedClick(uniqueId, adViewDidFinishClickBridgeCallback);
+
+ return uniqueId;
+ }
+
+ public override int Load(int uniqueId)
+ {
+ return AdViewBridgeIOS.FBAdViewBridgeLoad(uniqueId);
+ }
+
+ public override int Load(int uniqueId, string bidPayload)
+ {
+ return AdViewBridgeIOS.FBAdViewBridgeLoadWithBidPayload(uniqueId, bidPayload);
+ }
+
+ public override bool IsValid(int uniqueId)
+ {
+ return AdViewBridgeIOS.FBAdViewBridgeIsValid(uniqueId);
+ }
+
+ public override bool Show(int uniqueId,
+ double x,
+ double y,
+ double width,
+ double height)
+ {
+ return AdViewBridgeIOS.FBAdViewBridgeShow(uniqueId, x, y, width, height);
+ }
+
+ public override void SetExtraHints(int uniqueId, ExtraHints extraHints)
+ {
+ AdViewBridgeIOS.FBAdViewBridgeSetExtraHints(uniqueId, JsonUtility.ToJson(extraHints));
+ }
+
+ public override void Release(int uniqueId)
+ {
+ AdViewBridgeIOS.adViews.Remove(uniqueId);
+ AdViewBridgeIOS.FBAdViewBridgeRelease(uniqueId);
+ }
+
+ // Sets up internal managed callbacks
+
+ public override void OnLoad(int uniqueId,
+ FBAdViewBridgeCallback callback)
+ {
+ AdViewContainer container = AdViewBridgeIOS.adViewContainerForAdViewId(uniqueId);
+ if (container)
+ {
+ container.onLoad = (container.adView.LoadAdFromData);
+ }
+ }
+
+ public override void OnImpression(int uniqueId,
+ FBAdViewBridgeCallback callback)
+ {
+ AdViewContainer container = AdViewBridgeIOS.adViewContainerForAdViewId(uniqueId);
+ if (container)
+ {
+ container.onImpression = callback;
+ }
+ }
+
+ public override void OnClick(int uniqueId,
+ FBAdViewBridgeCallback callback)
+ {
+ AdViewContainer container = AdViewBridgeIOS.adViewContainerForAdViewId(uniqueId);
+ if (container)
+ {
+ container.onClick = callback;
+ }
+ }
+
+ public override void OnError(int uniqueId,
+ FBAdViewBridgeErrorCallback callback)
+ {
+ AdViewContainer container = AdViewBridgeIOS.adViewContainerForAdViewId(uniqueId);
+ if (container)
+ {
+ container.onError = callback;
+ }
+ }
+
+ public override void OnFinishedClick(int uniqueId,
+ FBAdViewBridgeCallback callback)
+ {
+ AdViewContainer container = AdViewBridgeIOS.adViewContainerForAdViewId(uniqueId);
+ if (container)
+ {
+ container.onFinishedClick = callback;
+ }
+ }
+
+ // External unmanaged callbacks (must be static)
+
+ [MonoPInvokeCallback(typeof(FBAdViewBridgeExternalCallback))]
+ private static void adViewDidLoadBridgeCallback(int uniqueId)
+ {
+ AdViewContainer container = AdViewBridgeIOS.adViewContainerForAdViewId(uniqueId);
+ if (container && container.onLoad != null)
+ {
+ container.onLoad();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBAdViewBridgeExternalCallback))]
+ private static void adViewWillLogImpressionBridgeCallback(int uniqueId)
+ {
+ AdViewContainer container = AdViewBridgeIOS.adViewContainerForAdViewId(uniqueId);
+ if (container && container.onImpression != null)
+ {
+ container.onImpression();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBAdViewBridgeErrorExternalCallback))]
+ private static void adViewDidFailWithErrorBridgeCallback(int uniqueId, string error)
+ {
+ AdViewContainer container = AdViewBridgeIOS.adViewContainerForAdViewId(uniqueId);
+ if (container && container.onError != null)
+ {
+ container.onError(error);
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBAdViewBridgeExternalCallback))]
+ private static void adViewDidClickBridgeCallback(int uniqueId)
+ {
+ AdViewContainer container = AdViewBridgeIOS.adViewContainerForAdViewId(uniqueId);
+ if (container && container.onClick != null)
+ {
+ container.onClick();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBAdViewBridgeExternalCallback))]
+ private static void adViewDidFinishClickBridgeCallback(int uniqueId)
+ {
+ AdViewContainer container = AdViewBridgeIOS.adViewContainerForAdViewId(uniqueId);
+ if (container && container.onFinishedClick != null)
+ {
+ container.onFinishedClick();
+ }
+ }
+
+ }
+#endif
+
+ internal class AdViewContainer
+ {
+ internal AdView adView { get; set; }
+
+ // iOS
+ internal FBAdViewBridgeCallback onLoad { get; set; }
+ internal FBAdViewBridgeCallback onImpression { get; set; }
+ internal FBAdViewBridgeCallback onClick { get; set; }
+ internal FBAdViewBridgeErrorCallback onError { get; set; }
+ internal FBAdViewBridgeCallback onFinishedClick { get; set; }
+
+ // Android
+#if UNITY_ANDROID
+ internal AndroidJavaProxy listenerProxy;
+ internal AndroidJavaObject bridgedAdView;
+#endif
+
+ internal AdViewContainer(AdView adView)
+ {
+ this.adView = adView;
+ }
+
+ public override string ToString()
+ {
+ return string.Format("[AdViewContainer: adView={0}, onLoad={1}]", adView, onLoad);
+ }
+
+ public static implicit operator bool(AdViewContainer obj)
+ {
+ return !(object.ReferenceEquals(obj, null));
+ }
+#if UNITY_ANDROID
+ internal AndroidJavaObject LoadAdConfig(String bidPayload)
+ {
+ AndroidJavaObject configBuilder = bridgedAdView.Call("buildLoadAdConfig");
+ configBuilder.Call("withAdListener", listenerProxy);
+ if (bidPayload != null)
+ {
+ configBuilder.Call("withBid", bidPayload);
+ }
+ return configBuilder.Call("build");
+ }
+ public void Load()
+ {
+ Load(null);
+ }
+ public void Load(String bidPayload)
+ {
+ AndroidJavaObject loadConfig = LoadAdConfig(bidPayload);
+ bridgedAdView.Call("loadAd", loadConfig);
+
+ }
+#endif
+ }
+
+#if UNITY_ANDROID
+ internal class AdViewBridgeListenerProxy : AndroidJavaProxy
+ {
+#pragma warning disable 0414
+ private AdView adView;
+ private readonly AndroidJavaObject bridgedAdView;
+#pragma warning restore 0414
+
+ public AdViewBridgeListenerProxy(AdView adView, AndroidJavaObject bridgedAdView)
+ : base("com.facebook.ads.AdListener")
+ {
+ this.adView = adView;
+ this.bridgedAdView = bridgedAdView;
+ }
+
+ void onError(AndroidJavaObject ad,
+ AndroidJavaObject error)
+ {
+ string errorMessage = error.Call ("getErrorMessage");
+ if (adView.AdViewDidFailWithError != null) {
+ adView.ExecuteOnMainThread(() => {
+ adView.AdViewDidFailWithError(errorMessage);
+ });
+ }
+ }
+
+ void onAdLoaded(AndroidJavaObject ad)
+ {
+ adView.LoadAdFromData();
+ }
+
+ void onAdClicked(AndroidJavaObject ad)
+ {
+ if (adView.AdViewDidClick != null) {
+ adView.ExecuteOnMainThread(() => {
+ adView.AdViewDidClick();
+ });
+ }
+ }
+
+ void onLoggingImpression(AndroidJavaObject ad)
+ {
+ if (adView.AdViewWillLogImpression != null) {
+ adView.ExecuteOnMainThread(() => {
+ adView.AdViewWillLogImpression();
+ });
+ }
+ }
+ }
+#endif
+}
diff --git a/Forest/Assets/AudienceNetwork/Library/AdView.cs.meta b/Forest/Assets/AudienceNetwork/Library/AdView.cs.meta
new file mode 100644
index 0000000..ee20515
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/AdView.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: ea40c685492bb4a8c8ecc98f34c52ed2
+timeCreated: 1531986666
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Library/AudienceNetworkAds.cs b/Forest/Assets/AudienceNetwork/Library/AudienceNetworkAds.cs
new file mode 100644
index 0000000..f54ea0f
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/AudienceNetworkAds.cs
@@ -0,0 +1,42 @@
+using UnityEngine;
+using System.Runtime.InteropServices;
+using System;
+
+namespace AudienceNetwork
+{
+ public static class AudienceNetworkAds
+ {
+#pragma warning disable 0414
+ private static bool isInitialized;
+#pragma warning restore 0414
+
+ internal static void Initialize()
+ {
+ if (IsInitialized()) { return; }
+
+ PlayerPrefs.SetString("an_isUnitySDK", SdkVersion.Build);
+
+#if UNITY_ANDROID
+ AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ AndroidJavaObject currentActivity = unityPlayer.GetStatic("currentActivity");
+ AndroidJavaObject context = currentActivity.Call("getApplicationContext");
+ AndroidJavaClass audienceNetworkAds = new AndroidJavaClass("com.facebook.ads.AudienceNetworkAds");
+ audienceNetworkAds.CallStatic("initialize", context);
+#endif
+ isInitialized = true;
+ }
+
+ internal static bool IsInitialized()
+ {
+#if UNITY_ANDROID
+ AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ AndroidJavaObject currentActivity = unityPlayer.GetStatic("currentActivity");
+ AndroidJavaObject context = currentActivity.Call("getApplicationContext");
+ AndroidJavaClass audienceNetworkAds = new AndroidJavaClass("com.facebook.ads.AudienceNetworkAds");
+ return audienceNetworkAds.CallStatic("isInitialized", context);
+#else
+ return isInitialized;
+#endif
+ }
+ }
+}
diff --git a/Forest/Assets/AudienceNetwork/Library/AudienceNetworkAds.cs.meta b/Forest/Assets/AudienceNetwork/Library/AudienceNetworkAds.cs.meta
new file mode 100644
index 0000000..42e4514
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/AudienceNetworkAds.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4f7b3f57160c342918af28e4b32686e8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Library/ExtraHints.cs b/Forest/Assets/AudienceNetwork/Library/ExtraHints.cs
new file mode 100644
index 0000000..a598c99
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/ExtraHints.cs
@@ -0,0 +1,118 @@
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+
+namespace AudienceNetwork
+{
+ [Serializable]
+ public class ExtraHints
+ {
+ public struct Keyword
+ {
+ public const string ACCESSORIES = "accessories";
+ public const string ART_HISTORY = "art_history";
+ public const string AUTOMOTIVE = "automotive";
+ public const string BEAUTY = "beauty";
+ public const string BIOLOGY = "biology";
+ public const string BOARD_GAMES = "board_games";
+ public const string BUSINESS_SOFTWARE = "business_software";
+ public const string BUYING_SELLING_HOMES = "buying_selling_homes";
+ public const string CATS = "cats";
+ public const string CELEBRITIES = "celebrities";
+ public const string CLOTHING = "clothing";
+ public const string COMIC_BOOKS = "comic_books";
+ public const string DESKTOP_VIDEO = "desktop_video";
+ public const string DOGS = "dogs";
+ public const string EDUCATION = "education";
+ public const string EMAIL = "email";
+ public const string ENTERTAINMENT = "entertainment";
+ public const string FAMILY_PARENTING = "family_parenting";
+ public const string FASHION = "fashion";
+ public const string FINE_ART = "fine_art";
+ public const string FOOD_DRINK = "food_drink";
+ public const string FRENCH_CUISINE = "french_cuisine";
+ public const string GOVERNMENT = "government";
+ public const string HEALTH_FITNESS = "health_fitness";
+ public const string HOBBIES = "hobbies";
+ public const string HOME_GARDEN = "home_garden";
+ public const string HUMOR = "humor";
+ public const string INTERNET_TECHNOLOGY = "internet_technology";
+ public const string LARGE_ANIMALS = "large_animals";
+ public const string LAW = "law";
+ public const string LEGAL_ISSUES = "legal_issues";
+ public const string LITERATURE = "literature";
+ public const string MARKETING = "marketing";
+ public const string MOVIES = "movies";
+ public const string MUSIC = "music";
+ public const string NEWS = "news";
+ public const string PERSONAL_FINANCE = "personal_finance";
+ public const string PETS = "pets";
+ public const string PHOTOGRAPHY = "photography";
+ public const string POLITICS = "politics";
+ public const string REAL_ESTATE = "real_estate";
+ public const string ROLEPLAYING_GAMES = "roleplaying_games";
+ public const string SCIENCE = "science";
+ public const string SHOPPING = "shopping";
+ public const string SOCIETY = "society";
+ public const string SPORTS = "sports";
+ public const string TECHNOLOGY = "technology";
+ public const string TELEVISION = "television";
+ public const string TRAVEL = "travel";
+ public const string VIDEO_COMPUTER_GAMES = "video_computer_games";
+ }
+
+ private const int KEYWORDS_MAX_COUNT = 5;
+
+ public List keywords;
+ public string extraData;
+ public string contentURL;
+
+ internal AndroidJavaObject GetAndroidObject()
+ {
+ AndroidJavaObject builderExtraHintsAndroid = new AndroidJavaObject("com.facebook.ads.ExtraHints$Builder");
+ if (builderExtraHintsAndroid != null)
+ {
+ if (keywords != null)
+ {
+ AndroidJavaClass androidKeywordEnum = new AndroidJavaClass("com.facebook.ads.ExtraHints$Keyword");
+ AndroidJavaObject[] androidKeywordArray = androidKeywordEnum.CallStatic("values");
+ AndroidJavaObject list = new AndroidJavaObject("java.util.ArrayList");
+ int currentCount = 0;
+ foreach (string keyword in keywords)
+ {
+ if (currentCount == KEYWORDS_MAX_COUNT)
+ {
+ break;
+ }
+
+ foreach (AndroidJavaObject obj in androidKeywordArray)
+ {
+ if (obj.Call("toString").ToLower() == keyword)
+ {
+ list.Call("add", obj);
+ currentCount++;
+ break;
+ }
+ }
+ }
+
+ builderExtraHintsAndroid = builderExtraHintsAndroid
+ .Call("keywords", list);
+
+ }
+ if (extraData != null)
+ {
+ builderExtraHintsAndroid = builderExtraHintsAndroid
+ .Call("extraData", extraData);
+ }
+ if (contentURL != null)
+ {
+ builderExtraHintsAndroid = builderExtraHintsAndroid
+ .Call("contentUrl", contentURL);
+ }
+ }
+
+ return builderExtraHintsAndroid.Call("build");
+ }
+ }
+}
diff --git a/Forest/Assets/AudienceNetwork/Library/ExtraHints.cs.meta b/Forest/Assets/AudienceNetwork/Library/ExtraHints.cs.meta
new file mode 100644
index 0000000..185b5f7
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/ExtraHints.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 327a6820e37284d458d23d5528ef137c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Library/InterstitialAd.cs b/Forest/Assets/AudienceNetwork/Library/InterstitialAd.cs
new file mode 100644
index 0000000..8a25f89
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/InterstitialAd.cs
@@ -0,0 +1,950 @@
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using AOT;
+using AudienceNetwork.Utility;
+
+namespace AudienceNetwork
+{
+ public delegate void FBInterstitialAdBridgeCallback();
+ public delegate void FBInterstitialAdBridgeErrorCallback(string error);
+ internal delegate void FBInterstitialAdBridgeExternalCallback(int uniqueId);
+ internal delegate void FBInterstitialAdBridgeErrorExternalCallback(int uniqueId, string error);
+
+ public sealed class InterstitialAd : IDisposable
+ {
+ private readonly int uniqueId;
+ private bool isLoaded;
+ private AdHandler handler;
+
+ public string PlacementId { get; private set; }
+
+ public FBInterstitialAdBridgeCallback InterstitialAdDidLoad
+ {
+ internal get
+ {
+ return interstitialAdDidLoad;
+ }
+ set
+ {
+ interstitialAdDidLoad = value;
+ InterstitialAdBridge.Instance.OnLoad(uniqueId, interstitialAdDidLoad);
+ }
+ }
+
+ public FBInterstitialAdBridgeCallback InterstitialAdWillLogImpression
+ {
+ internal get
+ {
+ return interstitialAdWillLogImpression;
+ }
+ set
+ {
+ interstitialAdWillLogImpression = value;
+ InterstitialAdBridge.Instance.OnImpression(uniqueId, interstitialAdWillLogImpression);
+ }
+ }
+
+ public FBInterstitialAdBridgeErrorCallback InterstitialAdDidFailWithError
+ {
+ internal get
+ {
+ return interstitialAdDidFailWithError;
+ }
+ set
+ {
+ interstitialAdDidFailWithError = value;
+ InterstitialAdBridge.Instance.OnError(uniqueId, interstitialAdDidFailWithError);
+ }
+ }
+
+ public FBInterstitialAdBridgeCallback InterstitialAdDidClick
+ {
+ internal get
+ {
+ return interstitialAdDidClick;
+ }
+ set
+ {
+ interstitialAdDidClick = value;
+ InterstitialAdBridge.Instance.OnClick(uniqueId, interstitialAdDidClick);
+ }
+ }
+
+ public FBInterstitialAdBridgeCallback InterstitialAdWillClose
+ {
+ internal get
+ {
+ return interstitialAdWillClose;
+ }
+ set
+ {
+ interstitialAdWillClose = value;
+ InterstitialAdBridge.Instance.OnWillClose(uniqueId, interstitialAdWillClose);
+ }
+ }
+
+ public FBInterstitialAdBridgeCallback InterstitialAdDidClose
+ {
+ internal get
+ {
+ return interstitialAdDidClose;
+ }
+ set
+ {
+ interstitialAdDidClose = value;
+ InterstitialAdBridge.Instance.OnDidClose(uniqueId, interstitialAdDidClose);
+ }
+ }
+
+ public FBInterstitialAdBridgeCallback InterstitialAdActivityDestroyed
+ {
+ internal get
+ {
+ return interstitialAdActivityDestroyed;
+ }
+ set
+ {
+ interstitialAdActivityDestroyed = value;
+ InterstitialAdBridge.Instance.OnActivityDestroyed(uniqueId, interstitialAdActivityDestroyed);
+ }
+ }
+
+ public FBInterstitialAdBridgeCallback interstitialAdDidLoad;
+ public FBInterstitialAdBridgeCallback interstitialAdWillLogImpression;
+ public FBInterstitialAdBridgeErrorCallback interstitialAdDidFailWithError;
+ public FBInterstitialAdBridgeCallback interstitialAdDidClick;
+ public FBInterstitialAdBridgeCallback interstitialAdWillClose;
+ public FBInterstitialAdBridgeCallback interstitialAdDidClose;
+ public FBInterstitialAdBridgeCallback interstitialAdActivityDestroyed;
+
+ public InterstitialAd(string placementId)
+ {
+ AudienceNetworkAds.Initialize();
+
+ PlacementId = placementId;
+
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ uniqueId = InterstitialAdBridge.Instance.Create(placementId, this);
+
+ InterstitialAdBridge.Instance.OnLoad(uniqueId, InterstitialAdDidLoad);
+ InterstitialAdBridge.Instance.OnImpression(uniqueId, InterstitialAdWillLogImpression);
+ InterstitialAdBridge.Instance.OnClick(uniqueId, InterstitialAdDidClick);
+ InterstitialAdBridge.Instance.OnError(uniqueId, InterstitialAdDidFailWithError);
+ InterstitialAdBridge.Instance.OnWillClose(uniqueId, InterstitialAdWillClose);
+ InterstitialAdBridge.Instance.OnDidClose(uniqueId, InterstitialAdDidClose);
+ InterstitialAdBridge.Instance.OnActivityDestroyed(uniqueId, InterstitialAdActivityDestroyed);
+ }
+ }
+
+ ~InterstitialAd()
+ {
+ Dispose(false);
+ }
+
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ private void Dispose(Boolean iAmBeingCalledFromDisposeAndNotFinalize)
+ {
+ Debug.Log("Interstitial Ad Disposed.");
+ InterstitialAdBridge.Instance.Release(uniqueId);
+ }
+
+ public override string ToString()
+ {
+ return string.Format(
+ "[InterstitialAd: " +
+ "PlacementId={0}, " +
+ "InterstitialAdDidLoad={1}, " +
+ "InterstitialAdWillLogImpression={2}, " +
+ "InterstitialAdDidFailWithError={3}, " +
+ "InterstitialAdDidClick={4}, " +
+ "InterstitialAdWillClose={5}, " +
+ "InterstitialAdDidClose={6}], " +
+ "InterstitialAdActivityDestroyed={7}]",
+ PlacementId,
+ InterstitialAdDidLoad,
+ InterstitialAdWillLogImpression,
+ InterstitialAdDidFailWithError,
+ InterstitialAdDidClick,
+ InterstitialAdWillClose,
+ InterstitialAdDidClose,
+ InterstitialAdActivityDestroyed);
+ }
+
+ public void Register(GameObject gameObject)
+ {
+ handler = gameObject.AddComponent();
+ }
+
+ public void LoadAd()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ InterstitialAdBridge.Instance.Load(uniqueId);
+ }
+ else
+ {
+ InterstitialAdDidLoad();
+ }
+ }
+
+ public void LoadAd(String bidPayload)
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ InterstitialAdBridge.Instance.Load(uniqueId, bidPayload);
+ }
+ else
+ {
+ InterstitialAdDidLoad();
+ }
+ }
+
+ public bool IsValid()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ return (isLoaded && InterstitialAdBridge.Instance.IsValid(uniqueId));
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ internal void LoadAdFromData()
+ {
+ isLoaded = true;
+
+ if (InterstitialAdDidLoad != null)
+ {
+ handler.ExecuteOnMainThread(() =>
+ {
+ InterstitialAdDidLoad();
+ });
+ }
+ }
+
+ public bool Show()
+ {
+ return InterstitialAdBridge.Instance.Show(uniqueId);
+ }
+
+ public void SetExtraHints(ExtraHints extraHints)
+ {
+ InterstitialAdBridge.Instance.SetExtraHints(uniqueId, extraHints);
+ }
+
+ internal void ExecuteOnMainThread(Action action)
+ {
+ if (handler)
+ {
+ handler.ExecuteOnMainThread(action);
+ }
+ }
+
+ public static implicit operator bool(InterstitialAd obj)
+ {
+ return !(object.ReferenceEquals(obj, null));
+ }
+ }
+
+ internal interface IInterstitialAdBridge
+ {
+ int Create(string placementId,
+ InterstitialAd interstitialAd);
+
+ int Load(int uniqueId);
+
+ int Load(int uniqueId, String bidPayload);
+
+ bool IsValid(int uniqueId);
+
+ bool Show(int uniqueId);
+
+ void SetExtraHints(int uniqueId, ExtraHints extraHints);
+
+ void Release(int uniqueId);
+
+ void OnLoad(int uniqueId,
+ FBInterstitialAdBridgeCallback callback);
+
+ void OnImpression(int uniqueId,
+ FBInterstitialAdBridgeCallback callback);
+
+ void OnClick(int uniqueId,
+ FBInterstitialAdBridgeCallback callback);
+
+ void OnError(int uniqueId,
+ FBInterstitialAdBridgeErrorCallback callback);
+
+ void OnWillClose(int uniqueId,
+ FBInterstitialAdBridgeCallback callback);
+
+ void OnDidClose(int uniqueId,
+ FBInterstitialAdBridgeCallback callback);
+
+ void OnActivityDestroyed(int uniqueId,
+ FBInterstitialAdBridgeCallback callback);
+ }
+
+ internal class InterstitialAdBridge : IInterstitialAdBridge
+ {
+
+ /* Interface to Interstitial implementation */
+
+ public static readonly IInterstitialAdBridge Instance;
+
+ internal InterstitialAdBridge()
+ {
+ }
+
+ static InterstitialAdBridge()
+ {
+ Instance = InterstitialAdBridge.CreateInstance();
+ }
+
+ private static IInterstitialAdBridge CreateInstance()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+#if UNITY_IOS
+ return new InterstitialAdBridgeIOS();
+#elif UNITY_ANDROID
+ return new InterstitialAdBridgeAndroid();
+#endif
+ }
+ return new InterstitialAdBridge();
+
+ }
+
+ public virtual int Create(string placementId,
+ InterstitialAd InterstitialAd)
+ {
+ return 123;
+ }
+
+ public virtual int Load(int uniqueId)
+ {
+ return 123;
+ }
+
+ public virtual int Load(int uniqueId, String bidPayload)
+ {
+ return 123;
+ }
+
+ public virtual bool IsValid(int uniqueId)
+ {
+ return true;
+ }
+
+ public virtual bool Show(int uniqueId)
+ {
+ return true;
+ }
+
+ public virtual void SetExtraHints(int uniqueId, ExtraHints extraHints)
+ {
+ }
+
+ public virtual void Release(int uniqueId)
+ {
+ }
+
+ public virtual void OnLoad(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnImpression(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnClick(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnError(int uniqueId,
+ FBInterstitialAdBridgeErrorCallback callback)
+ {
+ }
+
+ public virtual void OnWillClose(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnDidClose(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnActivityDestroyed(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ }
+ }
+
+#if UNITY_ANDROID
+ internal class InterstitialAdBridgeAndroid : InterstitialAdBridge
+ {
+
+ private static Dictionary interstitialAds = new Dictionary();
+ private static int lastKey;
+
+ private AndroidJavaObject InterstitialAdForuniqueId(int uniqueId)
+ {
+ InterstitialAdContainer interstitialAdContainer = null;
+ bool success = InterstitialAdBridgeAndroid.interstitialAds.TryGetValue(uniqueId, out interstitialAdContainer);
+ if (success)
+ {
+ return interstitialAdContainer.bridgedInterstitialAd;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ private InterstitialAdContainer InterstitialAdContainerForuniqueId(int uniqueId)
+ {
+ InterstitialAdContainer interstitialAdContainer = null;
+ bool success = InterstitialAdBridgeAndroid.interstitialAds.TryGetValue(uniqueId, out interstitialAdContainer);
+ if (success)
+ {
+ return interstitialAdContainer;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ private string GetStringForuniqueId(int uniqueId,
+ string method)
+ {
+ AndroidJavaObject interstitialAd = InterstitialAdForuniqueId(uniqueId);
+ if (interstitialAd != null)
+ {
+ return interstitialAd.Call(method);
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ private string GetImageURLForuniqueId(int uniqueId,
+ string method)
+ {
+ AndroidJavaObject interstitialAd = InterstitialAdForuniqueId(uniqueId);
+ if (interstitialAd != null)
+ {
+ AndroidJavaObject image = interstitialAd.Call(method);
+ if (image != null)
+ {
+ return image.Call("getUrl");
+ }
+ }
+ return null;
+ }
+
+ public override int Create(string placementId,
+ InterstitialAd interstitialAd)
+ {
+ AdUtility.Prepare();
+ AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ AndroidJavaObject currentActivity = unityPlayer.GetStatic("currentActivity");
+ AndroidJavaObject context = currentActivity.Call("getApplicationContext");
+ AndroidJavaObject bridgedInterstitialAd = new AndroidJavaObject("com.facebook.ads.InterstitialAd", context, placementId);
+
+ InterstitialAdBridgeListenerProxy proxy = new InterstitialAdBridgeListenerProxy(interstitialAd, bridgedInterstitialAd);
+
+ InterstitialAdContainer interstitialAdContainer = new InterstitialAdContainer(interstitialAd)
+ {
+ bridgedInterstitialAd = bridgedInterstitialAd,
+ listenerProxy = proxy
+ };
+
+ int key = InterstitialAdBridgeAndroid.lastKey;
+ InterstitialAdBridgeAndroid.interstitialAds.Add(key, interstitialAdContainer);
+ InterstitialAdBridgeAndroid.lastKey++;
+ return key;
+ }
+
+ public override int Load(int uniqueId)
+ {
+ AdUtility.Prepare();
+ InterstitialAdContainer interstitialAdContainer = InterstitialAdContainerForuniqueId(uniqueId);
+ if (interstitialAdContainer != null)
+ {
+ interstitialAdContainer.Load();
+ }
+ return uniqueId;
+ }
+
+ public override int Load(int uniqueId, String bidPayload)
+ {
+ AdUtility.Prepare();
+ InterstitialAdContainer interstitialAdContainer = InterstitialAdContainerForuniqueId(uniqueId);
+ if (interstitialAdContainer != null)
+ {
+ interstitialAdContainer.Load(bidPayload);
+ }
+ return uniqueId;
+ }
+
+ public override bool IsValid(int uniqueId)
+ {
+ AndroidJavaObject interstitialAd = InterstitialAdForuniqueId(uniqueId);
+ if (interstitialAd != null)
+ {
+ return !interstitialAd.Call("isAdInvalidated");
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public override bool Show(int uniqueId)
+ {
+ AndroidJavaObject interstitialAd = InterstitialAdForuniqueId(uniqueId);
+ if (interstitialAd != null)
+ {
+ return interstitialAd.Call("show");
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public override void Release(int uniqueId)
+ {
+ AndroidJavaObject interstitialAd = InterstitialAdForuniqueId(uniqueId);
+ if (interstitialAd != null)
+ {
+ interstitialAd.Call("destroy");
+ }
+ InterstitialAdBridgeAndroid.interstitialAds.Remove(uniqueId);
+ }
+
+ public override void SetExtraHints(int uniqueId, ExtraHints extraHints)
+ {
+ AdUtility.Prepare();
+ AndroidJavaObject interstitialAd = InterstitialAdForuniqueId(uniqueId);
+
+ if (interstitialAd != null)
+ {
+ interstitialAd.Call("setExtraHints", extraHints.GetAndroidObject());
+ }
+ }
+
+ public override void OnLoad(int uniqueId, FBInterstitialAdBridgeCallback callback) { }
+ public override void OnImpression(int uniqueId, FBInterstitialAdBridgeCallback callback) { }
+ public override void OnClick(int uniqueId, FBInterstitialAdBridgeCallback callback) { }
+ public override void OnError(int uniqueId, FBInterstitialAdBridgeErrorCallback callback) { }
+ public override void OnWillClose(int uniqueId, FBInterstitialAdBridgeCallback callback) { }
+ public override void OnDidClose(int uniqueId, FBInterstitialAdBridgeCallback callback) { }
+ public override void OnActivityDestroyed(int uniqueId, FBInterstitialAdBridgeCallback callback) { }
+
+ }
+
+#endif
+
+#if UNITY_IOS
+ internal class InterstitialAdBridgeIOS : InterstitialAdBridge
+ {
+
+ private static Dictionary interstitialAds = new Dictionary();
+
+ private static InterstitialAdContainer interstitialAdContainerForuniqueId(int uniqueId)
+ {
+ InterstitialAdContainer interstitialAd = null;
+ bool success = InterstitialAdBridgeIOS.interstitialAds.TryGetValue(uniqueId, out interstitialAd);
+ if (success)
+ {
+ return interstitialAd;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ [DllImport("__Internal")]
+ private static extern int FBInterstitialAdBridgeCreate(string placementId);
+
+ [DllImport("__Internal")]
+ private static extern int FBInterstitialAdBridgeLoad(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern int FBInterstitialAdBridgeLoadWithBidPayload(int uniqueId, string bidPayload);
+
+ [DllImport("__Internal")]
+ private static extern bool FBInterstitialAdBridgeIsValid(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern bool FBInterstitialAdBridgeShow(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern void FBInterstitialAdBridgeSetExtraHints(int uniqueId, string extraHints);
+
+ [DllImport("__Internal")]
+ private static extern void FBInterstitialAdBridgeRelease(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern void FBInterstitialAdBridgeOnLoad(int uniqueId,
+ FBInterstitialAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBInterstitialAdBridgeOnImpression(int uniqueId,
+ FBInterstitialAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBInterstitialAdBridgeOnClick(int uniqueId,
+ FBInterstitialAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBInterstitialAdBridgeOnError(int uniqueId,
+ FBInterstitialAdBridgeErrorExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBInterstitialAdBridgeOnDidClose(int uniqueId,
+ FBInterstitialAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBInterstitialAdBridgeOnWillClose(int uniqueId,
+ FBInterstitialAdBridgeExternalCallback callback);
+
+ public override int Create(string placementId,
+ InterstitialAd interstitialAd)
+ {
+ int uniqueId = InterstitialAdBridgeIOS.FBInterstitialAdBridgeCreate(placementId);
+ InterstitialAdBridgeIOS.interstitialAds.Add(uniqueId, new InterstitialAdContainer(interstitialAd));
+ InterstitialAdBridgeIOS.FBInterstitialAdBridgeOnLoad(uniqueId, interstitialAdDidLoadBridgeCallback);
+ InterstitialAdBridgeIOS.FBInterstitialAdBridgeOnImpression(uniqueId, interstitialAdWillLogImpressionBridgeCallback);
+ InterstitialAdBridgeIOS.FBInterstitialAdBridgeOnClick(uniqueId, interstitialAdDidClickBridgeCallback);
+ InterstitialAdBridgeIOS.FBInterstitialAdBridgeOnError(uniqueId, interstitialAdDidFailWithErrorBridgeCallback);
+ InterstitialAdBridgeIOS.FBInterstitialAdBridgeOnDidClose(uniqueId, interstitialAdDidCloseBridgeCallback);
+ InterstitialAdBridgeIOS.FBInterstitialAdBridgeOnWillClose(uniqueId, interstitialAdWillCloseBridgeCallback);
+
+ return uniqueId;
+ }
+
+ public override int Load(int uniqueId)
+ {
+ return InterstitialAdBridgeIOS.FBInterstitialAdBridgeLoad(uniqueId);
+ }
+
+ public override int Load(int uniqueId, string bidPayload)
+ {
+ return InterstitialAdBridgeIOS.FBInterstitialAdBridgeLoadWithBidPayload(uniqueId, bidPayload);
+ }
+
+ public override bool IsValid(int uniqueId)
+ {
+ return InterstitialAdBridgeIOS.FBInterstitialAdBridgeIsValid(uniqueId);
+ }
+
+ public override bool Show(int uniqueId)
+ {
+ return InterstitialAdBridgeIOS.FBInterstitialAdBridgeShow(uniqueId);
+ }
+
+ public override void SetExtraHints(int uniqueId, ExtraHints extraHints)
+ {
+ InterstitialAdBridgeIOS.FBInterstitialAdBridgeSetExtraHints(uniqueId, JsonUtility.ToJson(extraHints));
+ }
+
+ public override void Release(int uniqueId)
+ {
+ InterstitialAdBridgeIOS.interstitialAds.Remove(uniqueId);
+ InterstitialAdBridgeIOS.FBInterstitialAdBridgeRelease(uniqueId);
+ }
+
+ // Sets up internal managed callbacks
+
+ public override void OnLoad(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onLoad = container.interstitialAd.LoadAdFromData;
+ }
+ }
+
+ public override void OnImpression(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onImpression = callback;
+ }
+ }
+
+ public override void OnClick(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onClick = callback;
+ }
+ }
+
+ public override void OnError(int uniqueId,
+ FBInterstitialAdBridgeErrorCallback callback)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onError = callback;
+ }
+ }
+
+ public override void OnDidClose(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onDidClose = callback;
+ }
+ }
+
+ public override void OnWillClose(int uniqueId,
+ FBInterstitialAdBridgeCallback callback)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onWillClose = callback;
+ }
+ }
+
+ // External unmanaged callbacks (must be static)
+
+ [MonoPInvokeCallback(typeof(FBInterstitialAdBridgeExternalCallback))]
+ private static void interstitialAdDidLoadBridgeCallback(int uniqueId)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container && container.onLoad != null)
+ {
+ container.onLoad();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBInterstitialAdBridgeExternalCallback))]
+ private static void interstitialAdWillLogImpressionBridgeCallback(int uniqueId)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container && container.onImpression != null)
+ {
+ container.onImpression();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBInterstitialAdBridgeErrorExternalCallback))]
+ private static void interstitialAdDidFailWithErrorBridgeCallback(int uniqueId, string error)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container && container.onError != null)
+ {
+ container.onError(error);
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBInterstitialAdBridgeExternalCallback))]
+ private static void interstitialAdDidClickBridgeCallback(int uniqueId)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container && container.onClick != null)
+ {
+ container.onClick();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBInterstitialAdBridgeExternalCallback))]
+ private static void interstitialAdDidCloseBridgeCallback(int uniqueId)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container && container.onDidClose != null)
+ {
+ container.onDidClose();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBInterstitialAdBridgeExternalCallback))]
+ private static void interstitialAdWillCloseBridgeCallback(int uniqueId)
+ {
+ InterstitialAdContainer container = InterstitialAdBridgeIOS.interstitialAdContainerForuniqueId(uniqueId);
+ if (container && container.onWillClose != null)
+ {
+ container.onWillClose();
+ }
+ }
+
+ }
+#endif
+
+ internal class InterstitialAdContainer
+ {
+ internal InterstitialAd interstitialAd { get; set; }
+
+ // iOS
+ internal FBInterstitialAdBridgeCallback onLoad { get; set; }
+ internal FBInterstitialAdBridgeCallback onImpression { get; set; }
+ internal FBInterstitialAdBridgeCallback onClick { get; set; }
+ internal FBInterstitialAdBridgeErrorCallback onError { get; set; }
+ internal FBInterstitialAdBridgeCallback onDidClose { get; set; }
+ internal FBInterstitialAdBridgeCallback onWillClose { get; set; }
+ internal FBInterstitialAdBridgeCallback onActivityDestroyed { get; set; }
+
+ // Android
+#if UNITY_ANDROID
+ internal AndroidJavaProxy listenerProxy;
+ internal AndroidJavaObject bridgedInterstitialAd;
+#endif
+
+ internal InterstitialAdContainer(InterstitialAd interstitialAd)
+ {
+ this.interstitialAd = interstitialAd;
+ }
+
+ public override string ToString()
+ {
+ return string.Format("[InterstitialAdContainer: interstitialAd={0}, onLoad={1}]", interstitialAd, onLoad);
+ }
+
+ public static implicit operator bool(InterstitialAdContainer obj)
+ {
+ return !(object.ReferenceEquals(obj, null));
+ }
+
+#if UNITY_ANDROID
+ internal AndroidJavaObject LoadAdConfig(String bidPayload)
+ {
+ AndroidJavaObject configBuilder = bridgedInterstitialAd.Call("buildLoadAdConfig");
+ configBuilder.Call("withAdListener", listenerProxy);
+ if (bidPayload != null)
+ {
+ configBuilder.Call("withBid", bidPayload);
+ }
+ return configBuilder.Call("build");
+ }
+
+ public void Load()
+ {
+ Load(null);
+ }
+ public void Load(String bidPayload)
+ {
+ AndroidJavaObject loadConfig = LoadAdConfig(bidPayload);
+ bridgedInterstitialAd.Call("loadAd", loadConfig);
+ }
+#endif
+ }
+
+#if UNITY_ANDROID
+ internal class InterstitialAdBridgeListenerProxy : AndroidJavaProxy
+ {
+ private InterstitialAd interstitialAd;
+#pragma warning disable 0414
+ private readonly AndroidJavaObject bridgedInterstitialAd;
+#pragma warning restore 0414
+
+ public InterstitialAdBridgeListenerProxy(InterstitialAd interstitialAd,
+ AndroidJavaObject bridgedInterstitialAd)
+ : base("com.facebook.ads.InterstitialAdExtendedListener")
+ {
+ this.interstitialAd = interstitialAd;
+ this.bridgedInterstitialAd = bridgedInterstitialAd;
+ }
+
+ void onError(AndroidJavaObject ad,
+ AndroidJavaObject error)
+ {
+ string errorMessage = error.Call("getErrorMessage");
+ if (interstitialAd.InterstitialAdDidFailWithError != null)
+ {
+ interstitialAd.ExecuteOnMainThread(() =>
+ {
+ interstitialAd.InterstitialAdDidFailWithError(errorMessage);
+ });
+ }
+ }
+
+ void onAdLoaded(AndroidJavaObject ad)
+ {
+ interstitialAd.LoadAdFromData();
+ }
+
+ // Not executing on the main thread - otherwise InterstitialAdDidClick
+ // will only be called after the Interstitial activity be destroyed
+ void onAdClicked(AndroidJavaObject ad)
+ {
+ if (interstitialAd.InterstitialAdDidClick != null)
+ {
+ interstitialAd.ExecuteOnMainThread(() =>
+ {
+ interstitialAd.InterstitialAdDidClick();
+ });
+ }
+ }
+
+ void onInterstitialDisplayed(AndroidJavaObject ad)
+ {
+ // Not reporting anything so it won't double with InterstitialAdWillLogImpression
+ }
+
+ void onInterstitialDismissed(AndroidJavaObject ad)
+ {
+ if (interstitialAd.InterstitialAdDidClose != null)
+ {
+ interstitialAd.ExecuteOnMainThread(() =>
+ {
+ interstitialAd.InterstitialAdDidClose();
+ });
+ }
+ }
+
+ // Not executing on the main thread - otherwise InterstitialAdWillLogImpression
+ // will only be called after the Interstitial activity be destroyed
+ void onLoggingImpression(AndroidJavaObject ad)
+ {
+ if (interstitialAd.InterstitialAdWillLogImpression != null)
+ {
+ interstitialAd.ExecuteOnMainThread(() =>
+ {
+ interstitialAd.InterstitialAdWillLogImpression();
+ });
+ }
+ }
+
+ void onInterstitialActivityDestroyed()
+ {
+ if (interstitialAd.InterstitialAdActivityDestroyed != null)
+ {
+ interstitialAd.ExecuteOnMainThread(() =>
+ {
+ interstitialAd.InterstitialAdActivityDestroyed();
+ });
+ }
+ }
+ }
+#endif
+}
diff --git a/Forest/Assets/AudienceNetwork/Library/InterstitialAd.cs.meta b/Forest/Assets/AudienceNetwork/Library/InterstitialAd.cs.meta
new file mode 100644
index 0000000..c557ea5
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/InterstitialAd.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: aed5d3283123b47e9a5780a385f4e6ed
+timeCreated: 1531986666
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Library/RewardedVideoAd.cs b/Forest/Assets/AudienceNetwork/Library/RewardedVideoAd.cs
new file mode 100644
index 0000000..a1101e5
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/RewardedVideoAd.cs
@@ -0,0 +1,1181 @@
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+using AudienceNetwork.Utility;
+using System.Runtime.InteropServices;
+using AOT;
+
+namespace AudienceNetwork
+{
+ public delegate void FBRewardedVideoAdBridgeCallback();
+ public delegate void FBRewardedVideoAdBridgeErrorCallback(string error);
+ internal delegate void FBRewardedVideoAdBridgeExternalCallback(int uniqueId);
+ internal delegate void FBRewardedVideoAdBridgeErrorExternalCallback(int uniqueId, string error);
+
+ public sealed class RewardData
+ {
+ public string UserId
+ {
+ internal get;
+ set;
+ }
+
+ public string Currency
+ {
+ internal get;
+ set;
+ }
+ }
+
+ public sealed class RewardedVideoAd : IDisposable
+ {
+ private readonly int uniqueId;
+ private bool isLoaded;
+ private AdHandler handler;
+
+ public string PlacementId { get; private set; }
+ public RewardData RewardData { get; private set; }
+
+ public FBRewardedVideoAdBridgeCallback RewardedVideoAdDidLoad
+ {
+ internal get
+ {
+ return rewardedVideoAdDidLoad;
+ }
+ set
+ {
+ rewardedVideoAdDidLoad = value;
+ RewardedVideoAdBridge.Instance.OnLoad(uniqueId, rewardedVideoAdDidLoad);
+ }
+ }
+
+ public FBRewardedVideoAdBridgeCallback RewardedVideoAdWillLogImpression
+ {
+ internal get
+ {
+ return rewardedVideoAdWillLogImpression;
+ }
+ set
+ {
+ rewardedVideoAdWillLogImpression = value;
+ RewardedVideoAdBridge.Instance.OnImpression(uniqueId, rewardedVideoAdWillLogImpression);
+ }
+ }
+
+ public FBRewardedVideoAdBridgeErrorCallback RewardedVideoAdDidFailWithError
+ {
+ internal get
+ {
+ return rewardedVideoAdDidFailWithError;
+ }
+ set
+ {
+ rewardedVideoAdDidFailWithError = value;
+ RewardedVideoAdBridge.Instance.OnError(uniqueId, rewardedVideoAdDidFailWithError);
+ }
+ }
+
+ public FBRewardedVideoAdBridgeCallback RewardedVideoAdDidClick
+ {
+ internal get
+ {
+ return rewardedVideoAdDidClick;
+ }
+ set
+ {
+ rewardedVideoAdDidClick = value;
+ RewardedVideoAdBridge.Instance.OnClick(uniqueId, rewardedVideoAdDidClick);
+ }
+ }
+
+ public FBRewardedVideoAdBridgeCallback RewardedVideoAdWillClose
+ {
+ internal get
+ {
+ return rewardedVideoAdWillClose;
+ }
+ set
+ {
+ rewardedVideoAdWillClose = value;
+ RewardedVideoAdBridge.Instance.OnWillClose(uniqueId, rewardedVideoAdWillClose);
+ }
+ }
+
+ public FBRewardedVideoAdBridgeCallback RewardedVideoAdDidClose
+ {
+ internal get
+ {
+ return rewardedVideoAdDidClose;
+ }
+ set
+ {
+ rewardedVideoAdDidClose = value;
+ RewardedVideoAdBridge.Instance.OnDidClose(uniqueId, rewardedVideoAdDidClose);
+ }
+ }
+
+ public FBRewardedVideoAdBridgeCallback RewardedVideoAdComplete
+ {
+ internal get
+ {
+ return rewardedVideoAdComplete;
+ }
+ set
+ {
+ rewardedVideoAdComplete = value;
+ RewardedVideoAdBridge.Instance.OnComplete(uniqueId, rewardedVideoAdComplete);
+ }
+ }
+
+ public FBRewardedVideoAdBridgeCallback RewardedVideoAdDidSucceed
+ {
+ internal get
+ {
+ return rewardedVideoAdDidSucceed;
+ }
+ set
+ {
+ rewardedVideoAdDidSucceed = value;
+ RewardedVideoAdBridge.Instance.OnDidSucceed(uniqueId, rewardedVideoAdDidSucceed);
+ }
+ }
+
+ public FBRewardedVideoAdBridgeCallback RewardedVideoAdDidFail
+ {
+ internal get
+ {
+ return rewardedVideoAdDidFail;
+ }
+ set
+ {
+ rewardedVideoAdDidFail = value;
+ RewardedVideoAdBridge.Instance.OnDidFail(uniqueId, rewardedVideoAdDidFail);
+ }
+ }
+
+ public FBRewardedVideoAdBridgeCallback RewardedVideoAdActivityDestroyed
+ {
+ internal get
+ {
+ return rewardedVideoAdActivityDestroyed;
+ }
+ set
+ {
+ rewardedVideoAdActivityDestroyed = value;
+ RewardedVideoAdBridge.Instance.OnActivityDestroyed(uniqueId, rewardedVideoAdActivityDestroyed);
+ }
+ }
+
+ public FBRewardedVideoAdBridgeCallback rewardedVideoAdDidLoad;
+ public FBRewardedVideoAdBridgeCallback rewardedVideoAdWillLogImpression;
+ public FBRewardedVideoAdBridgeErrorCallback rewardedVideoAdDidFailWithError;
+ public FBRewardedVideoAdBridgeCallback rewardedVideoAdDidClick;
+ public FBRewardedVideoAdBridgeCallback rewardedVideoAdWillClose;
+ public FBRewardedVideoAdBridgeCallback rewardedVideoAdDidClose;
+ public FBRewardedVideoAdBridgeCallback rewardedVideoAdComplete;
+ public FBRewardedVideoAdBridgeCallback rewardedVideoAdDidSucceed;
+ public FBRewardedVideoAdBridgeCallback rewardedVideoAdDidFail;
+ public FBRewardedVideoAdBridgeCallback rewardedVideoAdActivityDestroyed;
+
+ public RewardedVideoAd(string placementId) : this(placementId, null)
+ {
+
+ }
+
+ public RewardedVideoAd(string placementId, RewardData rewardData)
+ {
+ AudienceNetworkAds.Initialize();
+
+ PlacementId = placementId;
+ RewardData = rewardData;
+
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ uniqueId = RewardedVideoAdBridge.Instance.Create(placementId, RewardData, this);
+
+ RewardedVideoAdBridge.Instance.OnLoad(uniqueId, RewardedVideoAdDidLoad);
+ RewardedVideoAdBridge.Instance.OnImpression(uniqueId, RewardedVideoAdWillLogImpression);
+ RewardedVideoAdBridge.Instance.OnClick(uniqueId, RewardedVideoAdDidClick);
+ RewardedVideoAdBridge.Instance.OnError(uniqueId, RewardedVideoAdDidFailWithError);
+ RewardedVideoAdBridge.Instance.OnWillClose(uniqueId, RewardedVideoAdWillClose);
+ RewardedVideoAdBridge.Instance.OnDidClose(uniqueId, RewardedVideoAdDidClose);
+ RewardedVideoAdBridge.Instance.OnComplete(uniqueId, RewardedVideoAdComplete);
+ RewardedVideoAdBridge.Instance.OnDidSucceed(uniqueId, RewardedVideoAdDidSucceed);
+ RewardedVideoAdBridge.Instance.OnDidFail(uniqueId, RewardedVideoAdDidFail);
+ RewardedVideoAdBridge.Instance.OnActivityDestroyed(uniqueId, RewardedVideoAdActivityDestroyed);
+ }
+ }
+
+ ~RewardedVideoAd()
+ {
+ Dispose(false);
+ }
+
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ private void Dispose(Boolean iAmBeingCalledFromDisposeAndNotFinalize)
+ {
+ if (handler)
+ {
+ handler.RemoveFromParent();
+ }
+ Debug.Log("RewardedVideo Ad Disposed.");
+ RewardedVideoAdBridge.Instance.Release(uniqueId);
+ }
+
+ public override string ToString()
+ {
+ return string.Format(
+ "[RewardedVideoAd: " +
+ "PlacementId={0}, " +
+ "RewardedVideoAdDidLoad={1}, " +
+ "RewardedVideoAdWillLogImpression={2}, " +
+ "RewardedVideoAdDidFailWithError={3}, " +
+ "RewardedVideoAdDidClick={4}, " +
+ "RewardedVideoAdWillClose={5}, " +
+ "RewardedVideoAdDidClose={6}, " +
+ "RewardedVideoAdComplete={7}, " +
+ "RewardedVideoAdDidSucceed={8}, " +
+ "RewardedVideoAdDidFail={9}," +
+ "RewardedVideoAdActivityDestroyed={10}]",
+ PlacementId,
+ RewardedVideoAdDidLoad,
+ RewardedVideoAdWillLogImpression,
+ RewardedVideoAdDidFailWithError,
+ RewardedVideoAdDidClick,
+ RewardedVideoAdWillClose,
+ RewardedVideoAdDidClose,
+ RewardedVideoAdComplete,
+ RewardedVideoAdDidSucceed,
+ RewardedVideoAdDidFail,
+ RewardedVideoAdActivityDestroyed);
+ }
+
+ public void Register(GameObject gameObject)
+ {
+ handler = gameObject.AddComponent();
+ }
+
+ public void LoadAd()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ RewardedVideoAdBridge.Instance.Load(uniqueId);
+ }
+ else
+ {
+ RewardedVideoAdDidLoad();
+ }
+ }
+
+ public void LoadAd(String bidPayload)
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ RewardedVideoAdBridge.Instance.Load(uniqueId, bidPayload);
+ }
+ else
+ {
+ RewardedVideoAdDidLoad();
+ }
+ }
+
+ public bool IsValid()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+ return (isLoaded && RewardedVideoAdBridge.Instance.IsValid(uniqueId));
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ internal void LoadAdFromData()
+ {
+ isLoaded = true;
+
+ if (RewardedVideoAdDidLoad != null)
+ {
+ handler.ExecuteOnMainThread(() =>
+ {
+ RewardedVideoAdDidLoad();
+ });
+ }
+ }
+
+ public bool Show()
+ {
+ return RewardedVideoAdBridge.Instance.Show(uniqueId);
+ }
+
+ public void SetExtraHints(ExtraHints extraHints)
+ {
+ RewardedVideoAdBridge.Instance.SetExtraHints(uniqueId, extraHints);
+ }
+
+ internal void ExecuteOnMainThread(Action action)
+ {
+ if (handler)
+ {
+ handler.ExecuteOnMainThread(action);
+ }
+ }
+
+ public static implicit operator bool(RewardedVideoAd obj)
+ {
+ return !(object.ReferenceEquals(obj, null));
+ }
+ }
+
+ internal interface IRewardedVideoAdBridge
+ {
+ int Create(string placementId, RewardData rewardData,
+ RewardedVideoAd rewardedVideoAd);
+
+ int Load(int uniqueId);
+
+ int Load(int uniqueId, String bidPayload);
+
+ bool IsValid(int uniqueId);
+
+ bool Show(int uniqueId);
+
+ void SetExtraHints(int uniqueId, ExtraHints extraHints);
+
+ void Release(int uniqueId);
+
+ void OnLoad(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback);
+
+ void OnImpression(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback);
+
+ void OnClick(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback);
+
+ void OnError(int uniqueId,
+ FBRewardedVideoAdBridgeErrorCallback callback);
+
+ void OnWillClose(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback);
+
+ void OnDidClose(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback);
+
+ void OnComplete(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback);
+
+ void OnDidSucceed(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback);
+
+ void OnDidFail(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback);
+
+ void OnActivityDestroyed(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback);
+ }
+
+ internal class RewardedVideoAdBridge : IRewardedVideoAdBridge
+ {
+
+ /* Interface to RewardedVideo implementation */
+
+ public static readonly IRewardedVideoAdBridge Instance;
+
+ internal RewardedVideoAdBridge()
+ {
+ }
+
+ static RewardedVideoAdBridge()
+ {
+ Instance = RewardedVideoAdBridge.CreateInstance();
+ }
+
+ private static IRewardedVideoAdBridge CreateInstance()
+ {
+ if (Application.platform != RuntimePlatform.OSXEditor)
+ {
+#if UNITY_IOS
+ return new RewardedVideoAdBridgeIOS();
+#elif UNITY_ANDROID
+ return new RewardedVideoAdBridgeAndroid();
+#endif
+ }
+ return new RewardedVideoAdBridge();
+
+ }
+
+ public virtual int Create(string placementId, RewardData rewardData,
+ RewardedVideoAd RewardedVideoAd)
+ {
+ return 123;
+ }
+
+ public virtual int Load(int uniqueId)
+ {
+ return 123;
+ }
+
+ public virtual int Load(int uniqueId, String bidPayload)
+ {
+ return 123;
+ }
+
+ public virtual bool IsValid(int uniqueId)
+ {
+ return true;
+ }
+
+ public virtual bool Show(int uniqueId)
+ {
+ return true;
+ }
+
+ public virtual void SetExtraHints(int uniqueId, ExtraHints extraHints)
+ {
+ }
+
+ public virtual void Release(int uniqueId)
+ {
+ }
+
+ public virtual void OnLoad(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnImpression(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnClick(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnError(int uniqueId,
+ FBRewardedVideoAdBridgeErrorCallback callback)
+ {
+ }
+
+ public virtual void OnWillClose(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnDidClose(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnComplete(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnDidSucceed(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnDidFail(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ }
+
+ public virtual void OnActivityDestroyed(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ }
+
+ }
+
+#if UNITY_ANDROID
+ internal class RewardedVideoAdBridgeAndroid : RewardedVideoAdBridge
+ {
+
+ private static Dictionary rewardedVideoAds = new Dictionary();
+ private static int lastKey;
+
+ private AndroidJavaObject RewardedVideoAdForUniqueId(int uniqueId)
+ {
+ RewardedVideoAdContainer rewardedVideoAdContainer = null;
+ bool success = RewardedVideoAdBridgeAndroid.rewardedVideoAds.TryGetValue(uniqueId, out rewardedVideoAdContainer);
+ if (success) {
+ return rewardedVideoAdContainer.bridgedRewardedVideoAd;
+ } else {
+ return null;
+ }
+ }
+
+ private RewardedVideoAdContainer RewardedVideoAdContainerForUniqueId(int uniqueId)
+ {
+ RewardedVideoAdContainer rewardedVideoAdContainer = null;
+ bool success = RewardedVideoAdBridgeAndroid.rewardedVideoAds.TryGetValue(uniqueId, out rewardedVideoAdContainer);
+ if (success) {
+ return rewardedVideoAdContainer;
+ } else {
+ return null;
+ }
+ }
+
+ private string GetStringForuniqueId(int uniqueId,
+ string method)
+ {
+ AndroidJavaObject rewardedVideoAd = RewardedVideoAdForUniqueId(uniqueId);
+ if (rewardedVideoAd != null) {
+ return rewardedVideoAd.Call (method);
+ } else {
+ return null;
+ }
+ }
+
+ private string GetImageURLForuniqueId(int uniqueId,
+ string method)
+ {
+ AndroidJavaObject rewardedVideoAd = RewardedVideoAdForUniqueId(uniqueId);
+ if (rewardedVideoAd != null) {
+ AndroidJavaObject image = rewardedVideoAd.Call (method);
+ if (image != null) {
+ return image.Call ("getUrl");
+ }
+ }
+ return null;
+ }
+
+ public override int Create(string placementId, RewardData rewardData,
+ RewardedVideoAd rewardedVideoAd)
+ {
+
+ AdUtility.Prepare();
+ AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ AndroidJavaObject currentActivity = unityPlayer.GetStatic("currentActivity");
+ AndroidJavaObject context = currentActivity.Call("getApplicationContext");
+
+ AndroidJavaObject bridgedRewardedVideoAd = new AndroidJavaObject("com.facebook.ads.RewardedVideoAd", context, placementId);
+
+ RewardedVideoAdBridgeListenerProxy proxy = new RewardedVideoAdBridgeListenerProxy(rewardedVideoAd, bridgedRewardedVideoAd);
+
+ AndroidJavaObject rewardDataObj = null;
+ if (rewardData != null) {
+ rewardDataObj = new AndroidJavaObject("com.facebook.ads.RewardData", rewardData.UserId, rewardData.Currency);
+ }
+
+ RewardedVideoAdContainer rewardedVideoAdContainer = new RewardedVideoAdContainer(rewardedVideoAd)
+ {
+ bridgedRewardedVideoAd = bridgedRewardedVideoAd,
+ listenerProxy = proxy,
+ rewardData = rewardDataObj
+ };
+
+ int key = RewardedVideoAdBridgeAndroid.lastKey;
+ RewardedVideoAdBridgeAndroid.rewardedVideoAds.Add(key, rewardedVideoAdContainer);
+ RewardedVideoAdBridgeAndroid.lastKey++;
+ return key;
+ }
+
+ public override int Load(int uniqueId)
+ {
+ AdUtility.Prepare();
+ RewardedVideoAdContainer rewardedVideoAdContainer = RewardedVideoAdContainerForUniqueId(uniqueId);
+ if (rewardedVideoAdContainer != null)
+ {
+ rewardedVideoAdContainer.Load();
+ }
+ return uniqueId;
+ }
+
+ public override int Load(int uniqueId, String bidPayload)
+ {
+ AdUtility.Prepare();
+ RewardedVideoAdContainer rewardedVideoAdContainer = RewardedVideoAdContainerForUniqueId(uniqueId);
+ if (rewardedVideoAdContainer != null)
+ {
+ rewardedVideoAdContainer.Load(bidPayload);
+ }
+ return uniqueId;
+ }
+
+ public override bool IsValid(int uniqueId)
+ {
+ AndroidJavaObject rewardedVideoAd = RewardedVideoAdForUniqueId(uniqueId);
+ if (rewardedVideoAd != null) {
+ return !rewardedVideoAd.Call ("isAdInvalidated");
+ } else {
+ return false;
+ }
+ }
+
+ public override bool Show(int uniqueId)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdContainerForUniqueId(uniqueId);
+ AndroidJavaObject rewardedVideoAd = RewardedVideoAdForUniqueId(uniqueId);
+ container.rewardedVideoAd.ExecuteOnMainThread(() => {
+ if (rewardedVideoAd != null) {
+ rewardedVideoAd.Call ("show");
+ }
+ });
+ return true;
+ }
+
+ public override void SetExtraHints(int uniqueId, ExtraHints extraHints)
+ {
+ AdUtility.Prepare();
+ AndroidJavaObject rewardedVideoAd = RewardedVideoAdForUniqueId(uniqueId);
+
+ if (rewardedVideoAd != null)
+ {
+ rewardedVideoAd.Call("setExtraHints", extraHints.GetAndroidObject());
+ }
+ }
+
+ public override void Release(int uniqueId)
+ {
+ AndroidJavaObject rewardedVideoAd = RewardedVideoAdForUniqueId(uniqueId);
+ if (rewardedVideoAd != null) {
+ rewardedVideoAd.Call("destroy");
+ }
+ RewardedVideoAdBridgeAndroid.rewardedVideoAds.Remove(uniqueId);
+ }
+
+ public override void OnLoad(int uniqueId, FBRewardedVideoAdBridgeCallback callback) {}
+ public override void OnImpression(int uniqueId, FBRewardedVideoAdBridgeCallback callback) {}
+ public override void OnClick(int uniqueId, FBRewardedVideoAdBridgeCallback callback) {}
+ public override void OnError(int uniqueId, FBRewardedVideoAdBridgeErrorCallback callback) {}
+ public override void OnWillClose(int uniqueId, FBRewardedVideoAdBridgeCallback callback) {}
+ public override void OnDidClose(int uniqueId, FBRewardedVideoAdBridgeCallback callback) {}
+ public override void OnActivityDestroyed(int uniqueId, FBRewardedVideoAdBridgeCallback callback) { }
+
+ }
+
+#endif
+
+#if UNITY_IOS
+ internal class RewardedVideoAdBridgeIOS : RewardedVideoAdBridge
+ {
+
+ private static Dictionary rewardedVideoAds = new Dictionary();
+
+ private static RewardedVideoAdContainer rewardedVideoAdContainerForuniqueId(int uniqueId)
+ {
+ RewardedVideoAdContainer rewardedVideoAd = null;
+ bool success = RewardedVideoAdBridgeIOS.rewardedVideoAds.TryGetValue(uniqueId, out rewardedVideoAd);
+ if (success)
+ {
+ return rewardedVideoAd;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ [DllImport("__Internal")]
+ private static extern int FBRewardedVideoAdBridgeCreate(string placementId);
+
+ [DllImport("__Internal")]
+ private static extern int FBRewardedVideoAdBridgeCreateWithReward(string placementId, string userID, string currency);
+
+ [DllImport("__Internal")]
+ private static extern int FBRewardedVideoAdBridgeLoad(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern int FBRewardedVideoAdBridgeLoadWithBidPayload(int uniqueId, string bidPayload);
+
+ [DllImport("__Internal")]
+ private static extern bool FBRewardedVideoAdBridgeIsValid(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeSetExtraHints(int uniqueId, string extraHints);
+
+ [DllImport("__Internal")]
+ private static extern bool FBRewardedVideoAdBridgeShow(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeRelease(int uniqueId);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeOnLoad(int uniqueId,
+ FBRewardedVideoAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeOnImpression(int uniqueId,
+ FBRewardedVideoAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeOnClick(int uniqueId,
+ FBRewardedVideoAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeOnError(int uniqueId,
+ FBRewardedVideoAdBridgeErrorExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeOnDidClose(int uniqueId,
+ FBRewardedVideoAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeOnWillClose(int uniqueId,
+ FBRewardedVideoAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeOnVideoComplete(int uniqueId,
+ FBRewardedVideoAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeOnServerRewardSuccess(int uniqueId,
+ FBRewardedVideoAdBridgeExternalCallback callback);
+
+ [DllImport("__Internal")]
+ private static extern void FBRewardedVideoAdBridgeOnServerRewardFailure(int uniqueId,
+ FBRewardedVideoAdBridgeExternalCallback callback);
+
+ public override int Create(string placementId, RewardData rewardData,
+ RewardedVideoAd rewardedVideoAd)
+ {
+ int uniqueId = 0;
+ if (rewardData != null)
+ {
+ uniqueId = RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeCreateWithReward(placementId, rewardData.UserId, rewardData.Currency);
+ }
+ else
+ {
+ uniqueId = RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeCreate(placementId);
+ }
+
+ RewardedVideoAdBridgeIOS.rewardedVideoAds.Add(uniqueId, new RewardedVideoAdContainer(rewardedVideoAd));
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeOnLoad(uniqueId, rewardedVideoAdDidLoadBridgeCallback);
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeOnImpression(uniqueId, rewardedVideoAdWillLogImpressionBridgeCallback);
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeOnClick(uniqueId, rewardedVideoAdDidClickBridgeCallback);
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeOnError(uniqueId, rewardedVideoAdDidFailWithErrorBridgeCallback);
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeOnDidClose(uniqueId, rewardedVideoAdDidCloseBridgeCallback);
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeOnWillClose(uniqueId, rewardedVideoAdWillCloseBridgeCallback);
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeOnVideoComplete(uniqueId, rewardedVideoAdCompleteBridgeCallback);
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeOnServerRewardSuccess(uniqueId, rewardedVideoAdDidSucceedBridgeCallback);
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeOnServerRewardFailure(uniqueId, rewardedVideoAdDidFailBridgeCallback);
+
+ return uniqueId;
+ }
+
+ public override int Load(int uniqueId)
+ {
+ return RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeLoad(uniqueId);
+ }
+
+ public override int Load(int uniqueId, string bidPayload)
+ {
+ return RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeLoadWithBidPayload(uniqueId, bidPayload);
+ }
+
+ public override bool IsValid(int uniqueId)
+ {
+ return RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeIsValid(uniqueId);
+ }
+
+ public override void SetExtraHints(int uniqueId, ExtraHints extraHints)
+ {
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeSetExtraHints(uniqueId, JsonUtility.ToJson(extraHints));
+ }
+
+ public override bool Show(int uniqueId)
+ {
+ return RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeShow(uniqueId);
+ }
+
+ public override void Release(int uniqueId)
+ {
+ RewardedVideoAdBridgeIOS.rewardedVideoAds.Remove(uniqueId);
+ RewardedVideoAdBridgeIOS.FBRewardedVideoAdBridgeRelease(uniqueId);
+ }
+
+ // Sets up internal managed callbacks
+
+ public override void OnLoad(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onLoad = (container.rewardedVideoAd.LoadAdFromData);
+ }
+ }
+
+ public override void OnImpression(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onImpression = callback;
+ }
+ }
+
+ public override void OnClick(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onClick = callback;
+ }
+ }
+
+ public override void OnError(int uniqueId,
+ FBRewardedVideoAdBridgeErrorCallback callback)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onError = callback;
+ }
+ }
+
+ public override void OnDidClose(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onDidClose = callback;
+ }
+ }
+
+ public override void OnWillClose(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onWillClose = callback;
+ }
+ }
+
+ public override void OnComplete(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onComplete = callback;
+ }
+ }
+
+ public override void OnDidSucceed(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onDidSucceed = callback;
+ }
+ }
+
+ public override void OnDidFail(int uniqueId,
+ FBRewardedVideoAdBridgeCallback callback)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container)
+ {
+ container.onDidFail = callback;
+ }
+ }
+
+ // External unmanaged callbacks (must be static)
+
+ [MonoPInvokeCallback(typeof(FBRewardedVideoAdBridgeExternalCallback))]
+ private static void rewardedVideoAdDidLoadBridgeCallback(int uniqueId)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container && container.onLoad != null)
+ {
+ container.onLoad();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBRewardedVideoAdBridgeExternalCallback))]
+ private static void rewardedVideoAdWillLogImpressionBridgeCallback(int uniqueId)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container && container.onImpression != null)
+ {
+ container.onImpression();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBRewardedVideoAdBridgeErrorExternalCallback))]
+ private static void rewardedVideoAdDidFailWithErrorBridgeCallback(int uniqueId, string error)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container && container.onError != null)
+ {
+ container.onError(error);
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBRewardedVideoAdBridgeExternalCallback))]
+ private static void rewardedVideoAdDidClickBridgeCallback(int uniqueId)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container && container.onClick != null)
+ {
+ container.onClick();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBRewardedVideoAdBridgeExternalCallback))]
+ private static void rewardedVideoAdDidCloseBridgeCallback(int uniqueId)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container && container.onDidClose != null)
+ {
+ container.onDidClose();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBRewardedVideoAdBridgeExternalCallback))]
+ private static void rewardedVideoAdWillCloseBridgeCallback(int uniqueId)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container && container.onWillClose != null)
+ {
+ container.onWillClose();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBRewardedVideoAdBridgeExternalCallback))]
+ private static void rewardedVideoAdCompleteBridgeCallback(int uniqueId)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container && container.onComplete != null)
+ {
+ container.onComplete();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBRewardedVideoAdBridgeExternalCallback))]
+ private static void rewardedVideoAdDidSucceedBridgeCallback(int uniqueId)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container && container.onDidSucceed != null)
+ {
+ container.onDidSucceed();
+ }
+ }
+
+ [MonoPInvokeCallback(typeof(FBRewardedVideoAdBridgeExternalCallback))]
+ private static void rewardedVideoAdDidFailBridgeCallback(int uniqueId)
+ {
+ RewardedVideoAdContainer container = RewardedVideoAdBridgeIOS.rewardedVideoAdContainerForuniqueId(uniqueId);
+ if (container && container.onDidFail != null)
+ {
+ container.onDidFail();
+ }
+ }
+
+ }
+#endif
+
+ internal class RewardedVideoAdContainer
+ {
+ internal RewardedVideoAd rewardedVideoAd { get; set; }
+
+ // iOS
+ internal FBRewardedVideoAdBridgeCallback onLoad { get; set; }
+
+ internal FBRewardedVideoAdBridgeCallback onImpression { get; set; }
+
+ internal FBRewardedVideoAdBridgeCallback onClick { get; set; }
+
+ internal FBRewardedVideoAdBridgeErrorCallback onError { get; set; }
+
+ internal FBRewardedVideoAdBridgeCallback onDidClose { get; set; }
+
+ internal FBRewardedVideoAdBridgeCallback onWillClose { get; set; }
+
+ internal FBRewardedVideoAdBridgeCallback onComplete { get; set; }
+
+ internal FBRewardedVideoAdBridgeCallback onDidSucceed { get; set; }
+
+ internal FBRewardedVideoAdBridgeCallback onDidFail { get; set; }
+
+ // Android
+#if UNITY_ANDROID
+ internal AndroidJavaProxy listenerProxy;
+ internal AndroidJavaObject bridgedRewardedVideoAd;
+ internal AndroidJavaObject rewardData;
+#endif
+
+ internal RewardedVideoAdContainer(RewardedVideoAd rewardedVideoAd)
+ {
+ this.rewardedVideoAd = rewardedVideoAd;
+ }
+
+ public override string ToString()
+ {
+ return string.Format("[RewardedVideoAdContainer: rewardedVideoAd={0}, onLoad={1}]", rewardedVideoAd, onLoad);
+ }
+
+ public static implicit operator bool(RewardedVideoAdContainer obj)
+ {
+ return !(object.ReferenceEquals(obj, null));
+ }
+#if UNITY_ANDROID
+ internal AndroidJavaObject LoadAdConfig(String bidPayload)
+ {
+ AndroidJavaObject configBuilder = bridgedRewardedVideoAd.Call("buildLoadAdConfig");
+ configBuilder.Call("withAdListener", listenerProxy);
+ if (rewardData != null)
+ {
+ configBuilder.Call("withRewardData", rewardData);
+ }
+ if (bidPayload != null)
+ {
+ configBuilder.Call("withBid", bidPayload);
+ }
+ return configBuilder.Call("build");
+ }
+
+ public void Load()
+ {
+ Load(null);
+ }
+ public void Load(String bidPayload)
+ {
+ AndroidJavaObject loadConfig = LoadAdConfig(bidPayload);
+ bridgedRewardedVideoAd.Call("loadAd", loadConfig);
+ }
+#endif
+ }
+
+#if UNITY_ANDROID
+ internal class RewardedVideoAdBridgeListenerProxy : AndroidJavaProxy
+ {
+ private RewardedVideoAd rewardedVideoAd;
+#pragma warning disable 0414
+ private readonly AndroidJavaObject bridgedRewardedVideoAd;
+#pragma warning restore 0414
+
+ public RewardedVideoAdBridgeListenerProxy(RewardedVideoAd rewardedVideoAd,
+ AndroidJavaObject bridgedRewardedVideoAd)
+ : base("com.facebook.ads.S2SRewardedVideoAdExtendedListener")
+ {
+ this.rewardedVideoAd = rewardedVideoAd;
+ this.bridgedRewardedVideoAd = bridgedRewardedVideoAd;
+ }
+
+ void onError(AndroidJavaObject ad,
+ AndroidJavaObject error)
+ {
+ string errorMessage = error.Call ("getErrorMessage");
+ if (rewardedVideoAd.RewardedVideoAdDidFailWithError != null)
+ {
+ rewardedVideoAd.ExecuteOnMainThread(() =>
+ {
+ rewardedVideoAd.RewardedVideoAdDidFailWithError(errorMessage);
+ });
+ }
+ }
+
+ void onAdLoaded(AndroidJavaObject ad)
+ {
+ rewardedVideoAd.LoadAdFromData();
+ }
+
+ void onAdClicked(AndroidJavaObject ad)
+ {
+ if (rewardedVideoAd.RewardedVideoAdDidClick != null)
+ {
+ rewardedVideoAd.ExecuteOnMainThread(() =>
+ {
+ rewardedVideoAd.RewardedVideoAdDidClick();
+ });
+ }
+ }
+
+ void onRewardedVideoDisplayed(AndroidJavaObject ad)
+ {
+ if (rewardedVideoAd.RewardedVideoAdWillLogImpression != null)
+ {
+ rewardedVideoAd.ExecuteOnMainThread(() =>
+ {
+ rewardedVideoAd.RewardedVideoAdWillLogImpression();
+ });
+ }
+ }
+
+ void onRewardedVideoClosed()
+ {
+ if (rewardedVideoAd.RewardedVideoAdDidClose != null)
+ {
+ rewardedVideoAd.ExecuteOnMainThread(() =>
+ {
+ rewardedVideoAd.RewardedVideoAdDidClose();
+ });
+ }
+ }
+
+ void onRewardedVideoCompleted()
+ {
+ if (rewardedVideoAd.RewardedVideoAdComplete != null)
+ {
+ rewardedVideoAd.ExecuteOnMainThread(() =>
+ {
+ rewardedVideoAd.RewardedVideoAdComplete();
+ });
+ }
+ }
+
+ void onRewardServerSuccess()
+ {
+ if (rewardedVideoAd.RewardedVideoAdDidSucceed != null)
+ {
+ rewardedVideoAd.ExecuteOnMainThread(() =>
+ {
+ rewardedVideoAd.RewardedVideoAdDidSucceed();
+ });
+ }
+ }
+
+ void onRewardServerFailed()
+ {
+ if (rewardedVideoAd.RewardedVideoAdDidFail != null)
+ {
+ rewardedVideoAd.ExecuteOnMainThread(() =>
+ {
+ rewardedVideoAd.RewardedVideoAdDidFail();
+ });
+ }
+ }
+
+ void onLoggingImpression(AndroidJavaObject ad)
+ {
+ if (rewardedVideoAd.RewardedVideoAdWillLogImpression != null)
+ {
+ rewardedVideoAd.ExecuteOnMainThread(() =>
+ {
+ rewardedVideoAd.RewardedVideoAdWillLogImpression();
+ });
+ }
+ }
+
+ void onRewardedVideoActivityDestroyed()
+ {
+ if (rewardedVideoAd.RewardedVideoAdActivityDestroyed != null)
+ {
+ rewardedVideoAd.ExecuteOnMainThread(() =>
+ {
+ rewardedVideoAd.RewardedVideoAdActivityDestroyed();
+ });
+ }
+ }
+ }
+#endif
+
+}
diff --git a/Forest/Assets/AudienceNetwork/Library/RewardedVideoAd.cs.meta b/Forest/Assets/AudienceNetwork/Library/RewardedVideoAd.cs.meta
new file mode 100644
index 0000000..126e8a9
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/RewardedVideoAd.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 111ff137d27be424584e4e2160d44e80
+timeCreated: 1531986666
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Library/SdkVersion.cs b/Forest/Assets/AudienceNetwork/Library/SdkVersion.cs
new file mode 100644
index 0000000..1b97ea6
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/SdkVersion.cs
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
+ *
+ * You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
+ * copy, modify, and distribute this software in source code or binary form for use
+ * in connection with the web services and APIs provided by Facebook.
+ *
+ * As with any software that integrates with the Facebook platform, your use of
+ * this software is subject to the Facebook Developer Principles and Policies
+ * [http://developers.facebook.com/policy/]. This copyright 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.
+ */
+
+namespace AudienceNetwork
+{
+ public static class SdkVersion
+ {
+ public static string Build
+ {
+ get
+ {
+ return "6.4.0";
+ }
+ }
+ }
+}
diff --git a/Forest/Assets/AudienceNetwork/Library/SdkVersion.cs.meta b/Forest/Assets/AudienceNetwork/Library/SdkVersion.cs.meta
new file mode 100644
index 0000000..e230388
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Library/SdkVersion.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 766cc4756a404418f86a9625e15090fc
+timeCreated: 1531986666
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes.meta b/Forest/Assets/AudienceNetwork/Scenes.meta
new file mode 100644
index 0000000..e7b3caf
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e9232d61943e74d6daf42157201fcaa0
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Banner.meta b/Forest/Assets/AudienceNetwork/Scenes/Banner.meta
new file mode 100644
index 0000000..8c62434
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Banner.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: add9d2dab81c344fe97da6591d3665fb
+folderAsset: yes
+timeCreated: 1531986660
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.cs b/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.cs
new file mode 100644
index 0000000..358f4a8
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.cs
@@ -0,0 +1,149 @@
+using UnityEngine;
+using AudienceNetwork;
+using UnityEngine.SceneManagement;
+using UnityEngine.UI;
+using AudienceNetwork.Utility;
+using System;
+
+public class AdViewScene : BaseScene
+{
+ private AdView adView;
+ private AdPosition currentAdViewPosition;
+ private ScreenOrientation currentScreenOrientation;
+ public Text statusLabel;
+ private AdSize[] adSizeArray = (AdSize[])Enum.GetValues(typeof(AdSize));
+ private int currentAdSize;
+ public Button loadAdButton;
+
+ void OnDestroy()
+ {
+ // Dispose of banner ad when the scene is destroyed
+ if (adView)
+ {
+ adView.Dispose();
+ }
+ Debug.Log("AdViewTest was destroyed!");
+ }
+
+ private void Awake()
+ {
+ AudienceNetworkAds.Initialize();
+ SetLoadAddButtonText();
+ SettingsScene.InitializeSettings();
+ }
+
+ private void SetLoadAddButtonText()
+ {
+ loadAdButton.GetComponentInChildren().text =
+ "Load Banner (" + adSizeArray[currentAdSize].ToString() + ")";
+ }
+
+ public void LoadBanner()
+ {
+ if (adView)
+ {
+ adView.Dispose();
+ }
+
+ statusLabel.text = "Loading Banner...";
+
+ // Create a banner's ad view with a unique placement ID
+ // (generate your own on the Facebook app settings).
+ // Use different ID for each ad placement in your app.
+ adView = new AdView("YOUR_PLACEMENT_ID", adSizeArray[currentAdSize]);
+
+
+ adView.Register(gameObject);
+ currentAdViewPosition = AdPosition.CUSTOM;
+
+ // Set delegates to get notified on changes or when the user interacts
+ // with the ad.
+ adView.AdViewDidLoad = delegate ()
+ {
+ currentScreenOrientation = Screen.orientation;
+ adView.Show(100);
+ string isAdValid = adView.IsValid() ? "valid" : "invalid";
+ statusLabel.text = "Banner loaded and is " + isAdValid + ".";
+ Debug.Log("Banner loaded");
+ };
+ adView.AdViewDidFailWithError = delegate (string error)
+ {
+ statusLabel.text = "Banner failed to load with error: " + error;
+ Debug.Log("Banner failed to load with error: " + error);
+ };
+ adView.AdViewWillLogImpression = delegate ()
+ {
+ statusLabel.text = "Banner logged impression.";
+ Debug.Log("Banner logged impression.");
+ };
+ adView.AdViewDidClick = delegate ()
+ {
+ statusLabel.text = "Banner clicked.";
+ Debug.Log("Banner clicked.");
+ };
+
+ // Initiate a request to load an ad.
+ adView.LoadAd();
+ }
+
+ public void ChangeBannerSize()
+ {
+ currentAdSize += 1;
+ currentAdSize %= adSizeArray.Length;
+ SetLoadAddButtonText();
+ }
+
+ public void NextScene()
+ {
+ SceneManager.LoadScene("RewardedVideoAdScene");
+ }
+
+ // Change button
+ // Change the position of the ad view when button is clicked
+ // ad view is at top: move it to bottom
+ // ad view is at bottom: move it to 100 pixels along y-axis
+ // ad view is at custom position: move it to the top
+ public void ChangePosition()
+ {
+ switch (currentAdViewPosition)
+ {
+ case AdPosition.TOP:
+ SetAdViewPosition(AdPosition.BOTTOM);
+ break;
+ case AdPosition.BOTTOM:
+ SetAdViewPosition(AdPosition.CUSTOM);
+ break;
+ case AdPosition.CUSTOM:
+ SetAdViewPosition(AdPosition.TOP);
+ break;
+ }
+ }
+
+ private void OnRectTransformDimensionsChange()
+ {
+ if (adView && Screen.orientation != currentScreenOrientation)
+ {
+ SetAdViewPosition(currentAdViewPosition);
+ currentScreenOrientation = Screen.orientation;
+ }
+ }
+
+ private void SetAdViewPosition(AdPosition adPosition)
+ {
+ switch (adPosition)
+ {
+ case AdPosition.TOP:
+ adView.Show(AdPosition.TOP);
+ currentAdViewPosition = AdPosition.TOP;
+ break;
+ case AdPosition.BOTTOM:
+ adView.Show(AdPosition.BOTTOM);
+ currentAdViewPosition = AdPosition.BOTTOM;
+ break;
+ case AdPosition.CUSTOM:
+ adView.Show(100);
+ currentAdViewPosition = AdPosition.CUSTOM;
+ break;
+ }
+ }
+}
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.cs.meta b/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.cs.meta
new file mode 100644
index 0000000..9a2b7a4
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 905b751bb63e44191a5363d3ed3d31d0
+timeCreated: 1531986666
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.unity b/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.unity
new file mode 100644
index 0000000..3f5a2e6
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.unity
@@ -0,0 +1,1578 @@
+%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: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &4
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 11
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 0
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 10
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 0
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 1024
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 1
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringMode: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ShowResolutionOverlay: 1
+ m_LightingDataAsset: {fileID: 0}
+ m_UseShadowmask: 0
+--- !u!196 &5
+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 &96394698
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 96394699}
+ - component: {fileID: 96394701}
+ - component: {fileID: 96394700}
+ m_Layer: 5
+ m_Name: Status text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &96394699
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 96394698}
+ 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: 560876176}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 1}
+ m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchoredPosition: {x: 0, y: -150}
+ m_SizeDelta: {x: 700, y: 50}
+ m_Pivot: {x: 0.5, y: 1}
+--- !u!114 &96394700
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 96394698}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 25
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 40
+ m_Alignment: 1
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!222 &96394701
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 96394698}
+ m_CullTransparentMesh: 0
+--- !u!1 &267155475
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 267155479}
+ - component: {fileID: 267155478}
+ - component: {fileID: 267155477}
+ - component: {fileID: 267155476}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &267155476
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 267155475}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ForceModuleActive: 0
+--- !u!114 &267155477
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 267155475}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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 &267155478
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 267155475}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 5
+--- !u!4 &267155479
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 267155475}
+ 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!1 &378611027
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 378611032}
+ - component: {fileID: 378611031}
+ - component: {fileID: 378611030}
+ - component: {fileID: 378611029}
+ - component: {fileID: 378611028}
+ 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 &378611028
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 378611027}
+ m_Enabled: 1
+--- !u!124 &378611029
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 378611027}
+ m_Enabled: 1
+--- !u!92 &378611030
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 378611027}
+ m_Enabled: 1
+--- !u!20 &378611031
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 378611027}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+ m_projectionMatrixMode: 1
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_GateFitMode: 2
+ 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: 1
+ 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: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &378611032
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 378611027}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, 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 &543807023
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 543807027}
+ - component: {fileID: 543807026}
+ - component: {fileID: 543807025}
+ - component: {fileID: 543807024}
+ m_Layer: 5
+ m_Name: Next Scene Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &543807024
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 543807023}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 543807025}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 560876177}
+ m_MethodName: NextScene
+ 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: 1
+--- !u!114 &543807025
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 543807023}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &543807026
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 543807023}
+ m_CullTransparentMesh: 0
+--- !u!224 &543807027
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 543807023}
+ 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: 1149595489}
+ m_Father: {fileID: 560876176}
+ 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: 225, y: 0}
+ m_SizeDelta: {x: 185, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!1 &560876172
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 560876176}
+ - component: {fileID: 560876175}
+ - component: {fileID: 560876174}
+ - component: {fileID: 560876173}
+ - component: {fileID: 560876177}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &560876173
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 560876172}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &560876174
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 560876172}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+--- !u!223 &560876175
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 560876172}
+ 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: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &560876176
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 560876172}
+ 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: 765981403}
+ - {fileID: 96394699}
+ - {fileID: 845596625}
+ - {fileID: 1204067292}
+ - {fileID: 1021114145}
+ - {fileID: 543807027}
+ - {fileID: 737988977}
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ 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!114 &560876177
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 560876172}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 905b751bb63e44191a5363d3ed3d31d0, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ statusLabel: {fileID: 96394700}
+ loadAdButton: {fileID: 845596626}
+--- !u!1 &598798907
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 598798908}
+ - component: {fileID: 598798910}
+ - component: {fileID: 598798909}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &598798908
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 598798907}
+ 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: 845596625}
+ 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 &598798909
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 598798907}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Load Banner
+--- !u!222 &598798910
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 598798907}
+ m_CullTransparentMesh: 0
+--- !u!1 &737988976
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 737988977}
+ - component: {fileID: 737988980}
+ - component: {fileID: 737988979}
+ - component: {fileID: 737988978}
+ m_Layer: 5
+ m_Name: Settings Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &737988977
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 737988976}
+ 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: 1491267819}
+ m_Father: {fileID: 560876176}
+ 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: 0, y: -300}
+ m_SizeDelta: {x: 175, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &737988978
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 737988976}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 737988979}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 560876177}
+ m_MethodName: LoadSettingsScene
+ 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 &737988979
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 737988976}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &737988980
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 737988976}
+ m_CullTransparentMesh: 0
+--- !u!1 &765981402
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 765981403}
+ - component: {fileID: 765981405}
+ - component: {fileID: 765981404}
+ m_Layer: 5
+ m_Name: Audience Network Unity Test
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &765981403
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 765981402}
+ 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: 560876176}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 1}
+ m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchoredPosition: {x: 0, y: -100}
+ m_SizeDelta: {x: 700, y: 50}
+ m_Pivot: {x: 0.5, y: 1}
+--- !u!114 &765981404
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 765981402}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 30
+ m_FontStyle: 1
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Audience Network - Unity Banner Test
+--- !u!222 &765981405
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 765981402}
+ m_CullTransparentMesh: 0
+--- !u!1 &845596624
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 845596625}
+ - component: {fileID: 845596628}
+ - component: {fileID: 845596627}
+ - component: {fileID: 845596626}
+ m_Layer: 5
+ m_Name: Load Banner
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &845596625
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 845596624}
+ 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: 598798908}
+ m_Father: {fileID: 560876176}
+ 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: -285, y: 0}
+ m_SizeDelta: {x: 300, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &845596626
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 845596624}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 845596627}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 560876177}
+ m_MethodName: LoadBanner
+ 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: 1
+--- !u!114 &845596627
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 845596624}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &845596628
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 845596624}
+ m_CullTransparentMesh: 0
+--- !u!1 &853306691
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 853306692}
+ - component: {fileID: 853306694}
+ - component: {fileID: 853306693}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &853306692
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 853306691}
+ 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: 1204067292}
+ 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 &853306693
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 853306691}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Change Banner Position
+--- !u!222 &853306694
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 853306691}
+ m_CullTransparentMesh: 0
+--- !u!1 &1021114144
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1021114145}
+ - component: {fileID: 1021114148}
+ - component: {fileID: 1021114147}
+ - component: {fileID: 1021114146}
+ m_Layer: 5
+ m_Name: Change Banner Size Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1021114145
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1021114144}
+ 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: 1936022258}
+ m_Father: {fileID: 560876176}
+ 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: 0, y: -150}
+ m_SizeDelta: {x: 175, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1021114146
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1021114144}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1021114147}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 560876177}
+ m_MethodName: ChangeBannerSize
+ 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: 1
+--- !u!114 &1021114147
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1021114144}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &1021114148
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1021114144}
+ m_CullTransparentMesh: 0
+--- !u!1 &1149595488
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1149595489}
+ - component: {fileID: 1149595491}
+ - component: {fileID: 1149595490}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1149595489
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1149595488}
+ 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: 543807027}
+ 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 &1149595490
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1149595488}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Next Scene
+--- !u!222 &1149595491
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1149595488}
+ m_CullTransparentMesh: 0
+--- !u!1 &1204067291
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1204067292}
+ - component: {fileID: 1204067295}
+ - component: {fileID: 1204067294}
+ - component: {fileID: 1204067293}
+ m_Layer: 5
+ m_Name: Change Banner Position Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1204067292
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1204067291}
+ 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: 853306692}
+ m_Father: {fileID: 560876176}
+ 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: 0, y: 0}
+ m_SizeDelta: {x: 185, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1204067293
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1204067291}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1204067294}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 560876177}
+ m_MethodName: ChangePosition
+ 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: 1
+--- !u!114 &1204067294
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1204067291}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &1204067295
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1204067291}
+ m_CullTransparentMesh: 0
+--- !u!1 &1491267818
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1491267819}
+ - component: {fileID: 1491267821}
+ - component: {fileID: 1491267820}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1491267819
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1491267818}
+ 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: 737988977}
+ 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 &1491267820
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1491267818}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Settings
+--- !u!222 &1491267821
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1491267818}
+ m_CullTransparentMesh: 0
+--- !u!1 &1936022257
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1936022258}
+ - component: {fileID: 1936022260}
+ - component: {fileID: 1936022259}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1936022258
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1936022257}
+ 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: 1021114145}
+ 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 &1936022259
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1936022257}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Change Banner Size
+--- !u!222 &1936022260
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1936022257}
+ m_CullTransparentMesh: 0
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.unity.meta b/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.unity.meta
new file mode 100644
index 0000000..8cdd89d
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Banner/AdViewScene.unity.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: cb29e86fb3daa461f8da1a6d755fe9ce
+timeCreated: 1531986660
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/BaseScene.cs b/Forest/Assets/AudienceNetwork/Scenes/BaseScene.cs
new file mode 100644
index 0000000..15a2234
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/BaseScene.cs
@@ -0,0 +1,23 @@
+using UnityEngine;
+using UnityEngine.SceneManagement;
+
+public class BaseScene : MonoBehaviour
+{
+ // Update is called once per frame
+ void Update()
+ {
+ if (Application.platform == RuntimePlatform.Android)
+ {
+ if (Input.GetKey(KeyCode.Escape))
+ {
+ Application.Quit();
+ return;
+ }
+ }
+ }
+
+ public void LoadSettingsScene()
+ {
+ SceneManager.LoadScene("SettingsScene");
+ }
+}
diff --git a/Forest/Assets/AudienceNetwork/Scenes/BaseScene.cs.meta b/Forest/Assets/AudienceNetwork/Scenes/BaseScene.cs.meta
new file mode 100644
index 0000000..db91491
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/BaseScene.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f8b448fe9f60a4883aa9907cc3236629
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Interstitial.meta b/Forest/Assets/AudienceNetwork/Scenes/Interstitial.meta
new file mode 100644
index 0000000..06b9251
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Interstitial.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 8c9f390ad7e3c4ac0a32a1479c44f14b
+folderAsset: yes
+timeCreated: 1531986660
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.cs b/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.cs
new file mode 100644
index 0000000..567a5fd
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.cs
@@ -0,0 +1,117 @@
+using UnityEngine;
+using UnityEngine.UI;
+using AudienceNetwork;
+using UnityEngine.SceneManagement;
+using AudienceNetwork.Utility;
+
+public class InterstitialAdScene : BaseScene
+{
+
+ private InterstitialAd interstitialAd;
+ private bool isLoaded;
+#pragma warning disable 0414
+ private bool didClose;
+#pragma warning restore 0414
+ // UI elements in scene
+ public Text statusLabel;
+
+ private void Awake()
+ {
+ AudienceNetworkAds.Initialize();
+ SettingsScene.InitializeSettings();
+ }
+
+ // Load button
+ public void LoadInterstitial()
+ {
+ statusLabel.text = "Loading interstitial ad...";
+
+ // Create the interstitial unit with a placement ID (generate your own on the Facebook app settings).
+ // Use different ID for each ad placement in your app.
+ interstitialAd = new InterstitialAd("YOUR_PLACEMENT_ID");
+
+ interstitialAd.Register(gameObject);
+
+ // Set delegates to get notified on changes or when the user interacts with the ad.
+ interstitialAd.InterstitialAdDidLoad = delegate ()
+ {
+ Debug.Log("Interstitial ad loaded.");
+ isLoaded = true;
+ didClose = false;
+ string isAdValid = interstitialAd.IsValid() ? "valid" : "invalid";
+ statusLabel.text = "Ad loaded and is " + isAdValid + ". Click show to present!";
+ };
+ interstitialAd.InterstitialAdDidFailWithError = delegate (string error)
+ {
+ Debug.Log("Interstitial ad failed to load with error: " + error);
+ statusLabel.text = "Interstitial ad failed to load. Check console for details.";
+ };
+ interstitialAd.InterstitialAdWillLogImpression = delegate ()
+ {
+ Debug.Log("Interstitial ad logged impression.");
+ };
+ interstitialAd.InterstitialAdDidClick = delegate ()
+ {
+ Debug.Log("Interstitial ad clicked.");
+ };
+ interstitialAd.InterstitialAdDidClose = delegate ()
+ {
+ Debug.Log("Interstitial ad did close.");
+ didClose = true;
+ if (interstitialAd != null)
+ {
+ interstitialAd.Dispose();
+ }
+ };
+
+#if UNITY_ANDROID
+ /*
+ * Only relevant to Android.
+ * This callback will only be triggered if the Interstitial activity has
+ * been destroyed without being properly closed. This can happen if an
+ * app with launchMode:singleTask (such as a Unity game) goes to
+ * background and is then relaunched by tapping the icon.
+ */
+ interstitialAd.interstitialAdActivityDestroyed = delegate() {
+ if (!didClose) {
+ Debug.Log("Interstitial activity destroyed without being closed first.");
+ Debug.Log("Game should resume.");
+ }
+ };
+#endif
+
+ // Initiate the request to load the ad.
+ interstitialAd.LoadAd();
+ }
+
+ // Show button
+ public void ShowInterstitial()
+ {
+ if (isLoaded)
+ {
+ interstitialAd.Show();
+ isLoaded = false;
+ statusLabel.text = "";
+ }
+ else
+ {
+ statusLabel.text = "Ad not loaded. Click load to request an ad.";
+ }
+ }
+
+ void OnDestroy()
+ {
+ // Dispose of interstitial ad when the scene is destroyed
+ if (interstitialAd != null)
+ {
+ interstitialAd.Dispose();
+ }
+ Debug.Log("InterstitialAdTest was destroyed!");
+ }
+
+ // Next button
+ public void NextScene()
+ {
+ SceneManager.LoadScene("AdViewScene");
+ }
+}
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.cs.meta b/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.cs.meta
new file mode 100644
index 0000000..8714fe0
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 00d288c1305fc494882c5c1d674f6779
+timeCreated: 1531986666
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.unity b/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.unity
new file mode 100644
index 0000000..fc0803b
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.unity
@@ -0,0 +1,1374 @@
+%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: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &4
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 11
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 0
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 10
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 0
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 1024
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 1
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringMode: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ShowResolutionOverlay: 1
+ m_LightingDataAsset: {fileID: 0}
+ m_UseShadowmask: 0
+--- !u!196 &5
+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 &114642326
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 114642327}
+ - component: {fileID: 114642329}
+ - component: {fileID: 114642328}
+ m_Layer: 5
+ m_Name: Audience Network Unity Test
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &114642327
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 114642326}
+ 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: 1339143504}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 1}
+ m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchoredPosition: {x: 0, y: -100}
+ m_SizeDelta: {x: 700, y: 50}
+ m_Pivot: {x: 0.5, y: 1}
+--- !u!114 &114642328
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 114642326}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 30
+ m_FontStyle: 1
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Audience Network - Unity Interstitial Test
+--- !u!222 &114642329
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 114642326}
+ m_CullTransparentMesh: 0
+--- !u!1 &353650812
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 353650815}
+ - component: {fileID: 353650814}
+ - component: {fileID: 353650813}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &353650813
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 353650812}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Next Scene
+--- !u!222 &353650814
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 353650812}
+ m_CullTransparentMesh: 0
+--- !u!224 &353650815
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 353650812}
+ 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: 1752613758}
+ 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!1 &513429168
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 513429172}
+ - component: {fileID: 513429171}
+ - component: {fileID: 513429170}
+ - component: {fileID: 513429169}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &513429169
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 513429168}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ForceModuleActive: 0
+--- !u!114 &513429170
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 513429168}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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 &513429171
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 513429168}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 1234786357}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 5
+--- !u!4 &513429172
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 513429168}
+ 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!1 &535949356
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 535949357}
+ - component: {fileID: 535949360}
+ - component: {fileID: 535949359}
+ - component: {fileID: 535949358}
+ m_Layer: 5
+ m_Name: Show Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &535949357
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 535949356}
+ 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: 682767911}
+ m_Father: {fileID: 1339143504}
+ 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: 0, y: 0}
+ m_SizeDelta: {x: 185, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &535949358
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 535949356}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 535949359}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1339143505}
+ m_MethodName: ShowInterstitial
+ 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: 1
+--- !u!114 &535949359
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 535949356}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &535949360
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 535949356}
+ m_CullTransparentMesh: 0
+--- !u!1 &682767910
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 682767911}
+ - component: {fileID: 682767913}
+ - component: {fileID: 682767912}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &682767911
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 682767910}
+ 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: 535949357}
+ 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 &682767912
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 682767910}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Show Interstitial
+--- !u!222 &682767913
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 682767910}
+ m_CullTransparentMesh: 0
+--- !u!1 &925087624
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 925087626}
+ - component: {fileID: 925087627}
+ - component: {fileID: 925087625}
+ m_Layer: 5
+ m_Name: Interstitial Status Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &925087625
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 925087624}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 24
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!224 &925087626
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 925087624}
+ 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: 1339143504}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 1}
+ m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchoredPosition: {x: 0, y: -150}
+ m_SizeDelta: {x: 700, y: 50}
+ m_Pivot: {x: 0.5, y: 1}
+--- !u!222 &925087627
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 925087624}
+ m_CullTransparentMesh: 0
+--- !u!1 &1234786357
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1234786358}
+ - component: {fileID: 1234786361}
+ - component: {fileID: 1234786360}
+ - component: {fileID: 1234786359}
+ m_Layer: 5
+ m_Name: Load Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1234786358
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1234786357}
+ 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: 1279914892}
+ m_Father: {fileID: 1339143504}
+ 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: -225, y: 0}
+ m_SizeDelta: {x: 185, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1234786359
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1234786357}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1234786360}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1339143505}
+ m_MethodName: LoadInterstitial
+ 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: 1
+--- !u!114 &1234786360
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1234786357}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &1234786361
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1234786357}
+ m_CullTransparentMesh: 0
+--- !u!1 &1279914891
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1279914892}
+ - component: {fileID: 1279914894}
+ - component: {fileID: 1279914893}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1279914892
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1279914891}
+ 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: 1234786358}
+ 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 &1279914893
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1279914891}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Load Interstitial
+--- !u!222 &1279914894
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1279914891}
+ m_CullTransparentMesh: 0
+--- !u!1 &1288556595
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1288556600}
+ - component: {fileID: 1288556599}
+ - component: {fileID: 1288556598}
+ - component: {fileID: 1288556597}
+ - component: {fileID: 1288556596}
+ 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 &1288556596
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1288556595}
+ m_Enabled: 1
+--- !u!124 &1288556597
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1288556595}
+ m_Enabled: 1
+--- !u!92 &1288556598
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1288556595}
+ m_Enabled: 1
+--- !u!20 &1288556599
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1288556595}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+ m_projectionMatrixMode: 1
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_GateFitMode: 2
+ 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: 1
+ 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: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &1288556600
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1288556595}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, 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 &1339143500
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1339143504}
+ - component: {fileID: 1339143503}
+ - component: {fileID: 1339143502}
+ - component: {fileID: 1339143501}
+ - component: {fileID: 1339143505}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1339143501
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1339143500}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &1339143502
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1339143500}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+--- !u!223 &1339143503
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1339143500}
+ 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: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &1339143504
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1339143500}
+ 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: 1752613758}
+ - {fileID: 114642327}
+ - {fileID: 1234786358}
+ - {fileID: 535949357}
+ - {fileID: 925087626}
+ - {fileID: 1780631321}
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ 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!114 &1339143505
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1339143500}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 00d288c1305fc494882c5c1d674f6779, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ statusLabel: {fileID: 925087625}
+--- !u!1 &1752613757
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1752613758}
+ - component: {fileID: 1752613761}
+ - component: {fileID: 1752613760}
+ - component: {fileID: 1752613759}
+ m_Layer: 5
+ m_Name: Next Scene Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1752613758
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1752613757}
+ 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: 353650815}
+ m_Father: {fileID: 1339143504}
+ 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: 225, y: 0}
+ m_SizeDelta: {x: 185, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1752613759
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1752613757}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1752613760}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1339143505}
+ m_MethodName: NextScene
+ 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: 1
+--- !u!114 &1752613760
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1752613757}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &1752613761
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1752613757}
+ m_CullTransparentMesh: 0
+--- !u!1 &1780631320
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1780631321}
+ - component: {fileID: 1780631324}
+ - component: {fileID: 1780631323}
+ - component: {fileID: 1780631322}
+ m_Layer: 5
+ m_Name: Settings Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1780631321
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1780631320}
+ 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: 2043770803}
+ m_Father: {fileID: 1339143504}
+ 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: 0, y: -150}
+ m_SizeDelta: {x: 185, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1780631322
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1780631320}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1780631323}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1339143505}
+ m_MethodName: LoadSettingsScene
+ 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 &1780631323
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1780631320}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &1780631324
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1780631320}
+ m_CullTransparentMesh: 0
+--- !u!1 &2043770802
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2043770803}
+ - component: {fileID: 2043770805}
+ - component: {fileID: 2043770804}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2043770803
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2043770802}
+ 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: 1780631321}
+ 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 &2043770804
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2043770802}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Settings
+--- !u!222 &2043770805
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2043770802}
+ m_CullTransparentMesh: 0
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.unity.meta b/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.unity.meta
new file mode 100644
index 0000000..a7f3639
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Interstitial/InterstitialAdScene.unity.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f72b5a1d5965144f795ee32584534444
+timeCreated: 1531986660
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo.meta b/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo.meta
new file mode 100644
index 0000000..d1e1dd6
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c8a0e5fbf02754ed683a9a2e34059b8c
+folderAsset: yes
+timeCreated: 1531986660
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.cs b/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.cs
new file mode 100644
index 0000000..a7b63ba
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.cs
@@ -0,0 +1,148 @@
+using UnityEngine;
+using UnityEngine.UI;
+using AudienceNetwork;
+using UnityEngine.SceneManagement;
+using AudienceNetwork.Utility;
+
+public class RewardedVideoAdScene : BaseScene
+{
+
+ private RewardedVideoAd rewardedVideoAd;
+ private bool isLoaded;
+#pragma warning disable 0414
+ private bool didClose;
+#pragma warning restore 0414
+
+ // UI elements in scene
+ public Text statusLabel;
+
+ private void Awake()
+ {
+ AudienceNetworkAds.Initialize();
+ SettingsScene.InitializeSettings();
+ }
+
+ // Load button
+ public void LoadRewardedVideo()
+ {
+ statusLabel.text = "Loading rewardedVideo ad...";
+
+ // Create the rewarded video unit with a placement ID (generate your own on the Facebook app settings).
+ // Use different ID for each ad placement in your app.
+ rewardedVideoAd = new RewardedVideoAd("YOUR_PLACEMENT_ID");
+
+ // For S2S validation you can create the rewarded video ad with the reward data
+ // Refer to documentation here:
+ // https://developers.facebook.com/docs/audience-network/android/rewarded-video#server-side-reward-validation
+ // https://developers.facebook.com/docs/audience-network/ios/rewarded-video#server-side-reward-validation
+ RewardData rewardData = new RewardData
+ {
+ UserId = "USER_ID",
+ Currency = "REWARD_ID"
+ };
+#pragma warning disable 0219
+ RewardedVideoAd s2sRewardedVideoAd = new RewardedVideoAd("YOUR_PLACEMENT_ID", rewardData);
+#pragma warning restore 0219
+
+ rewardedVideoAd.Register(gameObject);
+
+ // Set delegates to get notified on changes or when the user interacts with the ad.
+ rewardedVideoAd.RewardedVideoAdDidLoad = delegate ()
+ {
+ Debug.Log("RewardedVideo ad loaded.");
+ isLoaded = true;
+ didClose = false;
+ string isAdValid = rewardedVideoAd.IsValid() ? "valid" : "invalid";
+ statusLabel.text = "Ad loaded and is " + isAdValid + ". Click show to present!";
+ };
+ rewardedVideoAd.RewardedVideoAdDidFailWithError = delegate (string error)
+ {
+ Debug.Log("RewardedVideo ad failed to load with error: " + error);
+ statusLabel.text = "RewardedVideo ad failed to load. Check console for details.";
+ };
+ rewardedVideoAd.RewardedVideoAdWillLogImpression = delegate ()
+ {
+ Debug.Log("RewardedVideo ad logged impression.");
+ };
+ rewardedVideoAd.RewardedVideoAdDidClick = delegate ()
+ {
+ Debug.Log("RewardedVideo ad clicked.");
+ };
+
+ // For S2S validation you need to register the following two callback
+ // Refer to documentation here:
+ // https://developers.facebook.com/docs/audience-network/android/rewarded-video#server-side-reward-validation
+ // https://developers.facebook.com/docs/audience-network/ios/rewarded-video#server-side-reward-validation
+ rewardedVideoAd.RewardedVideoAdDidSucceed = delegate ()
+ {
+ Debug.Log("Rewarded video ad validated by server");
+ };
+
+ rewardedVideoAd.RewardedVideoAdDidFail = delegate ()
+ {
+ Debug.Log("Rewarded video ad not validated, or no response from server");
+ };
+
+ rewardedVideoAd.RewardedVideoAdDidClose = delegate ()
+ {
+ Debug.Log("Rewarded video ad did close.");
+ didClose = true;
+ if (rewardedVideoAd != null)
+ {
+ rewardedVideoAd.Dispose();
+ }
+ };
+
+#if UNITY_ANDROID
+ /*
+ * Only relevant to Android.
+ * This callback will only be triggered if the Rewarded Video activity
+ * has been destroyed without being properly closed. This can happen if
+ * an app with launchMode:singleTask (such as a Unity game) goes to
+ * background and is then relaunched by tapping the icon.
+ */
+ rewardedVideoAd.RewardedVideoAdActivityDestroyed = delegate ()
+ {
+ if (!didClose)
+ {
+ Debug.Log("Rewarded video activity destroyed without being closed first.");
+ Debug.Log("Game should resume. User should not get a reward.");
+ }
+ };
+#endif
+
+ // Initiate the request to load the ad.
+ rewardedVideoAd.LoadAd();
+ }
+
+ // Show button
+ public void ShowRewardedVideo()
+ {
+ if (isLoaded)
+ {
+ rewardedVideoAd.Show();
+ isLoaded = false;
+ statusLabel.text = "";
+ }
+ else
+ {
+ statusLabel.text = "Ad not loaded. Click load to request an ad.";
+ }
+ }
+
+ void OnDestroy()
+ {
+ // Dispose of rewardedVideo ad when the scene is destroyed
+ if (rewardedVideoAd != null)
+ {
+ rewardedVideoAd.Dispose();
+ }
+ Debug.Log("RewardedVideoAdTest was destroyed!");
+ }
+
+ // Next button
+ public void NextScene()
+ {
+ SceneManager.LoadScene("InterstitialAdScene");
+ }
+}
diff --git a/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.cs.meta b/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.cs.meta
new file mode 100644
index 0000000..10fc98c
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.cs.meta
@@ -0,0 +1,13 @@
+fileFormatVersion: 2
+guid: 84bf87db85e7a4d18bf8422eb54ac837
+timeCreated: 1531986666
+licenseType: Pro
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.unity b/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.unity
new file mode 100644
index 0000000..4d44ba9
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.unity
@@ -0,0 +1,1360 @@
+%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: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, 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: 0
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 10
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 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: 1
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringMode: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ShowResolutionOverlay: 1
+ m_LightingDataAsset: {fileID: 0}
+ m_UseShadowmask: 0
+--- !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 &121321146
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 121321147}
+ - component: {fileID: 121321149}
+ - component: {fileID: 121321148}
+ m_Layer: 5
+ m_Name: Audience Network Unity Test
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &121321147
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 121321146}
+ 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: 2130842001}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 1}
+ m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchoredPosition: {x: 0, y: -100}
+ m_SizeDelta: {x: 700, y: 50}
+ m_Pivot: {x: 0.5, y: 1}
+--- !u!114 &121321148
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 121321146}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 30
+ m_FontStyle: 1
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Audience Network - Unity Rewarded Video Test
+--- !u!222 &121321149
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 121321146}
+ m_CullTransparentMesh: 0
+--- !u!1 &253984072
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 253984073}
+ - component: {fileID: 253984075}
+ - component: {fileID: 253984074}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &253984073
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 253984072}
+ 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: 1740406830}
+ 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 &253984074
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 253984072}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Next Scene
+--- !u!222 &253984075
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 253984072}
+ m_CullTransparentMesh: 0
+--- !u!1 &380623626
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 380623627}
+ - component: {fileID: 380623629}
+ - component: {fileID: 380623628}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &380623627
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 380623626}
+ 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: 1469363461}
+ 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 &380623628
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 380623626}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Load Rewarded Video
+--- !u!222 &380623629
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 380623626}
+ m_CullTransparentMesh: 0
+--- !u!1 &406056991
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 406056992}
+ - component: {fileID: 406056995}
+ - component: {fileID: 406056994}
+ - component: {fileID: 406056993}
+ m_Layer: 5
+ m_Name: Settings Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &406056992
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 406056991}
+ 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: 1575793284}
+ m_Father: {fileID: 2130842001}
+ 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: 0, y: -150}
+ m_SizeDelta: {x: 185, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &406056993
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 406056991}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 406056994}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 2130841997}
+ m_MethodName: LoadSettingsScene
+ 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 &406056994
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 406056991}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &406056995
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 406056991}
+ m_CullTransparentMesh: 0
+--- !u!1 &558773802
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 558773803}
+ - component: {fileID: 558773805}
+ - component: {fileID: 558773804}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &558773803
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 558773802}
+ 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: 2035170271}
+ 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 &558773804
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 558773802}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Show Rewarded Video
+--- !u!222 &558773805
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 558773802}
+ m_CullTransparentMesh: 0
+--- !u!1 &638381789
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 638381790}
+ - component: {fileID: 638381792}
+ - component: {fileID: 638381791}
+ m_Layer: 5
+ m_Name: Rewarded Video Status Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &638381790
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 638381789}
+ 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: 2130842001}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 1}
+ m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchoredPosition: {x: 0, y: -150}
+ m_SizeDelta: {x: 700, y: 50}
+ m_Pivot: {x: 0.5, y: 1}
+--- !u!114 &638381791
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 638381789}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 24
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!222 &638381792
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 638381789}
+ m_CullTransparentMesh: 0
+--- !u!1 &1332075187
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1332075190}
+ - component: {fileID: 1332075189}
+ - component: {fileID: 1332075188}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1332075188
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1332075187}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, 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 &1332075189
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1332075187}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 5
+--- !u!4 &1332075190
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1332075187}
+ 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!1 &1469363460
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1469363461}
+ - component: {fileID: 1469363464}
+ - component: {fileID: 1469363463}
+ - component: {fileID: 1469363462}
+ m_Layer: 5
+ m_Name: Load Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1469363461
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1469363460}
+ 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: 380623627}
+ m_Father: {fileID: 2130842001}
+ 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: -225, y: 0}
+ m_SizeDelta: {x: 185, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1469363462
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1469363460}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1469363463}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 2130841997}
+ m_MethodName: LoadRewardedVideo
+ 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: 1
+--- !u!114 &1469363463
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1469363460}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &1469363464
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1469363460}
+ m_CullTransparentMesh: 0
+--- !u!1 &1575793283
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1575793284}
+ - component: {fileID: 1575793286}
+ - component: {fileID: 1575793285}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1575793284
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1575793283}
+ 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: 406056992}
+ 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 &1575793285
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1575793283}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Settings
+--- !u!222 &1575793286
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1575793283}
+ m_CullTransparentMesh: 0
+--- !u!1 &1740406829
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1740406830}
+ - component: {fileID: 1740406833}
+ - component: {fileID: 1740406832}
+ - component: {fileID: 1740406831}
+ m_Layer: 5
+ m_Name: Next Scene Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1740406830
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1740406829}
+ 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: 253984073}
+ m_Father: {fileID: 2130842001}
+ 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: 225, y: 0}
+ m_SizeDelta: {x: 185, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1740406831
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1740406829}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1740406832}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 2130841997}
+ m_MethodName: NextScene
+ 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: 1
+--- !u!114 &1740406832
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1740406829}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &1740406833
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1740406829}
+ m_CullTransparentMesh: 0
+--- !u!1 &1912655476
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1912655481}
+ - component: {fileID: 1912655480}
+ - component: {fileID: 1912655479}
+ - component: {fileID: 1912655478}
+ - component: {fileID: 1912655477}
+ 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 &1912655477
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1912655476}
+ m_Enabled: 1
+--- !u!124 &1912655478
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1912655476}
+ m_Enabled: 1
+--- !u!92 &1912655479
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1912655476}
+ m_Enabled: 1
+--- !u!20 &1912655480
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1912655476}
+ 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_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_GateFitMode: 2
+ 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: 1
+ 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: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &1912655481
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1912655476}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, 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 &2035170270
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2035170271}
+ - component: {fileID: 2035170274}
+ - component: {fileID: 2035170273}
+ - component: {fileID: 2035170272}
+ m_Layer: 5
+ m_Name: Show Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2035170271
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2035170270}
+ 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: 558773803}
+ m_Father: {fileID: 2130842001}
+ 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: 0, y: 0}
+ m_SizeDelta: {x: 185, y: 100}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2035170272
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2035170270}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 2035170273}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 2130841997}
+ m_MethodName: ShowRewardedVideo
+ 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: 1
+--- !u!114 &2035170273
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2035170270}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &2035170274
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2035170270}
+ m_CullTransparentMesh: 0
+--- !u!1 &2130841996
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2130842001}
+ - component: {fileID: 2130842000}
+ - component: {fileID: 2130841999}
+ - component: {fileID: 2130841998}
+ - component: {fileID: 2130841997}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &2130841997
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2130841996}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 84bf87db85e7a4d18bf8422eb54ac837, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ statusLabel: {fileID: 638381791}
+--- !u!114 &2130841998
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2130841996}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &2130841999
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2130841996}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+--- !u!223 &2130842000
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2130841996}
+ 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: 25
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &2130842001
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2130841996}
+ 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: 1740406830}
+ - {fileID: 121321147}
+ - {fileID: 1469363461}
+ - {fileID: 2035170271}
+ - {fileID: 638381790}
+ - {fileID: 406056992}
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
diff --git a/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.unity.meta b/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.unity.meta
new file mode 100644
index 0000000..8f56407
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/RewardedVideo/RewardedVideoAdScene.unity.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 0079f98ce8e504ce0b9d7c937e331b03
+timeCreated: 1531986660
+licenseType: Pro
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Settings.meta b/Forest/Assets/AudienceNetwork/Scenes/Settings.meta
new file mode 100644
index 0000000..971ab47
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Settings.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fe8cf484a03ff40ffa517b7d74fb82e9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.cs b/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.cs
new file mode 100644
index 0000000..08819a6
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.cs
@@ -0,0 +1,54 @@
+using UnityEngine;
+using UnityEngine.SceneManagement;
+using UnityEngine.UI;
+
+public class SettingsScene : MonoBehaviour
+{
+ private static string URL_PREFIX_KEY = "URL_PREFIX";
+
+ public InputField urlPrefixInput;
+ public Text sdkVersionText;
+
+ private string urlPrefix;
+
+ // Loads settings from previous play session
+ public static void InitializeSettings()
+ {
+ string prefix = PlayerPrefs.GetString(URL_PREFIX_KEY, "");
+ AudienceNetwork.AdSettings.SetUrlPrefix(prefix);
+ }
+
+ void Start()
+ {
+ urlPrefix = PlayerPrefs.GetString(URL_PREFIX_KEY, "");
+ urlPrefixInput.text = urlPrefix;
+ sdkVersionText.text = AudienceNetwork.SdkVersion.Build;
+ }
+
+ public void OnEditEnd(string prefix)
+ {
+ urlPrefix = prefix;
+ SaveSettings();
+ }
+
+ public void SaveSettings()
+ {
+ PlayerPrefs.SetString(URL_PREFIX_KEY, urlPrefix);
+ AudienceNetwork.AdSettings.SetUrlPrefix(urlPrefix);
+ }
+
+ public void AdViewScene()
+ {
+ SceneManager.LoadScene("AdViewScene");
+ }
+
+ public void InterstitialAdScene()
+ {
+ SceneManager.LoadScene("InterstitialAdScene");
+ }
+
+ public void RewardedVideoAdScene()
+ {
+ SceneManager.LoadScene("RewardedVideoAdScene");
+ }
+}
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.cs.meta b/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.cs.meta
new file mode 100644
index 0000000..a91e737
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 12a33cb7aa8f042ef8bc6a44c91eed4d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.unity b/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.unity
new file mode 100644
index 0000000..f2c63e2
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.unity
@@ -0,0 +1,1759 @@
+%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.3731193, g: 0.38073996, b: 0.35872698, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 11
+ m_GIWorkflowMode: 0
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 1
+ m_LightmapEditorSettings:
+ serializedVersion: 10
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 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: 500
+ m_PVRBounces: 2
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringMode: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ShowResolutionOverlay: 1
+ 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 &170827298
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 170827299}
+ - component: {fileID: 170827301}
+ - component: {fileID: 170827300}
+ m_Layer: 0
+ m_Name: Padding
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &170827299
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 170827298}
+ 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: 861782207}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 160, y: 30}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &170827300
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 170827298}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!222 &170827301
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 170827298}
+ m_CullTransparentMesh: 0
+--- !u!1 &364833956
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 364833957}
+ - component: {fileID: 364833959}
+ - component: {fileID: 364833958}
+ m_Layer: 0
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &364833957
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 364833956}
+ 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: 1379954410}
+ 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 &364833958
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 364833956}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Test Banners
+--- !u!222 &364833959
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 364833956}
+ m_CullTransparentMesh: 0
+--- !u!1 &451605880
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 451605883}
+ - component: {fileID: 451605882}
+ - component: {fileID: 451605881}
+ 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 &451605881
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 451605880}
+ m_Enabled: 1
+--- !u!20 &451605882
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 451605880}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_GateFitMode: 2
+ 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 &451605883
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 451605880}
+ 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 &460914875
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 460914876}
+ - component: {fileID: 460914878}
+ - component: {fileID: 460914877}
+ m_Layer: 0
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &460914876
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 460914875}
+ 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: 1310391971}
+ 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 &460914877
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 460914875}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Test Rewarded Videos
+--- !u!222 &460914878
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 460914875}
+ m_CullTransparentMesh: 0
+--- !u!1 &738686355
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 738686356}
+ - component: {fileID: 738686358}
+ - component: {fileID: 738686357}
+ m_Layer: 0
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &738686356
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 738686355}
+ 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: 1696471893}
+ 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 &738686357
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 738686355}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Test Interstitials
+--- !u!222 &738686358
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 738686355}
+ m_CullTransparentMesh: 0
+--- !u!1 &861782202
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 861782207}
+ - component: {fileID: 861782206}
+ - component: {fileID: 861782205}
+ - component: {fileID: 861782204}
+ - component: {fileID: 861782203}
+ - component: {fileID: 861782208}
+ m_Layer: 5
+ m_Name: AdSettings
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &861782203
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 861782202}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 12a33cb7aa8f042ef8bc6a44c91eed4d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ urlPrefixInput: {fileID: 921926402}
+ sdkVersionText: {fileID: 1926159513}
+--- !u!114 &861782204
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 861782202}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &861782205
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 861782202}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+--- !u!223 &861782206
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 861782202}
+ 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: 1
+ m_TargetDisplay: 0
+--- !u!224 &861782207
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 861782202}
+ 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: 1199565905}
+ - {fileID: 1742651766}
+ - {fileID: 1926159512}
+ - {fileID: 1755348518}
+ - {fileID: 170827299}
+ - {fileID: 1379954410}
+ - {fileID: 1696471893}
+ - {fileID: 1310391971}
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ 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!114 &861782208
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 861782202}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1297475563, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_ChildAlignment: 4
+ m_Spacing: 20
+ m_ChildForceExpandWidth: 0
+ m_ChildForceExpandHeight: 0
+ m_ChildControlWidth: 0
+ m_ChildControlHeight: 0
+--- !u!1 &921926400
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 921926401}
+ - component: {fileID: 921926404}
+ - component: {fileID: 921926403}
+ - component: {fileID: 921926402}
+ m_Layer: 0
+ m_Name: URLPrefixInput
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &921926401
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 921926400}
+ 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: 1473656527}
+ - {fileID: 2098629747}
+ m_Father: {fileID: 1755348518}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 160, y: 40}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &921926402
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 921926400}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 575553740, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 921926403}
+ m_TextComponent: {fileID: 2098629748}
+ m_Placeholder: {fileID: 1473656528}
+ m_ContentType: 0
+ m_InputType: 0
+ m_AsteriskChar: 42
+ m_KeyboardType: 0
+ m_LineType: 0
+ m_HideMobileInput: 0
+ m_CharacterValidation: 0
+ m_CharacterLimit: 0
+ m_OnEndEdit:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 861782203}
+ m_MethodName: OnEditEnd
+ m_Mode: 0
+ 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
+ m_OnValueChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_CustomCaretColor: 0
+ m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
+ m_Text:
+ m_CaretBlinkRate: 0.85
+ m_CaretWidth: 1
+ m_ReadOnly: 0
+--- !u!114 &921926403
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 921926400}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10911, 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
+--- !u!222 &921926404
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 921926400}
+ m_CullTransparentMesh: 0
+--- !u!1 &1107470344
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1107470345}
+ - component: {fileID: 1107470347}
+ - component: {fileID: 1107470346}
+ m_Layer: 0
+ m_Name: URLPrefixLabel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1107470345
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1107470344}
+ 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: 1755348518}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 160, y: 40}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1107470346
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1107470344}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 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: 3
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: URL Prefix
+--- !u!222 &1107470347
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1107470344}
+ m_CullTransparentMesh: 0
+--- !u!1 &1199565904
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1199565905}
+ - component: {fileID: 1199565907}
+ - component: {fileID: 1199565906}
+ m_Layer: 0
+ m_Name: Title
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1199565905
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1199565904}
+ 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: 861782207}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 800, y: 40}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1199565906
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1199565904}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 30
+ m_FontStyle: 1
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 40
+ m_Alignment: 1
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Audience Network Unity Sample Settings
+--- !u!222 &1199565907
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1199565904}
+ m_CullTransparentMesh: 0
+--- !u!1 &1310391970
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1310391971}
+ - component: {fileID: 1310391974}
+ - component: {fileID: 1310391973}
+ - component: {fileID: 1310391972}
+ m_Layer: 0
+ m_Name: Rewarded Video Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1310391971
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1310391970}
+ 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: 460914876}
+ m_Father: {fileID: 861782207}
+ m_RootOrder: 7
+ 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: 220, y: 60}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1310391972
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1310391970}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1310391973}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 861782203}
+ m_MethodName: RewardedVideoAdScene
+ 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 &1310391973
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1310391970}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &1310391974
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1310391970}
+ m_CullTransparentMesh: 0
+--- !u!1 &1379954409
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1379954410}
+ - component: {fileID: 1379954413}
+ - component: {fileID: 1379954412}
+ - component: {fileID: 1379954411}
+ m_Layer: 0
+ m_Name: Banner Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1379954410
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1379954409}
+ 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: 364833957}
+ m_Father: {fileID: 861782207}
+ m_RootOrder: 5
+ 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: 220, y: 60}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1379954411
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1379954409}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1379954412}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 861782203}
+ m_MethodName: AdViewScene
+ 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 &1379954412
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1379954409}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &1379954413
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1379954409}
+ m_CullTransparentMesh: 0
+--- !u!1 &1473656526
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1473656527}
+ - component: {fileID: 1473656529}
+ - component: {fileID: 1473656528}
+ m_Layer: 0
+ m_Name: Placeholder
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1473656527
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1473656526}
+ 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: 921926401}
+ 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.5}
+ m_SizeDelta: {x: -20, y: -13}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1473656528
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1473656526}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 2
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Enter text...
+--- !u!222 &1473656529
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1473656526}
+ m_CullTransparentMesh: 0
+--- !u!1 &1601330494
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1601330497}
+ - component: {fileID: 1601330496}
+ - component: {fileID: 1601330495}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1601330495
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1601330494}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, 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 &1601330496
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1601330494}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 10
+--- !u!4 &1601330497
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1601330494}
+ 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!1 &1696471892
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1696471893}
+ - component: {fileID: 1696471896}
+ - component: {fileID: 1696471895}
+ - component: {fileID: 1696471894}
+ m_Layer: 0
+ m_Name: Interstitial Button
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1696471893
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1696471892}
+ 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: 738686356}
+ m_Father: {fileID: 861782207}
+ m_RootOrder: 6
+ 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: 220, y: 60}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1696471894
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1696471892}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1696471895}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 861782203}
+ m_MethodName: InterstitialAdScene
+ 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 &1696471895
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1696471892}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_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
+--- !u!222 &1696471896
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1696471892}
+ m_CullTransparentMesh: 0
+--- !u!1 &1742651765
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1742651766}
+ - component: {fileID: 1742651768}
+ - component: {fileID: 1742651767}
+ m_Layer: 0
+ m_Name: SDKVersionLabel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1742651766
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1742651765}
+ 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: 861782207}
+ m_RootOrder: 1
+ 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: 400, y: 40}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1742651767
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1742651765}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 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: 3
+ m_MaxSize: 40
+ m_Alignment: 1
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Unity SDK Version
+--- !u!222 &1742651768
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1742651765}
+ m_CullTransparentMesh: 0
+--- !u!1 &1755348517
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1755348518}
+ - component: {fileID: 1755348519}
+ m_Layer: 0
+ m_Name: URLPrefix
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1755348518
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1755348517}
+ 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: 1107470345}
+ - {fileID: 921926401}
+ m_Father: {fileID: 861782207}
+ 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: 320, y: 40}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1755348519
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1755348517}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_ChildAlignment: 0
+ m_Spacing: 0
+ m_ChildForceExpandWidth: 1
+ m_ChildForceExpandHeight: 1
+ m_ChildControlWidth: 0
+ m_ChildControlHeight: 0
+--- !u!1 &1926159511
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1926159512}
+ - component: {fileID: 1926159514}
+ - component: {fileID: 1926159513}
+ m_Layer: 0
+ m_Name: SDKVersion
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1926159512
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1926159511}
+ 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: 861782207}
+ m_RootOrder: 2
+ 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: 200, y: 40}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1926159513
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1926159511}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 30
+ m_FontStyle: 1
+ m_BestFit: 0
+ m_MinSize: 3
+ m_MaxSize: 40
+ m_Alignment: 1
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Unknown
+--- !u!222 &1926159514
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1926159511}
+ m_CullTransparentMesh: 0
+--- !u!1 &2098629746
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2098629747}
+ - component: {fileID: 2098629749}
+ - component: {fileID: 2098629748}
+ m_Layer: 0
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &2098629747
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2098629746}
+ 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: 921926401}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: -0.5}
+ m_SizeDelta: {x: -20, y: -13}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2098629748
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2098629746}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 0
+ m_HorizontalOverflow: 1
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!222 &2098629749
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2098629746}
+ m_CullTransparentMesh: 0
diff --git a/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.unity.meta b/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.unity.meta
new file mode 100644
index 0000000..39d930a
--- /dev/null
+++ b/Forest/Assets/AudienceNetwork/Scenes/Settings/SettingsScene.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d88663653ebb24580ac0c753bb4f140c
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Forest/ProjectSettings/GvhProjectSettings.xml b/Forest/ProjectSettings/GvhProjectSettings.xml
index 8777098..d13f312 100644
--- a/Forest/ProjectSettings/GvhProjectSettings.xml
+++ b/Forest/ProjectSettings/GvhProjectSettings.xml
@@ -1,22 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file