ドキュメント

Unity Engine

Unity Engine

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

Specify startup command-line arguments to pass to Unity.
読み終わるまでの所要時間 4 分最終更新 1ヶ月前

カスタムの 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() { // Use Vulkan on Google Pixel devices if (Build.MANUFACTURER.equals("Google") && Build.MODEL.startsWith("Pixel")) 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 return cmdLine; // let Unity pick the Graphics API based on PlayerSettings } @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