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