版本: Unity 6 (6000.0)
语言 : 英语
创建自定义活动
GameActivity 应用程序入口点

指定 Android 播放器命令行参数

扩展自定义 Unity 活动的一个用例是在启动 Android 播放器时传递命令行参数。有关可用命令行参数的信息,请参阅 命令行参数

在自定义活动中指定启动命令行参数

  1. 创建自定义活动 并将其设置为应用程序入口点。
  2. 在自定义活动中,覆盖 String UnityPlayerActivity.updateUnityCommandLineArguments(String cmdLine) 方法。
  3. 在方法中,将 cmdLine 参数与您自己的启动参数连接起来,然后返回结果。重要cmdLine 参数可以是空字符串或空值,因此请确保您的代码处理这些可能的值。

以下示例展示了如何指定启动参数以根据当前设备选择图形 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 中打开项目,则可以通过 运行/调试配置对话框 中的启动标志将启动命令行参数传递给 Unity。
  • 通过 Android 调试桥 (adb):您可以使用以下代码通过 adbAndroid 调试桥 (ADB)。您可以在构建后手动使用 ADB 部署 Android 软件包 (APK)。 更多信息
    参见 词汇表
    启动 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

创建自定义活动
GameActivity 应用程序入口点