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); }
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); }
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); }
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); }
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); }
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 }
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); }
public void ShowRewardVideoAdAsync(OnFinishRewardVideo onFinish) { StartCoroutine(_ShowRewardVideoAdAsync(onFinish)); }
public IEnumerator ShowRewardVideoAsync(OnFinishRewardVideo onFinish) { ShowRewardVideoAd(onFinish); yield return(null); }
private void ShowAd(OnFinishRewardVideo onFinish) { this.onFinish = onFinish; Advertisement.Show(this.placementId); }
public IEnumerator ShowRewardVideoAsync(OnFinishRewardVideo onFinish) { yield return(new WaitForSeconds(1f)); ShowRewardVideoAd(onFinish); }