Création d'un launcher
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Création d'un launcher
Bonjour,
Je développe un jeu, et comme tout jeux, ils y à des mises à jours.
Donc, j'ai développer un launcher en C# (Visual Studio 2015) mais je souhaiterais que le joueur sois obliger d'utiliser le launcher.
Je vais faire un exemple:
Le joueur lancer le jeu sans utilisé le launcher => Un message lui dit qu'il doit utiliser le launcher
Le joueur lancer le launcher cliquer sur "jouer" et qui ouvre le jeu => Il à accès au jeu
Mais je ne sais pas comment "forcer" le joueur à utiliser le launcher, si quelqu'un aurais une idée..
Cordialement.
Je développe un jeu, et comme tout jeux, ils y à des mises à jours.
Donc, j'ai développer un launcher en C# (Visual Studio 2015) mais je souhaiterais que le joueur sois obliger d'utiliser le launcher.
Je vais faire un exemple:
Le joueur lancer le jeu sans utilisé le launcher => Un message lui dit qu'il doit utiliser le launcher
Le joueur lancer le launcher cliquer sur "jouer" et qui ouvre le jeu => Il à accès au jeu
Mais je ne sais pas comment "forcer" le joueur à utiliser le launcher, si quelqu'un aurais une idée..
Cordialement.
Re: Création d'un launcher
Unity (Et même le C# en général) te permet de récupérer des commandes qui on été lancées avec l'exe grâce à Environment.GetCommandLineArgs, ce qui te renvoi un tableau des commandes lors du lancement de l'application.
Par exemple pour une application j'ai dut faire des .bat pour lancer directement une partie de mon jeu. J'ai donc dut faire un .bat
Et dans un script sur la première scène de mon jeu, je récupérait les lignes de commandes pour savoir si je devais directement lancer mon jeu ou si je devais laisser le menu principal
Tu peux très bien adapter cette solution là à ton problème. Si tu lances le jeu depuis ton launcher, tu lui passe un argument (Une clef). Comme ça tu peux certifier à ton application qu'elle a bien été lancée par ton launcher et non à la mano. Ce qui est pratique c'est que tu peux lui passer ce que tu veux. Tu peux donc lui passer une clef de sécurité hyper longue, comme ça il est quasiment impossible de trouver par hasard l'argument que tu as mit pour débloquer le jeu.
Par exemple pour une application j'ai dut faire des .bat pour lancer directement une partie de mon jeu. J'ai donc dut faire un .bat
Code : Tout sélectionner
%~dp0"MON_APP.exe" -game cachecache
Code : Tout sélectionner
string[] arguments = Environment.GetCommandLineArgs();
for( int i = 0; i < arguments.Length; i++ )
{
if( arguments[i] == "-game" && i+1 < arguments.Length )
{
if( arguments[i+1] == "poussepousse" )
OnPoussPouss();
else if( arguments[i+1] == "cachecache" )
OnHiddenObject();
}
}
Re: Création d'un launcher
simonj a écrit :Unity (Et même le C# en général) te permet de récupérer des commandes qui on été lancées avec l'exe grâce à Environment.GetCommandLineArgs, ce qui te renvoi un tableau des commandes lors du lancement de l'application.
Par exemple pour une application j'ai dut faire des .bat pour lancer directement une partie de mon jeu. J'ai donc dut faire un .bat
Et dans un script sur la première scène de mon jeu, je récupérait les lignes de commandes pour savoir si je devais directement lancer mon jeu ou si je devais laisser le menu principalCode : Tout sélectionner
%~dp0"MON_APP.exe" -game cachecache
Tu peux très bien adapter cette solution là à ton problème. Si tu lances le jeu depuis ton launcher, tu lui passe un argument (Une clef). Comme ça tu peux certifier à ton application qu'elle a bien été lancée par ton launcher et non à la mano. Ce qui est pratique c'est que tu peux lui passer ce que tu veux. Tu peux donc lui passer une clef de sécurité hyper longue, comme ça il est quasiment impossible de trouver par hasard l'argument que tu as mit pour débloquer le jeu.Code : Tout sélectionner
string[] arguments = Environment.GetCommandLineArgs(); for( int i = 0; i < arguments.Length; i++ ) { if( arguments[i] == "-game" && i+1 < arguments.Length ) { if( arguments[i+1] == "poussepousse" ) OnPoussPouss(); else if( arguments[i+1] == "cachecache" ) OnHiddenObject(); } }
Bonjour,
Je n'ai pas très bien compris avec le .bat, je doit faire quoi exactement au niveau du launcher? Le joueur doit lancer le .bat ou bien sur mon bouton "jouer" je lancer le .bat, qui lui lancera le jeu?
Pour la première scène de mon jeu, j'ai compris en principe
Meric de vos réponse à vous deux :p
EDIT:
J'ai une erreur lors de la compilation:
Code : Tout sélectionner
Assets/lancer.cs(4,10): error CS0116: A namespace can only contain types and namespace declarations
Code : Tout sélectionner
string[] arguments = Environment.GetCommandLineArgs();
Re: Création d'un launcher
Est-tu sûr que cela ne fonctionne que sur Windows ? Il ne me semble pas voir de restriction quand à l'utilisation sur Mac et Linux. A moins que j'ai loupé quelque chose dans la doc ?Freelax a écrit :Bon de preciser que c'est "Window only "
Il doit te manquer l'intégration de la librairie. Il faut rajouter tout en haut :xnooztv a écrit :J'ai une erreur lors de la compilation:
Code : Tout sélectionner
using System;
Re: Création d'un launcher
J'ai fais cela dans le script:simonj a écrit :Est-tu sûr que cela ne fonctionne que sur Windows ? Il ne me semble pas voir de restriction quand à l'utilisation sur Mac et Linux. A moins que j'ai loupé quelque chose dans la doc ?Freelax a écrit :Bon de preciser que c'est "Window only "
Il doit te manquer l'intégration de la librairie. Il faut rajouter tout en haut :xnooztv a écrit :J'ai une erreur lors de la compilation:
Le .bat pour moi était juste un exemple. Comment lance tu ton .exe depuis ton launcher en C# ? C'est directement dans ta commande de lancement que tu vas rajouter des arguments.Code : Tout sélectionner
using System;
Code : Tout sélectionner
void Update () {
string[] arguments = Environment.GetCommandLineArgs();
for (int i = 0; i < arguments.Length; i++)
{
if (arguments[i] == "-game" && i + 1 < arguments.Length)
{
if (arguments[i + 1] == "poussepousse")
OnPoussPouss();
else if (arguments[i + 1] == "cachecache")
OnHiddenObject();
}
}
}
C'est correct? Je n'ai plus d'erreur (a part pour le OnPoussPouss et OnHiddenObject que je modifierais)
Dans le launcher, je fais cela pour lancer le jeu:
Code : Tout sélectionner
Process p = new Process();
p.StartInfo = new ProcessStartInfo("Landward.exe");
p.Start();
Du coup, je doit faire sa?
Code : Tout sélectionner
Process p = new Process();
p.StartInfo = new ProcessStartInfo("Landward.exe -game ARGUEMENTTRESCOMPLETd");
p.Start();
Re: Création d'un launcher
Pour la recup des args inapp oui mais .cmd, .bat, .exe c'est lié à l'OS, donc pour osx faudra le faire différemment.Est-tu sûr que cela ne fonctionne que sur Windows ? Il ne me semble pas voir de restriction quand à l'utilisation sur Mac et Linux. A moins que j'ai loupé quelque chose dans la doc ?
Re: Création d'un launcher
A ma connaissance, un .bat et un .exe s'ouvre uniquement sur Windows.. dite moi si je me trompe ^^Freelax a écrit :Pour la recup des args inapp oui mais .cmd, .bat, .exe c'est lié à l'OS, donc pour osx faudra le faire différemment.Est-tu sûr que cela ne fonctionne que sur Windows ? Il ne me semble pas voir de restriction quand à l'utilisation sur Mac et Linux. A moins que j'ai loupé quelque chose dans la doc ?
Re: Création d'un launcher
Désolé du double post:
J'ai modifier le bout de script que tu m'a donner et sa à l'air de fonctionner!
Je galère juste à faire une boite de dialogue qui indique au joueur qu'il doit lancer le jeu via le launcher.
Merci
J'ai modifier le bout de script que tu m'a donner et sa à l'air de fonctionner!
Je galère juste à faire une boite de dialogue qui indique au joueur qu'il doit lancer le jeu via le launcher.
Merci
Re: Création d'un launcher
Ah oui d'accord ! Je parlais juste de la récupération des arguments. Que ça soit un Launcher, un .bat, ... c'est une autre question ! ^^Freelax a écrit :Pour la recup des args inapp oui mais .cmd, .bat, .exe c'est lié à l'OS, donc pour osx faudra le faire différemment.Est-tu sûr que cela ne fonctionne que sur Windows ? Il ne me semble pas voir de restriction quand à l'utilisation sur Mac et Linux. A moins que j'ai loupé quelque chose dans la doc ?
Sinon pour lancer le jeu avec des arguments, tu fais :
Code : Tout sélectionner
Process p = new Process();
p.StartInfo = new ProcessStartInfo("Landward.exe");
p.StartInfo.Arguments = "-game ARGUEMENTTRESCOMPLET";
p.Start();
Pour la boite de dialogue, c'est de l'UI. C'est pas hyper simple à prendre en main sous Unity, mais une fois que tu as compris, tu galères beaucoup moins. Il y a des tutoriels sur le site.