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(); } }