显示Unity C#对话,每个字母部署两次,然后再部署下一个

时间:2018-08-17 00:20:53

标签: c# unity3d text

所以我正在制作一个游戏,当您单击它们时,游戏的某些部分中会出现几部分文字。我有一个启动协程以使每个字母一次出现的功能。这对于我的一个Text对象非常有效,但是当我在带有Text组件以供参考的TextMesh对象上尝试使用它时,每个字母都会被拼写两次。有什么想法吗?

private GameObject roomText;

private string roomString;

IEnumerator TypeTextSentence(string sentence)
{
    roomText.GetComponent<TextMesh>().text = "";
    foreach (char letter in sentence.ToCharArray())
    {   
        roomText.GetComponent<TextMesh>().text += letter;
        yield return null;
    }
}

然后执行它。

roomText = GameObject.Find("CouchText");
roomString = roomText.GetComponent<Text>().text;
StopAllCoroutines();
StartCoroutine(TypeTextSentence(roomString));

如果更改,文本网格将处于一个组中/

1 个答案:

答案 0 :(得分:0)

看来您要启动协同程序两次。否则我无法解释。

使用

Debug.Log("my name is " + transform.name + " and I add this letter: " + letter, this.gameObject);

查看在同一对象上是否有2个对象。将其添加到协程中,直到“ yield return null”。

双击日志应显示相应的gameObject。