ビルドプレイヤーパイプライン
Applying defaults to assets by folder

コマンドライン引数

You can run Unity from the command line (from the macOS Terminal or the Windows Command Prompt).

On macOS, type the following into the Terminal to launch Unity:

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

On Windows, type the following into the Command Prompt to launch Unity:

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

When you launch it like this, Unity 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 games.

サイレントモードで Unity を起動

On macOS, type the following into the Terminal to silently launch Unity:

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

注意 Jenkins のような継続的インテグレーション (CI) ツールを使って、コマンドラインを通してアクティベーションする場合、 WindowServer エラーを避けるために -nographics フラグを加えてください。

On Windows, type the following into the Command Prompt to silently launch Unity:

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

Returning the license to the license server

On macOS, type the following into the Terminal to return the license:

/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -returnlicense

On Windows, type the following into the Command Prompt to return the license:

"C:\Program Files\Unity\Editor\Unity.exe" -quit -batchmode -returnlicense

オプション

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

コマンド 説明
-assetServerUpdate <IP[:port] projectName username password [r <revision>]> Force an update of the project in the Asset Server given by IP:port. The port is optional, and if not given it is assumed to be the standard one (10733). It is advisable to use this command in conjunction with the -projectPath argument to ensure you are working with the correct project. If you don’t give a project name, then the command line uses the last project opened by Unity. If no project exists at the path -projectPath gives, then the command line creates one automatically.
-batchmode Run Unity in batch mode. You should always use this in conjunction with the other command line arguments, because it ensures no pop-up windows appear and eliminates the need for any human intervention. 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.
-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> Allows the selection of an active build target before loading a project. Possible options are:
standalone, Win, Win64, OSXUniversal, Linux, Linux64, LinuxUniversal, iOS, Android, Web, WebStreamed, WebGL, XboxOne, PS4, PSP2, WindowsStoreApps, Switch, N3DS, tvOS, PSM.
-buildWindowsPlayer <pathname> 32bit スタンドアロン Windows プレイヤーをビルド(例えば、-buildWindowsPlayer path/to/your/build.exe
-buildWindows64Player <pathname> 64bit スタンドアロン Windows player をビルド(例えば、-buildWindows64Player path/to/your/build.exe
-stackTraceLogType Detailed debugging feature. StackTraceLogging allows you to allow detailed logging. All settings allow None, Script Only and Full to be selected. (for example, -stackTraceLogType Full)
-CacheServerIPAddress <host:port> Connect to the specified Cache Server on startup, overriding any configuration stored in the Editor Preferences. Use this to connect multiple instances of Unity to different Cache Servers.
-createProject <pathname> 特定のパスに空のプロジェクトを作成
-editorTestsCategories エディターをカテゴリーでフィルタリングします。テストカテゴリーはカンマで区切ってください。
-editorTestsFilter エディターを名前でフィルタリングします。テスト名はカンマで区切ってください。
-editorTestsResultFile Path location to place the result file. If the path is a folder, the command line uses a default file name. If not specified, it places the results in the project’s root folder.
-executeMethod <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 continous 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 to the Unity project root) to export from the Unity project, and exportFileName is the package name. Currently, this option only exports whole folders at a time. You normally need to use this command with the -projectPath argument.
-force-d3d11 (Windows only) レンダリングで Direct3D 11 を使用します。通常、グラフィックス API はプレイヤー設定での値に依存します(デフォルトは D3D11 です)。
-force-device-index When using Metal, make the Editor use a particular GPU device by passing it the index of that GPU (macOS only).
-force-gfx-metal Make the Editor use Metal as the default graphics API (macOS only).
-force-glcore レンダリングに OpenGL 3/4 コアプロファイルを使用します。エディターは、利用可能でベストな OpenGL バージョンと、OpenGL ドライバがアクセスできるすべての OpenGL 拡張の利用を試みます。そのプラットフォームがサポートされていない場合は、Direct3D を使用します。
-force-glcoreXY -force-glcore と同じですが、OpenGL のバージョンを指定することができます。XY に指定できる値は、「32、33、40、41、42、43、44、54」です。
-force-gles (Windows のみ) レンダリングで端末の OpenGL を使用します。エディターは、ベストな OpenGL ES バージョンと、OpenGL ドライバから利用可能なすべての OpenGL ES 拡張の利用を試みます。
-force-glesXY (Windows のみ) -force-gles と同じですが、OpenGL ES のコンテキストバージョンをリクエストすることができます。XY に指定できる値は、「30、31、32」です。
-force-clamped -force-glcoreXY と一緒に使用することにより、追加された OpenGL 拡張の確認を避けることができます。これにより、同じコードパスで複数のプラットフォーム間で実行できます。
-force-free Unity Pro ライセンスがインストールされていても、マシン上に無料 Unity ライセンスがあるかのようにエディターを動作させます。
-force-low-power-device When using Metal, make the Editor use a low power device (macOS only).
-importPackage <pathname> 特定のパッケージをインポート。インポートダイアログは表示されません。
-logFile <pathname> Specify where the Editor or Windows/Linux/OSX standalone log file are written. If the path is ommitted, OSX and Linux will write output to the console. Windows uses the path %LOCALAPPDATA%\Unity\Editor\Editor.log as a default.
-nographics When running in batch mode, do not initialize the graphics device at all. This makes it possible to run your automated workflows on machines that don’t even have a GPU (automated workflows only work when you have a window in focus, otherwise you can’t send simulated input commands). Note that -nographics does not allow you to bake GI, because Enlighten requires GPU acceleration.
-noUpm Disables the Unity Package Manager.
-password <password> 起動時に必要なユーザーパスワード。
-projectPath <pathname> 開く Unity プロジェクトのパス
-quit コマンド実行後に Unity エディターを終了します。これによりエラーメッセージが隠される場合があることに注意してください (ただし、エラーメッセージは Editor.log ファイルには保存されます)。
-returnlicense 現在有効なライセンスをライセンスサーバーに返します。Unity がライセンスサーバーと通信する必要があるため、ライセンスファイルが削除されるまで数秒をかかります。
-runEditorTests エディターテストをプロジェクトから実行します。この引数は projectPath を必要とし、 batchmode 引数と一緒に実行できます。実行が終了するときエディターは自動的に閉じるので、 quit は必要ありません。
-serial <serial> 指定されたシリアルキーで Unity の認証を行います。もし Unity の自動認証として使用する場合、実行された後、Unity を終了するために -batchmode-quit 引数を同時に渡すようにしてください。また、Unity がライセンスサーバーと通信する必要があるため、ライセンスファイルを作成するまでに数秒かかるかもしれません。ライセンスファイル、フォルダーが存在し、この引数パラメーター付きで Unity を実行する前にフォルダーへのアクセス権が適切か確認してください。認証に失敗した場合は Editor.log ファイルで原因を把握してください。
-setDefaultPlatformTextureFormat Sets the default texture compression to the desired format before importing a texture or building the project. This is so you don’t have to import the texture again with the format you want. The available formats are dxt, pvrtc, atc, etc, etc2, and astc.
Note that this is only supported on Android.
-silent-crashes クラッシュダイアログを表示しません。
-username <username> Unity エディターのアクティベーションを行ない、ログインするためのユーザー名を入力します。
-password <password> Unity エディターのアクティベーションを行ない、ログインするためのパスワードを入力します。
-disable-assembly-updater <assembly1 assembly2> Unity の自動アップデート時に無視するアセンブリ名をスペースで区切ったリストにし、パラメーターとして指定します。
スペースで区切ったアセンブリ名のリストはオプションです。例 1 のように、コマンドラインオプションにアセンブリ名を渡さなければ、すべてのアセンブリが無視されます。

例 1
unity.exe -disable-assembly-updater

例 2 では 2 つのアセンブリ名を持っています。そのうちの 1 つはパスが表示されています。例 2 では、A1.dll が、どのフォルダーに格納されている場合でも無視されます。また、A2.dll は、subfolder フォルダーに格納されている場合のみ、無視されます。

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

あるアセンブリを -disable-assembly-updater コマンドラインのパラメーターにリストすると (または、アセンブリを何も指定しない場合も)、Unity は以下のメッセージを Editor.log にログします。

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

これを利用して、アセンブリをインポートするときの不要な API Updater のオーバーヘッドをなくします。

これは、Unity API にアクセスするアセンブリをインポートするときに、Unity API でアップデートする必要がないとわかっている場合に便利です。また、Unity API にまったくアクセスしないアセンブリをインポートする場合にも便利です (例えば、Unity の外部にあるゲームソースコードやその一部をビルドし、その結果のアセンブリを Unity プロジェクトにインポートする場合など)。

注意: アップデートが必要なアセンブリのアップデートを無効にする場合は、コンパイル時、実行時、または、その両方でエラーが表示される場合があります。それらを、追跡するのが困難になります。
-accept-apiupdate Unity がバッチモードで起動されているときに APIUpdater の実行を指定するために、このコマンドラインオプションを使用します。

例:

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

Unity をバッチモードで起動するときにこのコマンドライン引数を省略すると、APIUpdater が実行されず、コンパイラーエラーが発生する原因になることがあります。2017.2 以前のバージョンでは、Unity をバッチモードで起動したときに APIUpdater の実行を避ける方法はありません。

C

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

JavaScript

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

以下のコマンドは Unity をバッチモードで実行し、MyEditorScript.PerformBuild メソッドを実行し、その後、完了時に終了します。

Windows:

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

Mac OS:

/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -executeMethod MyEditorScript.PerformBuild

The following command executes Unity in batch mode, and updates from the Asset server using the supplied project path. The method executes after all Assets are downloaded and imported from the Asset server. After the function has finished execution, Unity automatically quits.

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

Unity エディターの特別なコマンドライン引数

You should only use these under special circumstances, or when directed by Unity Support.

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

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

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

コマンド 説明
-adapter N (Windows のみ) 別のディスプレイでフルスクリーン実行することを許容し、ここで N はディスプレイ番号を指します。多くの場合アダプターとビデオカードは 1:1 の関係です。マルチヘッド対応のカードの場合(ひとつのカードから複数モニターを操作)、各々の “ヘッド” はアダプター自身の場合があります。
-batchmode ゲームを「ヘッドレス」モードで実行します。ゲームは何も表示しないか、または、ユーザー入力を受けつけません。これはネットに接続したワークゲーム のサーバーを実行するのに最もよく使用します。
-force-d3d11 (Windows only) 強制的にレンダリングで Direct3D 11 を使用します。
-force-d3d11-no-singlethreaded DirectX 11.0 を D3D11_CREATE_DEVICE_SINGLETHREADED フラグなしで作成するように強制します。
-force-device-index Make the Standalone Player use a particular GPU device by passing it the index of that GPU (macOS only).
-force-gfx-metal Make the Standalone Player use Metal as the default graphics API (macOS only).
-force-glcore レンダリングに OpenGL コアプロファイルを使用するよう、エディターに強制します。 エディターは、もっとも適切な利用可能な OpenGL バージョン、および、OpenGL ドライバーによってアクセス可能なすべての OpenGL 拡張機能の使用を試みます。プラットフォームがサポートされていない場合、Direct3D が使用されます。
-force-glcoreXY -force-glcore と同じですが、OpenGL のバージョンを指定することができます。XY に指定できる値は、「32、33、40、41、42、43、44、54」です。
-force-clamped -force-glcoreXY と一緒に使用することにより、追加された OpenGL 拡張をチェックするのを避け、同じコードパスのプラットフォーム間で実行可能になります。
-force-low-power-device Make the Standalone Player use a low power device (macOS only).
-force-wayland Linux プレイヤーを実行するとき、実験的な Wayland サポートをアクティベートします。
-nographics バッチモードで実行している場合、すべてのグラフィックデバイスの初期化を行いません。これによって GPU を持っていないマシンで自動化されたワークフローを実行することが可能になります。
-nolog (Linux と Windows のみ) ログを出力しない。通常は output_log.txt がゲーム実行可能ファイルと同じフォルダー、すなわちDebug.Log が出力される *_Data フォルダーに書き込まれます。
-popupwindow ウインドウは(フレームなしの)ポップアップウインドウとして作成されます。
-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> delayed (Windows のみ) Windows スタンドアロンアプリケーションを別のアプリケーションに埋め込みます。これを使用する場合は、親アプリケーションのウィンドウハンドル (HWND) を Windows スタンドアロンアプリケーションに渡す必要があります。

-parentHWND &lt;HWND&gt; delayed を渡すと、Unity アプリケーションは実行中に隠されます。また、アプリケーション内の Unity のために [Microsoft Developer ライブラリ] (https://msdn.microsoft.com/en-us/library/windows/) から [SetParent](https://msdn.microsoft.com/ja-jp/library/cc411061.aspx) を呼び出す必要があります。Microsoft の SetParent は、Unity のウィンドウを埋め込みます。Unity のプロセスを作成するとき、Unity のウィンドウは Microsoft の [STARTUPINFO](https://msdn.microsoft.com/en-us/library/windows/desktop/ms686331(v=vs.85).aspx) 構造の一部として提供される位置とサイズを尊重します。<br/><br/> Unity ウィンドウのサイズを変更するには、Microsoft のGetWindowLongPtr` 関数のGWLP_USERDATA を確認します。グラフィックスが初期化され、サイズ変更が安全になったときに、その最も低いビットは 1 に設定されます。 Unity スプラッシュ画面の表示が終了すると、2 番目に低いビットが 1 に設定されます。
詳細は、 EmbeddedWindow.zip の例を参照してください。

ユニバーサル Windows プラットフォーム コマンドライン引数

ユニバーサル Windows アプリは、デフォルトではコマンドライン引数を受け付けません。そのため、引数を渡すには、MainPage.xaml.cs/cppMainPage.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-no-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 を強制します。

  • 2018–05–22 限られた 編集レビュー で修正されたページ

  • “accept-apiupdate” コマンドラインオプションは Unity 2017.2 で追加NewIn20172

  • “accept-apiupdate” コマンドライン引数は Unity 2017.3 で追加NewIn20172

  • Tizen サポートは2017.3 で打ち切りNewIn20173

  • “noUpm”, “setDefaultPlatformTextureFormat” and “CacheServerIPAddress” command line options added in Unity 2018.1 NewIn20181

ビルドプレイヤーパイプライン
Applying defaults to assets by folder