Форумчане и знатоки столкнулся с такой проблемой: нужно реализовать две задержки (коротких поэтому способ c -=Time.deltaTimen не подходит) ситуация такая при выполнении условия в методе Update запускается анимация (через включение рендера объекта) когда анимация доходит до середины Destroy(gameObject) (не на котором анимация) после окончания анимации рендер объекта с анимацией опять отключается) это сама задача пробовал вот так Код
void Update()
{
if (Health <= 0)
{
GameObject.Find("Dust").GetComponent<SpriteRenderer>().enabled = true; //включаем анимацию (АНИМАТОР)
StartCoroutine(AnimDelay(0.125f)); // запускаем сопрограмму с задержкой вывода флага timeFlag
StartCoroutine(AnimDelay(0.25f)); // запускаем сопрограмму с задержкой вывода флага timeFlag
if (timeFlag)
{
DestroyAndInstantiate(rid); // вызываем метод - уничтожаем объект с необходимым тегом, создаем новый объект из префаба
timeFlag=false; // выключаем флаг
flagDbl=true; // выключаем флаг повтора для условия конца анимации
}
if ((timeFlag)&&(flagDbl))
{
GameObject.Find("Dust").GetComponent<SpriteRenderer>().enabled = true; //выключаем анимацию
}
}
}
static void DestroyAndInstantiate(int rid)
{
Destroy(GameObject.FindWithTag("KamenObj")); // уничтожение объекта по тегу
GameObject instance = Instantiate(Resources.Load<GameObject>("prefab/prefabRock " + (rid).ToString())) as GameObject; //создание объекта из текущего префаба
}
IEnumerator AnimDelay(float second)
{
yield return new WaitForSeconds(second);
delayFlag = true;
Debug.Log(delayFlag +"delay1");
}
не происходит второго события (окончания анимации) пробовал задать две крутины (с разными именами) срабатывает только та на которой время вызова WaitForSeconds(second); меньше, так как программистом не являюсь а только пока начинаю разбираться в C# меня преследует четкое ощущение неправильности написания кода либо понимания логики языка - знатоки подскажите как решить эту задачу?