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 :slight_smile:

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
        }
}