Exemplo n.º 1
0
    public override void Die()
    {
        if (Random.Range(1, 100) <= dropChanceOutOf100)
        {
            Drop();
        }
        Explode explode = gameObject.GetComponent <Explode>();

        if (explode != null)
        {
            explode.Activate();
        }
        else
        {
            Destroy(this.gameObject);
        }
    }
Exemplo n.º 2
0
    private void CheckCollision()
    {
        Collider2D[]    results       = new Collider2D[5];
        ContactFilter2D contactFilter = new ContactFilter2D();

        contactFilter.NoFilter();
        int numberOfResults = coll2D.OverlapCollider(contactFilter, results);
        int current         = 0;

        while (current < numberOfResults)
        {
            //check for a layer to ignore
            if (results[current].gameObject.layer == ignoreLayer)
            {
                current++;
                return;
            }

            //check for health component
            Health health = results[current].gameObject.GetComponent <Health>();
            if (health != null)
            {
                health.TakeDamage(damage);
            }
            //check for knockback component
            Knockback knockback = results[current].gameObject.GetComponent <Knockback>();
            if (knockback != null)
            {
                knockback.TakeKnockback(transform.position, knockbackForce);
            }
            current++;
        }
        if (destroyOnCollision && numberOfResults > 0)
        {
            Explode explode = gameObject.GetComponent <Explode>();
            if (explode != null)
            {
                explode.Activate();
            }
            else
            {
                Destroy(this.gameObject);
            }
        }
    }