ドキュメント

Unity Engine

Unity Engine

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

A list of arguments you can use when you launch a version of the Unity Editor from the command line.
読み終わるまでの所要時間 51 分最終更新 1ヶ月前

コマンドラインから Unity エディターを起動し、引数を渡すことで、エディターの起動方法を変更することができます。また、コマンドラインを使用して、起動時にプロジェクトの C# スクリプトから特定のメソッドを実行することもできます (起動時にメソッドを実行するスクリプトの例 を参照)。
ノート: このページの情報を使用するには、OS のコマンドラインインターフェースを使用してアプリケーションを起動し、コマンドライン引数を実行する方法を把握しておく必要があります。
Unity エディターを起動する場合、コマンドライン引数値の区切り文字は 1 つのスペースです。例えば、ウィンドウモードを borderless に設定するには、
-window-mode borderless
を使用します。

Unity の起動

コマンドプロンプトまたはターミナルから Unity プロジェクトを起動するには、Unity アプリケーションのディレクトリパス、
-projectPath
、ターゲットプロジェクトのディレクトリパスを入力します。
以下の手順は、Unity エディターが Unity Hub を通じてデフォルトの場所にインストールされていることを前提としています。
macOS で Unity を起動するには、以下をターミナルに入力します。
/Applications/Unity/Hub/Editor/<version>/Unity.app/Contents/MacOS/Unity -projectPath <project path>
Linux で Unity を起動するには、以下をターミナルに入力します。
/home/<user>/Unity/Hub/Editor/<version>/Editor/Unity -projectPath <project path>
Windows では、コマンドプロンプトに以下を入力して Unity を起動します。
"C:\Program Files\Unity\Hub\Editor\<version>\Editor\Unity.exe" -projectPath "<project path>"
このように Unity を起動すると、起動時にコマンドと情報を受け取ります。これは、テストスイート、自動ビルド、他のプロダクションタスクに役立ちます。
ノート:
  • 別の場所にインストールされている Unity エディターを使用する場合は、コマンド内のパスを調整します。エディターの場所のパスを見つける方法の詳細については、エディターのバージョンのインストールとアンインストール を参照してください。
  • Windows プラットプラットフォームで引数を渡す場合は、構文エラーを防ぐために、ディレクトリパスが 1 つのバックスラッシュで終了しないようにしてください。二重のバックスラッシュ (
    \\
    ) を使用するか、バックスラッシュを使用しません。以下に例を示します。
    * `"C:\Program Files\Unity\Hub\Editor\<version>\Editor\Unity.exe" -projectPath "C:\MyUnityProjects\MyProject"`* `"C:\Program Files\Unity\Hub\Editor\<version>\Editor\Unity.exe" -createProject "C:\MyUnityProjects\MyProject\\"`

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

起動時に追加のコマンドと情報を使って、Unity エディターを起動し、Unity アプリケーションをビルドできます。このページでは、Unity エディターおよび Unity Player インスタンスの起動と設定に使用できるコマンドライン引数をまとめています。

コマンド

詳細

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

スペースで区切ったアセンブリ名のリストは任意です。例 1 のように、アセンブリ名を指定せずにコマンドラインオプションを渡すと、すべてのアセンブリが無視されます。

例 1
unity.exe -disable-assembly-updater


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


例 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.”).


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

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

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

コマンドライン処理のエラー結果が必要な場合は、例外を投げて Unity を戻り値 1 で終了させるか、ゼロ以外の戻り値を返すコード EditorApplication.Exit を呼び出します。

