本文へスキップ
ドキュメント
このページの内容

起動引数

起動引数を使うと、画面、レベル、プレイをすぐに開けます。スイッチはゲームの1回の起動だけを変えます。引数は実行ファイルの後ろに書きます:ショートカット、ターミナル、Steamの起動オプションのいずれかです

引数なしでは、ゲームはメインメニューを開きます

MCPで接続したAIアシスタントは、すでに起動しているゲームに同じ引数を送れます(AIアシスタント)

構文

  • 引数はすべてハイフン2つで始まります:--editor
  • 値はスペースか=の後に続けます:--speed 1.5と--speed=1.5は同じです
  • キーの大文字と小文字は区別されません:--Editorでも動きます
  • 数値はシステムの言語にかかわらずドットを使います:1.5と書き、1,5とは書きません
  • スペースを含む値はダブルクォートで囲みます:--level "D:\My Levels\Volcano"

ゲームが使えない引数で起動が止まることはありません。その引数は捨てられ、ログに1行記録され、ゲームはいつもの画面を開きます。ログの場所:ヘルプと不具合の報告 › ログ

知らない引数は無視されます。ゲームが読むのは、ハイフン2つで始まる自分の引数だけです。ハイフン1つで始まるUnity自体の引数(たとえば-screen-width)は、そのまま渡されます。解像度とフルスクリーンはそちらで設定してください

画面

引数開くもの
--menuメインメニュー。引数なしと同じ
--editorレベルエディター
--game--levelで指定したレベル。プレイがすぐに始まる
--settingsメインメニューと、その上に重なる設定画面

画面を指定する引数は1つまでです。異なる2つを渡すと互いに打ち消し合い、ログに警告が出てメニューが開きます

--settingsにはタブ名を指定できます:general、audio、controls、keybindings、graphics、interface、game-editor、profile、other。名前がなければ、前回開いていたタブで設定が開きます。知らない名前は捨てられ、設定はそのまま開きます

設定が開くのは1回の起動につき1回だけです。後でメニューに戻っても、もう一度は開きません。各タブの内容:設定

レベルの指定

--levelは、レベルをその識別子(LevelId)またはフォルダーへのパスで指定します。タイトルは使えません:タイトルは重複し、翻訳され、編集されるためです。識別子として読める値は、常に識別子として扱われます

レベルは、ゲームがすでに一覧に表示しているものの中から探されます。一覧にないフォルダーは見つかりません

組み合わせ結果
なしメニューがレベル画面で開き、プレイを待つ
--editorこのレベルを開いた状態でエディターが開く
--gameプレイがすぐに始まる

パスワードが引数で渡されることはありません。保護されたレベルは画面上でパスワードを尋ね、入力後に開きます

プレイ条件

これらの条件はレベル画面の各項目を埋め、プレイを押したときと同じようにプレイが始まります。--gameと一緒のときだけ有効です。--gameがなければ、ログに警告が出て無視されます

引数値レベル画面の項目
--speed0より大きく2以下、0.1単位に丸められる速度
--lives0から16、0は禅ライフ
--seed0または正の整数、0はプレイのたびに新しいシードプレイヤーシード
--botnone、reflex、warmボット
--checkpoints、--no-checkpointsなしチェックポイント
--no-collisionなし衝突なし

省略した条件はデフォルト値になります:ライフ3、速度1.0、チェックポイントあり、ボットなし、シード0、衝突あり

この方法で始めたプレイは通常のプレイです。ほかのプレイと同じく統計に入ります(統計)

起動全体のスイッチ

次の3つはどの画面とも組み合わせられ、保存された設定を変えることはありません:

引数動作
--autosave on、--autosave offこの起動の間だけ、エディターの自動保存をオンまたはオフにする。設定のエディタータブには強制された値が表示され、変更できない
--suppress-game-saves起動全体を匿名モードにする。ゲーム内ではオフにできない(設定 › 匿名モード)
--frame-statsフレーム時間の集計を、GPUとCPUの時間つきでログに書き出す。パフォーマンス計測に使う
--frame-stats-windowsレベルの再生中、プレイ 0.25 秒ごとに1行を追加で書き出す:レベルのフレームと、CPUとGPUの時間の中央値。--frame-stats も有効になる。レベルを閉じると、各ウィンドウを評価の予測と比べる行がもう1行書かれる。パフォーマンス評価の検証に使う

--frame-statsは画面ごとに30秒に1回、さらに画面の上のウィンドウが切り替わるたびに1行書き出します。画面の最初の3秒は数えられません

組み合わせ

コマンド結果
なし、または--menuメニュー
--editorレベルを開いていないエディター
--settingsメニュー。設定は前回開いていたタブで開く
--settings graphics同上。グラフィックタブで開く
--level XレベルXの画面を表示したメニュー。プレイを待つ
--level X --gameレベルX、プレイ中
--level X --editorレベルXを開いたエディター
--levelなしの--gameメニューと警告
--menu --editorメニューと警告
--gameなしの--speed 2条件は警告とともに無視される
--editor --autosave offエディター。この起動の間だけ自動保存がオフ
--autosave maybe警告とともに無視され、自分の設定が使われる
--suppress-game-savesメニュー。この起動中のゲーム自体の保存は、どれもディスクに書かれない
--level X --game --suppress-game-savesレベルX、プレイ中。プレイ後に統計は残らない
--editor --suppress-game-savesエディター。レベルの保存、自動保存、バックアップは書かれるが、設定と統計は書かれない

例

Windowsで、ターミナルまたはショートカットから:

"Bullet Hero.exe" --editor
"Bullet Hero.exe" --level 5f2b0e6a-1c3d-4b5e-8a9f-0d1e2f3a4b5c --game --lives 1 --speed 1.5
"Bullet Hero.exe" --level "C:\Users\<you>\AppData\LocalLow\vertoker\Bullet Hero\levels\Volcano" --editor

Steamでは、ゲームの起動オプションに実行ファイルなしで引数だけを書きます:--editor --autosave off

Android

Androidにはコマンドラインがありません。引数は、ゲームを起動するインテントの文字列エクストラbhで渡され、入力した1行とまったく同じように分割されます。コンピューターからはadbで行います:

adb shell "am start -S -n com.vertoker.BulletHero/com.unity3d.player.UnityPlayerGameActivity -e bh '--frame-stats --editor'"
  • クォートが重要です。am start全体をダブルクォートで、bhの値をシングルクォートで囲みます。そうしないとデバイスのシェルが行を分割してしまい、bhには最初の引数だけが入り、残りはam自身のパラメーターとして渡されます
  • -Sは、起動中のゲームを先に停止します。引数は起動時に1回だけ読まれます。すでに起動しているゲームに送っても何も変わりません

iOSには起動引数がまったくありません