Version: 2022.3
言語: 日本語
コマンドライン引数
Unity スタンドアロンプレイヤーのコマンドライン引数

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

Unity の起動

macOS で Unity を起動するには、以下をターミナルに入力します。

/Applications/Unity/Hub/Editor/<version>/Unity.app/Contents/MacOS/Unity -projectPath <project path>

Linux で Unity を起動するには、以下をターミナルに入力します。

/Applications/Unity/Hub/Editor/<version>/Unity.app/Contents/Linux/Unity -projectPath <project path>

Windows では、コマンドプロンプトに以下を入力して Unity を起動します。

"C:\Program Files\Unity\Hub\Editor\<version>\Editor\Unity.exe" -projectPath "<project path>"

このように Unity を起動すると、起動時にコマンドと情報を受け取ります。これは、テストスイート、自動ビルド、他のプロダクションタスクに役立ちます。

ノート: 上記の手順は、関連する Unity エディターが Unity Hub を通じてデフォルトの場所にインストールされていることを前提としています。別の場所にインストールされた Unity エディターを使用する場合は、コマンド内のパスを調整します。エディターの場所のパスを見つける方法についての詳細は、Install and uninstall Editor versions を参照してください。 。

コンフィギュレーション引数

Unity エディターを実行し、起動時に追加のコマンドと情報を使用して Unity アプリケーションを構築できます。このページには、Unity エディターと Unity Player インスタンスの起動と設定に使用するコマンドライン引数が列挙されています。

コマンド 詳細
-createProject <pathname> 特定のパスに空のプロジェクトを作成
-disable-assembly-updater <assembly1 assembly2> Unity の自動アップデート時に無視するアセンブリ名をスペースで区切ったリストにし、パラメーターとして指定します。

スペースで区切ったアセンブリ名のリストはオプショナルです。例 1 のように、コマンドラインにアセンブリ名を渡さなければ、すべてのアセンブリが無視されます。

例 1
unity.exe -disable-assembly-updater

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

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

[Assembly Updater] warning: Ignoring assembly [assembly_path] as requested by command line parameter."). ([Assembly Updater] 警告: コマンドラインパラメーターで要求されたアセンブリ [assembly_path] を無視します。)

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

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

ノート:アップデートが必要なアセンブリのアップデートを無効にすると、コンパイル時、ランタイム、または、その両方でエラーが発生する場合があり、追跡するのが困難です。
-disable-gpu-skinning 起動時の GPU (Graphics Processing Unit) スキニングを無効にします。
-executeMethod <ClassName.MethodName> または -executeMethod <NamespaceName.ClassName.MethodName> Unity がプロジェクトを開くと同時に、かつ、アセットサーバーの任意の更新が完了した後に、その静的メソッドを実行します。これは、継続的インテグレーション、ユニットテストの実行、ビルドの作成、データの準備などのタスクに使用できます。

コマンドライン処理のエラーを返すには、リターンコード 1 で Unity を終了させる例外を投げるか、または、0 以外のリターンコードで EditorApplication.Exit を呼び出します。

