Exemplo n.º 1
0
        public IEnumerator ShowRewardVideoAsync(OnFinishRewardVideo onFinish)
        {
            if (Advertisement.GetPlacementState(this.placementId) == PlacementState.Waiting)
            {
                // 1秒くらい待ってみる.
                int count = 0;
                while (count < 10 && !Advertisement.IsReady(this.placementId))
                {
                    yield return(new WaitForSecondsRealtime(0.1f));

                    count++;
                }

                if (Advertisement.IsReady(this.placementId))
                {
                }
                else
                {
                    onFinish.Invoke(VideoAdStatus.AdNotReadyOrShowing);
                    yield break;
                }
            }

            // 表示中の際はfalseで返す.
            if (Advertisement.isShowing)
            {
                onFinish.Invoke(VideoAdStatus.AdNotReadyOrShowing);
                yield break;
            }
            this.onFinish = onFinish;
            ShowAd(onFinish);
        }
Exemplo n.º 2
0
        private IEnumerator _ShowRewardVideoAdAsync(OnFinishRewardVideo onFinish)
        {
            var adList = new List <IVideoAdvertisement>();

            adList.AddRange(this._ads);
            if (randomize)
            {
                adList.Shuffle();
            }

            bool          finish;
            VideoAdStatus status = VideoAdStatus.AdNotReadyOrShowing;

            foreach (var v in adList)
            {
                finish = false;
                StartCoroutine(v.ShowRewardVideoAsync((s) =>
                {
                    finish = true;
                    status = s;
                }));
                yield return(new WaitUntil(() => finish));

                if (status != VideoAdStatus.AdNotReadyOrShowing)
                {
                    onFinish.Invoke(status);
                    yield break;
                }
            }

            onFinish.Invoke(VideoAdStatus.Fail);
        }
Exemplo n.º 3
0
        public bool ShowRewardVideoAd(OnFinishRewardVideo onFinish)
        {
            var adList = new List <IVideoAdvertisement>();

            adList.AddRange(this._ads);
            if (randomize)
            {
                adList.Shuffle();
            }

            foreach (var v in adList)
            {
                if (v.IsReady())
                {
                    var res = v.ShowRewardVideoAd(onFinish);
                    if (res)
                    {
                        return(true);
                    }
                }
            }

            // 現在表示できるネットワークがない. cacheにのっていない可能性もあるので、しばらくしてから再度行うように案内するのが無難.
            return(false);
        }
Exemplo n.º 4
0
        public bool ShowRewardVideoAd(OnFinishRewardVideo onFinish)
        {
            if (this._ad == null || this._ad.Expired)
            {
                this._ad = null;
                // 見せれるadがない場合はrequestをする
                RequestRewardAds();
                return(false);
            }
            this.onFinish = onFinish;

            AdColony.Ads.ShowAd(this._ad);
            return(true);
        }
Exemplo n.º 5
0
        public bool ShowRewardVideoAd(OnFinishRewardVideo onFinish)
        {
            if (!Advertisement.isSupported)
            {
                return(false);
            }

            if (!Advertisement.isInitialized)
            {
                return(false);
            }

            if (!Advertisement.IsReady(this.placementId))
            {
                return(false);
            }

#if !UNITY_EDITOR
            // Editor上では表示してないのにtrueが返るような...
            if (!Advertisement.isShowing)
            {
                return(false);
            }
#endif
            Advertisement.Show(this.placementId, new ShowOptions()
            {
                resultCallback = (v) =>
                {
                    VideoAdStatus status = VideoAdStatus.Fail;
                    switch (v)
                    {
                    case ShowResult.Failed:
                        status = VideoAdStatus.Fail;
                        break;

                    case ShowResult.Skipped:
                        status = VideoAdStatus.Cancel;
                        break;

                    case ShowResult.Finished:
                        status = VideoAdStatus.Success;
                        break;
                    }
                    onFinish.Invoke(status);
                }
            });

            return(true);
        }
Exemplo n.º 6
0
        public bool ShowRewardVideoAd(OnFinishRewardVideo onFinish)
        {
#if UNITY_EDITOR
            var view = Object.FindObjectOfType <Editor.DummyAdView>();
            if (view == null)
            {
                var prefab = UnityEditor.AssetDatabase.LoadAssetAtPath <GameObject>("Assets/UAds/Prefabs/Dev/RewardVideoCanvas.prefab");
                var go     = GameObject.Instantiate(prefab);
                view = go.GetComponentInChildren <Editor.DummyAdView>();
            }

            view.onFinish = onFinish;
            return(true);
#else
            return(false);
#endif
        }
Exemplo n.º 7
0
        public bool ShowRewardVideoAd(OnFinishRewardVideo onFinish)
        {
            // callback設定しているが、一応nullの際を確認しておく.
            if (Advertisement.IsReady(this.placementId))
            {
                // 表示中の際はfalseで返す.
                if (Advertisement.isShowing)
                {
                    return(false);
                }

                ShowAd(onFinish);
                return(true);
            }

            this.onFinish = onFinish;

            return(false);
        }
Exemplo n.º 8
0
 public void ShowRewardVideoAdAsync(OnFinishRewardVideo onFinish)
 {
     StartCoroutine(_ShowRewardVideoAdAsync(onFinish));
 }
Exemplo n.º 9
0
 public IEnumerator ShowRewardVideoAsync(OnFinishRewardVideo onFinish)
 {
     ShowRewardVideoAd(onFinish);
     yield return(null);
 }
Exemplo n.º 10
0
 private void ShowAd(OnFinishRewardVideo onFinish)
 {
     this.onFinish = onFinish;
     Advertisement.Show(this.placementId);
 }
Exemplo n.º 11
0
        public IEnumerator ShowRewardVideoAsync(OnFinishRewardVideo onFinish)
        {
            yield return(new WaitForSeconds(1f));

            ShowRewardVideoAd(onFinish);
        }