Hey guys what’s up I’m making an FPS prototype for my game using raycasthit for the gun, but when I hit 1 enemy they all take damage. How do I maket it so that only the shooted enemy takes damage? Here’s the script:
var force : float = 10;
var range : float = 200;
var clipnumb : int = 3;
var bulletsPerClip : int = 14;
var bulletsLeft : int;
var reloadTime : float = 1;
var shootAudio : AudioClip;
var reloadAudio : AudioClip;
var enemies : GameObject[];
var enemy : GameObject;
function Start () {
bulletsLeft = bulletsPerClip;
enemies = GameObject.FindGameObjectsWithTag("Enemy");
}
function Update () {
Shooting();
Reloading();
RayShoot();
}
function RayShoot (){
var hit : RaycastHit;
var directionRay = transform.TransformDirection(Vector3.forward);
Debug.DrawRay(transform.position, directionRay * range, Color.red);
if(Physics.Raycast(transform.position, directionRay, hit, range)){
for(var i : int = 0; i < enemies.length; i++){
var dir : Vector3 = (enemies*.transform.position - transform.position).normalized;*
var direction : float = Vector3.Dot(dir, transform.forward);
if(hit.collider.tag == “Enemy”){
if(direction > 0){
if(Input.GetButtonUp(“Fire1”) && bulletsLeft > 0){
enemy = enemies*;*
var eh : EnemyHealth = enemy.GetComponent(“EnemyHealth”);
eh.AdjustHealth(-10);
}
else{
}
}
}
}
}
}
function Shooting (){
if(Input.GetButtonUp(“Fire1”) && bulletsLeft){
bulletsLeft --;
if(bulletsLeft < 0){
bulletsLeft = 0;}
audio.PlayOneShot(shootAudio);
}
}
function Reloading (){
yield new WaitForSeconds(reloadTime);
if(Input.GetKeyUp(KeyCode.F)){
if(clipnumb > 0){
bulletsLeft = bulletsPerClip;
audio.PlayOneShot(reloadAudio);
}
clipnumb --;
}
}