所以我正在制作一个游戏,当您单击它们时,游戏的某些部分中会出现几部分文字。我有一个启动协程以使每个字母一次出现的功能。这对于我的一个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));
如果更改,文本网格将处于一个组中/
答案 0 :(得分:0)
看来您要启动协同程序两次。否则我无法解释。
使用
Debug.Log("my name is " + transform.name + " and I add this letter: " + letter, this.gameObject);
查看在同一对象上是否有2个对象。将其添加到协程中,直到“ yield return null”。
双击日志应显示相应的gameObject。