パラメーターを渡すには、コマンドラインにパラメーターを追加し、System.Environment.GetCommandLineArgs を使って関数内にパラメーターを取得します。-executeMethod を使用するには、含まれているスクリプトを Editor フォルダーに配置する必要があります。 実行するメソッドは static として定義する必要があります。
-exportPackage <exportAssetPath1 exportAssetPath2 ExportAssetPath3 exportFileName> 指定したパス (または複数の指定したパス) にエクスポート。この場合では exportAssetPath は Unity プロジェクトからエクスポートするフォルダー (Unity プロジェクトのルートディレクトリに対する相対パス) であり、exportFileName はパッケージの名前です。このオプションはフォルダー全体の単位でしかエクスポート出来ません。通常このコマンドは -projectPath 引数と一緒に使用する必要があります。
-importPackage <pathname> 指定の アセットパッケージ をインポートします。Unity はインポートダイアログを表示しません。
-job-worker-count <N> Unity JobQueue Job Worker Count の最大スレッド数を指定します。
-logFile <pathname> Unity がエディター、または Windows/Linux/OSX スタンドアロンのログファイルを書き込む場所を指定します。コンソールに出力する場合は、パス名に - と指定します。Windows では、-logfile -<pathname> と指定すると、stdout に出力されます。デフォルトではコンソールではありません。
-noUpm Unity Package Manager を無効にします。
-openfile <path> シーンファイルやパッケージファイルへのパスからプロジェクトを開くことができます。または、-projectPath 引数を使用することもできます。
-password <password> Unity エディターのアクティベーションのときに、ログインフォームにパスワードを入力します。
-projectPath <pathname> 指定したパスのプロジェクトを開きます。パス名にスペースが含まれている場合は、引用符で囲みます。
-quit コマンドの実行が終了した後に Unity エディターを終了します。これによりエラーメッセージが表示されなくなる場合があります (ただし、エラーメッセージは Editor.log ファイルには保存されます)。
-releaseCodeOptimization リリースコード最適化モードを有効にし、セッションの現在のデフォルトコード最適化モードをオーバーライドします。
-setDefaultPlatformTextureFormat (Android のみ) テクスチャをインポートしたり、プロジェクトをビルドしたりする前に、デフォルトのテクスチャ 圧縮 を希望の形式に設定します。これは、希望の形式で再度テクスチャをインポートする必要がないようにするためです。利用可能なフォーマットは、dxt、pvrtc、atc、etc、etc2、astc です。
-silent-crashes スタンドアロンプレイヤーがクラッシュしたときに表示されるダイアログを Unity が表示しないようにします。この引数は、プレイヤーを自動化されたビルドやテストで実行したい場合に便利です (ダイアログによって自動化された手順が妨げられるのを防ぎます)。
-username <username> Unity エディターのアクティベーションのときに、ログインフォームにユーザー名を入力します。
-vcsMode <mode> バージョン管理モードを設定します。利用可能なモードは、"Visible Meta Files""Hidden Meta Files"Perforce、および PlasticSCM です。指定されたバージョン管理モードの設定フィールドを埋めるために、追加のフラグを使用できます。これらのフラグは、Provider.GetActiveConfigFields メソッドに基づいています。例えば、-vcPerforceUsername-vcPerforcePassword-vcPerforceWorkspace および -vcPerforceServer を使用して Perforce ユーザー名、ワークスペース、サーバーフィールドを設定できます。

ノート: スペースを含む <mode> 引数は、二重引用符 (“) で囲む必要があります。| |-vcsModeSession <mode>|このセッションのバージョン管理モードを設定します。利用可能なモードは、"Visible Meta Files""Hidden Meta Files"Perforce、および PlasticSCM です。指定されたバージョン管理モードの設定フィールドを埋めるために、追加のフラグを使用できます。これらのフラグは、Provider.GetActiveConfigFields メソッドに基づいています。例えば、-vcPerforceUsername-vcPerforcePassword-vcPerforceWorkspace および -vcPerforceServer を使用して Perforce ユーザー名、ワークスペース、サーバーフィールドを設定できます。

ノート: スペースを含む <mode> 引数は、二重引用符 (”) で囲む必要があります。
-version エディターを起動せずに、コマンドラインで Unity エディターのバージョン番号を表示します。

バッチモード引数

Unity のバッチモードを設定するには、以下の引数を使用します。バッチモードは、追加の入力なしに Unity に定義済みのタスクを実行可能にさせるもので、テストなどの自動化されたタスクに便利なモードです。詳細については、バッチモードとビルトインコルーチンの互換性 を参照してください。

コマンド 詳細
-accept-apiupdate Unity がバッチモードで起動されているときに APIUpdater の実行を指定するために、このコマンドラインオプションを使用します。