パラメーターを渡したい場合は、コマンドラインにそれらを加え
System.Environment.GetCommandLineArgs
を使用して関数内で取得します。
-executeMethod
を使用する場合、加えるスクリプトを任意の Editor フォルダーに置かなければなりません。実行するメソッドは必ず静的でなければなりません。
-exportPackage <exportAssetPath1 exportAssetPath2 ExportAssetPath3 exportFileName>
指定したパス (または複数の指定したパス) にパッケージをエクスポートします。この場合では
exportAssetPath
は Unity プロジェクトからエクスポートするフォルダー (Unity プロジェクトのルートディレクトリに対する相対パス) であり、
exportFileName
はパッケージの名前です。このオプションはフォルダー全体の単位でしかエクスポートできません。通常このコマンドは
-projectPath
引数と一緒に使用する必要があります。
-importPackage <pathname>
指定した アセットパッケージ をインポートします。Unity はインポートダイアログを表示しません。
-job-worker-count <N>
Unity JobQueue Job Worker Count の最大スレッド数を指定します。この値は、Unity スタンドアロンプレイヤーの
boot.config
で
job-worker-count=<N>
のように設定することもできます。
-logFile <pathname>
Unity がエディターまたは OS のスタンドアロンのログファイルを書き込む場所を指定します。コンソールに出力する場合は、パス名に
-
を指定します。Windows では、
-logfile
を使用して出力を
stdout
に転送します。デフォルトではコンソールではありません。
-upmLogFile
も参照してください。
-noUpm
Unity Package Manager を無効にします。
-openfile <path>
シーンファイルやパッケージファイルへのパスからプロジェクトを開くことができます。または、
-projectPath
引数を使用することもできます。
-password <password>
Unity エディターのアクティベーションのときに、ログインフォームにパスワードを入力します。
-projectPath <pathname>
指定したパスのプロジェクトを開きます。パス名にスペースが含まれている場合は、引用符で囲みます。
-quit
他のコマンドの実行が終了した後に Unity エディターを終了します。これによりエラーメッセージが表示されなくなる場合があります (ただし、エラーメッセージは
Editor.log
ファイルには保存されます)。

Unity が Accelerator Cache Server にも接続されている場合は、保留中のキャッシュのアップロードが完了する前に Unity が終了しないように、コマンドライン引数の
-cacheServerWaitForUploadCompletion
が必要です。
-releaseCodeOptimization
リリースコード最適化モードを有効にし、セッションの現在のデフォルトコード最適化モードをオーバーライドします。
-setDefaultPlatformTextureFormat
(Android のみ)
テクスチャをインポートしたり、プロジェクトをビルドしたりする前に、デフォルトのテクスチャ圧縮を希望の形式に設定します。これは、希望の形式で再度テクスチャをインポートする必要がないようにするためです。使用可能な形式は dxt、pvrtc、atc、etc、etc2、astc です。テクスチャ圧縮ターゲティング が有効の場合、この引数は無視されます。
-overrideTextureCompression
Unity がアセットをインポートするときに使用するテクスチャ圧縮設定をオーバーライドします。これは、ローカルでの開発時に、テクスチャのインポートやビルドターゲットの切り替えを高速化するために特に便利です。詳細については、EditorUserBuildSettings.overrideTextureCompression の API リファレンスドキュメントを参照してください。
-silent-crashes
スタンドアロンプレイヤーがクラッシュしたときに表示されるダイアログを Unity が表示しないようにします。この引数は、プレイヤーを自動化されたビルドやテストで実行したい場合に便利です (ダイアログによって自動化された手順が妨げられるのを防ぎます)。
-upmLogFile <pathname>
Unity がエディターから独立して実行される UPM 背景アプリケーションのログファイルを書き込むパスとファイル名を指定します。同じコマンドで
-upmLogFile
と
-logFile
を指定できます。両方の引数を追加すると、2 つのログファイルに独立したパスを指定できます。
-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 エディターのバージョン番号を表示します。
-timestamps
すべての Editor.log メッセージの先頭に、現在のタイムスタンプとスレッド ID を配置します。

バッチモード引数

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

コマンド

詳細

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

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


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

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

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

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

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

ビルド引数

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

コマンド

詳細

-activeBuildProfile <pathname>
指定したパスに保存したビルドプロファイルをアクティブなビルドプロファイルとして設定します (例えば、
-activeBuildProfile "Assets/Settings/Build Profiles/WindowsDemo.asset"
)。

