Build Player 파이프라인
내부 처리/Behind the Scenes

커맨드라인 인수

일반적으로는 Unity를 시작할 때 바탕 화면에서 아이콘을 더블클릭함으로써 시작하지만 커맨드라인에서 실행(즉 MacOS 터미널 또는 Windows 명령 프롬프트)할 수도 있습니다. 이렇게 시작하면 Unity는 시작할 때 명령이나 정보를 받을 수있어 테스트 제품, 자동 빌드 또는 기타 프로덕션 작업에 매우 유용합니다.

MacOS 환경에서 Terminal에 다음과 같이 타이핑을 하여 Unity를 실행 시킬수 있습니다. : -

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



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


 "C:\Program Files (x86)\Unity\Editor\Unity.exe"

Standalone Unity 게임은 비슷한 방법으로 실행 될 수 있습니다.

Activating Unity Silently

MacOS 환경에서 Terminal에 다음과 같이 타이핑을 하여 Unity를 실행 시킬수 있습니다. : -

 /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -serial    R3-XXXX-XXXX-XXXX-XXXX-XXXX -username 'JoeBloggs@example.com' -password 'MyPassw0rd'

Windows 환경의 경우,

 "C:\Program Files\Unity\Editor\Unity.exe" -quit -batchmode -serial    R3-XXXX-XXXX-XXXX-XXXX-XXXX -username "JoeBloggs@example.com" -password "MyPassw0rd"


 "C:\Program Files (x86)\Unity\Editor\Unity.exe" -quit -batchmode -serial    R3-XXXX-XXXX-XXXX-XXXX-XXXX -username "JoeBloggs@example.com" -password "MyPassw0rd"

위에서 언급한대로, 에디터 이외에 빌드하는 게임도 시작시 추가 명령 및 정보를 선택적으로 제공할 수 있습니다. 이것은 다음의 커맨드라인 인수를 사용하여 수행됩니다 : -

