Unity C#开发:是否有简单可直接调用的等待休眠函数?
Unity C#中实现定时UI文本切换的简单方案
Unity里没有你写的那种同步阻塞式的wait_function(这种写法会卡死游戏主线程,导致UI和逻辑停摆),但用**协程(Coroutine)**就能轻松实现你要的定时效果,这也是Unity里处理这类时序逻辑最常用的方式。
直接给你可用的代码:
// 定义一个协程方法,用来按顺序切换文本 IEnumerator ShowTextSequence() { // 假设t是你已经获取到的Text组件引用 t.text = "Hello!"; yield return new WaitForSeconds(3); // 等待3秒 t.text = "I will be your guide."; yield return new WaitForSeconds(3); // 再等3秒 t.text = "TO DEATH!"; // 注意:你原代码里这里写错了,text是属性不是方法,不能用括号调用 }
启动这个协程很简单,在需要触发文本序列的地方(比如脚本的Start方法里)加一行:
void Start() { StartCoroutine(ShowTextSequence()); }
补充几个细节:
WaitForSeconds是Unity内置的等待类,直接用就行,不用自己实现- 协程不会阻塞主线程,等待期间游戏的UI和其他逻辑都能正常运行
- 如果需要不受游戏时间缩放影响的真实时间等待,可以换成
WaitForSecondsRealtime(3)
内容的提问来源于stack exchange,提问作者Benjamin Ecker
相关产品推荐
相关产品推荐

