追記)Godot3.2以降は簡単になったので下記参照。
追記終わり。
GodotでもAdMobを使うことが出来る。コード自体はGodot上にてGDScriptで書けばいいだけなので簡単だけど、ちょっと仕組み的には複雑かもしれない。ただ、やってみると、あーなるほど、そういう仕組で動いてるのか、と分かる。ちなみにGodot3.1.1現在。
iOSの場合はこちら。Godotのビルドの解説をしていたり、Godot3.2を使っていたり、Android、iOS両方に対応したGodotのコードの例もある。(ビルドはもしかしたらAndroid側は関係なくなっているのかもしれないが)
具体的には下記のリポジトリにあるモジュールを利用する。
kloder-games/godot-admob: Module Admob for Godot engine
詳しい説明もここに書かれている。2つやり方があって、「Using precompiled templates (Second Option)」と書かれている方が簡単。そこの説明のhereと書かれているリンクをクリックすると下記に遷移する。
Shin-NiL/godot-custom-mobile-template: Godot Game Engine Custom Mobile Template
ここのReleaseに色々あるので、自分が使っているGodotのバージョンと同じ番号のものをダウンロードする。それを解凍したら、GodotのエクスポートメニューのAndroidの設定のところに、「Custom Package」という設定があるのでそこにDebugとRelease用のパッケージを指定する。
あとは説明にあるように下記のパーミッションを有効にしておく。
これは一体何をやっているのかというと、簡単に言えばAndroid Studioで作られたプロジェクトの部分がこのCustom Packageとして提供されている感じなのではないかと思う。なのでAdMobのようにネイティブ側で対応が必要な機能を提供する際にはそういったモジュールを追加してビルドされたCustom Packageを利用することで、Godot側でも利用できるようになる、という感じだと思われる。
実際問題Second Optionではない正規の方法では、モジュールを追加して自分でビルドしてくれ、という形になっている。今回はAdMobを使いたいだけなのでビルド済みのもので問題ないが、色々とモジュールを必要に応じて追加したプロジェクトを使う場合には自分でビルドしないといけないと思う。
が、Godot3.2からはもっと簡単にできるようになるよ、ということも最初のリポジトリの説明に書かれている。なのでまあとりあえず今はビルド済みのを使っておいたほうが楽かもしれない。
Custom Packageの準備ができたら、今度はGodotのプロジェクト側にモジュールの追加設定を行う。Godotのプロジェクトファイルがテキストファイルになっており、それを直接いじるので恐らくGodotを起動していると勝手に書き換えられて無効になってしまう。そのため一旦Godotを終了してから、下記のテキストをproject.godotに追加する。
[android]
modules="org/godotengine/godot/GodotAdMob"
そしたらあとはAdMobを表示するコードをシーンに追加するだけ。僕の場合は下記のようにした。デバッグ時にはテスト広告を表示し、且つAdMobモジュールが正常にロードできているかをLabelに表示して確認している。ちなみに実機でしか動作しない。
var admob = null
func _ready():
if Engine.has_singleton("AdMob"):
admob = Engine.get_singleton("AdMob")
# 一般向けの場合
# init(isReal, instance_id)
# 子ども向けの場合
admob.initWithContentRating(!OS.is_debug_build(), get_instance_id(), true, 'G')
if OS.is_debug_build():
admob.loadBanner('ca-app-pub-3940256099942544/6300978111', false)
$UILayer/DebugLabel.set_text('ad initialized')
else:
admob.loadBanner('本番の広告ユニットID', false)
else:
if OS.is_debug_build():
$UILayer/DebugLabel.set_text('ad not initialized')
ということでちょっと面倒くさい…けどビルド済みCustom Packageだとだいぶ楽。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント