Aller au contenu
Documentation
Sur cette page

Arguments de lancement

Les arguments de lancement ouvrent directement un écran, un niveau ou une partie, et les interrupteurs modifient un seul lancement du jeu. Ils se placent après l'exécutable : dans un raccourci, un terminal ou les options de lancement de Steam

Sans arguments, le jeu ouvre le menu principal

Un assistant IA connecté par MCP peut envoyer les mêmes arguments à un jeu déjà lancé - Assistant IA

Syntaxe

  • chaque argument commence par deux tirets : --editor
  • une valeur suit après un espace ou après = : --speed 1.5 et --speed=1.5 sont équivalents
  • la casse de la clé n'a pas d'importance : --Editor fonctionne aussi
  • les nombres utilisent un point quelle que soit la langue du système : 1.5, jamais 1,5
  • une valeur avec des espaces se met entre guillemets doubles : --level "D:\My Levels\Volcano"

Un argument que le jeu ne peut pas utiliser n'arrête jamais le lancement. Il est abandonné, une ligne à son sujet part dans le log, et le jeu ouvre son écran habituel. Où est le log - Aide et rapports de bug › Logs

Les arguments inconnus sont ignorés. Le jeu ne lit que ses propres arguments, ceux à deux tirets. Les arguments d'Unity à un seul tiret, par exemple -screen-width, passent sans être touchés. C'est avec eux que se règlent la résolution et le plein écran

Écrans

ArgumentCe qui s'ouvre
--menule menu principal, comme sans arguments
--editorl'éditeur de niveaux
--gamele niveau indiqué dans --level, et la partie démarre tout de suite
--settingsle menu principal avec l'écran des paramètres par-dessus

On passe au plus un argument d'écran. Deux arguments différents s'annulent, et le menu s'ouvre avec un avertissement dans le log

--settings peut nommer un onglet : general, audio, controls, keybindings, graphics, interface, game-editor, profile, other. Sans nom, les paramètres s'ouvrent sur l'onglet où tu étais la dernière fois. Un nom inconnu est abandonné, et les paramètres s'ouvrent quand même

Les paramètres s'ouvrent une fois par lancement. Si tu reviens au menu plus tard, ils ne se rouvrent pas. Ce que contient chaque onglet - Paramètres

Choisir un niveau

--level désigne un niveau par son identifiant (LevelId) ou par le chemin de son dossier. Un titre ne fonctionne jamais : les titres se répètent, se traduisent et se modifient. Une valeur qui se lit comme un identifiant est toujours prise comme un identifiant

Le niveau est cherché parmi ceux que le jeu affiche déjà dans sa liste. Le jeu ne trouvera pas un dossier qui n'est pas dans la liste

AvecCe qui se passe
rienle menu s'ouvre sur l'écran du niveau et attend Jouer
--editorl'éditeur s'ouvre avec ce niveau
--gamela partie démarre tout de suite

Un mot de passe n'est jamais passé en argument. Un niveau protégé le demande à l'écran et s'ouvre après la réponse

Conditions de partie

Ces conditions remplissent les contrôles de l'écran du niveau, et la partie démarre comme si tu avais appuyé sur Jouer. Elles ne fonctionnent qu'avec --game. Sans lui, elles sont ignorées, avec un avertissement dans le log

ArgumentValeurContrôle sur l'écran du niveau
--speedau-dessus de 0 et jusqu'à 2, arrondi à 0.1Vitesse
--livesde 0 à 16, 0 correspond à ZenVies
--seed0 ou un entier positif, 0 veut dire une nouvelle graine à chaque partieGraine du joueur
--botnone, reflex, warmBot
--checkpoints, --no-checkpoints-Checkpoints
--no-collision-Sans collision

Une condition omise prend sa valeur par défaut : 3 vies, vitesse 1.0, checkpoints activés, pas de bot, graine 0, collisions activées

Une partie lancée ainsi est une partie ordinaire. Elle entre dans les statistiques comme n'importe quelle autre, Statistiques

Interrupteurs pour tout le lancement

Ces trois-là fonctionnent avec n'importe quel écran et ne modifient jamais un paramètre enregistré :

ArgumentCe qu'il fait
--autosave on, --autosave offactive ou désactive l'enregistrement automatique de l'éditeur pour ce lancement. L'onglet de paramètres Éditeur montre la valeur forcée et ne permet pas de la changer
--suppress-game-savesmode anonyme pour tout le lancement. Il ne peut pas être désactivé dans le jeu, Paramètres › Mode anonyme
--frame-statsécrit dans le log un résumé du temps par image, avec le temps GPU et CPU. Sert aux mesures de performances
--frame-stats-windowspendant qu'un niveau tourne, écrit aussi une ligne toutes les 0,25 s de jeu : l'image du niveau et la médiane du temps CPU et GPU. Active aussi --frame-stats. À la fermeture du niveau, une ligne de plus compare chaque fenêtre à ce que la note prévoyait pour elle. Sert à vérifier Évaluation des performances

--frame-stats écrit une ligne par écran toutes les 30 secondes, et aussi à chaque changement de la fenêtre au-dessus de l'écran. Les 3 premières secondes d'un écran ne sont pas comptées

Combinaisons

CommandeRésultat
rien ou --menumenu
--editorl'éditeur sans niveau ouvert
--settingsmenu, paramètres ouverts sur l'onglet où tu étais la dernière fois
--settings graphicsla même chose, sur l'onglet Graphismes
--level Xmenu sur l'écran du niveau X, attend Jouer
--level X --gameniveau X, une partie en cours
--level X --editorl'éditeur avec le niveau X ouvert
--game sans --levelmenu et un avertissement
--menu --editormenu et un avertissement
--speed 2 sans --gamela condition est ignorée, avec un avertissement
--editor --autosave offl'éditeur, enregistrement automatique désactivé pour ce lancement seulement
--autosave maybeignoré avec un avertissement, ton paramètre décide
--suppress-game-savesmenu. Aucun des enregistrements propres du jeu pendant ce lancement n'atteint le disque
--level X --game --suppress-game-savesniveau X, une partie en cours, et aucune statistique ne reste après
--editor --suppress-game-savesl'éditeur. Les enregistrements des niveaux, l'enregistrement automatique et les sauvegardes sont écrits, les paramètres et les statistiques non

Exemples

Sur Windows, depuis un terminal ou un raccourci :

"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

Dans Steam, les options de lancement du jeu ne prennent que les arguments, sans l'exécutable : --editor --autosave off

Android

Android n'a pas de ligne de commande. Les arguments sont passés dans l'extra de type chaîne bh de l'intent qui lance le jeu, et sont découpés exactement comme une ligne tapée. Depuis un ordinateur, cela se fait avec adb :

adb shell "am start -S -n com.vertoker.BulletHero/com.unity3d.player.UnityPlayerGameActivity -e bh '--frame-stats --editor'"
  • Les guillemets comptent. Tout le am start va entre guillemets doubles, la valeur de bh entre guillemets simples. Sinon le shell de l'appareil découpe la ligne : seul le premier argument atteint bh, et les autres vont à am comme ses propres paramètres
  • -S arrête d'abord le jeu en cours. Les arguments sont lus une seule fois, au lancement. Les envoyer à un jeu déjà lancé ne change rien

iOS n'a pas du tout d'arguments de lancement