public void Initialize(string gameId, bool testMode, bool enablePerPlacementLoad)
{
m_LoadEnabled = enablePerPlacementLoad;
m_GameId = gameId;
if (debugMode)
{
Debug.Log("UnityAdsEditor: Initialize(" + gameId + ", " + testMode + ", " + enablePerPlacementLoad + ");");
}
var placeHolderGameObject = new GameObject("UnityAdsEditorPlaceHolderObject")
{
hideFlags = HideFlags.HideAndDontSave | HideFlags.HideInInspector
};
m_Placeholder = placeHolderGameObject.AddComponent <Placeholder>();
m_Placeholder.OnFinish += (object sender, FinishEventArgs e) =>
{
var handler = OnFinish;
if (handler != null)
{
handler(sender, new FinishEventArgs(e.placementId, e.showResult));
}
m_CallbackExecutor.Post(execute =>
{
foreach (var listener in GetClonedHashSet(_listeners))
{
listener.OnUnityAdsDidFinish(e.placementId, e.showResult);
}
});
};
string configurationUrl = string.Join("/", new string[] {
s_BaseUrl,
gameId,
string.Join("&", new string[] {
"configuration?platform=editor",
"unityVersion=" + Uri.EscapeDataString(Application.unityVersion),
"sdkVersionName=" + Uri.EscapeDataString(version)
})
});
WebRequest request = WebRequest.Create(configurationUrl);
request.BeginGetResponse(result =>
{
WebResponse response = request.EndGetResponse(result);
var reader = new StreamReader(response.GetResponseStream());
string responseBody = reader.ReadToEnd();
try
{
m_Configuration = new Configuration(responseBody);
if (!m_Configuration.enabled)
{
Debug.LogWarning("gameId " + gameId + " is not enabled");
}
m_CallbackExecutor.Post(execute =>
{
foreach (var placement in m_Configuration.placements)
{
m_PlacementMap.Add(placement.Key, false);
foreach (var listener in GetClonedHashSet(_listeners))
{
if (!enablePerPlacementLoad)
{
listener.OnUnityAdsReady(placement.Key);
}
}
}
m_IsInitialized = true;
foreach (var placement in m_QueuedLoads)
{
Load(placement);
}
});
}
catch (Exception exception)
{
Debug.LogError("Failed to parse configuration for gameId: " + gameId);
Debug.Log(responseBody);
Debug.LogError(exception.Message);
m_CallbackExecutor.Post(execute =>
{
foreach (var listener in GetClonedHashSet(_listeners))
{
listener.OnUnityAdsDidError("Failed to parse configuration for gameId: " + gameId);
}
});
}
reader.Close();
response.Close();
}, null);
}