private IEnumerator ScrollingText isScrolling = true; dialogueTexttext = ; foreachchar letter in dialogueLinescurrentLineToCharArray dialogueTexttext += let
要给这几行代码加上检测富文本的代码,你可以在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。在每次循环中,如果isRichTextTag为false,则执行yield return new WaitForSeconds(textSpeed);来暂停文本滚动,否则继续执行下一次循环。这样就可以实现在富文本标签内部暂停文本滚动的效果
原文地址: https://www.cveoy.top/t/topic/h0bm 著作权归作者所有。请勿转载和采集!