挫折、そして...再始動。
全然更新できていませんでした。残念。
第一作目についてですが、ちょっと色んな諸事情があり、途中で止まってしまっています。ちょっと規模も大きかったというのも敗因の1つですかね。
今は一旦気持ちを切り替えて、少し規模の小さめのゲームを開発中です。
その名も「Star Drivers(仮)」
ゲーム自体は大体完成しているのですが、もう少しデザインと説明を追加しないと
ユーザーが遊び方わからないって感じです。
今回はこれに動画広告を追加しました。
UnityAdsを使えば本当に導入は簡単に終わります。
これをゲームロジック側(LIFE)に少し紐づけてあげれば、「広告をみてLIFE回復システム」みたいな感じはすぐに完成しますね。
まずは、サービスをONにしましょう。
準備はこれだけですね。まじで簡単。
Unityアカウントでログインしていないとまずはログインを求められるので気をつけてください。
次はソースです。
広告を表示するソースを書くファイルには、以下をUsingする必要があります。
using UnityEngine.Analytics;
で呼び出す時は以下のようにします。
まずはゲーム起動時に、Adインスタンスの初期化をしておきましょう。
このゲームIDは、Unityのページからプロジェクトを登録するともらえます。
if (Advertisement.isSupported) { Advertisement.Initialize(_gameId, true); }
あとは、必要に応じてAdvertisement.Show()を呼び出すだけですね。
今回の場合だと、LIFEが0になった時にプログラム内でShow()メソッドを呼び出すように実装しました。
public void OnClick() { var life = Life.Instance; if (!life.CanPlayGame) { AdsManager.Instance.Show(); return; } life.Use(); SceneManager.LoadScene ("Game"); public void Show() { ShowOptions options = new ShowOptions(); options.resultCallback = HandleShowResult; Advertisement.Show(placementId, options); }
また動画広告が終わると、上記のresultCallbackに設定したコールバックが呼ばれます。
今回は正常に動画広告が再生された場合に、Life.Instance.Refresh()
を実行して、ライフを回復させる処理を追加しました。
void HandleShowResult (ShowResult result) { if(result == ShowResult.Finished) { Debug.Log("Video completed - Offer a reward to the player"); Life.Instance.Refresh(); }else if(result == ShowResult.Skipped) { Debug.LogWarning("Video was skipped - Do NOT reward the player"); }else if(result == ShowResult.Failed) { Debug.LogError("Video failed to show"); } }
はい、できあがり。こんなんになりました。
初めはLIFEが0で、GameStartを押すと広告が表示されて、見終わるとLIFEが3に戻っているのがわかるかと思います。
いやー、簡単ですね。
ということで、今日はここまでです!