void GetLastCharData(InkTypewriterText typewriterText) { string taglessText = TextTagParser.RemoveAllTags(currentText); int totalPrintedChars = taglessText.Length; int lastChar = totalPrintedChars - 1; //typewriterText.TagSetSpeaker(this.speakerAssetTriggers[totalPrintedChars - 1]); //typewriterText.TagSetExpression(this.characterExpressionTriggers[totalPrintedChars - 1]); //typewriterText.TagSetAlignment(this.alignmentTriggers[totalPrintedChars - 1]); this.UpdateMeshAndAnims(); this.OnCharacterPrinted(taglessText[totalPrintedChars - 1].ToString()); if (this.speakerAssetTriggers[totalPrintedChars - 1] != typewriterText.changeSpeaker) { typewriterText.TagSetSpeaker(this.speakerAssetTriggers[totalPrintedChars - 1]); } if (this.characterExpressionTriggers[totalPrintedChars - 1] != typewriterText.changeExpression) { typewriterText.TagSetExpression(this.characterExpressionTriggers[totalPrintedChars - 1]); } if (this.characterExpressionTriggers[totalPrintedChars - 1] != (int)typewriterText.dialogueBoxPosition) { typewriterText.TagSetAlignment(this.alignmentTriggers[totalPrintedChars - 1]); } if (this.invokeTriggers[totalPrintedChars - 1] != null) { typewriterText.Invoke(this.invokeTriggers[totalPrintedChars - 1], 0); } if (this.refreshTriggers[totalPrintedChars - 1] != false) { typewriterText.RefreshSpeaker(); } }
private IEnumerator TypeTextCharByChar(string text, InkTypewriterText typewriterText) { string taglessText = TextTagParser.RemoveAllTags(text); int totalPrintedChars = taglessText.Length; int currPrintedChars = 1; this.TextComponent.text = TextTagParser.RemoveCustomTags(text); typewriterText.TagSetSpeaker(this.speakerAssetTriggers[currPrintedChars]); typewriterText.TagSetExpression(this.characterExpressionTriggers[currPrintedChars]); if (this.invokeTriggers[currPrintedChars] != null) { typewriterText.Invoke(this.invokeTriggers[currPrintedChars], 0); } typewriterText.TagSetAlignment(this.alignmentTriggers[currPrintedChars]); typewriterText.RefreshSpeaker(); do { this.TextComponent.maxVisibleCharacters = currPrintedChars; this.UpdateMeshAndAnims(); this.OnCharacterPrinted(taglessText[currPrintedChars - 1].ToString()); if (this.speakerAssetTriggers[currPrintedChars - 1] != typewriterText.changeSpeaker) { typewriterText.TagSetSpeaker(this.speakerAssetTriggers[currPrintedChars - 1]); } if (this.characterExpressionTriggers[currPrintedChars - 1] != typewriterText.changeExpression) { typewriterText.TagSetExpression(this.characterExpressionTriggers[currPrintedChars - 1]); } if (this.characterExpressionTriggers[currPrintedChars - 1] != (int)typewriterText.dialogueBoxPosition) { typewriterText.TagSetAlignment(this.alignmentTriggers[currPrintedChars - 1]); } if (this.invokeTriggers[currPrintedChars - 1] != null) { typewriterText.Invoke(this.invokeTriggers[currPrintedChars - 1], 0); } if (this.refreshTriggers[currPrintedChars - 1] != false) { typewriterText.RefreshSpeaker(); } yield return(new WaitForSecondsRealtime(this.characterPrintDelays[currPrintedChars - 1])); ++currPrintedChars; }while (currPrintedChars <= totalPrintedChars); this.typeTextCoroutine = null; this.OnTypewritingComplete(); }