ノート:
-activeBuildProfile <pathname>
は、コンパイル前にアクティブなビルドプロファイルの Build data セクションにあるカスタムスクリプト定義を適用します。これらのスクリプト定義は追加的なものであり、プロジェクト内の他のスクリプト定義はオーバーライドされません。
-build <pathName>
activeBuildProfile <pathname>
から指定したターゲットパスにプレイヤーをビルドします。プラットフォームによっては、ターゲットプラットフォーム固有のファイル拡張子でパスを終了する必要があります。例えば、
-build path/to/your/build.exe
。拡張子が必要なプラットフォームについては、ターゲットプラットフォームのビルドパス要件 を参照してください。
-buildLinux64Player <pathname>
64 ビットスタンドアロン Linux プレイヤーをビルドします (例えば、
-buildLinux64Player path/to/your/build
)。
-buildLinuxHeadlessSimulation <pathname>
64 ビット Linuxヘッドレスシミュレーションプレイヤーをビルドします (例えば、
-buildLinuxHeadlessSimulation path/to/your/build
)。
-buildOSXUniversalPlayer <pathname>
64 ビットスタンドアロン macOS プレイヤーをビルドします (例えば、
-buildOSXUniversalPlayer path/to/your/build.app
)。
-buildTarget <name>
エディターを起動するアクティブなビルドターゲットを選択します。使用可能なオプションは、エディターで有効にしたビルドターゲットによって異なります。これらのオプションは、API 列挙型
BuildTarget
で使用可能なオプションに対応しています。以下のオプションが選択可能です。

•
win64

•
win

•
osxuniversal

•
linux64

•
android

•
ios

•
webgl

•
tvos

•
windowsstoreapps

•
cloudrendering

•
visionos


クローズドプラットフォームにアクセスできる開発者は、他の
-buildTarget
オプションを使用できる場合があります。詳細については、ターゲットプラットフォームのドキュメントを参照してください。
-standaloneBuildSubtarget <name>
プロジェクトをロードする前に、スタンドアロンフォームのアクティブなビルドサブターゲットを選択します。以下のオプションが選択可能です。

• プレイヤー
• サーバー
-buildWindowsPlayer <pathname>
32 ビットスタンドアロン Windows プレイヤーをビルドします (例えば、
-buildWindowsPlayer path/to/your/build.exe
)。
-buildWindows64Player <pathname>
64 ビットスタンドアロン Windows プレイヤーをビルドします (例えば、
-buildWindows64Player path/to/your/build.exe
)。

Accelerator Cache Server 引数

Unity による Unity Accelerator Cache Server の使用を設定するには、以下の引数を使用します。これらの引数は、Editor Preferences に保存されている対応する設定をオーバーライドします。

コマンド

詳細

-EnableCacheServer
Accelerator Cache Server を有効にします。また、
-cacheServerEndpoint <host:port>
でキャッシュサーバーのアドレスを指定する必要があります。
-cacheServerEndpoint <host:port>
Accelerator Cache Server のエンドポイントアドレスを指定します。

例
-cacheServerEndpoint 127.0.0.1:10080
-cacheServerNamespacePrefix <prefix>
Accelerator Cache Server の名前空間プレフィックスを設定します。この引数を名前空間名とともに使用して、キャッシュサーバー上のデータを分割します。例えば、異なるプロジェクトや Unity バージョンのキャッシュデータを分離します。

例
-cacheServerNamespacePrefix MyProject_Unity23LTS

スペースを含むプレフィックスは、二重引用符 (
"
) で囲む必要があります。
設定した名前は、メタデータ、アーティファクトデータ、シェーダーキャッシュデータのタイプごとにデータを分離する、キャッシュ内の最大 3 つの名前空間のプレフィックスとして使用されます。
`-cacheServerEnableDownload <truefalse>`
`-cacheServerEnableUpload <truefalse>`
-cacheServerWaitForConnection <ms>
プロジェクトのロード中に Unity が Accelerator Cache Server への接続を待機する時間をミリ秒単位で指定します。この時間が経過すると、プロジェクトの初期更新が開始されます。

