2015-09-16 3 views
0

J'ai 4 boutons et ils clignotent chacun lorsque le bouton est enfoncé. Cependant, si vous appuyez sur un bouton, alors que le bouton est plus sombre (clignotant) cliquez sur un autre bouton, ce bouton reste alors sombre. Je veux réinitialiser la couleur de l'image-objet avant de la désactiver mais cela ne fonctionne pas. Lorsque les boutons sont pressés, ils clignotent plus ....Comment modifier l'alpha d'une image-objet à l'aide d'un script dans Unity

Voici le code:

void Start() { 
     easy.GetComponent<SpriteRenderer>().color = color; 
    } 

    void Update() { 
     if(difficultySelected[0] == true){ 
      enemyBehavior.shotsPerSecond = 0.2f; 
      //Enabling the selected button 
      easy.enabled = true; 

      //Reseting the colors 
      normal.GetComponent<SpriteRenderer>().color = color; 
      hard.GetComponent<SpriteRenderer>().color = color; 
      expert.GetComponent<SpriteRenderer>().color = color; 

      //Disabling the 'unselected' buttons 
      normal.enabled = false; 
      hard.enabled = false; 
      expert.enabled = false; 

      easy.Play("Difficulty"); 
     }else if(difficultySelected[1] == true){ 
      enemyBehavior.shotsPerSecond = 0.5f; 
      normal.enabled = true; 

      easy.GetComponent<SpriteRenderer>().color = color; 
      hard.GetComponent<SpriteRenderer>().color = color; 
      expert.GetComponent<SpriteRenderer>().color = color; 

      easy.enabled = false; 
      hard.enabled = false; 
      expert.enabled = false; 

      normal.Play("Difficulty"); 
     }else if(difficultySelected[2] == true){ 
      enemyBehavior.shotsPerSecond = 1; 
      hard.enabled = true; 

      easy.GetComponent<SpriteRenderer>().color = color; 
      normal.GetComponent<SpriteRenderer>().color = color; 
      expert.GetComponent<SpriteRenderer>().color = color; 

      easy.enabled = false; 
      normal.enabled = false; 
      expert.enabled = false; 

      hard.Play("Difficulty"); 
     }else if(difficultySelected[3] == true){ 
      enemyBehavior.shotsPerSecond = 2; 
      expert.enabled = true; 

      easy.GetComponent<SpriteRenderer>().color = color; 
      normal.GetComponent<SpriteRenderer>().color = color; 
      hard.GetComponent<SpriteRenderer>().color = color; 

      easy.enabled = false; 
      normal.enabled = false; 
      hard.enabled = false; 

      expert.Play("Difficulty"); 
     } 
    } 
+0

sonne comme une tâche de débogage que vous avez devant vous .. commencer le débogage – MethodMan

+0

Je ne suis pas très familier avec Unity3d, mais alpha est généralement un canal en couleur. 'RGBA' .. Je (pense que c'est GBRA dans les fichiers targa 32bit, mais vous n'avez généralement pas à traiter avec l'ordre des octets dans géré ..) –

+0

masquage est une autre technique qui s'applique à l'image entière/graphique/texture –

Répondre

0

Vous pouvez écrire:

color.a = 1f; // value between 0 and 1, where 1 is opaque 

//Resetting the colors 
normal.GetComponent<SpriteRenderer>().color = color; 
hard.GetComponent<SpriteRenderer>().color = color; 
expert.GetComponent<SpriteRenderer>().color = color;