- Home /
 
Enemy damage error
I have a script that fires raycasts attached to my gun and another script on my enemy that receives the damage from the ray but it does not work, instead I get an error saying
MissingMethodExeption: Method not found: UnityEngine.RaycastHit.GetComponent.
What does this mean and how can I solve it?
These are my scripts,
 var amountOfShots = 8;
 
               var reloadTime = 1.5;
function Update (){
if(Input.GetButtonDown("Fire1")){
 Shoot();
 }
 
 
               if(Input.GetKeyDown("r")){
 Reload();
 }
 
               }
function Reload (){
yield WaitForSeconds(reloadTime);
amountOfShots = 8;
}
var shootSound : AudioClip;
var bloodPrefab : Transform;
var sparksPrefab : Transform;
var hit : RaycastHit;
var range = 500;
function Shoot (){
     if(amountOfShots > 0){
     amountOfShots--;
     if(shootSound){
     audio.PlayOneShot(shootSound);
 }
 
               if(Physics.Raycast(transform.position, transform.forward, hit, range)){
 var rot = Quaternion.FromToRotation(Vector3.up, hit.normal);
 if(hit.collider.tag == "Enemy"){
     if(bloodPrefab){
         Instantiate(bloodPrefab, hit.point, rot);
     }
         hit.GetComponent(DamageReciever).health -= 20;
     }else{
     if(sparksPrefab){
         Instantiate(sparksPrefab, hit.point, rot);
         }
     }
 }
 
               }
}
And
 var health = 100;
 
               function Damage(dmg: int){
health -= dmg; // reduce health
if (health <= 0){ // if health has gone...
 Destroy(gameObject); // enemy suicides 
 
               }
}
Answer by Lo0NuhtiK · Apr 27, 2012 at 03:41 PM
in your raycast area ->
 var otherScript : otherScriptName ;
 otherScript = hit.collider.gameObject.GetComponent(otherScriptName) ;
 otherScript.otherVariable = whatever ;
 
              replace [ hit.GetComponent(DamageReciever).health -= 20; ] with all 3 of them.
...and if you want to use that damage function rather than doing health-=20 on its own, the third line would be otherScript.Damage(20) ;
Your answer
 
             Follow this Question
Related Questions
Destroy enemy using raycasts 2 Answers
Finding Distance between Angles and Points 2 Answers
Getting the Furthest Point on a Ray 1 Answer
C# Raycast 2D GameObject follow Mouse 1 Answer
Destroy Scripting Help 1 Answer