private void OnTriggerStay2D(Collider2D collision) { enemyStats enemy = collision.gameObject.GetComponent <enemyStats>(); if (enemy) { enemy.changeHealth(-damage); if (oneHit) { Physics2D.IgnoreCollision(collision, GetComponent <Collider2D>()); } Rigidbody2D enemyRb = enemy.GetComponent <Rigidbody2D>(); enemyRb.AddForce(rb.velocity.normalized * piercingCoefficient); rb.AddForce(-rb.velocity.normalized * piercingCoefficient); if (destroyOnContact) { Destroy(gameObject); } } }
private void OnTriggerEnter2D(Collider2D collision) { enemyStats enemy = collision.gameObject.GetComponent <enemyStats>(); if (enemy) { if (rb.velocity.magnitude > initialVelocity / 3) { print("Hit enemy"); enemy.changeHealth(-damage); Rigidbody2D enemyRb = enemy.GetComponent <Rigidbody2D>(); float massRatio = 1f / enemyRb.mass; //print(massRatio); enemyRb.AddForce(rb.velocity.normalized * piercingCoefficient * massRatio, ForceMode2D.Impulse); rb.AddForce(-rb.velocity.normalized * piercingCoefficient * massRatio, ForceMode2D.Impulse); } if (destroyOnContact) { Destroy(gameObject); } } }