Unity2018.2のリリースノートを見ていて
他サイトとかであんまり紹介されてなかったけど便利だなと思った機能
Android:UnityプロジェクトでプラグインとしてJavaソースファイルを使用するためのサポートが追加されました。
これらのファイルはコンパイルされ、APKに組み込まれます。
iOS用プラグインみたいにソースコード入れておけば.aar、.jarを一々作らなくてもすみますよ。
ってことですかね。
地味にパッケージ名の設定とかが面倒で基盤化するのが面倒だったんだけど
これのおかげでわりと気楽に(?)できるようになるかな
ためしてガッテン
Assets/Plugins/Androidにエクスポートしたフォルダのsrc/main/AndroidManifest.xmlをコピペする
同一フォルダに
https://docs.unity3d.com/Manual/AndroidUnityPlayerActivity.html
のと同じもの作っとく
ぶっちゃけそれだけだと味気ないのでトーストでも入れとく
package 【自プロのパッケージ名】;
import com.unity3d.player.UnityPlayerActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast; ←追加
public class OverrideExample extends UnityPlayerActivity {
protected void onCreate(Bundle savedInstanceState) {
// call UnityPlayerActivity.onCreate()
super.onCreate(savedInstanceState);
// print debug message to logcat
Log.d("OverrideActivity", "onCreate called!");
}
public void onBackPressed()
{
Toast.makeText(this, "テスト", Toast.LENGTH_LONG).show(); ←追加
}
}
起動時にログ出力、バックキーでトースト表示するだけ。
配置が終わったらAndroidManifest.xmlを開く
5行目あたりに <activity android:label="@string/app_name"~~ってのがあってその一番うしろに
android:name="【パッケ名】.UnityPlayerActivity">
というのがあるのでそこを
android:name=".OverrideExample">
に変更
OverrideExampleはjavaのクラス名
そして普通にビルドする
ちなみに
PluginsのフォルダがAssets直下じゃなかったり
Manifestの書式変だったりするとちゃんと動かないので注意
あと地味にjavaコードのpackage のところを間違ってたりするのでそこも注意
おわり
結局ソースにpackage名を入れてあげないといけないので完全に基盤として分離は難しそうだね
ただ エディタ拡張でその部分だけパッケージ名に差し替えてからビルドするようにすれば問題はなさそう
jar作るの面倒だったからこれは本当に助かる機能。