显示Unity C#对话,每个字母部署两次,然后再部署下一个字母
所以我正在做一个游戏,当你点击游戏的某些部分时,我会在游戏的某些部分显示一些文本。我有一个函数,它启动一个协同程序,使每个字母一次出现一个。这在我的一个文本对象上非常有效,但当我在一个带有文本组件的TextMesh对象上尝试时,每个字母的拼写都是原来的两倍。有什么想法吗显示Unity C#对话,每个字母部署两次,然后再部署下一个字母,c#,unity3d,text,C#,Unity3d,Text,所以我正在做一个游戏,当你点击游戏的某些部分时,我会在游戏的某些部分显示一些文本。我有一个函数,它启动一个协同程序,使每个字母一次出现一个。这在我的一个文本对象上非常有效,但当我在一个带有文本组件的TextMesh对象上尝试时,每个字母的拼写都是原来的两倍。有什么想法吗 private GameObject roomText; private string roomString; IEnumerator TypeTextSentence(string sentence) { room
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;
}
}
private GameObject roomText;
私有字符串roomString;
IEnumerator类型文本句子(字符串句子)
{
roomText.GetComponent().text=“”;
foreach(句子中的字符。ToCharArray())
{
roomText.GetComponent().text+=字母;
收益返回空;
}
}
然后当它被执行的时候
roomText = GameObject.Find("CouchText");
roomString = roomText.GetComponent<Text>().text;
StopAllCoroutines();
StartCoroutine(TypeTextSentence(roomString));
roomText=GameObject.Find(“CouchText”);
roomString=roomText.GetComponent().text;
StopAllCoroutines();
start例程(typetextstence(roomString));
文本网格位于一个组中,如果这改变了情况/您似乎要启动两次协同程序。我无法作出其他解释 使用 查看是否有两个对象在同一对象上工作。将其添加到“yield return null”之前的协同程序中
双击日志会显示相应的游戏对象。非常感谢!我有相同的脚本在两个不同的对象上运行,我从来没有想过要看那里!你是个救生员!有一次我得到了“未设置为对象的实例”,但检查器显示它已设置(公共变量)-这些错误从未存在-有一个实例未设置。但这当然是另一个剧本:)
Debug.Log("my name is " + transform.name + " and I add this letter: " + letter, this.gameObject);