private void Update() { if (textQueue == null || textQueue.Length == 0) { return; } if (paused) { return; } if (textEffect != null) { textEffect.updateEffects(); } if (displayImmediate) { return; } if (currentCharacter >= letterReferences.Length) { return; } letterTimer += Time.deltaTime; if (letterTimer > timePerLetter) { if (currentCharacter < letterReferences.Length) { while (textQueue[currentLine].Text[currentCharacter] == '[') { string command = parseCommandInline(textQueue[currentLine].Text, ref currentCharacter); currentCharacter++; // we're not in a continuable loop so move to the character after the ] manually float lastLetterTimer = letterTimer; // kind of a dirty hack so we can at least release 0.2.0 sigh float lastTimePerLetter = timePerLetter; // i am so sorry inUpdateControlCommand(command); if (lastLetterTimer != letterTimer || lastTimePerLetter != timePerLetter) { return; } if (currentCharacter >= textQueue[currentLine].Text.Length) { return; } } if (letterReferences[currentCharacter] != null) { letterReferences[currentCharacter].enabled = true; if (letterSound != null && !muted) { letterSound.Play(); } } currentCharacter++; } letterTimer = 0.0f; } }