我需要延迟脚本中的某些内容,但我无法使用
coroutine
,因为我需要执行的行依赖于从所写入的 Collider2D other
函数中读取参数 OnTriggerEnter2D
。
有没有办法在不使用
Destroy(other.gameObject);
的情况下延迟线路 coroutine
的运行?这将在其编写的方法内部工作,不需要外部 IEnumerator 函数?
有问题的
OnTriggerEnter2D
函数:
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Enemy")
{
// Needs to be delayed
Destroy(other.gameObject);
}
if (other.tag == "Button")
{
Debug.Log("button hit");
door.MakeSpriteInvisible();
}
Destroy(gameObject);
}
我尝试了普通的协程,但我需要在
OnTriggerEnter2D
中定义的“other”参数来运行该行。如果有一种方法可以访问从另一个函数传递到一个函数的参数,这也可以工作。