Version: 2020.3
カスタムアクティビティの作成
Unity を Android アプリケーションに統合

Android プレイヤーのコマンドライン引数を指定する

カスタムの Unity アクティビティを拡張する使用例は、Android プレイヤーを起動する際にコマンドライン引数を渡すことです。使用可能なコマンドライン引数については、コマンドライン引数 を参照してください。

カスタムアクティビティで起動時のコマンドライン引数を指定するには、以下の手順を実行します。

  1. カスタムアクティビティを作成 し、アプリケーションのエントリーポイントとして設定します。
  2. カスタムアクティビティで、String UnityPlayerActivity.updateUnityCommandLineArguments(String cmdLine) メソッドをオーバーライドします。
  3. メソッド内で、cmdLine 引数を起動引数と連結して、結果を返します。 重要: cmdLine 引数は空の文字列または null である可能性があるため、コードがこれらの可能な値を処理できるように気を付けてください。

以下の例は、現在のデバイスに基づいてグラフィックス API を選択するために、起動引数を指定する方法を示しています。

package com.company.product;
import com.unity3d.player.UnityPlayerActivity;
import android.os.Bundle;
import android.os.Build;

public class OverrideExample extends UnityPlayerActivity {
    private boolean preferVulkan() {
        // Google Pixel デバイスで Vulkan を使用
        if (Build.MANUFACTURER.equals("Google") && Build.MODEL.startsWith("Pixel"))
            return true;
        else
            return false;
    }

    private boolean preferES2() {
        // Android 5.1 以前を使うデバイスで OpenGL ES 2.0 を使用 
        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1)
            return true;
        else
            return false;
    }

    private String appendCommandLineArgument(String cmdLine, String arg) {
        if (arg == null || arg.isEmpty())
            return cmdLine;
        else if (cmdLine == null || cmdLine.isEmpty())
            return arg;
        else
            return cmdLine + " " + arg; 
    } 

    @Override protected String updateUnityCommandLineArguments(String cmdLine)
    {
        if (preferVulkan())
            return appendCommandLineArgument(cmdLine, "-force-vulkan");
        else if (preferES2())
            return appendCommandLineArgument(cmdLine, "-force-gles20");
        else
            return cmdLine; // Unity に Player 設定に基づくグラフィックス API を選択させます
    }

    @Override protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
    }
}

コマンドライン引数を指定する他の方法

カスタムアクティビティ以外にも、次の方法でコマンドライン引数を指定できます。

  • Android Studio: Android Studio でプロジェクトを開くと、Run/Debug Configurations ダイアログ の起動フラグを介して Unity に起動コマンドライン引数を渡すことができます。
  • Android Debug Bridge (adb) 経由: 以下のコードを使用して、adb を介して Android アプリケーションを起動することで、コマンドライン引数を渡すことができます。
adb shell am start -n "<package_name>/<activity_name>" -e unity <command_line_arguments>

以下の例は、-systemallocator コマンドライン引数をアプリケーションに渡す方法を示しています。

adb shell am start -n "com.Company.MyGame/com.unity3d.player.UnityPlayerActivity" -e unity -systemallocator

カスタムアクティビティの作成
Unity を Android アプリケーションに統合
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961