void Start() { dc = GetComponent <DamnageControl>(); tc = GetComponent <TankControl>(); pm = Singleton <ParticleManager> .instance; tm = Singleton <TimeManager> .instance; }
private void Hit(DamnageControl dc, Collision collision) { var contact = collision.contacts[0]; var cosvel = Mathf.Clamp01(Vector3.Dot(collision.relativeVelocity.normalized, contact.normal)); var damnage = damnageAtSpeed * rigid.velocity.magnitude / speed * cosvel; dc.TakeDamnage(damnage, contact.normal, contact.point); Singleton <ParticleManager> .instance.Emit("SparkHit", contact.point, Quaternion.LookRotation(contact.normal + (collision.relativeVelocity + rigid.velocity))); Singleton <ParticleManager> .instance.Emit("DustHit", contact.point, Quaternion.LookRotation(contact.normal + (collision.relativeVelocity + rigid.velocity))); Destroy(gameObject); }