MouseButtonStates.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #if UNITY_EDITOR
  2. using UnityEngine;
  3. using System;
  4. namespace O3DWB
  5. {
  6. public class MouseButtonStates : Singleton<MouseButtonStates>
  7. {
  8. #region Private Variables
  9. private bool[] _mouseButtonStates = new bool[Enum.GetValues(typeof(MouseButton)).Length];
  10. #endregion
  11. #region Public Methods
  12. public void ClearStates()
  13. {
  14. _mouseButtonStates[0] = false;
  15. _mouseButtonStates[1] = false;
  16. _mouseButtonStates[2] = false;
  17. }
  18. public int GetNumberOfPressedButtons()
  19. {
  20. int count = 0;
  21. if (_mouseButtonStates[0]) ++count;
  22. if (_mouseButtonStates[1]) ++count;
  23. if (_mouseButtonStates[2]) ++count;
  24. return count;
  25. }
  26. public void OnMouseButtonPressed(MouseButton mouseButton)
  27. {
  28. _mouseButtonStates[(int)mouseButton] = true;
  29. }
  30. public void OnMouseButtonReleased(MouseButton mouseButton)
  31. {
  32. _mouseButtonStates[(int)mouseButton] = false;
  33. }
  34. public bool IsMouseButtonDown(MouseButton mouseButton)
  35. {
  36. return _mouseButtonStates[(int)mouseButton];
  37. }
  38. public bool IsOnlyThisMouseButtonDown(MouseButton mouseButton)
  39. {
  40. return GetNumberOfPressedButtons() == 1 && _mouseButtonStates[(int)mouseButton];
  41. }
  42. #endregion
  43. }
  44. }
  45. #endif