【发布时间】:2014-12-11 18:10:57
【问题描述】:
我是 Unity 开发人员的新手,我从阅读教程、演示、示例和视频开始学习 Unity。而且我在使用计时器时遇到了一些麻烦(就像统一的线程,我猜是......),这是我的代码:
void OnCollisionEnter(Collision colli){
if (colli.collider.name == "Car") {
Debug.Log("On Collision naz ~.~");
Destroy(Car);
Destroy(this.gameObject);
GameObject clone = (GameObject) Instantiate(Bum, transform.position, Quaternion.identity);
StartCoroutine(deleteObject(clone));
// Just want to delete "clone" object after 1 second
}
}
IEnumerator deleteObject(GameObject bum){
Debug.Log("chuan bi destroy naz ~.~"); // <-- run normally
yield return new WaitForSeconds(1.0F);
Debug.Log("Destroy rui naz =,='"); // <-- not display
Destroy (bum);
}
我不知道为什么....
【问题讨论】:
-
流浪汉被摧毁了吗?我之所以问,是因为我对实践中的 yield 语句感到困惑。如果交换 Debug.log() 和 destroy 语句,是否显示文本?
-
是的。 destroy 语句后的 debug.log() 没有运行,我认为 yield 也没有运行:(
-
yield WaitForSeconds(1) 导致问题,需要 yeild retun new waitforsecond();
-
为什么使用yield语句?不只是为了互动吗?还是团结一致?
-
gamedev.stackexchange.com(也许这里的人更了解统一)