Version: 2020.3
Safe Mode
배치 모드 및 빌트인 코루틴 호환성

커맨드 라인 인자

커맨드 라인(macOS 터미널 또는 Windows 커맨드 프롬프트)에서 Unity를 실행할 수 있습니다.

Unity 실행

Mac OS의 경우, 다음을 터미널에 입력하여 Unity를 실행해야 합니다.

/Applications/Unity/Unity.app/Contents/MacOS/Unity

Windows의 경우, 다음을 커맨드 프롬프트에 입력하여 Unity를 실행해야 합니다.

"C:\Program Files\Unity\Editor\Unity.exe"

When you launch Unity like this, it receives commands and information on startup, which can be very useful for test suites, automated builds and other production tasks.

Note: Use the same method to launch standalone Unity applications.

옵션

You can run the Editor and build Unity applications with additional commands and information on startup. This section describes the command line options available.

커맨드 세부 정보
-accept-apiupdate Unity가 배치 모드에서 실행될 때 APIUpdater가 실행되도록 지정하려면 이 커맨드 라인 옵션을 사용하십시오.

예:

unity.exe -accept-apiupdate -batchmode [other params]

배치 모드에서 Unity를 실행할 때 이 커맨드 라인 인자를 누락하면 APIUpdater가 실행되지 않으며 이로 인해 컴파일러 오류가 발생할 수 있습니다.
-batchmode Run Unity in batch mode. In batch mode, Unity runs command line arguments without the need for human interaction. It also suppresses pop-up windows that require human interaction (such as the Save Scene window); however, the Unity Editor itself opens as usual. You should always run Unity in batch mode when using command line arguments, because it allows automation to run without interruption.

When an exception occurs during execution of the script code, the Asset server updates fail, or other operations fail, Unity immediately exits with return code 1.

Note that in batch mode, Unity sends a minimal version of its log output to the console. However, the Log Files still contain the full log information. You cannot open a project in batch mode while the Editor has the same project open; only a single instance of Unity can run at a time.

To check whether the Editor or Standalone Player is running in batch mode, use the Application.isBatchMode operator.

If the project has not yet been imported when using -batchmode, the target platform is the default one. To force a different platform, use the -buildTarget option.
-buildLinux64Player <pathname> 64비트 스탠드얼론 Linux 플레이어를 빌드합니다(예: -buildLinux64Player path/to/your/build).
-buildOSXUniversalPlayer <pathname> 64비트 스탠드얼론 Mac OSX 플레이어를 빌드합니다(예: -buildOSXUniversalPlayer path/to/your/build.app).
-buildTarget <name> 프로젝트를 로드하기 전에 활성 상태의 빌드 타겟을 선택합니다. 가능한 옵션은 다음과 같습니다.
Standalone, Win, Win64, OSXUniversal, Linux64, iOS, Android, WebGL, XboxOne, PS4, WindowsStoreApps, Switch, tvOS
-buildWindowsPlayer <pathname> 32비트 스탠드얼론 Windows 플레이어를 빌드합니다(예: -buildWindowsPlayer path/to/your/build.exe).
-buildWindows64Player <pathname> 64비트 스탠드얼론 Windows 플레이어를 빌드합니다(예: -buildWindows64Player path/to/your/build.exe).
-createManualActivationFile Step one of a three-step process to manually activate a Unity license. For more information, see Generate a license activation file (.alf) from the command line.
-createProject <pathname> 주어진 경로에 빈 프로젝트를 생성합니다.
-debugCodeOptimization Enables debug code optimization mode, overriding the current default code optimization mode for the session.
-deepprofiling CPU 프로파일러에 대해 세부 프로파일링 옵션을 활성화합니다.
-disable-assembly-updater <assembly1 assembly2> Specify a space-separated list of assembly names as parameters for Unity to ignore on automatic updates.
The space-separated list of assembly names is optional: pass the command line options without any assembly names to ignore all assemblies, as in example 1.

Example 1
unity.exe -disable-assembly-updater

Example 2
unity.exe -disable-assembly-updater A1.dll subfolder/A2.dll

Example 2 has two assembly names, one with a pathname. Example 2 ignores A1.dll, no matter what folder it is stored in, and ignores A2.dll only if it is stored under subfolder folder:

