Modifier un GUI Text en jeu
Modifier un GUI Text en jeu
Bonjour/Bonsoir à tous, je m'excuse à l'avance de ne pas avoir regardé si il y avait déjà eu un sujet similaire, je prendrais le temps de le faire à l'avenir.
Voilà, je débute sur Unity 3D depuis 3 semaines, et je me demandais si il était possible de créer un JavaScript, permettant de modifier un GUIText pendant le jeu, car je souhaites créer un FPS, l'accès à la session (pour une version pre-alpha) se ferait en 3 scènes dans cet ordre : Menu principal ---> Compte à rebours avec vue d'ensemble de la map ---> Session de jeu.
Dans la 2ème scène (Compte à Rebours) je compte enfait prendre le script présent dans le pack TeleportKit du site "Formation-facile", afin de l'appliquer au décor, et en même temps un GUI Text au milieu de l'écran décomptant par exemple de 5 à 0 avec des "yield WaitForSeconds" avant de charger la scène de Session de jeu.
Voilà tout je remercie d'avance ceux qui prendront la peine de me répondre malgré le fait que je n'ai pas recherché sur le forum si il y avait déjà eu des réponses à une question similaire.
Bonne journée/Bonne soirée, DL Rarity.
Voilà, je débute sur Unity 3D depuis 3 semaines, et je me demandais si il était possible de créer un JavaScript, permettant de modifier un GUIText pendant le jeu, car je souhaites créer un FPS, l'accès à la session (pour une version pre-alpha) se ferait en 3 scènes dans cet ordre : Menu principal ---> Compte à rebours avec vue d'ensemble de la map ---> Session de jeu.
Dans la 2ème scène (Compte à Rebours) je compte enfait prendre le script présent dans le pack TeleportKit du site "Formation-facile", afin de l'appliquer au décor, et en même temps un GUI Text au milieu de l'écran décomptant par exemple de 5 à 0 avec des "yield WaitForSeconds" avant de charger la scène de Session de jeu.
Voilà tout je remercie d'avance ceux qui prendront la peine de me répondre malgré le fait que je n'ai pas recherché sur le forum si il y avait déjà eu des réponses à une question similaire.
Bonne journée/Bonne soirée, DL Rarity.
Re: Modifier un GUI Text en jeu
Il faudrait faire une pétition pour qu'ils arrêtent avec les GUITexture et GUIText chez UT...Vivement le prochain système de GUI.
Si tu veux utiliser du GUI d'Unity classique (pas les GUIText) tu peux faire:
Voilà par exemple pour afficher le score.
J'ai fais un p'tit tuto qui parle de ce genre de GUI sur mon site (signature), si ça t'intéresse.
Si tu veux utiliser du GUI d'Unity classique (pas les GUIText) tu peux faire:
Code : Tout sélectionner
var score : int = 0;
function OnGUI()
{
GUI.Label(Rect(50,50,100,50), score.ToString());
}
J'ai fais un p'tit tuto qui parle de ce genre de GUI sur mon site (signature), si ça t'intéresse.
Re: Modifier un GUI Text en jeu
Merci cayou, j'ai déjà vu ton site il y a de ça une semaine à peine je m'y intéresserais d'avantage, même si je ne veux pas afficher mon score mais créer un décompte de temps, j'ai compris ce que tu voulais dire, merci à toi pour cette réponse.
Re: Modifier un GUI Text en jeu
Bonjour, j'ai simplifié mon code que voilà :
Ce script est assigné à une Main Camera, le décompte marche mais... Pas correctement.
Quand je lance la scène, sur l'écran j'ai bien le "5", mais après une seconde ça passe à "3", puis presque instantanément ça passe à -1 puis charge la scène suivante (Maptest), sauriez-vous que dois-je corriger ?
Code : Tout sélectionner
var nombre : int = 5;
function OnGUI(){
decompte();
}
function decompte(){
GUI.Label(Rect(500, 200, 25, 25), nombre.ToString());
do {
yield WaitForSeconds (1);
nombre--;
}
while (nombre != 0);
Application.LoadLevel("Maptest");
}
Quand je lance la scène, sur l'écran j'ai bien le "5", mais après une seconde ça passe à "3", puis presque instantanément ça passe à -1 puis charge la scène suivante (Maptest), sauriez-vous que dois-je corriger ?
Re: Modifier un GUI Text en jeu
Parce que c'est pas du tout comme ça que ça marcheDL Rarity a écrit :Bonjour, j'ai simplifié mon code que voilà :
Ce script est assigné à une Main Camera, le décompte marche mais... Pas correctement.Code : Tout sélectionner
var nombre : int = 5; function OnGUI(){ decompte(); } function decompte(){ GUI.Label(Rect(500, 200, 25, 25), nombre.ToString()); do { yield WaitForSeconds (1); nombre--; } while (nombre != 0); Application.LoadLevel("Maptest"); }
Quand je lance la scène, sur l'écran j'ai bien le "5", mais après une seconde ça passe à "3", puis presque instantanément ça passe à -1 puis charge la scène suivante (Maptest), sauriez-vous que dois-je corriger ?
ton "yield WaitForSeconds()" doit s'utiliser dans une coroutine.
OnGUI fonctionne comme une boucle Update (même si c'est pas exactement vrai), et va tourner tout le temps. Les WaitForSeconds ne marche pas ici je crois.
Il faut que tu fasses une Coroutine qui décrémente une variable, et dans la GUI tu affiches simplement la valeur de ta variable.
Je te laisse te renseigner sur les coroutines : http://docs.unity3d.com/Documentation/S ... Yield.html
Re: Modifier un GUI Text en jeu
Tu devrais faire des réponses toutes faites BenouKat au sujet des coroutines
Re: Modifier un GUI Text en jeu
Merci pour les coroutines, mais alors comment je règle mon problème ? Je sais que je devrais me débrouiller mais quelqu'un pourrait me donner la solution s'il vous plaît ? Ah oui le titre n'est plus tellement approprié comme je veux modifier un GUI.Label, ou alors est-il possible d'afficher une image au format GIF puis simplement mettre dans mon code "yield WaitForSeconds" et un "Application.LoadLevel("Maptest")" ?
Re: Modifier un GUI Text en jeu
Perso j'aurai fait ça (si tu veux faire un décompte):
La ligne
Tu peux la placer ailleurs que dans le start, si tu veux déclencher ton compteur plus tard.
Code : Tout sélectionner
var nombre : int = 5;
function Start()
{
InvokeRepeating("decompte", 1f, 1f);
}
function OnGUI(){
GUI.Label(Rect(500, 200, 25, 25), nombre.ToString());
if(nombre == 0)
{
Application.LoadLevel("Maptest");
}
}
function decompte()
{
nombre--;
}
Code : Tout sélectionner
InvokeRepeating("decompte", 1f, 1f);
Re: Modifier un GUI Text en jeu
Merci ça marche du tonnerre
Après je connaissais pas "InvokeRepeating", j'ai pas encore trop maîtrisé le Python, mais merci je me renseignerais la dessus dans la doc, en attendant merci et bonne journée !
Après je connaissais pas "InvokeRepeating", j'ai pas encore trop maîtrisé le Python, mais merci je me renseignerais la dessus dans la doc, en attendant merci et bonne journée !
Re: Modifier un GUI Text en jeu
DL Rarity a écrit : j'ai pas encore trop maîtrisé le Python
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