Je suis pas d'accord, une fois que tu as bien assimilé le truc ça coule de source la GUISkincayou66 a écrit :Non c'est vraiment pourriFreelax a écrit :Guiskin c'est simple et rapide avec les customs stylesDans ce cas, tu peux toujours changer de GUIStyle
bouton GUI qui change la couleur de mon objet
Re: bouton GUI qui change la couleur de mon objet
J'étais athée jusqu’à ce que je découvre que j'étais dieu !
-
- Messages : 29
- Inscription : 14 Mai 2013 11:26
Re: bouton GUI qui change la couleur de mon objet
salut les gars !
je suis un peu perdu... j'ai donc ce code :
je dois l'attacher à l'objet dont je souhaite faire changer la couleur ? si oui, il ne me déclare pas les variables publiques ds l'inspector ..
est-ce-que je dois déclarer une variable public rect ?
je suis un peu perdu... j'ai donc ce code :
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class couleur : MonoBehaviour {
public GameObject objetCible ;
public Color newColor01 ;
void OnGUI ()
{
Rect rect = new Rect(10,10,10,10);
GUI.DrawTexture(rect, texture);
if(rect.Contains(Input.mousePosition) && Input.GetMouseButtonDown(0))
{
objetCible.renderer.material.color = newColor01 ;
}
}
}
est-ce-que je dois déclarer une variable public rect ?
Re: bouton GUI qui change la couleur de mon objet
Y a plusieurs choses à voir :
1- Rien ne s'affiche dans ton Inspector car tu as une erreur dans le script. Lis les message de la console, c'est explicite. Ce n'est pas le rect qu'il faut déclarer, mais la texture.
2- Tu peux mettre le script où tu veux, il suffit que tu renseigne bien le champ objetcible ensuite. Si tu met le script sur l'objet à modifier, tu ne devrais pas avoir besoin de déclarer d'objetcible et en remplaçant : par .
1- Rien ne s'affiche dans ton Inspector car tu as une erreur dans le script. Lis les message de la console, c'est explicite. Ce n'est pas le rect qu'il faut déclarer, mais la texture.
2- Tu peux mettre le script où tu veux, il suffit que tu renseigne bien le champ objetcible ensuite. Si tu met le script sur l'objet à modifier, tu ne devrais pas avoir besoin de déclarer d'objetcible et en remplaçant :
Code : Tout sélectionner
objetCible.renderer.material.color = newColor01 ;
Code : Tout sélectionner
renderer.material.color = newColor01 ;
-
- Messages : 29
- Inscription : 14 Mai 2013 11:26
Re: bouton GUI qui change la couleur de mon objet
en effet plus d'erreur ! par contre, ça ne fonctionne pas la couleur de mes deux objets ne change pas qd je clique sur le rectangle,
par contre qd j'ajoute un Debug.Log et que je lance, les couleurs définies apparaissent sans que j'ai appuyé .. Que passa ???
par contre qd j'ajoute un Debug.Log et que je lance, les couleurs définies apparaissent sans que j'ai appuyé .. Que passa ???
Code : Tout sélectionner
public class couleur : MonoBehaviour {
public Color shader;
public Texture texture;
void OnGUI ()
{
Rect rect = new Rect(30,30,30,30);
GUI.DrawTexture(rect, texture);
if(rect.Contains(Input.mousePosition) && Input.GetMouseButtonDown(0))
Debug.Log ("hola");
{
renderer.material.color = shader;
}
}
}
Re: bouton GUI qui change la couleur de mon objet
Attention au accolades...
Si tu décides de mettre un block if il te faut les parenthèses juste après le if, tu ne dois pas mettre des trucs entres...
C'est la base du code ça.
Code : Tout sélectionner
Rect rect = new Rect(30,30,30,30);
GUI.DrawTexture(rect, texture);
if(rect.Contains(Input.mousePosition) && Input.GetMouseButtonDown(0))
Debug.Log ("hola");
{
renderer.material.color = shader;
}
C'est la base du code ça.
-
- Messages : 29
- Inscription : 14 Mai 2013 11:26
Re: bouton GUI qui change la couleur de mon objet
oui mais je cherchais une solution au fait que qd je mette le Debug ici, il me fasse apparaître les couleurs sans que j'appuie sur le rect.
je voulais voir si le rect réagit qd j'appuie dessus et apparemment non ...
c'est un Gui texture avec une image, j'ai essayé différentes fonction ( OnMouseUp etc .. ) mais je n'arrive pas à trouver
quelqu'un aurait une meilleure idée ?
je voulais voir si le rect réagit qd j'appuie dessus et apparemment non ...
c'est un Gui texture avec une image, j'ai essayé différentes fonction ( OnMouseUp etc .. ) mais je n'arrive pas à trouver
quelqu'un aurait une meilleure idée ?
Re: bouton GUI qui change la couleur de mon objet
Tu as mal compris la réflexion de cayou
Avec la façon dont tu as placé tes accolades, si la condition if est respectée, le debug va s'afficher, par contre le changement de couleur est affecté à tout les coups quel que soit la réponse à la condition if.
Il y a 2 façons de construire un if :
1-tu veux lancer une seule instruction et alors tu peux écrire
2-tu veux lancer un ensemble d'action et alors, tu doit utiliser les accolades directement à la suite
Toi, tu a tenté un mix des 2 XD.
Ce qu'il te faut regarder c'est est-ce que ton débug s'affiche ? Avec ce que tu dit, je déduit que l'action de changement des couleurs ne comporte pas d'erreur mais c'est seulement ta condition qui ne doit jamais être remplie. Je parie que ton débug ne s'affiche donc pas quand tu clique sur ta texture.
Après, je n'ai jamais créé de bouton par cette méthode, pour le moment, je ne vois pas où est l'erreur. dsl.
Avec la façon dont tu as placé tes accolades, si la condition if est respectée, le debug va s'afficher, par contre le changement de couleur est affecté à tout les coups quel que soit la réponse à la condition if.
Il y a 2 façons de construire un if :
1-tu veux lancer une seule instruction et alors tu peux écrire
Code : Tout sélectionner
if(ma_condition)
mon_action();
Code : Tout sélectionner
if(ma_condition)
{
mon_action01();
mon_action02();
[.......]
}
Ce qu'il te faut regarder c'est est-ce que ton débug s'affiche ? Avec ce que tu dit, je déduit que l'action de changement des couleurs ne comporte pas d'erreur mais c'est seulement ta condition qui ne doit jamais être remplie. Je parie que ton débug ne s'affiche donc pas quand tu clique sur ta texture.
Après, je n'ai jamais créé de bouton par cette méthode, pour le moment, je ne vois pas où est l'erreur. dsl.
Re: bouton GUI qui change la couleur de mon objet
Merci pour les explications, j'ai écris ça ce matin devant mon p'tit dèj j'étais pas vraiment reveillé et inspiré
Re: bouton GUI qui change la couleur de mon objet
par cayou66 » 15 Mai 2013, 14:39
cayou66 a écrit :Merci pour les explications, j'ai écris ça ce matin devant mon p'tit dèj j'étais pas vraiment reveillé et inspiré
-
- Messages : 29
- Inscription : 14 Mai 2013 11:26
Re: bouton GUI qui change la couleur de mon objet
il est au Canada du coup ça devait être le matin c'est lui
Merci pour votre soutien !
alors l'erreur venait du fait que mon mouseInput n'avait pas les mêmes coordonnées que le rect du coup le clic n'était pas détecté et dc forcément pas d'erreur ds la box..
qd je clique ça fonctionne !
par contre vous connaissez un moyen qui permet de glisser/déposer un shader dans Color au lieu de modifier les RVB ?
Merci pour votre soutien !
alors l'erreur venait du fait que mon mouseInput n'avait pas les mêmes coordonnées que le rect du coup le clic n'était pas détecté et dc forcément pas d'erreur ds la box..
Code : Tout sélectionner
rect.Contains(new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y))
qd je clique ça fonctionne !
par contre vous connaissez un moyen qui permet de glisser/déposer un shader dans Color au lieu de modifier les RVB ?