100 lines
1.8 KiB
C#
100 lines
1.8 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
public class inputDoubleClickEventSystem : MonoBehaviour
|
|
{
|
|
[Header ("Main Settings")]
|
|
[Space]
|
|
|
|
public bool checkDoubleClickEnabled = true;
|
|
|
|
public float maxTimeBetweenClicks = 0.4f;
|
|
|
|
public bool useMaxTimeDuringAllClicks;
|
|
|
|
public float maxTimeForAllClicks;
|
|
|
|
public int numberOfClicksToActivateInput;
|
|
|
|
[Space]
|
|
[Header ("Debug")]
|
|
[Space]
|
|
|
|
public int currentNumberOfClicks;
|
|
|
|
[Space]
|
|
[Header ("Event Settings")]
|
|
[Space]
|
|
|
|
public UnityEvent eventOnActivateInput;
|
|
|
|
|
|
float lastTimeClickUsed;
|
|
|
|
bool pressedInTime;
|
|
|
|
|
|
public void checkClickInput ()
|
|
{
|
|
if (!checkDoubleClickEnabled) {
|
|
return;
|
|
}
|
|
|
|
if (useMaxTimeDuringAllClicks) {
|
|
if (lastTimeClickUsed == 0) {
|
|
lastTimeClickUsed = Time.time;
|
|
}
|
|
|
|
currentNumberOfClicks++;
|
|
|
|
pressedInTime = Time.time - lastTimeClickUsed < maxTimeForAllClicks;
|
|
|
|
if (currentNumberOfClicks >= numberOfClicksToActivateInput) {
|
|
if (pressedInTime) {
|
|
eventOnActivateInput.Invoke ();
|
|
|
|
print ("pressed in time");
|
|
} else {
|
|
print ("amount pressed, but too much wait");
|
|
}
|
|
|
|
lastTimeClickUsed = 0;
|
|
|
|
currentNumberOfClicks = 0;
|
|
|
|
|
|
} else {
|
|
if (Time.time - lastTimeClickUsed > maxTimeForAllClicks) {
|
|
lastTimeClickUsed = 0;
|
|
|
|
currentNumberOfClicks = 0;
|
|
|
|
print ("too much wait");
|
|
}
|
|
}
|
|
|
|
} else {
|
|
pressedInTime = Time.time < lastTimeClickUsed + maxTimeBetweenClicks;
|
|
|
|
if (!pressedInTime) {
|
|
currentNumberOfClicks = 0;
|
|
}
|
|
|
|
if (pressedInTime || currentNumberOfClicks == 0) {
|
|
currentNumberOfClicks++;
|
|
|
|
if (currentNumberOfClicks >= numberOfClicksToActivateInput) {
|
|
eventOnActivateInput.Invoke ();
|
|
|
|
currentNumberOfClicks = 0;
|
|
}
|
|
} else {
|
|
currentNumberOfClicks = 0;
|
|
}
|
|
|
|
lastTimeClickUsed = Time.time;
|
|
}
|
|
}
|
|
} |