GUI Button avec différents graphiques

Questions à propos du GUI, y compris la partie script.
Avatar de l’utilisateur
kealkeal
Messages : 925
Inscription : 16 Juil 2010 17:31
Localisation : Paris

GUI Button avec différents graphiques

Message par kealkeal » 08 Déc 2011 17:16

Bonjour,

j’utilise actuellement un GUI pour afficher des infos dans la scène 3D.

Ce GUI est lié à une GUISkin, afin d'améliorer l'aspect graphique du GUI.

Dans mon GUI je souhaite mettre plusieurs Boutons.

Exemple :

Code : Tout sélectionner

GUI.Button (new Rect (10,10,50,100),"Bouton 1");

Code : Tout sélectionner

GUI.Button (new Rect (50,10,50,100),"Bouton2");
J'aimerai que le Bouton N°1 soit différent du Bouton N°2, graphiquement parlant.

Comment puis je gérer cela dans mon GUISkin ? :roll:

Merci pour votre aide. ;)
kealkeal

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: GUI Button avec différents graphiques

Message par cayou66 » 08 Déc 2011 17:28

Je parle de ça dans mon tuto *sifflote* :roll:
Plus sérieusement, tu peux attribuer un style à chaque GUI que tu fais:
Le skin regroupe plusieurs GUIStyle mais un GUI.Button par exemple peut recevoir un GUIStyle en paramètre, que tu aura créé auparavant dans ton script:
http://unity3d.com/support/documentatio ... utton.html
style The style to use. If left out, the button style from the current GUISkin is used
Je te renvois à mon tuto si tu veux plus de détails:
http://cayou-prod.com/?p=114&lang=fr Section "Personnalisation"

Avatar de l’utilisateur
kealkeal
Messages : 925
Inscription : 16 Juil 2010 17:31
Localisation : Paris

Re: GUI Button avec différents graphiques

Message par kealkeal » 08 Déc 2011 17:51

Cayou,

Tout d'abord bravo pour ce tuto !

j'ai bien vu ceci :
GUI.Label(Rect(100,100,100,30), "Un label !", monStyle);
Mais où vais je trouver "monStyle" dans mon GUISkin.

Là je suis perdu.
kealkeal

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: GUI Button avec différents graphiques

Message par cayou66 » 08 Déc 2011 17:55

Merci ;)
Je l'explique aussi.
Il faut que tu créé une variable dans ton script:

Code : Tout sélectionner

var monStyle : GUIStyle;
et ensuite dans l'inspecteur va apparaître le style que tu va pouvoir personnaliser à ta guise.
Et si tu le donnes à manger à ton GUI.Button le tour est joué ;)
Un GUIStyle est un style qui va permettre de personnaliser votre affichage. Vous allez pouvoir donner une police à ce style, changer la couleur de fond des objets, etc etc…
Tout se passe dans l’éditeur d’Unity une fois votre variable dans votre script GUIStyle créée. Par exemple:

Code : Tout sélectionner

var monStyle : GUIStyle;
Une fois fait et le script compilé, le style va apparaître sur votre objet en tant que composant. Vous allez pouvoir à ce moment le personnaliser (image de la doc d’Unity):
...
ous voyez donc que nous avons notre « Custom GUI Style » dans cet exemple. Vous allez donc pouvoir changer tout ce que vous souhaitez.

Ensuite, vous pourrez l’utiliser dans votre programme, comme bon vous semble. Il suffira de passer en dernier paramètre de tous les objets GUI votre Style, comme cet exemple:

Code : Tout sélectionner

GUI.Label(Rect(100,100,100,30), "Un label !", monStyle);
Et le tour est joué !

Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

Re: GUI Button avec différents graphiques

Message par Freelax » 09 Déc 2011 01:29

salut!

Au lieu de créer un guistyle en variable, tu le fait dans un guiSkin et en bas tu peu ajouter tes style perso ;)
Image

Avatar de l’utilisateur
kealkeal
Messages : 925
Inscription : 16 Juil 2010 17:31
Localisation : Paris

Re: GUI Button avec différents graphiques

Message par kealkeal » 09 Déc 2011 10:27

Dans mon GUISkin, j'ai créé un nouveau STYLE qui s'appel : "style_test"

Mon code devient donc :

Code : Tout sélectionner

GUI.Button (new Rect (10,10,50,100),"Bouton1",style_test);
J'ai ce message d’erreur :
Assets/script/aide_gui_texte.cs(74,92): error CS0103: The name `style_test' does not exist in the current context
:(

Comme l'indique Freelax, je n'ai pas déclaré de nouvelle variable ...

Merci pour votre aide.
kealkeal

Avatar de l’utilisateur
Loulou
Messages : 239
Inscription : 23 Nov 2011 01:04
Localisation : Paris
Contact :

Re: GUI Button avec différents graphiques

Message par Loulou » 09 Déc 2011 12:53

Dans ta classe :

Code : Tout sélectionner

public GUISkin skin;
Dans ta methode OnGUI :

Code : Tout sélectionner

GUI.Button (new Rect (10,10,50,100),"Bouton1",this.skin.GetStyle("style_test"));
Permet de recuperer un style precis dans un skin.

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: GUI Button avec différents graphiques

Message par cayou66 » 09 Déc 2011 18:01

kealkeal a écrit :Dans mon GUISkin, j'ai créé un nouveau STYLE qui s'appel : "style_test"

Mon code devient donc :

Code : Tout sélectionner

GUI.Button (new Rect (10,10,50,100),"Bouton1",style_test);
J'ai ce message d’erreur :
Assets/script/aide_gui_texte.cs(74,92): error CS0103: The name `style_test' does not exist in the current context
:(

Comme l'indique Freelax, je n'ai pas déclaré de nouvelle variable ...

Merci pour votre aide.
Pourtant, mon explication est on ne peut plus claire. Ce que dit notre ami Freelax c'est que tu peux avoir plusieurs styles dans un skin et choisir celui que tu souhaites.
Tu peux aussi avoir juste un style, sans "skin" et t'en servir normalement.

Enfin Loulou te donne le moyen d'accéder à un style particulier dans un skin.

Si avec ça tu t'en sors pas :P

Avatar de l’utilisateur
Freelax
Messages : 1595
Inscription : 30 Déc 2009 23:02
Localisation : Niort
Contact :

Re: GUI Button avec différents graphiques

Message par Freelax » 09 Déc 2011 22:16

Dans ta methode OnGUI :
Code: Tout sélectionner GUI.Button (new Rect (10,10,50,100),"Bouton1",this.skin.GetStyle("style_test"));

Permet de recuperer un style precis dans un skin.
WOW tu te prend la tete pour rien la :D

Code : Tout sélectionner

 GUI.Button (new Rect (10,10,50,100),"Bouton1","style_test");
 
suffit
Pourtant, mon explication est on ne peut plus claire. Ce que dit notre ami Freelax c'est que tu peux avoir plusieurs styles dans un skin et choisir celui que tu souhaites.
Tu peux aussi avoir juste un style, sans "skin" et t'en servir normalement.
Oui bien sur mais à partir du moment ou tu personnalise un bouton, tu t'arrete pas à celui la ^^, sinon oui la methode du style en variable est bien aussi quand tu souhaite faire un acces par script, ce que tu ne peut pas faire avec GuiStyle ;)
Image

Répondre

Revenir vers « L'interface GUI »