Cz_mirror Game開発備忘録

週末にunity でゲーム開発をしています。ゲーム開発を通じて得た情報の備忘録として活用するブログになります。

【Unity】 Captulionバージョン1.0.2 アップデート maio広告の導入について

2018年1月8日にiOSシューティングゲームCaptulionをアップデートいたしました。

Captulion

Captulion

  • Kazushige Mori
  • ゲーム
  • 無料

 今回の導入の際にmaioの広告を導入してみました。その際に調整した内容について簡単にまとめてみました。

 

 Captulionについて

Captulionは敵機を捕獲して味方にするシューティングゲームで、味方にした敵機は自機と一緒に攻撃をしてくれたり、敵から身を守る盾としても使うことができます。敵はボスも含めて全て捕獲対象となるため、捕獲した敵が強ければ強いほど強力な味方になってくれますが、強い敵は捕獲に時間がかかります。

f:id:godhandevilleg:20180110204257j:plain

捕獲した敵は持ち帰ることでパワーアップアイテムの解放につながります。(持ち帰った敵は再出動させることはできません。)

f:id:godhandevilleg:20180110204248j:plain

敵を持ち帰らずにそのまま次のステージへ連れて行くこともでき、ボスキャラなどはかなり強力な戦力になります。(捕獲した敵機がやられてしまうと、持ち帰ることができなくなります。)

f:id:godhandevilleg:20180110204253j:plain

今回のアップデートについて

今回のアップデートではステージクリア時にプレイヤーのシールドを修復するリペア機能とゲームオーバー時にその場コンティニュー機能を追加いたしました。

今回機能を追加するにあたり、アイモバイル様のmaioを利用してみました。

動画広告maio導入

maio広告の導入自体は、maioのサイトで登録を行なった後、gitから導入手順に沿って行うことができます。

maio

Get Started · imobile-maio/maio-Unity-Plugin Wiki · GitHub

maio動画再生中のゲーム進行とBGMの停止について

Unityでmaio動画広告再生中はゲームの進行とBGMが再生された状態になってしまうため、それぞれ停止する必要があります。

BGMを停止する件はAudioListener.volumeを0にすることで、動画再生中のゲームの進行停止はTime.timeScaleを0にする事で対応できました。 

以下は停止の記述例になります。

    // 広告再生
    public void AdsStart()
    {
        AudioListener.volume = 0;
        Time.timeScale = 0.0f;
    }

    // 広告終了
    public void AdsEnd()
    {
        AudioListener.volume = 1;
        Time.timeScale = 1.0f;
    }

あとはmaio側の記述で上記のようなメソッドを呼び出すことで、maio広告を無事再生することができました。

    /// <summary>
    /// 広告の再生が開始された際に呼ばれます。
    /// </summary>
    /// <param name="zoneId"></param>
    public void HandleOnStartAd(string zoneId)
    {
        Debug.LogFormat("Maio.OnStartAd('{0}')"zoneId);
        gameController.AdsStart();
    }

    /// <summary>
    /// 広告の視聴が終了した際に呼ばれます。
    /// </summary>
    /// <param name="zoneId"></param>
    /// <param name="playtime"></param>
    /// <param name="skipped"></param>
    /// <param name="rewardParam"></param>
    public void HandleOnFinishedAd(string zoneIdint playtimebool skippedstring rewardParam)
    {
        Debug.LogFormat("Maio.OnFinishedAd('{0}', {1}{2}, '{3}')"zoneIdplaytimeskippedrewardParam);
        if (!skipped)
        {
            // ここで、ユーザーへのリワード処理を行う事ができます。
            ResultAction();
        }
    }