[DB-AL] Changer la couleur d'un bouton

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
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
jojolp
Messages : 22
Inscription : 18 Mai 2016 13:39
Localisation : Chalamont

[DB-AL] Changer la couleur d'un bouton

Message par jojolp » 31 Mai 2016 10:57

Bonjour,

je voudrais changer la couleur d'un bouton quand j'approche d'un objet, j'ai essayer ceci

Code : Tout sélectionner

  
  var limiteDetection : float=10.0;
  var newColor: Color;
  var hit : RaycastHit ;
  var fwd: Vector3 = transform.TransformDirection(Vector3.forward);

   if(Physics.Raycast(transform.position,fwd, hit, limiteDetection)){

   	 if(hit.transform.CompareTag( tagObjet )){

   		 button.colors.disabledColor= newColor.green;

  	  }else{
   		 button.colors.disabledColor= newColor.red;
    }
    }
mais cela ne fonctionne pas :/

quelqu'un peut m'aider ? svp

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: [DB-AL] Changer la couleur d'un bouton

Message par simonj » 31 Mai 2016 12:20

Salut,

C'est pas normal que tu modifies la "disabledColor". Cette couleur interviens uniquement si le bouton n'est pas interactif. Je pense qu'il faut que tu modifies la "normalColor".

De plus, je ne sais pas si tu arrives à compiler avec ton code, mais le colors d'un button est une structure. Ce qui fait que tu ne peux pas modifier à la volé un composant comme ça. Enfin, il me semble.
Dans mes souvenirs, tu dois faire :

Code : Tout sélectionner

ColorBlock cb = button.colors;
cb.disabledColor= newColor.green;
button.colors = cb;

jojolp
Messages : 22
Inscription : 18 Mai 2016 13:39
Localisation : Chalamont

Re: [DB-AL] Changer la couleur d'un bouton

Message par jojolp » 31 Mai 2016 13:10

Code : Tout sélectionner

 

  var newColor: Color;
  var hit : RaycastHit ;
  var fwd: Vector3 = transform.TransformDirection(Vector3.forward);
  var nb  = button.colors;
  var hb  = button.colors;

   if(Physics.Raycast(transform.position, fwd, hit, limiteDetection)){  //ne détecte pas

    if(hit.transform.CompareTag( tagObjet )){

	nb.normalColor= newColor.green;
	button.colors = nb;
	hb.highlightedColor= newColor.green;
	button.colors = hb;

    }else{

	nb.normalColor= newColor.red;
	button.colors = nb;
	hb.highlightedColor= newColor.red;
	button.colors = hb;
    }
    }
cela fonctionne quand j'ai pas la condition de détection d'objet

jojolp
Messages : 22
Inscription : 18 Mai 2016 13:39
Localisation : Chalamont

Re: [DB-AL] Changer la couleur d'un bouton

Message par jojolp » 31 Mai 2016 13:48

j'ai trouver pourquoi cela ne fonctionnai pas ^^ je comparais pas avec la bonne direction xD du coup j'ai fait

Code : Tout sélectionner

  var bck: Vector3 = transform.TransformDirection(Vector3.back);
  var lft: Vector3 = transform.TransformDirection(Vector3.left);
  var fwd: Vector3 = transform.TransformDirection(Vector3.forward);
  var rght: Vector3 = transform.TransformDirection(Vector3.right);
  var nb  = button.colors;

   if(Physics.Raycast(player.transform.position, fwd, hit, limiteDetection)||Physics.Raycast(player.transform.position, rght, hit, limiteDetection)||Physics.Raycast(player.transform.position, bck, hit, limiteDetection)||Physics.Raycast(player.transform.position, lft, hit, limiteDetection)){ ....}
pour comparé mais la couleur change seulement si je suis dans une des directions mais si je suis un poil à coté cela ne fonctionne plus je voudrais détecter l’objet n’importe ou dans un rayon autour de celui-ci, or la je le détecte juste si je suis devant lui sur les axe x, -x, z et -z

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6225
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB-AL] Changer la couleur d'un bouton

Message par boubouk50 » 31 Mai 2016 14:11

Colles-lui un collider sphérique et fais le changement de couleur via OnTriggerEnter () et OnTriggerExit ().
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

jojolp
Messages : 22
Inscription : 18 Mai 2016 13:39
Localisation : Chalamont

Re: [DB-AL] Changer la couleur d'un bouton

Message par jojolp » 31 Mai 2016 14:18

ok je vais tester merci

j'ai essayer ca

Code : Tout sélectionner

function OnTriggerEnter (collider:Collider){
   var nb  = button.colors;
	  if(collider.gameObject.tag == tagObjet){

	nb.normalColor= Color.green;
	button.colors = nb;
	}

}
function OnTriggerExit(collider:Collider){
   var nb  = button.colors;
	  if(collider.gameObject.tag == tagObjet){

	nb.normalColor= Color.red;
	button.colors = nb;
	}

}
mais cela ne fonctionne pas :/ le bouton reste vert.

ensuite je voudrais récupéré des données de cette objet en cliquant sur le bouton quand il est vert et le je voit pas comment récupéré les données

Verrouillé

Revenir vers « (Js) Javascript »