void FailKey(KeyChallengeInfo keyChallengeInfo) { _feedBackText.gameObject.SetActive(true); _feedBackText.color = new Color(1, 0.4f, 0.4f); LeanTween.delayedCall(_timeShowingFeedBackText, HideFeedBackMsg); _feedBackText.text = "FAIL!"; keyChallengeInfo.ObjKey.GetComponentInChildren <SpriteRenderer>().color = new Color(1, 0.4f, 0.4f); _secondsToFinish += _timeToAddIfFail; keyChallengeInfo.Failed = true; }
private void CheckCorrectInput(KeyChallengeInfo keyChallengeInfo) { float timeDiference = keyChallengeInfo.time - _currentTime; if (timeDiference > _timeToSuccessPressed || timeDiference < -_timeToSuccessPressed) { FailKey(keyChallengeInfo); } else if (timeDiference < _timeToPerfectPressed && timeDiference > -_timeToPerfectPressed) { SuccessKey(keyChallengeInfo, true); } else { SuccessKey(keyChallengeInfo, false); } }
private IEnumerator ShowNextKeyCo() { KeyChallengeInfo info = _keys[0]; _keys.RemoveAt(0); if (info.key == EKeys.Size) { yield break; } _keyActives[info.key].Add(info); float startTime = _currentTime; float timeStamp = 0; Transform obj = CreateKey(info.key); info.ObjKey = obj; Vector2 position; while (timeStamp < (info.time - startTime)) { position = GetMiddlePoint(timeStamp / (info.time - startTime), info.key); obj.localPosition = position; yield return(0); timeStamp += Time.deltaTime; } if (!info.Success && !info.Failed) { FailKey(info); } // here is when finish _keyActives[info.key].Remove(info); Destroy(obj.gameObject); }
void SuccessKey(KeyChallengeInfo keyChallengeInfo, bool isPerfect = false) { keyChallengeInfo.Success = true; _feedBackText.gameObject.SetActive(true); _feedBackText.color = new Color(0.43f, 1, 0.43f); LeanTween.delayedCall(_timeShowingFeedBackText, HideFeedBackMsg); if (isPerfect) { keyChallengeInfo.ObjKey.GetComponentInChildren <SpriteRenderer>().color = new Color(0.43f, 1, 0.43f); _secondsToFinish -= _timeToTakeIfPerfect; _feedBackText.text = "PERFECT!"; } else { _feedBackText.text = "GOOD"; } keyChallengeInfo.ObjKey.transform.localScale = Vector3.one * 1.1f; LeanTween.cancel(_feedBackText.gameObject); }