How to take enemy damage by explosion?
Please help me how to take enemy damage by explosion idont iknow what function i use.. please......
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Explosion : MonoBehaviour {
private Collider[] hitColliders;
public float blastRadius;
public float explosionPower;
public LayerMask explosionLayers;
void OnCollisionEnter (Collision col) {
Destroy(gameObject);
ExplosionWork(col.contacts[0].point);
}
void ExplosionWork(Vector3 explosionPoint) {
hitColliders = Physics.OverlapSphere(explosionPoint, blastRadius, explosionLayers);
foreach(Collider hitCol in hitColliders)
{
//Debug.Log(hitCol.gameObject.name);
if(hitCol.GetComponent<Rigidbody>() != null)
{
hitCol.GetComponent<Rigidbody>().AddExplosionForce(explosionPower, explosionPoint, blastRadius,1, ForceMode.Impulse);
}
}
}
}
Answer by MrCrumbl3d · May 09, 2017 at 02:05 PM
lol. For those who facing this problem try this. i figured it out by my self.
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Explosion : MonoBehaviour {
private Collider[] hitColliders;
public float blastRadius;
public float explosionPower;
public LayerMask explosionLayers;
void OnCollisionEnter (Collision col) {
Destroy(gameObject);
ExplosionWork(col.contacts[0].point);
}
void ExplosionWork(Vector3 explosionPoint) {
hitColliders = Physics.OverlapSphere(explosionPoint, blastRadius, explosionLayers);
foreach(Collider hitCol in hitColliders)
{
//Debug.Log(hitCol.gameObject.name);
enemyDied enemy1 = hitCol.GetComponent<enemyDied>();
enemyDied2 enemy2 = hitCol.GetComponent<enemyDied2>();
enemyDied3 enemy3 = hitCol.GetComponent<enemyDied3>();
if(enemy1 != null)
{
enemy1.enemyLife -= 3;
print("damaged");
}
if(enemy2 != null)
{
enemy2.enemyLife -= 3;
print("damaged");
}
if(enemy3 != null)
{
enemy3.enemyLife -= 3;
print("damaged");
}
if(hitCol.GetComponent<Rigidbody>() != null)
{
hitCol.GetComponent<Rigidbody>().AddExplosionForce(explosionPower, explosionPoint, blastRadius,1, ForceMode.Impulse);
}
}
}
}
Your answer
Follow this Question
Related Questions
How do I get objects in front of the player to be blasted away? 1 Answer
How to AddForce to a Rigidbody from Game Objects Spawned from an Array, One Prefab at a Time? 2 Answers
Player going through walls 1 Answer
Spawning a Ball going forward every 5 seconds error, help! 2 Answers
Why does my rigidbody move it's transform while rotating? 1 Answer