Example #1
0
    public void OnCollisionEnter2D(Collision2D collision)
    {
        if (!collision.otherCollider.CompareTag("Tusk"))
        {
            return;
        }
        IDamageable dam = collision.collider.GetComponent <IDamageable>();

        if (dam == null)
        {
            dam = collision.collider.GetComponentInParent <IDamageable>();
        }
        if (dam != null)
        {
            if (dam.CanBeDamaged(damageLayer))
            {
                Vector2 mySpeed    = player.rb.GetPointVelocity(collision.GetContact(0).point);
                Vector2 otherSpeed = collision.rigidbody.GetPointVelocity(collision.GetContact(0).point);

                dam.Damage((mySpeed - otherSpeed).magnitude * damage, collision.GetContact(0).point - collision.GetContact(0).normal * 0.01f);
            }
        }
    }