예제 #1
0
        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();
            }
        }
예제 #2
0
        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();
        }