-assetServerUpdate <IP[:port] projectName username password [r <revision>]> 강제로 IP:port_에서 지정된 Asset Server 안의 프로젝트 업데이트를 행한다. 포트 정보는 선택적이며 없는 경우 표준 포트(10733)를 사용. 이 명령은 -projectPath_ 인수와 함께 올바른 프로젝트에서 작업하는 것을 검증한 후 사용하는 것이 좋습니다. 만약 프로젝트 이름이 없으면 Unity에서 가장 최근에 열린 파일이 사용됩니다. 만약 -projectPath 프로젝트가 없으면 프로젝트가 새로 만들어집니다.
-batchmode Batch 모드에서 Unity를 실행합니다. 이것은 항상 다른 커맨드라인 인수와 함께 사용해야 하며 팝업창이 표시되어 사람이 개입할 필요가 없습니다. 만약 예외 오류가 스크립트 코드를 실행할 때 발생하거나 에셋 서버 업데이트가 실패하는 등 기타​​ 처리가 실패했을 경우에 Unity는 즉시 1을 반환하고 종료합니다. 배치 모드에서 Unity는 최소한의 로그 출력을 콘솔로 보내는 것에 유의하십시오. 그러나 [Log Files]에는 완전한 로그 정보가 포함됩니다. 프로젝트를 Batch 모드에서 프로젝트를 열 때 에디터도 같은 프로젝트를 여는 것은 지원되지 않는 점에 유의하십시오. Unity의 인스턴스는 동시에 한 개만 실행할 수 있습니다.
-buildLinux32Player <pathname> 32-bit Standalone Linux player를 빌드 (e.g. -buildLinux32Player path/to/your/build)
-buildLinux64Player <pathname> 64-bit Standalone Linux player를 빌드 (e.g. -buildLinux64Player path/to/your/build)
-buildLinuxUniversalPlayer <pathname> 32-bit 및 64-bit를 결합시킨 Linux player를 빌드 (e.g. -buildLinuxUniversalPlayer path/to/your/build)
-buildOSXPlayer <pathname> 32-bit Standalone Mac OS X player 빌드 (e.g. -buildOSXPlayer path/to/your/build.app)
-buildOSX64Player <pathname> 64-bit 독립형 Mac OS X player 빌드 (e.g. -buildOSX64Player path/to/your/build.app)
-buildOSXUniversalPlayer <pathname> 32-bit 및 64-bit를 결합시킨 Mac OS X player를 빌드 (e.g. -buildOSXUniversalPlayer path/to/your/build.app).
-buildTarget <name> 프로젝트가 로드되기 전에 올바른 빌드 타겟을 선택할 수 있습니다. 선택 가능한 옵션 : win32, win64, osx, linux, linux64, ios, android, web, webstreamed, webgl, xbox360, xboxone, ps3, ps4 및 psp2, wsa, wp8, bb10, tizen, samsungtv.
-buildWebPlayer <pathname> 웹 플레이어를 빌드 (e.g. -buildWebPlayer path/to/your/build).
-buildWebPlayerStreamed <pathname> 스트리밍 웹 플레이어를 빌드 (e.g. -buildWebPlayerStreamed path/to/your/build)
-buildWindowsPlayer <pathname> 32-bit Standalone Windows 플레이어를 빌드 ( e.g. -buildWindowsPlayer path/to/your/build.exe)
-buildWindows64Player <pathname> 64-bit Standalone Windows 플레이어를 빌드 ( e.g. -buildWindows64Player path/to/your/build.exe)
-cleanedLogFile Detailed debugging feature. StackTraceLogging allows features to be controlled to allow detailed logging. All settings allow None, Script Only and Full to be selected.
-createProject <pathname> 특정 경로에 빈 프로젝트를 생성
-editorTestsCategories Filter editor tests by categories. Separate test categories with a comma.
-editorTestsFilter Filter editor tests by names. Separate test names with a comma.
-editorTestsResultFile Path where the result file should be placed. If the path is a folder, a default file name will be used. If not specified, the results will be places in project’s root folder.
-executeMethod <ClassName.MethodName> 프로젝트가 열리고 옵션에 해당 asset server 업데이트가 수행된 직후 Unity가 시작되자 마자 이 static 함수가 호출 됩니다. 이 기능에 의해 CI(지속적인 통합), 유닛 테스트, 빌드 생성, 데이터 준비 등에 사용할 수 있습니다. 만약 커맨드라인 과정에서 에러를 반환하길 원한다면, 반환값 1로 유니티를 종료하는 예외를 던지거나 0이 아닌 코드로EditorApplication.Exit를 호출할 수 있습니다. 만약 파라미터를 넘기길 원한다면 커맨드라인에 추가하고 System.Environment.GetCommandLineArgs을 사용하여 메소드 내에서 그것을 다시 찾을 수 있습니다. -executeMethod를 사용하기 위해, Editor 폴더 안에 스크립트를 위치시켜야 합니다. 실행될 메소드는 static__으로 정의되어 있어야 합니다.| |-exportPackage <exportAssetPath1 exportAssetPath2 ExportAssetPath3 exportFileName>|특정 경로(또는 다중 경로)에 익스포트. exportAssetPath은 Unity 프로젝트에서 익스포트할 폴더(Unity 프로젝트의 루트 디렉터리에 상대적인 경로 지정)이며, exportFileName는 패키지 이름입니다. 현재 이 옵션은 폴더 전체 단위로만 익스포트할 수 있습니다. 일반적으로 이 명령은 -projectPath 인수를 써서 사용해야 합니다.| |-force-d3d9 (Windows only)| 렌더링 시 Direct3D 9를 사용합니다. 이것은 디폴트 값이기 때문에 전달하는 의미가 없습니다. | |-force-d3d11 (Windows only)| 렌더링 시 Direct3D 9를 사용합니다. 이것은 디폴트 값이기 때문에 전달하는 의미가 없습니다. | |-force-glcore (Windows only)| 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, Direct3D is used. | |-force-glcoreXY (Windows only)| Similar to -force-glcore but request a specific OpenGL context version. Accepted values for XY: 32, 33, 40, 41, 42, 43, 44 or 45. | |-force-gles (Windows only)| Make the editor use OpenGL for Embedded Systems for rendering. The editor tries to use the best OpenGL ES version available and all OpenGL ES extensions exposed by the OpenGL drivers. | |-force-glesXY (Windows only)| Similar to -force-gles but request a specific OpenGL ES context version. Accepted values for XY: 30, 31 or 32. | |-force-clamped (Windows only)| Used together with -force-glcoreXY, but it prevents checking for additional OpenGL extensions allowing to run between platforms with the same code paths | |-force-free| Unity Pro 라이센스가 설치되어 있어도 컴퓨터에 무료 Unity 라이센스가 있는 것처럼 에디터를 실행시킵니다.| |-importPackage <pathname>|특정 패키지를 임포트. 임포트 다이얼로그 상자는 표시되지 않습니다.| |-logFile <pathname>|에디터 또는 Windows/Linux/OSX Standalone의 로그 파일이 기록되는 위치를 지정합니다.| |-nographics|배치 모드에서 실행할 때 그래픽 디바이스에 대한 모든 것을 초기화하지 마십시오. 이는 자동화된 워크 플로우를 GPU가 없는 시스템에서 실행할 수 있게 됩니다 (자동화 된 워크 플로우는 창에 포커스가있을 때만 작동하고 그렇지 않은 경우 시뮬레이션 된 입력 커맨드를 보낼 수 없습니다). Please note -nographics will not allow you to bake GI on OSX, since Enlighten requires GPU acceleration.| |-password <password>|The password of the user - needed when activating. This option is new in Unity 5.1.| |-projectPath <pathname>|특정 경로에서 프로젝트 열기| |-quit|다른 명령 실행이 끝난 후 Unity 에디터를 종료합니다. 이렇게 하면 오류 메시지가 가려질 수 있음을 유의하시기 바랍니다.(Editor.log file 에서는 확인 할 수 있습니다.)| |-returnlicense|현재 유효한 라이센스를 라이센스 서버에 반환합니다. Unity가 라이센스 서버에게 연락을 취해야 하기 때문에 라이센스 파일이 삭제될 때까지 몇 분 걸립니다. 이 옵션은 Unity 5.0에 추가되었습니다.| |-runEditorTests|Run editor tests from the project. This argument requires projectPath__ and it’s good to run it with batchmode argument. quit is not required as the editor will automatically close down after the run is finished.
-serial <serial> 지정된 시리얼 키로 Unity 인증을 실시합니다. 만약 Unity 자동 인증으로 사용하는 경우, 실행된 후 Unity를 종료하기 위해 “-batchmode -quit” 인수를 동일하게 전달할 수 있도록 하십시오. 또한 Unity가 라이센스 서버와 연락해야 하기 때문에 라이센스 파일을 생성하는 데 몇 초가 걸릴 수도 있습니다. 라이센스 폴더가 존재하고, 이 인수 파라미터와 함께 Unity를 시작하기 전에 폴더에 대한 액세스 권한이 맞는지 확인하십시오. 인증에 실패한 경우, Editor.log 파일에서 원인을 파악하십시오. 이 옵션은 Unity 5.0부터 도입되었습니다.
-silent-crashes crash 대화상자를 표시하지 않습니다.

