要给这几行代码加上检测富文本的代码,你可以在foreach循环内部添加一个条件判断来检测是否遇到了富文本标签。以下是一个示例代码,可以帮助你实现这个功能:

private IEnumerator ScrollingText()
{
    isScrolling = true;
    dialogueText.text = "";
    bool isRichTextTag = false; // 用于检测是否遇到富文本标签
    foreach (char letter in dialogueLines[currentLine].ToCharArray())
    {
        if (letter == '<')
        {
            isRichTextTag = true;
        }
        else if (letter == '>')
        {
            isRichTextTag = false;
        }
        
        dialogueText.text += letter;
        
        // 检测到富文本标签时暂停文本滚动
        if (!isRichTextTag)
        {
            yield return new WaitForSeconds(textSpeed);
        }
    }
    
    isScrolling = false;
}

这段代码中,我们添加了一个bool类型的变量isRichTextTag来检测是否遇到了富文本标签。当遇到"<"时,表示遇到了富文本标签的开始部分,将isRichTextTag设置为true;当遇到">"时,表示遇到了富文本标签的结束部分,将isRichTextTag设置为false。在每次循环中,如果isRichTextTagfalse,则执行yield return new WaitForSeconds(textSpeed);来暂停文本滚动,否则继续执行下一次循环。这样就可以实现在富文本标签内部暂停文本滚动的效果

private IEnumerator ScrollingText isScrolling = true; dialogueTexttext = ; foreachchar letter in dialogueLinescurrentLineToCharArray dialogueTexttext += let

原文地址: https://www.cveoy.top/t/topic/h0bm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录