例
-cacheServerWaitForConnection 5000
-cacheServerWaitForUploadCompletion
保留中の Accelerator Cache Server のアップロードが完了するまで Unity を閉じないようにします。これは、Accelerator をコマンドライン引数
-quit
と組み合わせて使用する場合に推奨されます。このコマンドは、他のスクリプトコマンドの実行が完了した後に Unity エディターを閉じます。
-cacheServerDownloadBatchSize <batchSize>
個々の Accelerator Cache Server のダウンロードバッチのアーティファクトの数を設定します。ダウンロードバッチは、個々のダウンロードを大きなバッチにグループ化してダウンロード操作の数を減らすために使用される最適化です。

例
-cacheServerDownloadBatchSize 256

デフォルト値は
128
です。
-cacheServerUploadExistingImports
Unity が新しいインポートを Accelerator Cache Server にアップロードし始めたときに、以前にアップロードされていない既存のインポートをアップロードします。以前にアップロードされたインポートは再アップロードされません。
-cacheServerUploadAllRevisions
Unity が新しいインポートを Accelerator Cache Server にアップロードし始めたときに、アセットデータベースに既知の以前のすべてのリビジョンを含め、以前にアップロードされていない既存のインポートをアップロードします。以前にアップロードされたインポートリビジョンは再アップロードされません。
-cacheServerUploadExistingShaderCache
Unity が新しいインポートを Accelerator Cache Server にアップロードし始めたときに、以前にアップロードされていない既存のシェーダーキャッシュのインポートをアップロードします。以前にアップロードされたシェーダーインポートは再アップロードされません。

デバッグ引数

コマンド

詳細

-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
詳細なデバッグを可能にします。すべての設定で None、Script Only、Full が選択可能です (例えば、
-stackTraceLogType Full
)。
-log-memory-performance-stats
エディターを閉じるときに、Unity エディターのメインログファイルに詳細なメモリとパフォーマンスのレポートを追加します。

グラフィックス API 引数

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

コマンド

詳細

-force-d3d11
(Windows のみ)
レンダリングに Direct3D 11 を使用します。通常、グラフィックス API は Player Settings の値に依存します (通常、デフォルトは D3D11 です)。
-force-d3d12
(Windows のみ)
レンダリングに Direct3D 12 を使用します。通常、グラフィックス API は Player Settings の値に依存します。
-force-opengl
古い機能の OpenGL バックエンドを使用します。
-force-glcore
レンダリングに OpenGL 3/4 コアプロファイルを使用します。エディターは、利用可能でベストな OpenGL バージョンと、OpenGL ドライバーによって公開されているすべての OpenGL 拡張の利用を試みます。そのプラットフォームがサポートされていない場合は、Direct3D を使用します。
-force-glcoreXY
-force-glcore
と類似していますが、特定の OpenGL コンテキストバージョンを要求します。XY で受け入れられる値: 32、33、40、41、42、43、44、または 45。プラットフォームが OpenGL の特定のバージョンをサポートしない場合、Unity はサポートされているバージョンにフォールバックします。
-force-gles
(Windows のみ)
レンダリングに OpenGL for Embedded Systems を使用します。エディターは、利用可能でベストな OpenGL ES バージョンと、OpenGL ドライバーによって公開されているすべての OpenGL ES 拡張の利用を試みます。
-force-glesXY
(Windows のみ)
-force-gles
と類似していますが、特定の OpenGL ES コンテキストバージョンを要求します。XY で受け入れられる値: 30、31、31aep、または 32。プラットフォームが OpenGL ES の特定のバージョンをサポートしない場合、Unity はサポートされているバージョンにフォールバックします。プラットフォームが OpenGL ES をサポートしない場合、Unity は別のグラフィックス API にフォールバックします。
-force-vulkan
レンダリングに Vulkan を使用します。通常、グラフィックス API は Player Settings の値に依存します。
-force-clamped
-force-glcoreXY
と一緒に使用することにより、追加された OpenGL 拡張を Unity が確認することを避けることができます。これにより、同じコードパスで複数のプラットフォーム間で実行できます。このアプローチは、問題がプラットフォーム固有かどうかを判断するのに役立ちます。例えば、ドライバーのバグなどです。

ライセンス引数

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

コマンド

詳細

