public void Execute(bool buttonStateChanged) { lock (this) { bool mouseLeftButtonDownPressed = false; bool mouseRightButtonDownPressed = false; if (m_Actions != null) { mouseLeftButtonDownPressed = m_Actions.Exists(a => a.Action == ResponseActions.MouseLeftButtonDown); mouseRightButtonDownPressed = m_Actions.Exists(a => a.Action == ResponseActions.MouseRightButtonDown); m_Actions.ForEach(action => Execute(buttonStateChanged, action)); } if (mouseLeftButtonDownPressed && !pressed) { pressed = true; m_InputSimulator.DoLeftDown(); } if (m_Paused) { return; } ExecuteMouseMoveAction(mouseLeftButtonDownPressed, mouseRightButtonDownPressed); } }