Unity 对话系统:隐藏人物名字中 'b' 之间的文字
Unity 对话系统:隐藏人物名字中 'b' 之间的文字
在 Unity 对话系统中,你可能需要在显示人物名字时,隐藏掉名字中 'b' 字母之间的所有文字,例如人物名字为 'Lilybab',实际显示出来是 'Lily'。
你可以通过修改 TypeText 方法来实现这个功能。以下是修改后的代码:
private IEnumerator TypeText(string text)
{
int length = text.Length;
bool isName = false;
for (int i = 0; i < length; i++)
{
if (text[i] == 'b')
{
isName = !isName;
}
if (!isName)
{
dialogdata.text += text[i];
}
yield return new WaitForSeconds(0.07f);
}
isShowingComplete = true;
}
在 TypeText 方法中,我们新增了一个 bool 变量 isName,用于标记是否当前正在显示人物名字。当遇到 'b' 时,将 isName 取反,即切换显示人物名字状态。当 isName 为 false 时,才将对话内容添加到 dialogdata.text 中,实现了隐藏人物名字中 'b' 之间的文字。
使用方法:
- 将以上代码添加到你的
ChatPanel类中。 - 在你的对话数据中,确保人物名字包含 'b' 字母。
- 运行游戏,你就可以看到隐藏了 'b' 之间的文字的效果。
注意:
- 此代码仅适用于隐藏 'b' 字母之间的文字,如果你需要隐藏其他字母之间的文字,请修改代码中的
if (text[i] == 'b')条件。 - 此代码假设你的对话数据中,每个人物名字只包含一个 'b' 字母。如果有多个 'b' 字母,需要根据你的实际情况进行调整。
希望这篇文章能帮助你实现你的对话系统功能。
原文地址: https://www.cveoy.top/t/topic/phZ5 著作权归作者所有。请勿转载和采集!