我目前正在编写两个脚本:一个在接触两秒后摧毁一个目标,另一个激活下一个目标。虽然我已经使用了协程和调用,但我仍然没有得到延迟。有什么想法吗?“FootballContact”脚本连接到足球,“TargetActivate 1”脚本连接到第一个目标
Football Contact Script
TargetActivate1 Script
我试着使用一个协程来延迟目标被销毁,但是我的新“TargetActivate 1”脚本使得目标的激活与目标被销毁的时间重叠--使得销毁/激活过程即时。结果,我试着在新脚本上使用相同的协程函数--它不起作用。互联网上说我不能同时运行两个协程,所以我把协程改成了“invoke”。它还是不起作用,我很困惑下一步该怎么做。我很感激任何帮助!:)
2条答案
按热度按时间wlsrxk511#
对这两个脚本都使用IEnumerator以简化操作😁
它不起作用的原因是,您需要将要在延迟之后运行的代码放在IEnumerator函数中。
协程的工作原理是,当你调用StartCoroutine时,IEnumerator函数将被调用,并且独立于你调用它的方法运行。因此,StartCoroutine下的任何代码都将照常运行。
例如,对于FootballContact脚本,代码应如下所示:
enxuqcxy2#
destroy代码本身有延迟,但是如果你想要一个更专业的方法,请阅读关于
Async
的文章。异步示例: