Unity 2018.2 から Unity プロジェクト内の .java ファイルがビルドされる機能が追加されました。
What's new in Unity 2018.2 - Unity
https://unity3d.com/jp/unity/whats-new/unity-2018.2.0
機能としてはこの辺りの事が .aar や .jar を事前に作成する事無く、 .java ファイルを置く事で実装可能になりました。
UnityPlayerActivity Java コードの拡張 - Unity マニュアル
https://docs.unity3d.com/ja/2018.2/Manual/AndroidUnityPlayerActivity.html
Assets/Plugins/Android フォルダの下に .java ファイルと AndroidManifest.xml を置くだけでOKです。
コードの例
OverrideExample.java
package com.example.javacode;
import com.unity3d.player.UnityPlayerActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
public class OverrideExample extends UnityPlayerActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Java code")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
builder.show();
}
public void onBackPressed()
{
}
}
※ Unity プロジェクトの Package Name は com.example.javacode を設定。それが1行目に書かれています。このコードの1行目は実際に使用している Package Name に置き換えて使って下さい。
AndroidManifest.xml
xml version="1.0" encoding="utf-8"
<manifest xmlnsandroid="http://schemas.android.com/apk/res/android" package="com.company.product">
<application androidicon="@drawable/app_icon" androidlabel="@string/app_name">
<activity androidname=".OverrideExample"
androidlabel="@string/app_name"
androidconfigChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter>
<action androidname="android.intent.action.MAIN" />
<category androidname="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
実際に使ってみたサンプルをこちらに置きましたので参照下さい。アプリを起動すると「Java code」と記述されたダイアログが表示されるサンプルです。