Exemple #1
0
    void OnTriggerEnter(Collider other)
    {
        //Vector3 closest = other.ClosestPoint(transform.position);
        Vector3 dir = (other.transform.position - transform.position).normalized; //((closest - transform.position ).normalized  + Vector3.up * 0.1f).normalized;

        Debug.DrawLine(transform.position, transform.position + dir, Color.magenta, 4);

        Rigidbody rigid = FindRigidbody(other.transform);

        if (rigid != null)
        {
            rigid.AddForce(dir * 3, ForceMode.Impulse);
            rigid.AddForce(Vector3.up * 1.5f, ForceMode.Impulse);

            AlarmClock alarm = rigid.gameObject.GetComponent <AlarmClock>();
            if (alarm != null)
            {
                alarm.Snooze();
            }
        }



        Destructible dest = rigid != null?rigid.gameObject.GetComponent <Destructible>() : FindDestructible(other.transform);

        if (dest != null)
        {
            dest.SufferDamage();
        }
    }