Exemplo n.º 1
0
    void OnCollisionEnter2D(Collision2D coll)
    {
        if (coll.collider != null)
        {
            UnitScript unit = coll.collider.GetComponent <UnitScript>();
            if (unit != null)
            {
                unit.ReceiveDamage(damage);

                // Blood effect
                GameObject blood = ObjectPoolScript.instance.GetObjectForType("Blood", false);
                blood.transform.rotation = transform.rotation;

                Vector3 delta = unit.transform.position - transform.position;
                Vector3 dec   = travelDirection.normalized * Vector2.Dot(Utils.V3toV2(delta), travelDirection) * delta.magnitude;
                blood.transform.position = transform.position + 2 * dec;
            }
        }

        GetComponent <SelfPoolScript>().PoolObject();
    }
Exemplo n.º 2
0
    void OnTriggerEnter2D(Collider2D coll)
    {
        if (coll != null)
        {
            if (coll.tag == "Player")
            {
                return;
            }

            UnitScript unit = coll.GetComponent <UnitScript>();
            if (unit != null)
            {
                unit.ReceiveDamage(damage);

                // Blood effect
                GameObject blood = ObjectPoolScript.instance.GetObjectForType("Blood", false);
                blood.transform.rotation = transform.rotation;

                Vector3 delta = unit.transform.position - transform.position;
                Vector3 dec   = player.transform.up.normalized * Vector2.Dot(Utils.V3toV2(delta), player.transform.up) * delta.magnitude;
                blood.transform.position = transform.position + 2 * dec;
            }
        }
    }