Unity_Learn/Assets/Scripts/Managers/InputManager.cs
2025-09-21 23:56:27 +09:00

57 lines
1.5 KiB
C#

using System;
using UnityEngine;
using UnityEngine.EventSystems;
public class InputManager
{
public Action KeyAction = null;
public Action<Define.MouseEvent> 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;
}
}