【Unity + ARCore v1.15】Product Nameがビルドする度に変わってしまう場合の対処法
やりたいこと
Player Settings... の Product Name を変更したのに、ビルドされたスマホのアプリ名をみると HelloAR U3D
のような Google ARCore Sample アプリ の名前に変わってしまう。これを対処したい。
環境
- 【Unity】: Version 2019.2.21f1 Personal
- 【Google AR Core】: v1.15
原因
/Assets/GoogleARCore/SDK/Scripts/Editor/ExamplePreprocessBuild.cs
の中で自動的にプロダクトネームを変更しているため。
ExamplePreprocessBuild.cs
内の以下のコードの中の SceneGuid
を HelloAR シーンとでハードコーディングしている。それによりHelloAR シーン
内でちょこっと編集したのでプロダクト名を Player Settings...
から変えて、これでプロダクト名が変わったはずだと思っても、HelloAR U3D
という名前に必ず変わる。
_AddExampleScene(new ExampleScene() { ProductName = "HelloAR U3D", PackageName = "com.google.ar.core.examples.unity.helloar", SceneGuid = "e6a6fa04348cb45c9b0221eb19c946da", IconGuid = "36b7440e71f344bef8fca770c2d365f8" });
解決方法
1 新しいシーンを新規作成する
2 <先ほど作成したシーンの名前>.unity.meta
というファイルをテキストエディタで開く
- <先ほど作成したシーンの名前>.unity.meta
というファイルは、新規シーンのファイルと同じフォルダの中に自動的に生成される
3 開いたファイルの guid
を取得する
開いたファイルの中身は大体以下のようになっている。なので、3fa2cad52fcf042948794722639963d4
という文字列をクリップボードに貼っておく(コピーしておく)。
fileFormatVersion: 2 guid: 3fa2cad52fcf042948794722639963d4 DefaultImporter: externalObjects: {} userData: assetBundleName: assetBundleVariant:
4 /Assets/GoogleARCore/SDK/Scripts/Editor/ExamplePreprocessBuild.cs
を開く
5 新しく _AddExampleScene()
関数で ExampleScene
の新規インスタンスを生成するコードを追加
大体、39行目の次の行に以下のようなコードを記入。
_AddExampleScene(new ExampleScene() { ProductName = "<ここに新規プロダクト名>", PackageName = "com.google.ar.core.examples.unity.helloar", SceneGuid = "<ここにコピーしておいた guid をペースト>", IconGuid = "36b7440e71f344bef8fca770c2d365f8" });
6 ExamplePreprocessBuild.csを上書き保存
7 Build Settings > Scenes In Build に 新規シーンをドラッグ&ドロップ
- 新規シーンのみにチェックを入れておくと安全
8 Build And Run
参考
- ARCore change unity package name after building - Unity Answers, 入手先 https://answers.unity.com/questions/1543186/arcore-change-unity-package-name-after-building.html
- 作者:国安, 薬師寺
- 発売日: 2018/03/08
- メディア: 単行本
Android StudioではじめるARCore入門 (技術の泉シリーズ(NextPublishing))
- 作者:鈴木 裕太朗
- 発売日: 2019/02/15
- メディア: Kindle版