bouton GUI qui change la couleur de mon objet

Questions à propos du GUI, y compris la partie script.
sephitoth
Messages : 495
Inscription : 06 Avr 2012 13:47
Localisation : toulouse

Re: bouton GUI qui change la couleur de mon objet

Message par sephitoth » 16 Mai 2013 10:50

tu veux pas plutôt dire un materiau ?

Le shader c'est la façon dont va s"afficher la couleur, Le materiau est définis par un type (son shader) puis ensuite par sa couleur, sa texture, ....

Tu peux créer un materiau dans ton dossier Asset que tu peux drag and drop dans une variable de type Material.

Ensuite il te faux changer le materiau de ton objet pour lui affecter ton nouveau materiau.

Je sais, ça fait beaucoup de materiau dans le même post, mais quand on aime on ne compte pas.
J'étais athée jusqu’à ce que je découvre que j'étais dieu !

Pico57
Messages : 576
Inscription : 19 Fév 2013 16:30
Localisation : Cluny

Re: bouton GUI qui change la couleur de mon objet

Message par Pico57 » 16 Mai 2013 10:59

C'est exactement la même chose mais en remplaçant la couleur par un matériau, ou une texture ou ce que tu veux. Il suffit d'adapter

Code : Tout sélectionner

objetCible.renderer.material.color = newColor01 ;
à ce que tu veux changer.
http://docs.unity3d.com/Documentation/S ... erial.html

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

Re: bouton GUI qui change la couleur de mon objet

Message par Freelax » 16 Mai 2013 11:57

Messagepar cayou66 » 14 Mai 2013, 20:17

Freelax a écrit:

Dans ce cas, tu peux toujours changer de GUIStyle



Guiskin c'est simple et rapide avec les customs styles


Non c'est vraiment pourri ;)
ouch :lol:

Bah si tu préfère crée du guistyle dans tout les sens, c'est loin d’être le mieux, et un skin sa peu se changer avec une seule et même variable :D, clique paf changement d'interface :D Le guiskin c'est ni plus ni moins que du guistyle, ya juste un seul et même accès.
Image

ninja_tuna
Messages : 29
Inscription : 14 Mai 2013 11:26

Re: bouton GUI qui change la couleur de mon objet

Message par ninja_tuna » 17 Mai 2013 14:45

Salut

je tente une variante, j'ai accroché un objet à ma caméra, je veux qu'en cliquant sur cet objet, un autre change de couleur :

Code : Tout sélectionner

public Material shader;
public Transform bouton;
	
	void OnMouseUp () {
		
	if(Input.GetMouseButtonUp(0))
			
	{
			
	renderer.material = shader;
	
	}
	
	}
	
		
}
j'ai bien mis le box collider à l'objet mais rien ... vous voyez mon erreur ?

Pico57
Messages : 576
Inscription : 19 Fév 2013 16:30
Localisation : Cluny

Re: bouton GUI qui change la couleur de mon objet

Message par Pico57 » 17 Mai 2013 15:35

il est un peu vide ton code là
- à quoi sert la variable bouton (rien dans ce que tu montre)
- en ecrivant

Code : Tout sélectionner

renderer.material = shader;
tu applique cela à l'objet qui porte le script. je n'ai jamais vu de material sur une caméra XD (à moins qu'il y ai un caméra-man dans ta scène ^^)
- l'objet dont tu veux changer le material est donc inconnu au bataillon
- pourquoi tu effectue l'action au relâchement du clic (Up) et pas au clic (Down).

ninja_tuna
Messages : 29
Inscription : 14 Mai 2013 11:26

Re: bouton GUI qui change la couleur de mon objet

Message par ninja_tuna » 17 Mai 2013 16:44

En faite je l'ai attaché à l'AR caméra ( c'est pour une appli de RA) de vue de dessus l'objet, pour donner l'impression de GUI,

donc mon raisonnement c'est qu'en l'attachant à un objet, le clique lui fera changer sa couleur, un peu comme pour la gui, mais avec des objets, ça a pas l'air possible:/

Pico57
Messages : 576
Inscription : 19 Fév 2013 16:30
Localisation : Cluny

Re: bouton GUI qui change la couleur de mon objet

Message par Pico57 » 17 Mai 2013 17:58

Ce n'est pas un souci de l'attacher à la cam. Par contre, il te faut déclarer un objet public ou privé comme tu veux et que tu affecte l'objet à toucher à la variable. Ensuite te ligne de commance doit etre affectée à l'objet.

Donc il te manque 2 choses:

Code : Tout sélectionner

private GameObject mon_objet;

mon_objet.renderer.material = shader;
ces 2 lignes ainsi que le morceau de code qui affecte le bon objet à la variable mon_objet ou bien l'affecter toi même si c'est une variable publique.

Répondre

Revenir vers « L'interface GUI »