- Home /
Change car models on keypress
Can someone help me minimize and develop more of this code, There are 24 different cars 12 normal 12 cop cars, would be nice if I could press a key ( Spacebar) and would cycle/change trough normal cars on every press, and once I press a specific key let's say (P) from police it will switch to that version of cop car
 var model_01: GameObject;
 var model_02: GameObject;
 var model_03: GameObject;
 var model_04: GameObject;
 var model_05: GameObject;
 var model_06: GameObject;
 var model_07: GameObject;
 var model_08: GameObject;
 var model_09: GameObject;
 var model_10: GameObject;
 var model_11: GameObject;
 var model_12: GameObject;
 
 
 function Start()
 {
 
 model_01.SetActive(true);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 
 function Update(){
 if (Input.GetKeyDown ("1"))
 {
 model_01.SetActive(true);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("2"))
 {
 model_01.SetActive(false);
 model_02.SetActive(true);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("3"))
 {
 model_01.SetActive(false);
 model_02.SetActive(false);
 model_03.SetActive(true);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("4"))
 {
 model_01.SetActive(false);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(true);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("5"))
 {
 model_01.SetActive(false);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(true);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("6"))
 {
 model_01.SetActive(false);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(true);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("7"))
 {
 model_01.SetActive(false);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(true);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("8"))
 {
 model_01.SetActive(false);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(true);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("9"))
 {
 model_01.SetActive(false);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(true);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("0"))
 {
 model_01.SetActive(false);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(true);
 model_11.SetActive(false);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("-"))
 {
 model_01.SetActive(false);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(true);
 model_12.SetActive(false);
 }
 else if  (Input.GetKeyDown ("="))
 {
 model_01.SetActive(false);
 model_02.SetActive(false);
 model_03.SetActive(false);
 model_04.SetActive(false);
 model_05.SetActive(false);
 model_06.SetActive(false);
 model_07.SetActive(false);
 model_08.SetActive(false);
 model_09.SetActive(false);
 model_10.SetActive(false);
 model_11.SetActive(false);
 model_12.SetActive(true);
 }
 }
 
 
it is running in Update(), it just declaring what to be visible at Start() and what not
Why not loop through the cars and check if it has a certain name then display said car, so name police cars police$$anonymous$$odelA, police$$anonymous$$odelB, etc and check if the name contains "police" or "cop". etc
Also I personally would just use 4 controls, left and right to go down the list, and up and down to swap car type. I would put the cars into different lists or layer the list so 1-4 is a cop car and 5-8 is some other car and when you are searching for cop cars if you get to element 5 you either stop at 4 or jump back to 1.
etc...
Use Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.Alpha0) for "0" Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.Alpha1) for "1" etc...
also there are tons of ways to make your code clearer. For instance you could put them into array of type Transform[] than write a method that resets all cars (iterate over array). and than on each button you could just first reset all the cars and than call array[0].gameObject.SetActive(true). for example...
Ins$$anonymous$$d of using model_11.SetActive(false); Use model_11.gameObject.SetActive(false); I'm sure that's your problem
Answer by Alex_TNT · Mar 27, 2015 at 11:18 AM
code on unity forum I made with help of 2 guys
 public var cars : GameObject[];
 public var carsPolice : GameObject[];
 // What car is active at start
 public var carNumber:int = 2;
  
  
 function Start ()
 {
    for( var i: int=0; i < cars.Length; i++){
    cars[i].SetActive(false);
    }
    cars[carNumber].SetActive(true);
 }
  
   function Update(){
      if (Input.GetKeyUp ("space"))
   {
   if(carNumber < cars.Length -1) {
   carNumber++;
   } else {
   carNumber=0;
   }
   changeCars(carNumber);
   }
      // Toggle Police Version of the car
      if (cars[carNumber].activeInHierarchy == true && Input.GetKeyDown ("p")){
      cars[carNumber].SetActive(false);
      carsPolice[carNumber].SetActive(true);
      }
      else if(Input.GetKeyDown ("p"))
      {
      cars[carNumber].SetActive(true);
      carsPolice[carNumber].SetActive(false);
      }
      //
   }
    
   function changeCars(carNumber:int){
   for( var i: int=0; i < cars.Length; i++){
   cars[i].SetActive(false);
        carsPolice[i].SetActive(false);
   }
   cars[carNumber].SetActive(true);
  
   }
 
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                