Version: Unity 6.0 (6000.0)
언어 : 한국어
커스텀 활동 생성
GameActivity 애플리케이션 엔트리 포인트

Android Player 커맨드 라인 인자 지정

커스텀 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 다이얼로그의 Launch Flags를 통해 시작 커맨드 라인 인자를 Unity에 전달할 수 있습니다.
  • adb(Android Debug Bridge): 다음 코드를 사용하여 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

커스텀 활동 생성
GameActivity 애플리케이션 엔트리 포인트