概要
アプリのVersionとかBuild番号とかを画面に出したいことがあると思います。
方法としては3つあります。
- Godotの設定ファイルから取得する
- プログラムで番号を定義してそれを表示する
- 各プラットフォーム(iOS, Androidなど)のネイティブから取得する
順番に説明していきます
Godotの設定ファイルから取得する
バージョン番号はExportの設定に記載していると思います。
この設定はプロジェクト直下にあるexport_presets.cfgというファイルに記述されています。
iOSのversionを取る例です
var export_config: ConfigFile = ConfigFile.new()
var err = export_config.load("res://export_presets.cfg")
if err == OK:
print(export_config.get_value("preset.0.options", 'application/short_version'))
print(export_config.get_value("preset.0.options", 'application/version'))
※preset.0.optionsの番号の箇所は環境により異なります。exportの設定がある分だけ数字が増えます。2つexportの設定がある場合は0, 1がある
これの欠点
人によっては、XcodeやAndroid Studioを直接編集して番号を変えたりしているかもしれません。その場合は使えない方法です
※自分の場合もこれで、Export Projectをするのは最初の一回だけであとはpckだけをExportしてます。
参考
https://godotengine.org/qa/71010/read-exported-version-code-from-gdscript?show=71010#q71010
プログラムで番号を定義してそれを表示する
これは説明するまでもないですが、定数をどっかに定義してそれを参照するようにします。
これの欠点
Versionあげるときに忘れないようにする必要があります
各プラットフォーム(iOS, Androidなど)のネイティブから取得する
調べた感じ、標準ではGodotのプログラムから取得する方法はありませんでした。やるとしたら、プラットフォーム毎のプラグインを作ってそれを呼び出す形にする必要があります
それをやるプラグインはちょっと見当たらなかったですね
これの欠点
プラグインでやる必要があるので面倒
結論
1の方法は先にも書きましたが、exportの設定でVersionを管理してないので、自分の場合はこの方法は使えなかったです
3はプラグイン作ろうかなと思ったのですが、よく考えるとiOSとAndroidのバージョンが異なる場合というのはあまりないケースな気がしました。
なので2のプログラムに定義するのが楽だしこれでいいやという結論になりました。番号あげるのを忘れないようにするのは、ブランチ切って次のVersion開発するときにまず初めに番号を変えるというルール(クセ)をつけるという感じにしました