using System; using UnityEngine; using UnityEngine.EventSystems; public class InputManager { public Action KeyAction = null; public Action MouseAction = null; bool _pressed = false; float _pressedTime = 0.0f; // ReSharper disable Unity.PerformanceAnalysis public void OnUpdate() { // if(Input.anyKey == false) return; if(EventSystem.current.IsPointerOverGameObject()) return; if (Input.anyKey && KeyAction != null) KeyAction.Invoke(); if (MouseAction != null) { if (Input.GetMouseButton(0)) { if (!_pressed) { MouseAction.Invoke(Define.MouseEvent.PointerDown); _pressedTime = Time.time; } MouseAction.Invoke(Define.MouseEvent.Press); _pressed = true; } else { if (_pressed) { if (Time.time - _pressedTime < 0.2f) MouseAction.Invoke(Define.MouseEvent.Click); else { MouseAction.Invoke(Define.MouseEvent.PointerUp); } } // if (_pressed) MouseAction.Invoke(Define.MouseEvent.Click); _pressed = false; _pressedTime = 0.0f; } } } public void Clear() { KeyAction = null; MouseAction = null; } }