public void SetupRunFX() { Character_MotionFX charMo = charMotionFXPool.RequestMotionFX(); charMo.inUse = true; charMo.transform.position = this.transform.position; charMo.gameObject.SetActive(true); StartCoroutine(SpawnRunFX(charMo, dustTotDur, dustSprites, dustTimings)); }
IEnumerator SpawnRunFX(Character_MotionFX charMo, float totalDuration, Sprite[] sprites, float[] timings) { float timer = 0f; int count = 0; while (timer < totalDuration) { timer += Time.deltaTime; if (timer > timings[count]) { charMo.spriteR.sprite = sprites[count]; if (count < timings.Length - 1) { count++; } } yield return(null); } charMo.inUse = false; charMo.spriteR.sprite = null; charMo.gameObject.SetActive(false); }