例:

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

Unity をバッチモードで起動するときにこのコマンドライン引数を省略すると、APIUpdater が実行されず、コンパイラーエラーが発生する原因になることがあります。
-batchmode バッチモードで Unity を実行します。バッチモードでは、Unity では人間の介入を必要とせずにコマンドライン引数を実行します。また、人間の操作を必要とするポップアップウィンドウ (“シーンの保存” ウィンドウなど) も抑制します。ただし、Unity エディター自体は通常どおり開きます。コマンドライン引数を使用する場合は、自動化を中断することなく実行できるため、Unity を常にバッチモードで実行する必要があります。

スクリプトコードの実行中に例外が発生した場合、アセットサーバーの更新が失敗した場合、またはその他の操作が失敗した場合、Unity はすぐにコード 1 を返して終了します。

バッチモードでは、最小バージョンのログ出力をコンソールに送信することに注意してください。ただし、ログファイル には完全なログ情報が含まれています。エディターで同じプロジェクトが開いている間は、プロジェクトをバッチモードで開くことはできません。Unity のインスタンス 1 つのみを一度に実行できます。

エディターまたはスタンドアロンプレイヤーがバッチモードで実行されているかどうかを確認するには、Application.isBatchMode 演算子を使用します。

-batchmode を使用するときにプロジェクトがまだインポートされていない場合は、デフォルトのターゲットプラットフォームが使用されます。別のプラットフォームを強制的に使うには、-buildTarget オプションを使用します。
‑ignorecompilererrors この引数を使用すると、たとえコンパイルエラーがあっても Unity はアプリケーションを起動し続けます。
-nographics バッチモードを実行する時、グラフィックスデバイスの初期化をまったく行わないようにします。すると、GPU のないマシンで自動化されたワークフローを実行出来るようになります (自動化されたワークフローは、ウィンドウにフォーカスがあるときのみ機能し、そうでない場合はシミュレーションされた入力コマンドは送信出来ません)。Enlighten には GPU かメタパスレンダリングが必須なため、-nographics で GI のベイクは行えません。詳細については、ライトマッピングとシェーダーのページのメタパスセクション を参照してください。
ノート: このモードでは出力ログがオフになります。出力ログの作成を有効にするには、コマンド -logFile を使用してファイルの場所を指定します。

ビルド引数

以下の引数を使用すると、コマンドラインからさまざまなプラットフォーム用のプレイヤーをビルドできます。コマンドライン引数によるプレイヤーのビルドの詳細については、UUnity スタンドアロンプレイヤーのコマンドライン引数 を参照してください。

コマンド 詳細
-buildLinux64Player <pathname> 64-bit スタンドアロン Linux player をビルドします (例えば、-buildLinux64Player path/to/your/build)。
-buildOSXUniversalPlayer <pathname> 64-bit スタンドアロン Mac OS X player をビルドします (例えば、-buildOSXUniversalPlayer path/to/your/build.app)
-buildTarget <name> プロジェクトをロードする前に、アクティブなビルドターゲットを選択します。可能なオプションは以下の通りです。

• Standalone
• Win
• Win64
• OSXUniversal
• Linux64
• iOS
• Android
• WebGL
• WindowsStoreApps
• tvOS
-buildWindowsPlayer <pathname> 32bit スタンドアロン Windows プレイヤーをビルドします (例えば、-buildWindowsPlayer path/to/your/build.exe)。
-buildWindows64Player <pathname> 64bit スタンドアロン Windows player をビルドします (例えば、-buildWindows64Player path/to/your/build.exe)。

キャッシュサーバー引数

以下の引数を使用して、Unity のキャッシュサーバー使用に関して設定します。詳細については、キャッシュサーバー を参照してください。

コマンド 詳細
-EnableCacheServer より新しい Accelerator Cache Server を使用するように Unity に指示します。また、-cacheServerEndpoint でアドレスを指定する必要があります。
-cacheServerEndpoint より新しい Accelerator キャッシュサーバーを使用している場合は、エンドポイントのアドレスを指定します。

