Много времени можно сделать с помощью функции StartCoroutine (). Затем он отправляется в IEnumerator для обработки. Скажем, вы хотите, чтобы триггер сработал не сразу, а через несколько секунд. Вот наша функция Trigger:
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "(your tag)")
{
StartCoroutine(name());
}
}
в нашем IEnumerator - это то место, где мы ожидаем количество секунд с экземпляром WaitForSeconds (). подождите столько секунд, сколько вы хотите, прежде чем отправить его обратно в действие
IEnumerator name()
{
yield return new WaitForSeconds(4);
func();
}
через четыре секунды после столкновения с объектом, мы вызываем ответ.
void func()
{
//execute four seconds later
}
В целом, выглядит так:
NewBehaviorScript:learning()
{
void start()
{
//N/A
}
void Update()
{
//N/A
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "(your tag)")
{
StartCoroutine(NAME());
}
}
IEnumerator NAME()
{
yield return new WaitForSeconds(4);
func();
}
void func()
{
//execute reaction
}
}