こんにちは。ykira(@rakipagu)です。
コロナウィルスによって大変な時世ですが、皆様いかがお過ごしでしょうか。
最近Unityを触る機会が多かったので、その知見を少しずつシェアしたいと思います(英語学習系のYoutuberっぽい)
はじめに
Unityのアセットで有名な「EasyMobilePro」というものがあります。
これひとつで「広告・課金・通知・etc」など様々な機能を導入することができます。
導入の手順もユーザガイドが丁寧に説明してくれているので、すぐに使うことができると思います。
About · Easy Mobile User Guide
ちなみに全部英語ですが、Chrome等のページ翻訳を使えば問題なく日本語で理解できる文章になります。
最近の翻訳の正確性には驚かされますね。
バージョン情報
Unity : 2019.3.4f1
EasyMobilePro : 2.5.2
EasyMobileProの設定を開発と本番で動的に変更したかった
やりたかったことはコレ。
EasyMobileProでは開発の設定・本番の設定というように分けて登録することができません。
そんな使い方はしないという想定なのかもしれませんが、個人的に欲しかったのでどのようにやればできるか調べてみました。
今回はEasyMobileProを使用したAdmob広告の設定を例にやってみたいと思います。
開発モードと本番モードの切り替え
メニューバーにモード変更のメニューを追加して、そこから変更できるようにしています。
// Debugモードへ [MenuItem("DevMode/Debug")] public static void SetDebugMode() { // 開発用の設定 } // Releaseモードへ [MenuItem("DevMode/Release")] public static void SetReleaseMode() { // 本番用の設定 }
上記のコードを書いたプログラムを、Assets/Editorディレクトリに入れるとメニューが追加されます。
実際に設定変更してみる
EasyMobileProの設定は、Assets/EasyMobile/Resources/EM_Settings にあります。
この設定を各モードで変更しましょう。
といっても簡単です。
先程のモード変更用のメソッドに下記コードを追加すれば、設定が変更できます。
// Admob設定の変更 AdMobSettings adMobSettings = EM_Settings.Advertising.AdMob; adMobSettings.AppId = new AdId("OSのAdmob AppID", "AndroidのAdmob AppID"); adMobSettings.DefaultBannerAdId = new AdId("iOSのバナー広告ID", "Androidのバナー広告ID"); adMobSettings.DefaultInterstitialAdId = new AdId("iOSのインタースティシャル広告ID", "Androidのインタースティシャル広告ID"); adMobSettings.DefaultRewardedAdId = new AdId("iOSの動画広告ID", "Androidの動画広告ID"); adMobSettings.EnableTestMode = true; // テストモード 開発:true 本番:false
Admobの設定は、EM_Settings.Advertising.AdMobの中にあるのでこれを書き換えているだけです。
開発用の場合は開発用の広告ID、本番用は本番用の広告IDをそれぞれ指定するようにしてください。
まとめ
Unityは便利なアセットが沢山ありますので、その実装(アセットのソースコード)を見るのはとても参考になります。
「こんなことやりたいけどリファレンスには書いてないな・・・」というようなことも、アセットのソースコードを見ると実はできたりすることもあります(バージョンアップの時は要注意ですが)
たまにはアセットの中を覗いてみるのもいいかもしれませんね。
それでは!