例:-cacheServerEndpoint 127.0.0.1:10080。これは、エディターの Preferences に保存されている設定をオーバーライドします。 これを使用して、Unity の複数のインスタンスを異なるキャッシュ サーバーに接続します。
-cacheServerNamespacePrefix より新しい Accelerator キャッシュサーバーの名前空間プレフィックスを設定します。Cache Server 上のデータをグループ化するために使用します。

例: -cacheServerNamespacePrefix MyProject
-cacheServerEnableDownload より新しい Accelerator キャッシュサーバーからのダウンロードを有効にします。

例:

-cacheServerEnableDownload true
-cacheServerEnableUpload より新しい Accelerator キャッシュサーバーへのアップロードを有効にします。

例:

-cacheServerEnableUpload false
-CacheServerIPAddress <host:port> 古い (v1) キャッシュサーバーの使用を有効にし、起動時に接続する IP アドレスを指定します。 これにより、エディター Preferences に保存されている設定がオーバーライドされます。 これを使用すると、Unity の複数のインスタンスを異なる v1 キャッシュサーバーに接続できます。

デバッグ引数

コマンド 詳細
-disableManagedDebugger デバッガーのリッスンソケットを無効にします。
-diag-debug-shader-compiler Unity は、シェーダー コンパイラーのインスタンスを 1 つだけ起動し、そのタイムアウトを強制的に 1 時間にします。シェーダーコンパイラーの問題をデバッグするのに便利です。
-debugCodeOptimization デバッグコード最適化モードを有効にし、セッションの現在のデフォルトコード最適化モードをオーバーライドします。
-enableCodeCoverage コードカバレッジを有効にし、Coverage API へのアクセスを可能にします。
-force-d3d12-debug DX12 検証レイヤーを有効にします。XR プラグインやネイティブプラグインで作業する場合に便利です。
-force-d3d12-debug-gbv DX12 GPU ベースの検証を有効にします。XR プラグインやネイティブプラグインで作業する場合に便利です。
-force-vulkan-layers Vulkan 検証レイヤーを有効にします。XR プラグインやネイティブプラグインで作業する場合に便利です。
-stackTraceLogType 詳細なデバッグを可能にします。すべての設定で、NoneScript OnlyFull が選択可能です (例えば -stackTraceLogType Full)。

グラフィックス API 引数

以下の引数を使用して、Unity エディターに特定のグラフィックス API を使用させます。

コマンド 詳細
-force-d3d11(Windows のみ) レンダリングで Direct3D 11 を使用します。通常、グラフィックス API は Player 設定 での値に依存します (デフォルトは D3D11 です)。
-force-d3d12 (Windows のみ) レンダリングで Direct3D 12 を使用します。通常、グラフィックス API は Player 設定 での値に依存します。
-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-vulkan レンダリングで Vulkan を使用します。通常、グラフィックス API は Player 設定 での値に依存します。
-force-clamped -force-glcoreXY と一緒に使用することにより、追加された OpenGL 拡張を Unity が確認することを避けることができます。これにより、同じコードパスで複数のプラットフォーム間で実行できます。

ライセンス引数

Unity のライセンスを処理したり、異なるライセンスオプションで Unity エディターを実行するには、以下の引数を使用します。

コマンド 詳細
-createManualActivationFile Unity ライセンスを手動でアクティベートするための 3 段階のプロセス のステップ 1 。詳細については、コマンドラインからライセンスアクティベーションファイル (.alf) を生成する を参照してください。
-force-free Unity Pro ライセンスがインストールされていても、マシン上に無料 Unity ライセンスがあるかのようにエディターを実行します。
-manualLicenseFile <yourulffile> Unity ライセンスを手動でアクティベートするための 3 段階のプロセス のステップ 3 。詳細については、コマンドラインからライセンスアクティベーションファイル (.alf) を生成する を参照してください。
-returnlicense 現在アクティブなシリアルに基づくライセンスをライセンスサーバーに返却します。フローティングライセンスの返却に -returnlicense を使わないでください。詳しくは、ライセンスの返却 を参照してください。
-serial <serial> 指定されたシリアル番号で Unity のライセンスをアクティベートします。詳細は、コマンドラインでライセンスをアクティベート を参照してください。

