public static List<TimingsManager.Timing> ParseTimingsFormat(string text, TimingsManager.BaseTriggers possibleTriggers) { timings = new List<TimingsManager.Timing>(); previousTime = 0; var lines = text.Replace(", ", ",") .Replace(" ", "_") .Replace("\r", "").Split(lineDelimiters); foreach (var line in lines) { var tokens = line.Split(tokenDelimeters); var triggers = new List<int>(); for (var tokenIndex = 1; tokenIndex < tokens.Length; tokenIndex++) { int trigger = possibleTriggers.GetTrigger(tokens[tokenIndex]); if (trigger != TimingsManager.BaseTriggers.NO_TRIGGER) { triggers.Add(trigger); } else { Debug.Log("TimingsParser: Unknown trigger: '" + tokens[tokenIndex] + "'"); } } AddTimingFromString(tokens[0], triggers); } return timings; }
protected override void Initialise() { // Loads the timings timingsManager = new TimingsManager(timingsTextAsset, new NightWalkTriggers()); // Saves time to skip the intro music when debugging debugMusicStartOffset = 0; musicAudioSource.time = debugMusicStartOffset; musicAudioSource.pitch = Time.timeScale; groundY = groundNode.transform.position.y; characterRadius = characterController.transform.position.z; // Screen fade in bool fadeFromBlack = true; float duration = 2.0f; fader.Fade(fadeFromBlack, duration); }
private void PlayAttemptSound(TimingsManager.TimingResult timingResult) { AudioClip clip = attemptNoBeat; switch (timingResult) { case TimingsManager.TimingResult.GOOD: clip = audioIsOnUpBeat == true ? attemptGoodA : attemptGoodB; audioIsOnUpBeat = !audioIsOnUpBeat; break; case TimingsManager.TimingResult.BAD: clip = attemptBad; break; case TimingsManager.TimingResult.MISS: clip = attemptMiss; break; case TimingsManager.TimingResult.NO_BEAT: clip = attemptNoBeat; break; } attemptAudioSource.clip = clip; attemptAudioSource.Play(); }
protected override void PlayerTimingResult( TimingsManager.TimingResult result, List<int> triggers, PlayerAction playerAction) { switch (result) { case TimingsManager.TimingResult.GOOD: TimingResultGood(triggers, playerAction); break; case TimingsManager.TimingResult.BAD: TimingResultBad(triggers, playerAction); break; case TimingsManager.TimingResult.MISS: TimingResultMiss(triggers); break; case TimingsManager.TimingResult.NO_BEAT: TimingResultNoBeat(playerAction); break; default: Debug.Log("Unknown TimingResult"); break; } }
protected abstract void PlayerTimingResult( TimingsManager.TimingResult result, List<int> triggers, PlayerAction playerAction);