Ok yo lo hice de la siguiente forma, no se si es la mejor práctica pero aquà va mi solución.
Yo cree las 6 animaciones y 6 controladores. Cada controlador con su respectiva animación.
En mi prefab del caramelo le agregué el componente animator y mi idea era cambiar por código el controlador de cada respectivo caramelo.
.
De esa forma cambié el controlador, se reproduce la animación y luego elimino los caramelos.
Se me hizo un poco complejo detectar cuando la animación haya finalizado, asà que decidà hacer una función de tipo Corrutina y adicional ponerle unos segundos de espera antes de borrar los caramelos.
.
De esa forma se logra el efecto deseado, pero como dice el profe hay muchas más. Me gustarÃa indagar más para detectar el estado de finalización de una animación. Conseguà esto por los forums de unity, más sin embargo no me funcionó. Check if animation has finished
.
Aquà dejo la función que hice:
private IEnumerator EnableAnimation(GameObject candy){
candy.GetComponent<Animator>().enabled = true;
RuntimeAnimatorController newController = (RuntimeAnimatorController)Resources.Load("Animations/" + candy.GetComponent<Candy>().id);
candy.GetComponent<Animator>().runtimeAnimatorController = newController;
yield return new WaitForSeconds(0.8f);
candy.GetComponent<Animator>().enabled = false;
candy.GetComponent<SpriteRenderer>().sprite = null;
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?