void OnCollisionEnter(Collision col) { GameObject obj = col.gameObject; Debug.Log(obj.name + " " + obj.tag); if (obj.tag == "Destructible") { DestructableDoodadScript ds = obj.GetComponent <DestructableDoodadScript>(); ds.Die(); } }
/*void OnCollisionEnter(Collision collision) //Rigidbody collision * { GameObject target; * target = collision.gameObject; * if (target != null) * { Debug.Log(target); * if (destroy_on_impact) * { Destroy(gameObject); * } * else if (!piercing) * { bullet_vel = Vector3.zero; * } * } * }*/ void OnTriggerEnter(Collider other) //Trigger collision { GameObject target; target = other.gameObject; if (target != null && target.tag != "Floor") { Debug.Log(target.tag); if (target.tag == "Wall") { bullet_vel = Vector3.zero; if (destroy_on_impact) { Destroy(gameObject); } } else if (target.tag == "Destructible") //Doodads { DestructableDoodadScript ds = target.GetComponent <DestructableDoodadScript>(); ds.TakeDamage(damage); CheckPierce(); } else if (target.tag == "Enemy") { if (owner == null || owner.tag != "Enemy") { //TODO: Damage enemy and add score CheckPierce(); } } else if (target.tag == "Player") { if (owner == null || owner.tag != "Player") { PlayerController pc = target.GetComponent <PlayerController>(); pc.TakeDamage(damage, owner); CheckPierce(); } } else if (target.tag == "Projectile") { BulletController target_ctrl = target.GetComponent <BulletController>(); if (target_ctrl.take_damage && (owner == null || target_ctrl.owner == null || target_ctrl.owner.tag != owner.tag)) //Avoid friendly fire { target_ctrl.hitpoints -= damage; if (target_ctrl.hitpoints <= 0.0f) { Destroy(target); } CheckPierce(); } } } }