К содержимому
Аргументы запуска
На этой странице

Аргументы запуска

Аргументы командной строки, которые сразу открывают экран, уровень или забег, и переключатели, меняющие один запуск игры

Аргументы запуска говорят игре, что открыть при старте. Они пишутся после исполняемого файла: в ярлыке, в терминале или в параметрах запуска Steam. Без них игра открывает главное меню

Синтаксис

  • каждый аргумент начинается с двух дефисов: --editor
  • значение идёт через пробел или через =: --speed 1.5 и --speed=1.5 - одно и то же
  • регистр ключа не важен: --Editor тоже работает
  • числа пишутся через точку при любом языке системы: 1.5, никогда 1,5
  • значение с пробелами берётся в двойные кавычки: --level "D:\My Levels\Volcano"

Аргумент, который игра не может использовать, никогда не останавливает запуск. Он отбрасывается, строка о нём уходит в лог, и игра открывает свой обычный экран. Где лежит лог - Помощь и сообщения об ошибках › Логи

Незнакомые аргументы игнорируются. Игра читает только свои аргументы, с двумя дефисами. Собственные аргументы Unity с одним дефисом, например -screen-width, проходят нетронутыми. Разрешение и полноэкранный режим задавайте ими

Экраны

АргументЧто открывается
--menuглавное меню, то же, что без аргументов
--editorредактор уровней
--gameуровень, указанный в --level, и забег начинается сразу
--settingsглавное меню с экраном настроек поверх него

Экранный аргумент передаётся не больше одного. Два разных отменяют друг друга, и открывается меню с предупреждением в логе

--settings может назвать вкладку: general, audio, controls, keybindings, graphics, interface, game-editor, profile, other. Без имени настройки открываются на вкладке, где вы были в последний раз. Незнакомое имя отбрасывается, а настройки всё равно открываются

Настройки открываются один раз за запуск. Если позже вернуться в меню, они не откроются снова. Что лежит на каждой вкладке - Настройки

Выбор уровня

--level называет уровень по его идентификатору (LevelId) или по пути к его папке. Название не работает никогда: названия повторяются, переводятся и правятся. Значение, которое читается как идентификатор, всегда считается идентификатором

Уровень ищется среди тех, что игра и так показывает в списке. Папку, которой нет в списке, игра не найдёт

Вместе сЧто происходит
ничемменю открывается на экране уровня и ждёт Начать
--editorредактор открывается с этим уровнем
--gameзабег начинается сразу

Пароль никогда не передаётся аргументом. Защищённый уровень спрашивает его на экране и открывается после ответа

Условия забега

Эти условия заполняют элементы экрана уровня, и забег начинается так, будто вы нажали Начать. Они работают только вместе с --game. Без него они игнорируются, с предупреждением в логе

АргументЗначениеЭлемент на экране уровня
--speedбольше 0 и до 2, округляется до 0.1Скорость
--livesот 0 до 16, 0 - это ДзенЖизни
--seed0 или положительное целое, 0 - новый сид на каждый забегСид игрока
--botnone, reflex, warmБот
--checkpoints, --no-checkpoints-Контрольные точки

Пропущенное условие берёт значение по умолчанию: 3 жизни, скорость 1.0, контрольные точки включены, без бота, сид 0

Забег, запущенный так, - обычный забег. Он идёт в статистику, как любой другой, Статистика

Переключатели на весь запуск

Эти три работают с любым экраном и никогда не меняют сохранённую настройку:

АргументЧто делает
--autosave on, --autosave offвключает или выключает автосохранение редактора на этот запуск. Вкладка настроек Редактор показывает навязанное значение и не даёт его изменить
--suppress-game-savesанонимный режим на весь запуск. Выключить его в игре нельзя, Настройки › Анонимный режим
--frame-statsпишет в лог сводку по времени кадра, с временем GPU и CPU. Нужен для замеров производительности

--frame-stats пишет строку по каждому экрану раз в 30 секунд, а также каждый раз, когда меняется окно поверх экрана. Первые 3 секунды экрана не учитываются

Сочетания

КомандаРезультат
ничего или --menuменю
--editorредактор без открытого уровня
--settingsменю, настройки открыты на вкладке, где вы были в последний раз
--settings graphicsто же, на вкладке Графика
--level Xменю на экране уровня X, ждёт Начать
--level X --gameуровень X, идёт забег
--level X --editorредактор с открытым уровнем X
--game без --levelменю и предупреждение
--menu --editorменю и предупреждение
--speed 2 без --gameусловие игнорируется, с предупреждением
--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 интента, который запускает игру, и разбиваются точно так же, как набранная строка. С компьютера это делается через 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 сначала останавливает запущенную игру. Аргументы читаются один раз, при запуске. Если отправить их уже запущенной игре, ничего не изменится

На iOS аргументов запуска нет совсем