Функция IEnumerator перезаписывается новыми вызовами функцийC#

Место общения программистов C#
Гость
Функция IEnumerator перезаписывается новыми вызовами функций

Сообщение Гость »

У меня есть дверная система, которую я сейчас тестирую. Это происходит через функцию IEnumerator, однако, если я открою одну дверь, а затем быстро другую, первая дверь остановится на том месте, где она была, и вторая дверь получит приоритет. Есть ли обходные пути?

Код: Выделить всё

public IEnumerator Animthingy(GameObject Object)
{
yield return new WaitForSeconds(1.5f);

AudioSource.PlayClipAtPoint(DoorOpen, Object.transform.parent.gameObject.transform.position, 2f);

anim.SetBool("IsOpen", true);
anim.SetBool("Activated", true);
AudioSource.PlayClipAtPoint(DoorClose, Object.transform.parent.gameObject.transform.position, 2f);

anim.Play("DoorOpen");
anim.SetBool("Activated", false);
yield return new WaitForSeconds(3f);

AudioSource.PlayClipAtPoint(DoorOpen2, Object.transform.parent.gameObject.transform.position, 2f);

yield return new WaitForSeconds(3f);
AudioSource.PlayClipAtPoint(DoorClose, Object.transform.parent.gameObject.transform.position, 2f);

yield return new WaitForSeconds(1.5f);

AudioSource.PlayClipAtPoint(DoorClose2, Object.transform.parent.gameObject.transform.position, 2f);

yield return new WaitForSeconds(1f);
Debug.Log("closing");
anim.Play("DoorClose");
AudioSource.PlayClipAtPoint(DoorOpen, Object.transform.parent.gameObject.transform.position, 2f);
yield break;
}
Дверь 1 открывается, дверь 2 открывается, дверь 1 не закрывается, а дверь 2 закрывается.

Подробнее здесь: https://stackoverflow.com/questions/781 ... tion-calls

Вернуться в «C#»