- Home /
Left Click While Holding Right Click
Hello,
I'm making a game where my character need to use a bow. I use a system similar to AngryBirds where you need to hold the right click of the mouse to get the power of the bow and when you're ready to fire just clicking the left button of the mouse will shoot an arrow.
Here is the code I did to register when the mouse buttons are press.
shooting = Input.GetMouseButton(1);
shoot = Input.GetMouseButtonDown(0);
Character.Arc(shooting, shoot);
Here is the Arc function
public void Arc(bool shooting, bool shoot)
{
//m_Anim.SetBool("Arc", true);
if (shooting)
{
bow.GetComponent<BowControl>().Set_shooting(true);
if (shoot)
{
bow.GetComponent<BowControl>().Set_shoot(true);
}
else
{
bow.GetComponent<BowControl>().Set_shoot(false);
}
}
else
{
bow.GetComponent<BowControl>().Set_shooting(false);
}
}
I'm making it like this so I can control the Bow and the arrows separately from my character. At the moments it's working fine with the right click. I can see in my variables that it's set to true when I hold the right click, but it never register when I click the left button of the mouse when holding the right button. Why is that?
Any idea? Thanks :)
Answer by Cherno · Jul 05, 2016 at 06:31 AM
Probably because the Input.GetMouseButtonDown function is only called in one frame.
Why not just get rid of all the bools and do it like this?
if(Input.GetMouseButton(1)) {
//m_Anim.SetBool("Arc", true);
if(Input.GetMouseButtonDown(0)) {
//Shoot
}
}
You should write this as an answer ins$$anonymous$$d of a comment. Because you're totally right :)
Your answer
Follow this Question
Related Questions
Load Texture2D converted into Sprites; How can i add them to a GameObject sucessfully? 1 Answer
Baffling Input.Mouseposition problem. If statement not correctly working. 1 Answer
Check if mouse is down while in Edit Mode 1 Answer
Help In Making a SphereCast for 3D Tire! Working RayCast Script included! 0 Answers
Raycast with strange Behaviour 0 Answers