If you list an assembly in the -disable-assembly-updater command line parameter (or if you don’t specify assemblies), Unity logs the following message to Editor.log:

[Assembly Updater] warning: Ignoring assembly [assembly_path] as requested by command line parameter.").

Use this to avoid unnecessary API Updater overheads when importing assemblies.

It is useful for importing assemblies which access a Unity API when you know the Unity API doesn’t need updating. It is also useful when importing assemblies which do not access Unity APIs at all (for example, if you have built your source code, or some of it, outside of Unity, and you want to import the resulting assemblies into your Unity project).

Note: If you disable the update of any assembly that does need updating, you might get errors at compile time, run time, or both, that are hard to track.
-disableManagedDebugger Disables the debugger listen socket.
-diag-debug-shader-compiler Unity는 셰이더 컴파일러의 인스턴스를 하나만 시작한 후 타임아웃을 1시간으로 강제 설정합니다. 이는 셰이더 컴파일러 문제를 디버깅할 때 유용합니다.
-disable-gpu-skinning Disable GPU skinning at startup.
-enableCodeCoverage 코드 커버리지를 활성화하고 커버리지 API에 대한 액세스를 허용합니다.
-executeMethod <ClassName.MethodName> or -executeMethod <NamespaceName.ClassName.MethodName> Execute the static method as soon as Unity opens the project, and after the optional Asset server update is complete. You can use this to do tasks such as continuous integration, performing Unit Tests, making builds or preparing data. To return an error from the command line process, either throw an exception which causes Unity to exit with return code 1, or call EditorApplication.Exit with a non-zero return code. To pass parameters, add them to the command line and retrieve them inside the function using System.Environment.GetCommandLineArgs. To use -executeMethod, you need to place the enclosing script in an Editor folder. The method you execute must be defined as static.
-exportPackage <exportAssetPath1 exportAssetPath2 ExportAssetPath3 exportFileName> Export a package, given a path (or set of given paths). In this example exportAssetPath is a folder (relative to the Unity project root) to export from the Unity project, and exportFileName is the package name. This option only exports whole folders at a time. You normally need to use this command with the -projectPath argument.
-force-d3d11 (Windows 전용) 렌더링 시 에디터에서 Direct3D 11을 사용하도록 합니다. 보통 그래픽스 API는 플레이어 설정에 따라 결정됩니다(일반적인 기본값은 D3D11).
-force-d3d12 (Windows 전용) 렌더링 시 에디터에서 Direct3D 12를 사용하도록 합니다. 보통 그래픽스 API는 플레이어 설정에 따라 결정됩니다.
-force-device-index Metal을 사용하는 경우 특정 GPU의 인덱스에 전달하여 에디터가 해당 GPU 기기를 사용하도록 합니다(macOS 전용).
-force-metal 에디터가 Metal을 기본 그래픽스 API로 사용하도록 합니다(macOS 전용).
-force-glcore Make the Editor use OpenGL 3/4 core profile for rendering. The Editor tries to use the best OpenGL version available and all OpenGL extensions exposed by the OpenGL drivers. If the platform isn’t supported, the editor uses Direct3D.
-force-glcoreXY -force-glcore와 비슷하나, 특정 OpenGL 컨텍스트 버전을 요청합니다. XY에 들어갈 수 있는 값은 다음과 같습니다. 32, 33, 40, 41, 42, 43, 44 또는 45.
-force-gles (Windows 전용) 렌더링 시 에디터에서 임베디드 시스템용 OpenGL을 사용하도록 합니다. 에디터는 가능한 OpenGL ES 최상위 버전 및 OpenGL 드라이버에 의해 노출되는 모든 OpenGL ES 익스텐션을 사용하려고 합니다.
-force-glesXY (Windows 전용) -force-gles와 비슷하나, 특정 OpenGL ES 컨텍스트 버전을 요청합니다. XY에 들어갈 수 있는 값은 다음과 같습니다. 30, 31 또는 32.
-force-vulkan 렌더링 시 에디터에서 Vulkan을 사용하도록 합니다. 보통 그래픽스 API는 플레이어 설정에 따라 결정됩니다.
-force-clamped Unity가 추가 OpenGL 확장을 확인하지 못하도록 만들기 위해 -force-glcoreXY와 함께 사용되며, 같은 코드 경로를 가지는 플랫폼 간에 실행할 수 있도록 합니다.
-force-free Unity Pro 라이선스가 설치되어 있어도 시스템에 무료 Unity 라이선스가 설치된 것처럼 에디터를 실행합니다.
-force-low-power-device(macOS 전용) Metal을 사용하는 경우 에디터가 저전력 기기를 사용하도록 하십시오.
-importPackage <pathname> Import the given asset package. No import dialog is shown.
-job-worker-count <N> Unity JobQueue Job Worker Count의 최대 스레드 수를 지정합니다. Unity 스탠드얼론 플레이어의 경우 boot.config에서 job-worker-count=<N>으로 지정할 수도 있습니다.
-logFile <pathname> Unity가 에디터 또는 Windows/Linux/OSX 스탠드얼론 로그 파일을 쓰는 위치를 지정합니다. 콘솔로 출력하려면 -을 경로 이름으로 지정하십시오. Windows에서 - 옵션을 지정하면 기본적으로 콘솔이 아니라 stdout으로 출력됩니다.
-manualLicenseFile <yourulffile> Step three of a three-step process to manually activate a Unity license. For more information, see Finish your Unity license activation from the command line.
-nographics When you run this in batch mode, it does not initialize the graphics device. You can then run automated workflows on machines that don’t have a GPU. Automated workflows only work when you have a window in focus, otherwise you can’t send simulated input commands. -nographics does not allow you to bake GI, because Enlighten requires GPU acceleration.
-noUpm Unity 패키지 관리자를 비활성화합니다.
-openfile <path> Open the project from a path to a scene or package file. Alternatively, you can use the -projectPath argument.
-password <password> Unity 에디터 활성화 중에 비밀번호를 로그인 양식에 입력합니다.
-profiler-enable 플레이어 또는 에디터의 시작을 프로파일링합니다. 이 인자를 플레이어에서 사용하면 빌드 설정의 Autoconnect Profiler 옵션을 활성화한 상태로 플레이어를 빌드하는 것과 동일한 효과를 얻을 수 있습니다.