사용 예

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


// JavaScript example
static void PerformBuild ()
{
    string[] scenes = { "Assets/MyScene.unity" };
    BuildPipeline.BuildPlayer(scenes, ...);
}

Unity를 배치 모드로 실행하고 MyEditorScript.MyMethod 함수를 실행 후 완료되면 종료합니다.

Windows: C:\program files\Unity\Editor\Unity.exe -quit -batchmode -executeMethod MyEditorScript.MyMethod

Mac OS: /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -executeMethod MyEditorScript.MyMethod

Unity를 배치 모드로 실행합니다. 주어진 프로젝트 경로를 사용하여 asset server로 부터 업데이트합니다. 모든 에셋을 다운로드하고 asset server에서 임포트된 후, 주어진 메소드를 실행합니다. 메소드 실행이 완료된 후 Unity를 자동으로 종료합니다.

/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -projectPath ~/UnityProjects/AutobuildProject -assetServerUpdate 192.168.1.1 MyGame AutobuildUser l33tpa33 -executeMethod MyEditorScript.PerformBuild -quit

Unity Editor special command line arguments

These should only be used under special circumstances, or when directed by Support.

-enableIncompatibleAssetDowngrade Use when you have content made by a newer, incompatible version of Unity, that you want to downgrade to work with your current version of Unity. When enabled, Unity will present you with a dialog asking for confirmation of such a downgrade if you attempt to open a project that would require it. This procedure is unsupported and highly risky, and should only be used as a last resort.

Unity Standalone 플레이어 커맨드라인 인수

Unity로 빌드한 Standalone 플레이어는 커맨드라인 인수를 읽을 수 있습니다 :

