Bon les amis j'ai un sacré problème. Le truc c'est que j'ai fait un spawner très fonctionnel avec des tas d'options, tout marche, très optimisé c'est vraiment pas mal, mais voilà le hic. Quand un enemi meurt, il appelle une fonction ondeath du spawner qui diminue une int, enemiesNumber.
Sauf que je me suis rendu compte que lorsque que parfois, la fonction n'était pas appelée et que donc, la variable indiquait 5 enemis restant alors que sur la Map non, y sont tous mort .
Alors bon j'ai bidouillé, j'ai trouvé un moyen de contourner en mettant les enemis dans une liste mais c'est vraiment pas ce que je veut...
Si vous avez une idée de pourquoi ?
Pour préciser le code, l'enemi stock en variables la fonction onDeath eu spawner et il l'appelle au moment de sa mort. Enft je me suis dit que l'enemi pouvait être détruit avant d'appeler la fonction mais bon au niveau du code, c'est prononcé après alors je comprends pas...
Voilà merci en tout cas pour avoir lu
Callback non appelée
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Re: Callback non appelée
et le(s) code(s) sont ... ?
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: Callback non appelée
Hum et bien y'a pas mal d'héritence donc en gros :
Du point de vu du spawner :
Du point de vue de l'Enemy :
Je pense que tu doit connaître ce système, je crois qu'il s'utilise pas mal
Du point de vu du spawner :
Code : Tout sélectionner
Int enemiesNumber;
Void OnEnemyDeath () {
enemiesNumber--;
}
Void SpawnEnemy () {
NewEnemy.onDeath = OnEnemyDeath;
}
Code : Tout sélectionner
public System.Action onDeath;
Public override void Death () {
onDeath ();
base.Death (); => fonction qui le fait s'autodétruire
}
Re: Callback non appelée
J'ai pas tout saisi, tu passes par une delegate?
Et ton enemy lorsqu'il est "dead" il est delete et tu instancies à chaque nouvel enemy? Ou tu passes par un pool d'objet?
Et ton enemy lorsqu'il est "dead" il est delete et tu instancies à chaque nouvel enemy? Ou tu passes par un pool d'objet?