private void HandleLooping() { if (levelCompleted) { levelCompleted = false; currentCursor.DestroyCursor(); currentState = State.AWAIT_INPUT; } // black event triggered or cursor out of bounds. else if (blackEventTriggered || currentCursor.IsOutOfBounds()) { blackEventTriggered = false; currentCursor.DestroyCursor(); EventManager.CallLevelRestart(); currentState = State.AWAIT_INPUT; } // screen touched while looping. else if (Input.GetMouseButtonDown(0)) { EventManager.CallLevelRestart(); currentCursor.DestroyCursor(); EventManager.CallFirstTouch(); // register first touch position firstTouchPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); currentState = State.FIRST_TOUCH; } }