Аргументы запуска
Аргументы командной строки, которые сразу открывают экран, уровень или забег, и переключатели, меняющие один запуск игры
Аргументы запуска говорят игре, что открыть при старте. Они пишутся после исполняемого файла: в ярлыке, в терминале или в параметрах запуска 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 - это Дзен | Жизни |
--seed | 0 или положительное целое, 0 - новый сид на каждый забег | Сид игрока |
--bot | none, 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 аргументов запуска нет совсем