AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

Unity Advertisement 4.4.2

Unity Adsじゃなくて、Unity Advertisementに名前が変わってるのか
このへんも新しくしてないとAndroid updateで弾かれるらしい
ということでpackageから4.4.2にupdateしましたが、既存のスクリプトがエラーになる
仕様が変わってる模様
isReadyとか無くなってる

色々記事を読んで参考にする

Unity でのリワード広告の実装

Unity での基本的な広告の実装


Question - Unity Ads SDK 4.0.1 for Unity 2018.3.11 - Unity Forum

advertisementのpackageの画面にサンプルのimportリンクがあるので これをインストールして実際に動かしてみるのが参考になる

sing UnityEngine;
using UnityEngine.Advertisements;
using UnityEngine.UI;

public class UnityAdsScript : MonoBehaviour, IUnityAdsInitializationListener, IUnityAdsLoadListener, IUnityAdsShowListener
{
    void Start()
    {
        Advertisement.Initialize( GameID, true, this);//広告初期化
    }
    void reward()
    {
         Advertisement.Show("rewardedVideo",this);//リワード広告再生 再生後はOnUnityAdsShowCompleteが呼ばれる
    }
}

Listner系を継承してクラス作成

動画広告再生後に、このlistnerが呼ばれるので、placementIdでvideo/rewradedVideoを区別して、
リワード広告なら、広告再生がコンプリートを確認して、報酬を与える

public void OnUnityAdsShowComplete(string placementId, UnityAdsShowCompletionState showCompletionState)
{
        if(placementId == "video")
        {
//ただのインターステンシャル広告
        }
        else
        if (placementId == "rewardedVideo" && showCompletionState.Equals(UnityAdsShowCompletionState.COMPLETED))
        {
//報酬を与える
        }
}


unity editor環境では動くんだけど、実機でふるまいがおかしい
例えば initializeしてるのに、初期化完了のイベントが呼ばれない

広告をshowする前にloadして、load完了を待ってshowしないといけないが、
初期化完了を待ってloadしようとしてると、初期化完了が呼ばれない
かといって、広告表示前にloadしてると、表示を待たされる
色々と悩ましい