Note: When you use this argument, you must also use the -batch).<br /><br />**ノート**: この引数を使用する場合は、-batchmode引数も使用する必要があります。また、-quit` 引数を指定することも良い方法です。

Metal 引数 (macOS のみ)

以下の引数を使用して、Apple デバイス用の Metal グラフィックス API を Unity で使用する場合の設定をします。

コマンド 詳細
-force-device-index Metal を使用する場合に、GPU のインデックスを渡すことによって、エディターに特定の GPU デバイスを使用させます(macOS のみ)。
-force-low-power-device (macOS のみ) Metal を使用する場合に、低消費電力のデバイスを使用させます。
-force-metal デフォルトのグラフィックス API として Metal を使用させます(macOS のみ)。

プロファイラー引数

以下の引数を使用して、Unity の プロファイラー 使用設定を行います。

コマンド 詳細
-deepprofiling CPU プロファイラー の Deep Profiling (詳細プロファイリング) オプションを有効にします。
-profiler-enable プレイヤーやエディターの起動をプロファイリングします。プレイヤーでこの引数を使用すると、Build Settings で Autoconnect Profiler オプションを有効にしてプレイヤーをビルドするのと同じ効果があります。

エディターでこの引数を使用すると、エディターの起動時に Profiler ウィンドウでプロファイラー情報の収集と表示を開始します。
-profiler-log-file <Path/To/Log/File.raw> この引数は、プロファイルデータを .raw ファイルに送信するように Unity Profiler を設定します。プレイヤーとエディターの両方で使用できます。
-profiler-capture-frame-count <NumberOfFrames> この引数は、起動時に .raw ファイルに送信する場合に、プロファイラーがキャプチャするフレーム数を設定します。プレイヤーでのみ機能します。
-profiler-maxusedmemory デフォルトでは、 Unity Profiler の maxUsedMemory はプレイヤー用に 16MB、エディター用に 256MB です。この引数を使用して、起動時に maxUsedMemory パラメーターをカスタムサイズに設定できます (例えば、-profiler-maxusedmemory 16777216)。サイズはバイト単位で設定します。

プロジェクトの C# スクリプト

using UnityEditor;
class MyEditorScript
{
     static void PerformBuild ()
     {
        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
        buildPlayerOptions.scenes = new[] { "Assets/Scene1.unity", "Assets/Scene2.unity" };
        BuildPipeline.BuildPlayer(buildPlayerOptions);
     }
}

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

Windows

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

macOS:

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

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

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

コマンド 詳細
-enableIncompatibleAssetDowngrade Unity のより新しい互換性がないバージョンで作成したアセットがあり、現在使用している Unity のバージョンに合わせてダウングレードしたい場合に使用します。これを有効にすると、ダウングレードを必要とするプロジェクトを開こうとするとき、ダウングレードの確認を求めるダイアログボックスを表示します。

ノート: この手順はサポートされていないためリスクが高い方法です。最後の手段としてのみ使ってください。

パッケージからの追加エディター引数

これらのパッケージをインストールすると、追加のエディターコマンドライン引数が利用可能になります。

パッケージ 詳細
Burst Burst パッケージのドキュメントを参照してください。
Test Framework Unity Test Framework パッケージのドキュメントを参照してください。
Code Coverage Code Coverage パッケージのドキュメントを参照してください。
コマンドライン引数
Unity スタンドアロンプレイヤーのコマンドライン引数