J'ai une détection si une balle frappe un ennemi qui fait partie d'un script qui est un ennemi:pas détruire des objets assez vite et provoquer une autre collision
void OnTriggerEnter (Collider other)
{
if (other.tag == "Bullet") {
Destroy (other); // or Destroy (other, 0);
}
}
Le problème est quand une balle frappe un ennemi, son La santé tombe à zéro (à partir de 100) comme si elle avait été touchée plus d'une fois (j'ai aussi vérifié avec Debug.log).
Alors, y a-t-il un moyen de détruire la balle plus rapidement pour qu'elle ne se déclenche plus?
De même, ce script de détection devrait-il être sur l'ennemi ou sur la balle?
au lieu de Destroy (autre) utiliser Destroy (other.gameObject). l'autre est juste une référence de collisionneur pas le gameObject lui-même. – deepankar
Affichez la fonction 'TakeDamage'. En outre, utilisez 'Debug.Log' pour vérifier combien de fois' OnTriggerEnter' est appelé. @deepankar Vous devriez le poster comme une réponse car c'est probablement le problème – Programmer
@Programmer 'TakeDamage' n'est vraiment pas intéressant, la même chose se produit même lorsque je supprime cet appel. J'ai ajouté debug.log et il entre deux fois, même avec 'Destroy (other.gameObject)'. – shinzou