public void Tick(bool input) { extendingTimer.Tick(Time.deltaTime); delayingTimer.Tick(Time.deltaTime); curState = input; IsPressing = input; OnReleased = false; OnPressed = false; IsExtending = false; IsDelaying = false; if (curState != lastState) { if (curState == true) { OnPressed = true; delayingTimer.StartTimer(delayingDuraton); } else { OnReleased = true; extendingTimer.StartTimer(.3f); } } if (extendingTimer.Running()) { IsExtending = true; } if (delayingTimer.Running()) { IsDelaying = true; } lastState = curState; }