Unity5.5b6で確認しています。
Unity5.5では、Build Settingsに Build System という項目が増え、
Gradleによるビルドが選択できるようになっています。
つまり、build.gradle が使えるようになるということです。
とは言え、当面はbuild.gradleを手軽に編集することはできないようで、
一旦AndroidプロジェクトをExportするか、裏技的に
PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/
にあるテンプレートを書き換えれば一応変更できる、という状況のようです。
That is not supported in the first version. But...
The templates used for creating the build.gradle files are in PlaybackEngines/AndroidPlayer/Tools/GradleTemplates
inside the Unity application directory, so as a hack in the current version you can try changing the mainTemplate.gradle directly.
Most likely we will add support for providing your own template inside your project in an upcoming patch release.
そのうち対応されるようですが、現在はこういった状況なので、スクリプトで無理やり対応してみます。
[追記] 5.5.2からは Plugins/Android/build.gradle
で上書きしてくれるようです。
Androidプロジェクトをgradle形式でExportできるようになったので、
以下の手順でbuild.gradleを上書きしつつ、ビルドすることができます。
- Androidプロジェクト(gradle形式)をExport
- Exportしたプロジェクトの中の
build.gradle
を、Plugins/Android/build.gradle
に差し替える - gradleでビルドする
これを実装したスクリプトをGitHubに上げました。 (2016/10/12更新)
https://github.com/tkyaji/UnityAndroidGradleBuild
AndroidGradleBuild.unitypackage
をインポートすると、Editor配下にビルド用スクリプトが設置されます。
メニューに Build -> Gradle Build
という項目が追加されるので、これを実行するとビルドが走ります。
以下のようなコードを書くことで、ビルド時にbuild.gradle
を編集できるようにしてみました。
// 1. add classpath
rootGradleElement.AddElement(new GradleParser.GradleTextElement("classpath 'com.google.gms:google-services:3.0.0'"), "buildscript", "dependencies");
// 2. add dependencies compile
rootGradleElement.AddElement(new GradleParser.GradleTextElement("compile 'com.google.firebase:firebase-core:9.6.1'"), "dependencies");
// 3. add apply plugin
rootGradleElement.AddElement(new GradleParser.GradleTextElement("apply plugin: 'com.google.gms.google-services'"));
詳しくはサンプルクラスを参照してください。
SampleGradleSettings.cs
build.gradleが使えると、PlayServicesResolver を使ってaar入れたりとかが不要になって、
ライブラリ周りではだいぶ便利になるのでとても嬉しいです。
余談
Firebaseを使う際、classpath 'com.google.gms:google-services:3.0.0'
の設定が必要で、
Unityではムリだと諦めかけていたんですが、これでなんとか動かせるかな?