이 인자를 에디터에서 사용하면 에디터 시작 시 프로파일러 정보를 수집하여 프로파일러 창에 표시합니다.
-profiler-log-file <Path/To/Log/File.raw> This argument sets up the Unity Profiler to stream the profile data to a .raw file on startup. It works for both Players and the Editor.
-profiler-capture-frame-count <NumberOfFrames> This argument sets how many frames the Profiler should capture in a profile when streaming to a .raw file on start-up. It only works on Players.
-profiler-maxusedmemory By default, maxUsedMemory for the Unity Profiler is 16MB for Players and 256MB for the Editor. You can use this argument to set the maxUsedMemory parameter to a custom size at start-up (for example, -profiler-maxusedmemory 16777216). The size is set in bytes.
-projectPath <pathname> Open the project at the given path. If the pathname contains spaces, enclose it in quotes.
-quit Quit the Unity Editor after other commands have finished executing. This can cause error messages to be hidden (but they still appear in the Editor.log file).
-releaseCodeOptimization Enables release code optimization mode, overriding the current default code optimization mode for the session.
-returnlicense Return the currently active license to the license server. For more information, see Returning your license.
-serial <serial> Activate your Unity license with the specified serial number. For more information, see Activating a license from the command line.

Note: When you use this argument, you must also use the -batchmode argument. It is also good practice to specify the -quit argument.
-setDefaultPlatformTextureFormat (Android 전용) 텍스처를 임포트하거나 프로젝트를 빌드하기 전에 기본 텍스처 압축을 원하는 포맷으로 설정합니다. 그러면 텍스처를 원하는 포맷으로 다시 임포트하지 않아도 됩니다. 사용 가능한 포맷은 dxt, pvrtc, atc, etc, etc2, astc입니다.
-silent-crashes 이 옵션을 선택하면 스탠드얼론 플레이어에서 충돌이 발생할 때 나타나는 다이얼로그가 Unity에 표시되지 않습니다. 이 인자는 자동 빌드 또는 테스트에서 플레이어를 실행하려는 경우에 유용합니다. 이러한 경우에는 다이얼로그가 표시되면 자동화가 중단될 수 있습니다.
-stackTraceLogType Allow detailed debugging. All settings allow None, Script Only and Full to be selected (for example, -stackTraceLogType Full).
-username <username> Unity 에디터 활성화 중에 사용자 이름을 로그인 양식에 입력합니다.
-vcsMode <mode> Set the version control mode. Available modes are "Visible Meta Files", "Hidden Meta Files", Perforce, and PlasticSCM. You can use additional flags to fill out the configuration fields for the given version control mode. These flags are based on the Provider.GetActiveConfigFields method. For example, you can use the -vcPerforceUsername, -vcPerforcePassword, -vcPerforceWorkspace and -vcPerforceServer to set the Perforce username, workspace and server fields.

