public override void OnCollide(Blastable other) { if (other.destroyable) { Destroy(other.gameObject); } }
public override void OnCollide(Blastable other) { if (other.pushable) { Rigidbody rb = other.GetComponent <Rigidbody> (); Vector3 force = (other.transform.position - transform.position).normalized * explosionForce * myFixedDeltaTime * 60; rb.AddForce(force, ForceMode.Impulse); } }
public void RemoveFromLists(Blastable b) { /*if (Bullets.Remove(b)) * return; * if (Enemies.Remove(b)) * return; * if (Debris.Remove(b)) * return; * //Aliens.Remove((SpaceAlien)b);*/ Bullets.Remove(b); Enemies.Remove(b); Debris.Remove(b); }
bool CollidesWith(Blastable blastable) { Collider[] inside = Physics.OverlapSphere(transform.position, radius); if (inside != null) { foreach (Collider collider in inside) { if (collider.gameObject == blastable.gameObject) { return(true); } } } return(false); }
public void Blast() { foreach (GameObject trackedObject in trackedObjects) { Blastable iReceiveBlast = trackedObject.GetComponent <Blastable>(); if (iReceiveBlast != null && iReceiveBlast.isBlastable() && !iReceiveBlast.isBlasted) { Vector3 targetPosition = trackedObject.transform.position; targetPosition.y = transform.position.y; Vector3 toReceiver = (targetPosition - transform.position).normalized; RaycastHit[] hitObjects = Physics.RaycastAll(transform.position, toReceiver, blastRange, blastLayer); int targetInstanceID = trackedObject.GetComponent <Collider>().GetInstanceID(); foreach (RaycastHit hitObject in hitObjects) { Debug.DrawRay(transform.position, toReceiver * hitObject.distance, Color.red, 30f); if (trackedObject.GetInstanceID() == hitObject.collider.gameObject.GetInstanceID()) { iReceiveBlast.BlastReceived(); } else { Blastable hitObjectBlast = hitObject.collider.GetComponent <Blastable>(); if (hitObjectBlast.isBlastable() && !hitObjectBlast.isBlasted) { break; } } } } } }
public virtual void OnCollide(Blastable blastable) { }
public void RemoveFromDebris(Blastable debris) { Debris.Remove(debris); }
public void RemoveFromEnemies(Blastable enemy) { Enemies.Remove(enemy); }
public void Blast(Blastable b) { ToBeBlasted.Add(b); }