Pisa fuerte sobre los enemigos en la unidad para matarlos

Quiero crear un juego donde el personaje principal pueda pasar por todos los zombies que lo persiguen pero también puede saltar y rebotar en sus cabezas para matarlos (como en el viejo Mario) …

Los problemas con los que me estoy metiendo son:

  1. Cuando estoy en la misma position que el zombi y salto para matarlo, el colisionador disparador desencadena el método Destruir (Zombie). Solo quiero que los maten cuando "Pisa fuerte" sobre ellos.
  2. ¿Cómo puedo hacer que el personaje sea capaz de atravesar a los zombies sin caer al suelo?

Aquí está mi código para el evento disparador que está conectado al colisionador de caja "Stomper" en mi personaje.

void OnTriggerEnter2D (Collider2D other) { if (other.tag == "EnemyHead") { //Destroy Rigidbody2D playerRB = transform.parent.gameObject.GetComponent<Rigidbody2D> (); playerRB.velocity = new Vector2 (0, 0); playerRB.AddForce(Vector2.up * 10, ForceMode2D.Impulse); Destroy (other.transform.parent.gameObject); } } 

Déjame saber si necesitas algo más. Estoy tratando de explicar esto lo mejor posible …

Como se mencionó en los comentarios, puedes agregar los zombies a otra capa e ignorarlos para colisionar con el jugador.

Para su mecánico de stomp: una solución rápida sería verificar la velocidad del jugador. Cuando el jugador 'pisotea' puede definir que el jugador debe estar en la parte descendente del salto. Entonces, verifica si tu componente y es menor que 0, destruye y aplica la nueva velocidad.