Note: <mode> arguments that contain spaces must be wrapped in double quotes (").
-vcsModeSession <mode> Set the version control mode for this session. Available modes are "Visible Meta Files", "Hidden Meta Files", Perforce, and PlasticSCM. You can use additional flags to fill out the configuration fields for the given version control mode. These flags are based on the Provider.GetActiveConfigFields method. For example, you can use the -vcPerforceUsername, -vcPerforcePassword, -vcPerforceWorkspace and -vcPerforceServer to set the Perforce username, workspace and server fields.

Note: <mode> arguments that contain spaces must be wrapped in double quotes (").
-version Print the version number of the Unity Editor in the command line, without launching the Editor.
-EnableCacheServer Tells Unity to use the newer Accelerator Cache Server. You must also use -cacheServerEndpoint to specify the address.
-cacheServerEndpoint Specifies the endpoint address if you are using the newer Accelerator Cache Server.

Example:

-cacheServerEndpoint 127.0.0.1:10080. This overrides any configuration stored in the Editor Preferences. Use this to connect multiple instances of Unity to different Cache Servers.
-cacheServerNamespacePrefix Set the namespace prefix for the newer Accelerator Cache Server. Used to group data together on the Cache Server.

Example:

-cacheServerNamespacePrefix MyProject
-cacheServerEnableDownload Enable downloading from the newer Accelerator Cache Server.

Example:

-cacheServerEnableDownload true
-cacheServerEnableUpload Enable uploading to the newer Accelerator Cache Server.

Example:

-cacheServerEnableUpload false
-CacheServerIPAddress <host:port> Enables usage of the older (v1) Cache Server, and specifies the IP Address to connect to on startup. This overrides any configuration stored in the Editor Preferences. Use this to connect multiple instances of Unity to different v1 Cache Servers.

예제

프로젝트의 C# 스크립트:

using UnityEditor;
class MyEditorScript
{
     static void PerformBuild ()
     {
         string[] scenes = { "Assets/MyScene.unity" };
         BuildPipeline.BuildPlayer(scenes, ...);
     }
}

다음 커맨드는 Unity를 배치 모드로 실행하고 MyEditorScript.PerformBuild 메서드를 실행한 다음 완료되면 종료합니다.

Windows:

"C:\Program Files\Unity\Editor\Unity.exe" -quit -batchmode -projectPath "C:\Users\UserName\Documents\MyProject" -executeMethod MyEditorScript.PerformBuild

Mac OS:

/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -projectPath ~/UnityProjects/MyProject -executeMethod MyEditorScript.PerformBuild

Unity 에디터 특수 커맨드 라인 인자

특수한 상황에서 또는 Unity 지원팀의 지시에 따라서만 이러한 커맨드 라인 인자를 사용해야 합니다.

커맨드 세부 정보
-enableIncompatibleAssetDowngrade 현재 사용하고 있는 버전의 Unity보다 더 최신 버전의 Unity에서 생성되었으며 호환되지 않는 에셋을 현재 사용 중인 Unity 버전으로 다운그레이드하려고 할 때 사용합니다. 이 설정을 활성화하면 이러한 다운그레이드가 필요한 프로젝트를 열려고 시도하면 Unity는 다운그레이드 할지를 다이얼로그를 통해 묻습니다.
참고: 이 절차는 지원되지 않으며 아주 위험하기 때문에 최후의 수단으로만 사용해야 합니다.

Extra Editor arguments from packages

Additional Editor command line arguments are available when these packages are installed.

패키지 세부 정보
Burst See Burst package documentation.
Test Framework See Unity Test Framework package documentation.

Unity 스탠드얼론 플레이어 커맨드 라인 인자

Unity로 빌드한 스탠드얼론 플레이어 또한 몇몇 커맨드 라인 인자를 파악할 수 있습니다.

커맨드 세부 정보
-batchmode 게임을 “헤드리스” 모드로 실행합니다. 그러면 게임에 아무것도 표시되지 않거나 사용자 입력이 수신되지 않습니다. 이 방법은 네트워크 게임에서 서버를 실행하는 데 유용합니다.
-disable-gpu-skinning Disable GPU skinning at startup.
-force-d3d11 (Windows 전용) 게임이 렌더링에 Direct3D 11을 사용하도록 합니다.
-force-d3d11-singlethreaded DirectX 11.0을 D3D11_CREATE_DEVICE_SINGLETHREADED 플래그 없이 강제로 생성되도록 합니다.
-force-d3d12 (Windows 전용) 게임이 렌더링에 Direct3D 12를 사용하도록 합니다.
-force-device-index Make the Standalone Player use a particular GPU device by passing it the index of that GPU. This option is supported for D3D11, D3D12, Metal, and Vulkan graphics APIs, but is not supported for OpenGL.
-force-metal (macOS only) 스탠드얼론 플레이어가 Metal을 기본 그래픽스 API로 사용하도록 합니다.
-force-glcore 렌더링 시 게임이 OpenGL 코어 프로파일을 사용하도록 합니다. 에디터는 가능한 OpenGL 최상위 버전 및 OpenGL 드라이버에 의해 노출되는 모든 OpenGL 확장자를 사용하려고 합니다. 플랫폼이 지원되지 않을 경우 Direct3D가 사용됩니다.
-force-glcoreXY -force-glcore와 비슷하나, 특정 OpenGL 컨텍스트 버전을 요청합니다. XY에 들어갈 수 있는 값은 다음과 같습니다. 32, 33, 40, 41, 42, 43, 44 또는 45.
-force-vulkan 게임이 렌더링에 Vulkan을 사용하도록 합니다.
-force-clamped 추가 OpenGL 확장자를 확인하지 못하도록 하기 위해 -force-glcoreXY와 함께 사용되며, 같은 코드 경로를 가지는 플랫폼 간에 실행할 수 있도록 합니다.
-force-low-power-device(macOS 전용) 스탠드얼론 플레이어가 저전력 기기를 사용하도록 합니다.
-force-wayland Linux 플레이어 실행 시 실험 단계인 Wayland 지원을 활성화합니다.
-monitor N 특정 모니터에서 스탠드얼론 플레이어를 실행하며, 1기반 인덱스 숫자로 표시됩니다.
-nographics 배치 모드에서 실행할 경우 그래픽스 기기가 초기화되지 않습니다. 이를 통해 자동화 워크플로를 GPU가 없는 장비에서 실행할 수 있게 됩니다.
-nolog 출력 로그를 생성하지 않습니다. 일반적으로 Unity는 로그 파일 폴더에 output_log.txt를 작성합니다. 이 폴더에서 Debug.Log 출력이 인쇄됩니다.
-no-stereo-rendering 스테레오 렌더링을 비활성화합니다.
-parentHWND <HWND> delayed (Windows 전용) Windows 스탠드얼론 애플리케이션을 다른 애플리케이션에 임베드합니다. 이 커맨드를 사용하는 경우 부모 애플리케이션의 윈도우 핸들(‘HWND’)을 Windows 스탠드얼론 애플리케이션에 전달해야 합니다.

-parentHWND 'HWND' delayed를 전달하는 경우 Unity 애플리케이션은 실행 중에 보이지 않습니다. Unity용 Microsoft 개발자 라이브러리SetParent도 애플리케이션에서 호출해야 합니다. Microsoft의 SetParent는 Unity 창을 임베드합니다. Unity 프로세스를 생성하면 Unity 창에 Microsoft STARTUPINFO 구조의 일부로 제공된 포지션과 크기가 유지됩니다.

Unity 창의 크기를 조절하려면 Microsoft의 GetWindowLongPtr 함수에서 GWLP_USERDATA를 확인하십시오. 그래픽스가 초기화되고 크기를 조절해도 안전하면 최저 비트가 1로 설정됩니다. 두 번째로 낮은 비트는 Unity 스플래시 화면 표시가 종료된 후 1로 설정됩니다.
자세한 내용은 EmbeddedWindow.zip 예를 참조하십시오.
-popupwindow 창을 프레임이 없는 팝업 창으로 만듭니다. 이 커맨드는 macOS에서 지원되지 않습니다.
-screen-fullscreen 디폴트 풀스크린 상태를 오버라이드합니다. 이 값은 반드시 0 또는 1이어야 합니다.
-screen-height 디폴트 스크린 높이를 오버라이드합니다. 이 값은 반드시 지원되는 해상도에 해당하는 정수여야 합니다.
-screen-width 디폴트 스크린 폭을 오버라이드합니다. 이 값은 반드시 지원되는 해상도에 해당하는 정수여야 합니다.
-screen-quality 기본 화면 품질을 오버라이드합니다. 사용 예로는 /path/to/myGame -screen-quality Beautiful을 들 수 있습니다. 지원되는 옵션은 품질 설정 이름과 일치합니다.
-single-instance(Linux 및 Windows 전용) 한 번에 하나의 애플리케이션 인스턴스만 실행합니다. 다른 인스턴스가 이미 실행 중인 경우 -single-instance를 통해 다시 시작했을 때 기존의 인스턴스에 포커스가 맞춰집니다.
-vrmode <devicetype> 특정 VR 기기로 실행됩니다. 자세한 내용은 가상 현실을 참조하십시오.
-window-mode(Windows 전용) 전체화면 창 모드를 오버라이드합니다. 허용되는 값은 exclusive 또는 borderless입니다. 자세한 내용은 스탠드얼론 플레이어 설정을 참조하십시오.

유니버설 Windows 플랫폼 커맨드 라인 인자

유니버설 Windows 앱은 디폴트로 커맨드 라인 인자를 허용하지 않기 때문에 인수를 전달하려면 MainPage.xaml.cs/cpp 또는 MainPage.cs/cpp에서 특수 함수를 호출해야 합니다. 예를 들어 다음과 같습니다.

appCallbacks.AddCommandLineArg("-nolog");

이 함수는 appCallbacks.Initialize*() 함수 이전에 호출해야 합니다.

커맨드 세부 정보
-nolog UnityPlayer.log를 생성하지 않습니다.
-force-driver-type-warp DirectX 11.0 드라이버 타입의 WARP 장치를 사용하도록 합니다. 자세한 내용은 Microsoft의 Windows Advanced Rasterization Platform 문서를 참조하십시오.
-force-d3d11-singlethreaded DirectX 11.0을 D3D11_CREATE_DEVICE_SINGLETHREADED 플래그 없이 강제로 생성되도록 합니다.
-force-gfx-direct 단일 스레드 렌더링을 강제로 사용하도록 합니다.
-force-feature-level-9-3 DirectX 11.0 기능 레벨 9.3을 강제로 사용하도록 합니다.
-force-feature-level-10-0 DirectX 11.0 기능 레벨 10.0을 강제로 사용하도록 합니다.
-force-feature-level-10-1 DirectX 11.0 기능 레벨 10.1을 강제로 사용하도록 합니다.
-force-feature-level-11-0 DirectX 11.0 기능 레벨 11.0을 강제로 사용하도록 합니다.

  • “accept-apiupdate” 커맨드 라인 옵션이 Unity 2017.2에 추가됨 NewIn20172

  • “-force-clamped” 커맨드 라인 인자가 Unity 2017.3에 추가됨 NewIn20172

  • 2017.3에서 Tizen 지원 중단됨 NewIn20173

  • Unity 2018.1에서 “noUpm”, “setDefaultPlatformTextureFormat” 및 “CacheServerIPAddress” 커맨드 라인 옵션 추가됨 NewIn20181

  • “Application.isBatchMode” operator added in 2018.2 NewIn20182

Safe Mode
배치 모드 및 빌트인 코루틴 호환성