Post() public method

public Post ( Action action ) : void
action Action
return void
コード例 #1
0
ファイル: Platform.cs プロジェクト: Cobecc/ClickerCat
        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);
        }