- Home /
scroll wheel get weapon
hey guys this script seems to do nothing. when i scroll my mouse wheel . whats the problem
var currentWeapon = 0; var numWeapons = 1;
function Awake () { // Select the first weapon SelectWeapon(0); }
function Update () {
// Did the user press fire?
if (Input.GetButton ("Fire1"))
BroadcastMessage("Fire");
if (Input.GetAxis("Mouse ScrollWheel") < 0) {
if (currentWeapon + 1 <= numWeapons){
currentWeapon++;
} else {
currentWeapon = 0;
}
SelectWeapon(currentWeapon);
} else if (Input.GetAxis("Mouse ScrollWheel") > 0) {
if (currentWeapon - 1 >= 0){
currentWeapon--;
} else {
currentWeapon = numWeapons;
}
SelectWeapon(currentWeapon);
}
if (Input.GetKeyDown("1"))
{
SelectWeapon(0);
}
else if (Input.GetKeyDown("2"))
{
SelectWeapon(1);
}
}
function SelectWeapon (index : int) { for (var i=0;i<transform.childCount;i++) { // Activate the selected weapon if (i == index) transform.GetChild(i).gameObject.SetActiveRecursively(true); // Deactivate all other weapons else transform.GetChild(i).gameObject.SetActiveRecursively(false); } }
Answer by Bunny83 · May 12, 2011 at 09:47 AM
Some points:
- Make sure that you have the "Mouse ScrollWheel" axis setup in the input manager.
- If you set the current weapon by key you should also set the currentWeapon variable to the current weapon.
- It should work your way, but it's a bit confusing to call a variable
numWeapons
but use it as the max-index value instead of the count (number) of weapons.
Can't see anything else. Maybe place a Debug.Log() into the scrollwheel if-statement to see whether it get executed or not. Some people had problems with certain mouse types on mac computers.
Answer by jorgon · Mar 08, 2012 at 09:07 AM
I don't know why I can only select "up" and "down" till the max and min number of weapons once. If I try to go through the set of weapons once again it got stucked in the max or min weapon...I can't translate through the weapons and select others again. Why does it happen?. I think that my mouse works fine and the logic for selection it's ok.
What do you think?.
Answer by moinchdog · Dec 16, 2012 at 09:47 PM
try this
if (Input.GetAxis("Mouse ScrollWheel") < 0) {
if (currentWeapon + 1 <= numWeapons){//change this so it goes 1 over
currentWeapon++;
} else {
currentWeapon = 0;
}
SelectWeapon(currentWeapon);
} else if (Input.GetAxis("Mouse ScrollWheel") > 0) {
if (currentWeapon - 1 >= 0){// and one under
currentWeapon--;
} else {
currentWeapon = numWeapons;
}
SelectWeapon(currentWeapon);
}
if(currentWeapon == numWeapons + 1) {
currentWeapon = 0;
}
if(currentWeapon == -1) {
currentWeapon = numWeapons;
}
Your answer
![](https://koobas.hobune.stream/wayback/20220613133641im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
How do you use mouse scroll to change weapons? 1 Answer
Character Zoom in and out 1 Answer
ScrollWheel Input not detected in script 2 Answers
Mouse Wheel Zoom code not working like it should 1 Answer
Weapon Switch Script Help 1 Answer