Unity Android アプリケーションの開発に当たって、プラグインを使って、標準の UnityPlayerActivity クラスを拡張することができます。(これは Android における Unity Player の基本の Java クラスで、 Unity iOS の AppController.mm とおおむね同様のものです。) Android OS と Unity Android アプリケーションの基本的なインタラクションは全て、アプリケーションによるオーバーライドが可能です。
デフォルトのアクティビティをオーバーライドするには、以下の 2 段階の手順を実行します。
UnityPlayerActivity; から派生する新しい Activity を作成します。
新しいアクティビティがアプリケーションのエントリーポイントとして使用されるように Android Manifest を修正してください。
これを最も簡単に行うには、プロジェクトをエクスポートし、Android Studio で UnityPlayerActivity クラスに必要な修正を加えます。
新しいアクティビティコードでプラグインを作成し、それを Unity プロジェクトに追加するには、以下の手順を実行してください。
UnityPlayerActivity を拡張します。 UnityPlayerActivity.java ファイルは、 Mac では /Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayer/src/com/unity3d/player に、 Windows では C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\src\com\unity3d\player にあります。 UnityPlayerActivity を拡張するには、Unity に付属の classes.jar を見付けてください。これは、インストールフォルダー(通常 C:\Program Files\Unity\Editor\Data [Windows] または /Applications/Unity [Mac]) のサブフォルダーである PlaybackEngines/AndroidPlayer/Variations/mono または il2cpp/Development or Release/Classes/ 内にあります。次に、新しいアクティビティのコンパイルに使用されるクラスパスに classes.jar 追加します。アクティビティのソースファイルをコンパイルして JAR または AAR パッケージに含め、それをプロジェクトフォルダーにコピーしてください。
Android Manifest を 1 つ新規作成し、この新しいアクティビティアプリケーションのエントリーポイントとして設定します。 AndroidManifest.xml ファイルをプロジェクトの Assets/Plugins/Android フォルダーに配置してください。
以下は、 UnityPlayerActivity ファイルの例です。
OverrideExample.java:
package com.company.product;
import com.unity3d.player.UnityPlayerActivity;
import android.os.Bundle;
import android.util.Log;
public class OverrideExample extends UnityPlayerActivity {
protected void onCreate(Bundle savedInstanceState) {
// UnityPlayerActivity.onCreate() を呼び出す
super.onCreate(savedInstanceState);
// logcat にデバッグメッセージをプリントする
Log.d("OverrideActivity", "onCreate called!");
}
public void onBackPressed()
{
// UnityPlayerActivity.onBackPressed() を呼び出す代わりに、Back ボタンイベントを無視する
// super.onBackPressed();
}
}
これに対応する AndroidManifest.xml は以下のようになります。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.product">
<application android:icon="@drawable/app_icon" android:label="@string/app_name">
<activity android:name=".OverrideExample"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
2017–05–18 編集レビュー 無しにパブリッシュされたページ
5.5 のアップデート機能