-createManualActivationFile
Unity ライセンスを手動でアクティベートするための 3 段階のプロセス のステップ 1。詳細については、コマンドラインからライセンスアクティベーションファイル (.alf) を生成 を参照してください。
-manualLicenseFile <yourulffile>
Unity ライセンスを手動でアクティベートするための 3 段階のプロセス のステップ 3。詳細については、コマンドラインからライセンスアクティベーションファイル (.alf) を生成 を参照してください。
-returnlicense
現在アクティブなシリアルベースライセンスまたは指名ユーザーライセンスを返却します。フローティングライセンスの返却に
-returnlicense
を使用しないでください。詳細については、ライセンスの返却 を参照してください。ライセンスモデルの詳細については、ライセンシングの概要 を参照してください。
-serial <serial-key>
有料の Unity ライセンスをアクティベートします。シリアルベースライセンスのアクティベート、または指名ユーザーライセンスとそのシリアルキーの同時アクティベートを行うには、
<serial-key>
値を指定します。シリアルキーをアクティベートせずに指名ユーザーライセンスをアクティベートするには、
<serial-key>
値を除外します。詳細については、コマンドラインを使用したライセンスのアクティベーション を参照してください。ライセンスモデルの詳細については、ライセンシングの概要 を参照してください。

ノート:
-serial
引数を使用する場合は、
-batchmode
引数も使用する必要があります。また、
-quit
引数を指定することも良い方法です。

Metal 引数 (macOS のみ)

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

コマンド

詳細

-force-device-index
Metal を使用する場合に、GPU のインデックスを渡すことによって、エディターに特定の GPU デバイスを使用させます(macOS のみ)。
-force-low-power-device
(macOS のみ)
Metal を使用する場合に、低消費電力のデバイスを使用させます。
-force-metal
デフォルトのグラフィックス API として Metal を使用させます(macOS のみ)。
-enable-metal-capture
Metal キャプチャをエディター内から取得できるようにします。

プロファイラー引数

Unity による Profiler の使用を設定するには、以下の引数を使用します。

コマンド

詳細

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

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

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

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

コマンド

詳細

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

注意この手順はサポートされていないためリスクが高く、最後の手段としてのみ使ってください。
-giCustomCacheLocation
これを使用して、グローバルイルミネーション (GI) キャッシュ フォルダーのカスタムの場所を設定します。

注意エディターを閉じると、
giCustomCacheLocation
は GI キャッシュのデフォルトの場所、または以前にカスタムの場所を設定した場合はカスタムの場所に戻ります。

Unity Hub の特別なコマンドライン引数

これらの引数は、特殊な環境下または Unity サポートから指示されたときのみ使用してください。これらの引数は、デフォルトで Unity Hub を使用しないバージョンの Unity エディターで使用されます。

コマンド

詳細

-useHub
Hub インテグレーションで Unity エディターを起動します。
-hubIPC
Unity エディターと Unity Hub 間の通信とインタラクションを可能にします。
-hubSessionId
Unity Hub セッションの固有の識別子を指定します。
サポートされているすべてのバージョンの Unity エディターでは、これらの引数はすでにデフォルトで設定されています。

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

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

パッケージ

詳細

Burst詳細については、Burst パッケージのドキュメントを参照してください。
Test Framework詳細については、Unity Test Framework パッケージのドキュメントを参照してください。
Code Coverage詳細については、Code Coverage パッケージのドキュメントを参照してください。

起動時にメソッドを実行するスクリプトの例

コマンドラインを使用して、起動時にプロジェクトの C# スクリプトから特定のメソッドを実行できます。以下の例は、C# スクリプトと、起動時にそのスクリプトからメソッドを実行するコマンドライン引数を示しています。
プロジェクトの 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\Hub\Editor\<version>\Editor\Unity.exe" -quit -batchmode -projectPath "C:\Users\UserName\Documents\MyProject" -executeMethodMyEditorScript.PerformBuild
macOS:
/Applications/Unity/Hub/Editor/<version>/Unity.app/Contents/MacOS/Unity -quit -batchmode -projectPath ~/UnityProjects/MyProject -executeMethodMyEditorScript.PerformBuild
注意エディターのパスで、
<version>
を起動する Unity のバージョンに置き換えてください。Unity エディターのパスがデフォルトでない場合は、パスを完全に置き換えてください。