【发布时间】:2022-01-23 03:38:28
【问题描述】:
我已经在我的项目中实现了来自this Brackeys video 的对话系统。一切正常,但是当我为 android 完成构建时,我发现打印长文本会减慢游戏速度。
代码将要在 UI 中显示的句子分成一个字符数组,然后一个一个地打印每个字符,延迟很小。我一直在做几次测试,首先我认为问题出在打印字符的协同程序上。但是后来我从协程中删除了代码,我发现它打印的字符越多,游戏速度就越慢。
void FixedUpdate()
{
if(typeSentence)
{
if(t <= 0)
{
TypeChar();
t = charDelay;
}
t -= Time.fixedDeltaTime;
}
}
private void TypeChar()
{
GUIs[dialogue.UIIndex].dialogueText.text += charSentence[sentenceIndex];
sentenceIndex++;
if (sentenceIndex >= charSentence.Length)
{
typeSentence = false;
sentenceIndex = 0;
GUIs[dialogue.UIIndex].continueButton.SetActive(true);
}
}
我不知道是否有更有效的方法可以做到这一点,或者是否有人可以向我解释正在发生的事情以及为什么它减慢了这么多。
【问题讨论】:
标签: c# string unity3d optimization mobile