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);
}
}
}
}
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);
}
}
}
}