Je suis en train de coder une AI pour mes ennemies et j'ai un problème avec les animation d'attaques , en faite j'essaye de créer une vitesse d'attaque, par exemple un goblin va avoir 5,5s d'attaque autrement dit toute les x secondes il va jouer l'animation d'attaque , mon premier problème est que lorsque je lance le jeux tout va bien le mob attend bien avant d'attaquer et je subis des dégâts , sauf que après il continue son animation d'attaque en boucle mais sans que je prenne de dégâts et je ne re perd de la vie que au bout de 5,5 secondes supplémentaires. Donc le principe fonctionne sauf que l'animation d'attaque ne s'arrête pas
Donc j'ai penser faire:
Quand il peut attaquer :
jouer attaque
jouer animation par défaut
Sauf que dans ce cas là l'animation d'attaque se joue tellement vite que je ne la voit pas et je ne sais pas comment faire pour que mon animation d'attaque se joue complément et qu'ensuite il joue l'animation par défaut
Code : Tout sélectionner
void attack ()
{
int numatk = Random.Range (0, GetComponent<Stats_Mobs> ().getlesatk ().Count); //un nom d'animation aléatoire
if (GetComponent<Animator> () != null) {// les mobs peuvent avoir soit un "animator" soit un composent "Animation"
GetComponent<Animator> ().Play (GetComponent<Stats_Mobs> ().getlesatk () [numatk]);
} else {
GetComponent<Animation> ().Play (GetComponent<Stats_Mobs> ().getlesatk () [numatk]);
GetComponent<Animation> () [GetComponent<Stats_Mobs> ().getlesatk () [numatk]].speed = 1;
}
Target.gameObject.GetComponent<Stats_joueur> ().ApplyDommage (dammage);//applique les dommages
Debug.Log ("The Enemy Has Attacked");
}
void Update () {
//code
if (Distance < attackRange)
{
if (temps >= vitessedatk * 100) {
attack ();//
temps = 0;
}
}
}
temps++;
print ("le temps :"+temps);
}
Je sais pas si j'ai été clair mais en tout cas j’espère que vous avez une solution
Attention à la section tu postes.
et Les balises code SVP !
Merci de lire la Netiquette.
N'ième rappel
Merci d'avance !