trouble switching between booleans
Hello I am having some difficulties in having my player object switch between Booleans when a key is pressed. This is the code I have in my Update() function. Trying to make it be able to cycle through the different character outfits when a button is pressed.
 if (Input.GetKeyDown (KeyCode.I)) {
 
             if (playerUniform < 2)
             {
                 playerUniform = playerUniform + 1;
             }
 
             if (playerUniform >= 3)
             {
                 playerUniform = 0;
             }
         }
 
         if (playerUniform == 0) {
             playerBuster = true;
             playerOutfit1 = false;
             playerOutfit2 = false;
         }
          
         if (playerUniform == 1) {
             playerBuster = false;
             playerOutfit1 = true;
             playerOutfit2 = false;
         }
 
         if (playerUniform == 2) {
             playerBuster = false;
             playerOutfit1 = false;
             playerOutfit2 = true;
         }
 
 
 
              I've also tried coding it like this but no luck.
 if (Input.Get$$anonymous$$eyDown ($$anonymous$$eyCode.I) && playerUniform == 0) 
         {
             playerUniform = 1;
         }
 
         if (Input.Get$$anonymous$$eyDown ($$anonymous$$eyCode.I) && playerUniform == 1) 
         {
             playerUniform = 2;
         }
 
         if (Input.Get$$anonymous$$eyDown ($$anonymous$$eyCode.I) && playerUniform == 2) 
         {
             playerUniform = 0;
         }
 
         if (playerUniform == 0) {
             playerBuster = true;
             playerOutfit1 = false;
             playerOutfit2 = false;
         }
          
         if (playerUniform == 1) {
             playerBuster = false;
             playerOutfit1 = true;
             playerOutfit2 = false;
         }
 
         if (playerUniform == 2) {
             playerBuster = false;
             playerOutfit1 = false;
             playerOutfit2 = true;
         }
                 Answer by robin-theilade · Sep 05, 2015 at 08:27 PM
Your code looks right. Either you're not reading the booleans correctly where you need to make the visual change or you're also changing the booleans somewhere else.
Tip: You can shorten the uniform increment by using modulo liks this playerUniform = (playerUniform + 1) % 3;. Then it will always be a value between 0 and 2, both inclusive.
Add the whole script and maybe I can be of more help.
 using UnityEngine;
 
 public class test : $$anonymous$$onoBehaviour {
 
     public int playerUniform = 0;
     public bool playerBuster,playerOutfit1,playerOutfit2;
     private bool set$$anonymous$$eOnly()
     {
         this.playerBuster = (this.playerOutfit1 = (this.playerOutfit2 = false));
         return true;
     }
     void Update(){
         if (Input.Get$$anonymous$$eyDown ($$anonymous$$eyCode.I)) {
             playerUniform = (playerUniform + 1) % 3;
         }
     
         if (playerUniform == 0) {
             playerBuster = this.set$$anonymous$$eOnly();
         }
     
         if (playerUniform == 1) {
             playerOutfit1 = this.set$$anonymous$$eOnly();
         }
     
         if (playerUniform == 2) {
             playerOutfit2 = this.set$$anonymous$$eOnly();
         }
     }
 }
 
                 Just like the script @Positive7 have added, but you need some place where you read the values of the booleans and change the skin/model/texture.
Answer by xylofiso · Sep 06, 2015 at 08:41 PM
Thanks @robin.theilade and @Positive7 the script posted works flawlessly! Now just to figure out those costume changes :D
Your answer
 
             Follow this Question
Related Questions
Other way to write a code 0 Answers
How do I detect if the player specifically is interacting with a trigger? 0 Answers
Unity Update is ignoring the GetKey part of my statement!? 2 Answers
can you set boolean values using the input.getkeydown(keycode.(key)) 1 Answer
Freezing scale of the player 1 Answer