Je développe actuellement un jeu de type Survival/Die&Retry, dans lequel le personnage est confronté à l'apparition régulière de pièges à esquiver et doit survivre le plus longtemps possible.
J'ai différents types de "pièges", par exemple des turrets qui tirent des balles (avec/sans tir automatique), des spikes qui font mourir au contact, des lasers avec animation...
Tous les pièges héritent de classes plus génériques qui héritent toutes de la classe mère Piege. Cela me permet notamment d'activer facilement tous les pièges en même temps si besoin (ou sadisme )
Bref, à l'heure actuelle les activations de pièges s'enchaînent avec un mécanisme partiellement aléatoire, mais j'aimerais inclure des "scénarios", comme des boss à franchir. Par exemple à la 30ème seconde, tous les lasers s'activent + une turret qui poursuit le héros.
J'en viens donc au sujet du topic : Quelle serait selon vous la meilleure façon de gérer ce genre de scénario. Il faudrait pouvoir dire, pour un temps donné, lancer une fonction donnée sur une liste de "Piege", voire tous les Piege de type "Laser" par exemple.
J'étais parti sur la piste des UnityEvent mais j'ai l'impression que ce n'est pas la solution la plus adaptée. Qu'en pensez-vous ?
J'ai ce genre de fonctions pour gérer l'activation massive :
Code : Tout sélectionner
private IEnumerator ActivateAllOfTypeDelayed(System.Type type, float seconds)
{
var objectsToActivate = FindObjectsOfType(type);
foreach (Objet o in objectsToActivate)
{
o.enabled = true;
o.ChangeActivationState(true, false);
_remainingPoints -= o.GetPoints();
yield return new WaitForSeconds(seconds);
}
}