- Home /
Why doesn't this weapon switching script work
I made a script that changes a weapon every time a certain key is pressed. The script doesn't do anything. This is it:
var weapon1 : GameObject;
var weapon2 : GameObject;
var weapon3 : GameObject;
var keyToSwitch : String;
private var weapon = 1;
function Start(){
weapon2.SetActive(false);
weapon3.SetActive(false);
weapon = 1;
}
function Update(){
if(Input.GetKeyDown(keyToSwitch)){
if(weapon == 1){
weapon1.SetActive(false);
weapon2.SetActive(true);
weapon = 2;
}
if(weapon == 2){
weapon2.SetActive(false);
weapon3.SetActive(true);
weapon = 3;
}
if(weapon == 3){
weapon3.SetActive(false);
weapon1.SetActive(true);
weapon = 1;
}
}
}
Rewrite your start function to
function Start(){
weapon1.SetActive(true);
weapon2.SetActive(false);
weapon3.SetActive(false);
}
There is no need to set weapon to 1 at start, as its already 1 at declaration. Now, if you set the key name correctly, this script should work properly, as in, it should switch the booleans to true/false as required. What exactly is not working?
Answer by Oskar Lundqvist · Jun 25, 2013 at 08:58 PM
Hi! Firstly, is "keyToSwitch" set to a valid key? Are the weapons set properly in the inspector?
I would recommend using arrays for the weapons instead and setting the input key in the input manager.
Here's how i would write it:
var weapons : GameObject[]; //An array of GameObjects to be set up in the inspector
var currentWeapon = 0;
function Update() {
if(Input.GetButton("Switch Key") ) {
weapons[currentWeapon].SetActive(false); // Deactivate the current weapon
currentWeapon ++; // Change weapon
// Make sure that the value of current weapon is no bigger than the amount of weapons
if(currentWeapon >= weapons.Length){
currentWeapon = 0;
}
weapons[currentWeapon].SetActive(true); // Activate the new weapon
}
}
`
I would suggest you look up the built in array if you arent familiar with it.
Happy game making! :)
Your answer
Follow this Question
Related Questions
Weapon pick up and switching script 2 Answers
best way to weapon swapping 0 Answers
Cycling through enum with key press 1 Answer
Weapon Switch Animations 1 Answer
Weapon Switching 2 Answers