-adapter N (Windows only) 다른 디스플레이에서 전체 화면으로 실행하는 것을 허용합니다. 여기서 N은 디스플레이 번호를 가리킵니다. 대부분의 경우 어댑터 및 비디오 카드는 1:1의 관계입니다. 멀티 헤드 대응 카드의 경우(하나의 카드에서 여러 모니터를 조작) 각각의 “head”는 어댑터 자신인 경우가 있습니다.
-batchmode 게임을 “headless”모드로 실행합니다. 게임은 아무것도 표시하지 않고 사용자 입력을 받아들이지 않습니다. 이것은 네트워크 게임에서 서버 실행에 가장 유용합니다.
-force-d3d9 (Windows only) Direct3D 9를 사용합니다. 이것은 디폴트 값이기 때문에 전달하는 의미가 없습니다.
-force-d3d9-ref (Windows only) Direct3D의 “Reference”소프트웨어 렌더러에서 실행합니다. 이 작업을 위해서는 DirectX SDK가 설치되어 있어야 합니다. 자동 테스트 제품에서 어떤 그래픽 카드가 사용되고 있어도 렌더링이 동일하도록 보장해야 하는 경우 가장 사용합니다.
-force-d3d11 (Windows only) Direct3D 11을 사용합니다.
-force-d3d11-no-singlethreaded DirectX 11.0을 D3D11_CREATE_DEVICE_SINGLETHREADED 플래그 없이 생성 되도록 합니다.
-force-glcore (Windows only) Make the editor use OpenGL core profile for rendering. The editor tries to use on the best OpenGL version available and all OpenGL extensions exposed by the OpenGL drivers. If the platform isn’t supported, Direct3D is used.
-force-glcoreXY (Windows only) Similar to -force-glcore but request a specific OpenGL context version. Accepted values for XY: 32, 33, 40, 41, 42, 43, 44 or 45.
-force-clamped (Windows only) Used together with -force-glcoreXY, but it prevents checking for additional OpenGL extensions allowing to run between platforms with the same code paths
-nographics 배치 모드로 실행하는 경우, 모든 그래픽 장치의 초기화를 하지 않습니다. 이에 따라 GPU를 갖고 있지 않은 시스템에서 자동화된 워크 플로우를 실행하는 것이 가능합니다.
-nolog (Linux & Windows only) 로그를 출력하지 않습니다. 일반적으로output_log.txt가 게임 실행이 가능한 파일 옆, 즉, Debug.Log가 출력되는 * _Data폴더에 기록됩니다.
-popupwindow 창은 (프레임이 없는) 팝업 창으로 만들어집니다.
-window-mode mode (Windows only) Overrides the default behavior of the Fullscreen Mode setting. Possible options are: exclusive, borderless.
-screen-fullscreen 기본 화면 폭을 덮어 씁니다. This must be 0 or 1.
-screen-height 기본 화면 높이를 덮어 씁니다. 지원되는 해상도의 정수여야 합니다.
-screen-width 기본 화면 폭을 덮어 씁니다. 지원되는 해상도의 정수여야 합니다.
-screen-quality 기본 화면 품질을 덮어 씁니다. 사용 예로는/path/to/myGame-screen-quality Beautiful
-show-screen-selector Forces the screen selector dialog to be shown.
-single-instance (Linux & Windows only) 동시에 실행할 수 있는 게임의 인스턴스는 1개로 합니다. 만약 다른 인스턴스가 이미 실행되어 있는 경우 -single-instance을 사용하여 다시 시작하면 기존의 것에 포커스가 맞춰집니다.
-parentHWND <HWND> (Windows only) Embeds Windows Standalone application into another application, you have to pass parent application’s window handle to Windows Standalone application. See this example EmbeddedWindow.zip for more information.

Windows 스토어 : 커맨드라인 인수

Windows 스토어 앱은 기본적으로 커맨드라인 인수를 받지 않기 때문에 전달하려면 App.xaml.cs/cpp 또는 App.cs/cpp에서 특별한 함수를 호출해야 합니다. 예를 들어,

appCallbacks.AddCommandLineArg("-nolog");

| | | |:—|:—| |-nolog| UnityPlayer.log를 생성하지 않습니다.| |-force-driver-type-warp| DirectX 11.0 WARP를 사용 하도록 합니다(자세한 내용은 http://msdn.microsoft.com/en-us/library/gg615082.aspx)| |-force-d3d11-no-singlethreaded| DirectX 11.0을 D3D11_CREATE_DEVICE_SINGLETHREADED 플래그 없이 생성 되도록 합니다.| |-force-gfx-direct| 단일 스레드 렌더링을 사용하도록 합니다.| |-force-feature-level–9–1| DirectX 11.0 기능 레벨 9.1을 사용 하도록 합니다.| |-force-feature-level–9–2| DirectX 11.0 기능 레벨 9.2을 사용 하도록 합니다.| |-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.1을 사용 하도록 합니다.| Windows 환경의 경우, Windows 환경의 경우, …을 명령 프롬프트에서 수행합니다. On PC you can use Command prompt: Windows 환경의 경우,

옵션

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

Build Player 파이프라인
내부 처리/Behind the Scenes