void Start() { RaycastHit hitData; traceFX.SetPosition(0, transform.position); if (Physics.Linecast(transform.position, transform.position + transform.forward * 10000, out hitData, hitMask)) { Instantiate(impactFX, hitData.point, Quaternion.LookRotation(hitData.normal)); traceFX.SetPosition(1, hitData.point); DamageModule dmgmodule = hitData.transform.root.GetComponent <DamageModule> (); if (dmgmodule != null) { dmgmodule.TakeDamage("Generic", damage); } } else { traceFX.SetPosition(1, transform.position + transform.forward * 10000); } currentTraceWidth = defaultTraceWidth; }
void OnTriggerEnter(Collider col) { DamageModule dmgmodule = col.transform.root.GetComponent <DamageModule>(); if (dmgmodule != null) { dmgmodule.TakeDamage("Generic", damage); } }
void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "Enemy" && rb.velocity.magnitude > 4) { DamageModule dmod = collision.transform.root.GetComponent <DamageModule> (); Debug.Log(dmod); dmod.TakeDamage("Generic", massDamage); Debug.Log(dmod.currentHealth()); } }