ビルドプレイヤーパイプライン
アセットの内部処理

コマンドライン引数

一般的には、Unity を起動する時はデスクトップからアイコン起動しますが、コマンドライン実行(すなわち MacOS ターミナルまたは Windows コマンドプロンプト)も可能です。こうして起動すると Unity は起動時にコマンドや情報を受け取ることが出来てテストスイート、自動ビルド、またはその他の本番タスクに非常に役立ちます。

MacOS でターミナルから Unity を起動するには次の通りに入力します。

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



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


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

スタンドアロン Unity ゲームは同様の方法で起動します。

ターミナルで Unity のアクティベート

MacOS でターミナルから Unity をアクティベートするには次の通りに入力します。

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

… 64 ビットの 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 バッチモードで Unity を実行。これは常に他のコマンドライン引数との組み合わせで使用すべきでポップアップウインドウが表示され人の手が介在する必要がありません。もし例外エラーがスクリプトコード実行時に発生するか、アセットサーバーの更新が失敗するか、またはその他の処理が失敗した場合に Unity は直ちに戻り値 1 で終了します。バッチモードでは Unity は最小限のログ出力をコンソールに送信することに注意してください。しかし Log Files には完全なログ情報が含まれます。プロジェクトをバッチモードでプロジェクトを開くときにエディターも同じプロジェクトを開くことはサポートされていないことに注意してください。Unity のインスタンスは同時にひとつしか実行することが出来ません。
-buildLinux32Player <pathname> 32-bit スタンドアロン Linux player をビルド(例えば、-buildLinux32Player path/to/your/build)
-buildLinux64Player <pathname> 64-bit スタンドアロン Linux player をビルド(例えば、-buildLinux64Player path/to/your/build)
-buildLinuxUniversalPlayer <pathname> 32-bit および 64-bit を組み合わせた Linux player をビルド (e.g. -buildLinuxUniversalPlayer path/to/your/build)
-buildOSXPlayer <pathname> 32-bit スタンドアロン Mac OS X player をビルド(例えば、-buildOSXPlayer path/to/your/build.app)
-buildOSX64Player <pathname> 64-bit スタンドアロン Mac OS X player をビルド(例えば、-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、tizen、samsungtv。
-buildWebPlayer <pathname> Web Player をビルド (例えば、-buildWebPlayer path/to/your/build).
-buildWebPlayerStreamed <pathname> ストリーミング Web Player をビルド (例えば、-buildWebPlayerStreamed path/to/your/build)
-buildWindowsPlayer <pathname> 32bit スタンドアロン Windows プレイヤーをビルド(例えば、-buildWindowsPlayer path/to/your/build.exe )
-buildWindows64Player <pathname> 64bit スタンドアロン Windows player をビルド(例えば、-buildWindows64Player path/to/your/build.app )
-cleanedLogFile 詳細なデバッグ機能。StackTraceLogging には詳細なログを可能にする機能があります。None、Script Only、 Full から選択可能。
-createProject <pathname> 特定のパスに空のプロジェクトを作成
-editorTestsCategories エディターをカテゴリーでフィルタリングします。テストカテゴリーはカンマで区切ること。
-editorTestsFilter エディターを名前でフィルタリングします。テスト名はカンマで区切ること。
-editorTestsResultFile 結果ファイルが置かれるパス。パスがフォルダーの場合は、デフォルトファイル名が使用されます。指定されていない場合は、結果はプロジェクトの root フォルダーに置かれます。
-executeMethod <ClassName.MethodName> この static メソッドを Unity のスタート直後に実行、すなわちプロジェクトが開かれて、オプションにあたるアセットサーバーの更新が行われた直後です。これにより継続的インテグレーション、ユニットテストの実施、ビルド作成、データ準備等々に使用できます。もしコマンドライン処理のエラー結果がほしい場合は、例外を投げて Unity が戻り値 1 で終了するか、EditorApplication.Exit をコールしてゼロ以外の戻り値のコードとします。もし引数を渡したい場合コマンドラインに追加して System.Environment.GetCommandLineArgs を使用して取得します。-executeMethod を使用するにあたって、呼び出すスクリプトのメソッドは Editor フォルダー内になければいけません。さらにメソッドは static である必要があります。
-exportPackage <exportAssetPath1 exportAssetPath2 ExportAssetPath3 exportFileName> 指定したパス(または複数の指定したパス)にエクスポート。exportAssetPath は Unity プロジェクトからエクスポートするフォルダー(Unity プロジェクトのルートディレクトリに対する相対パス指定)であり、exportFileName はパッケージの名前です。現在、このオプションはフォルダー全体の単位でしかエクスポート出来ません。通常このコマンドは -projectPath 引数を使って使用する必要があります。
-force-d3d9 (Windows only) レンダリングで Direct3D 9 を使用します。通常、グラフィックス API はプレイヤー設定での値に依存します(デフォルトは D3D11 です)。
-force-d3d11 (Windows only) レンダリングで Direct3D 9 を使用します。通常、グラフィックス API はプレイヤー設定での値に依存します(デフォルトは D3D11 です)。
-force-glcore (Windows のみ) レンダリングに OpenGL 3/4 コアプロファイルを使用します。エディターは、OpenGL ドライバから利用可能でベストな OpenGL バージョンを選び、すべての OpenGL 拡張を表示しようとします。プラットフォームで OpenGL がサポートされていない場合は、Direct3D を使用します。
-force-glcoreXY (Windows のみ) -force-glcore と同じですが、リクエストする OpenGL のバージョンを指定することができます。XYに指定できる値は、「32、33、40、41、42、43、44、54」です。
-force-gles (Windows のみ) レンダリングでシステムに埋め込まれている OpenGL を使用します。エディターは、OpenGL ドライバから利用可能でベストな OpenGL ES バージョンを選び、すべての OpenGL ES 拡張を表示しようとします。
-nographics (Linux & Windows only) -force-gles と同じですが、リクエストする OpenGL ES のコンテキストバージョンを指定することができます。XYに指定できる値は、「30、31、32」です。
-force-clamped (Windows のみ) -force-glcoreXY と一緒に使用することにより、同じコードパスのプラットフォーム間で実行を許可する独自に追加された OpenGL 拡張をチェックするのを抑えることができます。
-force-free Unity Pro ライセンスがインストールされていても、マシン上に無料 Unity ライセンスがあるかのようにエディターを動作させます。
-importPackage <pathname> 特定のパッケージをインポート。インポートダイアログは表示されません。
-logFile <pathname> エディターまたは Windows/Linux/OSX スタンドアロンのログファイルが書き込みされる場所を指定。
-nographics バッチモードを実行する時、グラフィックスデバイスの初期化を行わないようにします。このパラメーターによって、GPU のないマシンで自動化されたワークフローを実行出来るようになります(自動化されたワークフローは、ウインドウにフォーカスがあるときのみ機能し、そうでない場合はシミュレートされた入力コマンドは送信出来ません)。Enlighten は GPU アクセラレーション が必須なため、OSX上で -nographics コマンドを使用した GI のベイクは行えません。
-password <password> アクティベーションで使用されるユーザーのパスワード。Unity 5.1 から追加されました。
-projectPath <pathname> 開く Unity プロジェクトのパス
-quit 他のコマンド実行の終了後に Unity エディターを終了します。これによりエラーメッセージが隠される場合があることに注意してください。
-returnlicense 現在有効なライセンスをライセンスサーバーに返します。Unity がライセンスサーバーと連絡を取る必要があるため、ライセンスファイルが削除されるまで数分を要します。このオプションは Unity 5.0 で追加されました。
-runEditorTests エディターテストをプロジェクトから実行します。この引数は projectPath を必要とし、batchmode 引数と一緒に実行できます。実行が終了するときエディターは自動的に閉じるので、quit は必要ではありません。
-serial <serial> 指定されたシリアルキーで Unity の認証を行います。もし Unity の自動認証として使用する場合、実行された後、Unity を終了するために “-batchmode -quit” 引数を同様に渡すようにしてください。また、Unity がライセンスサーバーと連絡をとる必要があるため、ライセンスファイルを作成するまでに数秒かかるかもしれません。ライセンスフォルダーが存在し、この引数パラメーター付きでUnityを起動する前にフォルダーへのアクセス権が適切か確認してください。認証に失敗した場合は Editor.log ファイルで原因を把握してください。このオプションは Unity 5.0 から導入されました。
-silent-crashes クラッシュダイアログを表示しません。

使用例

// 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 エディターの特別なコマンドライン引数

これらの引数は、特殊な環境下またはサポート側より指示されたときのみ使用してください。

-enableIncompatibleAssetDowngrade 新規でコンテンツを作成したとき Unity の最新バージョンと互換性がなく、現在のバージョンにダウングレードしたいときに使用します。有効にすると、Unity は必要とするプロジェクトを開こうとした場合、ダウングレード等の確認を求めるダイアログボックスを表示します。この手順はサポートされていないためリスクが高く、最後の手段としてのみ使ってください。

Unity スタンドアロンプレイヤーのコマンドライン引数

Unityでビルドしたスタンドアロンプレイヤーはコマンドライン引数を読み取ることができます。

-adapter N (Windows のみ) 別のディスプレイでフルスクリーン実行することを許容し、ここで N はディスプレイ番号を指します。多くの場合アダプターとビデオカードは 1:1 の関係です。マルチヘッド対応のカードの場合(ひとつのカードから複数モニターを操作)、各々の “ヘッド” はアダプター自身の場合があります。
-batchmode ゲームを “headless” モードで実行します。ゲームは何も表示せず、ユーザー入力を受付しません。これはネットワークゲーム でのサーバー実行に最も便利です。
-force-d3d9 (Windows only) レンダリングで Direct3D 9 を使用します。通常、グラフィックス API はプレイヤー設定での値に依存します(デフォルトは D3D11 です)。
-force-d3d9-ref (Windows のみ) 強制的にDirect3Dの “Reference” ソフトウェアレンダラーで実行します。正しく動作するためには DirectX SDK がインストールされている必要があります。自動的なテストスイートで、グラフィックスカードにどれが使用されていてもレンダリングが同一であるようにする場合、最も役立ちます。
-force-d3d11 (Windows only) 強制的にレンダリングでDirect3D 11を使用します。
-force-d3d11-no-singlethreaded DirectX 11.0 を D3D11_CREATE_DEVICE_SINGLETHREADED フラグなしで作成するように強制。
-force-glcore (Windows のみ) エディターがレンダリングに OpenGL コアプロファイルを使用します。エディターは、OpenGL ドライバから利用可能でベストな OpenGL バージョンを選び、すべての OpenGL 拡張を表示しようとします。プラットフォームで OpenGL がサポートされていない場合は、Direct3D を使用します。
-force-glcoreXY (Windows のみ) -force-glcore と同じですが、リクエストする OpenGL のバージョンを指定することができます。XYに指定できる値は、「32、33、40、41、42、43、44、54」です。
-force-clamped (Windows のみ) -force-glcoreXY と一緒に使用することにより、同じコードパスのプラットフォーム間で実行を許可する独自に追加された OpenGL 拡張をチェックするのを抑えることができます。
-nographics バッチモードで実行している場合、すべてのグラフィックデバイスの初期化を行いません。これによってGPUを持っていないマシンで自動化されたワークフローを実行することが可能になります。
-nolog (Linux と Windows のみ) ログ出力しない。通常は output_log.txt がゲーム実行可能ファイルの隣、すなわちDebug.Log が出力される *_Data フォルダーに書き込まれます。
-popupwindow ウインドウは(フレームなしの)ポップアップウインドウとして作成されます。
-window-mode mode (Windows のみ) フルスクリーンモード設定のデフォルトビヘイビアを上書きします。可能なオプションは、exclusive と borderless
-screen-fullscreen デフォルトのフルスクリーン状態を上書きします。値は数値で 0 か 1 となります。(0 = false、1 = true)
-screen-height デフォルトのスクリーン高さを上書きします。サポートされている解像度の整数である必要があります。
-screen-width デフォルトのスクリーン幅を上書きします。サポートされている解像度の整数である必要があります。
-screen-quality デフォルトのスクリーン品質を上書きします。使用例としては: /path/to/myGame -screen-quality Beautiful
-show-screen-selector 強制的に screen selector のダイアログボックスを表示させます。
-single-instance (Linux と Windows のみ) 同時に実行できるゲームのインスタンスは1つのみとします。もし他のインスタンスがすでに実行されている場合に、 -single-instance を使用して再度起動すると既存のものにフォーカスがあたるのみです。
-parentHWND <HWND> (Windows のみ) 別のアプリケーションに Windows Standalone を埋め込みます。 親アプリケーションのウィンドウハンドルを Windows Standalone に渡す必要があります。この例に関する詳しい情報は EmbeddedWindow.zip を参照してください。

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.0 を強制| … 64 ビットの Windows での入力は … 32 ビットの Windows での入力は … をコマンドプロンプトから行います。 Windows 上ではコマンドプロンプトを使用します。 … 32 ビットの Windows での入力は

オプション

appCallbacks.Initialize*() 関数の前に呼び出しする必要があります。

ビルドプレイヤーパイプライン
アセットの内部処理