public void Update() { //Debug.DrawRay(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector3.forward * 10f, Color.red); if (_CurrentScene == "Level") { float time = Time.time; sessionActive = (Time.time - sessionTimeStart < sessionLength * 60); if (input.TouchActive) { //Debug.Log("touchInput: [" + mainCam.WorldToViewportPoint(input.TouchPos) + "]"); HitType hitType = activeLevel.AttemptHit(input.TouchPos); if (hitType == HitType.TargetHit || hitType == HitType.TargetHitLevelComplete || hitType == HitType.WrongTargetHit) { if (sessionActive) { // We don't measure reaction time for the first hit because it is affected // by the animation time and is hardly comparable to other times. float reactionTime = -1.0f; if (lastHitTime > -1.0f) { reactionTime = Time.time - lastHitTime; } // We don't measure distance of the first hit because // there is no sensible start position we can measure from. Vector2 hitPos = mainCam.WorldToViewportPoint(input.TouchPos); float distance = -1.0f; if (lastHitPos.x > -1.0f && lastHitPos.y > -1.0f) { distance = Vector2.Distance(lastHitPos, hitPos); } levelHitsTotal += 1; dataManager.AddHit(hitPos, reactionTime, distance, hitType, activeLevelAssistance.GetAssistanceWasActive()); activeLevelAssistance.resetAssistanceWasActive(); lastHitTime = Time.time; lastHitPos = hitPos; } if (hitType == HitType.TargetHitLevelComplete) { TheLevelEnded(); } Debug.Log("sessionActive: " + sessionActive + " sessionTime(" + (Time.time - sessionTimeStart) + ") lastHitPos[" + lastHitPos.x + lastHitPos.y + ") LastHitTime( " + lastHitTime + ")"); } } else if (input.TouchUp) { activeLevel.TempHit = null; } } if (Input.GetKeyDown(KeyCode.R)) { GameObject.Find("GameLevel").GetComponent <GameLevel>().ReloadLevel(); } }