I am getting this error but I don’t understand why. It says it is on line 108.
Here is my script please help me.
using UnityEngine;
using System.Collections;
public class AISimple : MonoBehaviour {
public float Distance;
public Transform Target;
public float lookAtDistance= 50.0f;
public float chaseRange= 20.0f;
public float moveSpeed= 1.0f;
public float Damping= 6.0f;
public float fov= 160.0f;
public int damage= 5;
public int range= 5;
public int force= 5;
public Renderer muzzleFlash;
public Light muzzleLight;
private RaycastHit hit;
public int direction = transform.TransformDirection(Vector3.forward);
public RaycastHit shot;
public CharacterController controller;
public float gravity = 20.0f;
private Vector3 moveDirection = Vector3.zero;
/*
* Is player in line of sight?
*/
void Awake(){
muzzleFlash.enabled = false;
muzzleLight.enabled = false;
//allowfire = true;
}
bool LineOfSight ( Transform target ){
if (Vector3.Angle(target.position - transform.position, transform.forward) <= fov &&
Physics.Linecast(transform.position, target.position, out hit) &&
hit.collider.transform == target) {
return true;
}
return false;
}
/*
This ai will fly and move through objects inlcuding terrain!
*/
void Update (){
if (LineOfSight(Target) == true && hit.transform == Target) // Target is player
{
//enemy sees you - perform some action
// Gauge the distance to the player. Line in 3d space. Draws a line from source to Target.
Distance = Vector3.Distance(Target.position, transform.position);
// Turn yellow enemy is getting close. Will chase soon.
if (Distance < lookAtDistance)
{
lookAt();
}
// Attack! Chase the player until/if player leaves attack range.
if (Distance < chaseRange)
{
chase ();
attack();
animation.Play("walk");
}
}
else
{
//enemy doesn't see you
}
}
// Turn to face the player.
void lookAt (){
// Rotate to look at player.
Quaternion rotation= Quaternion.LookRotation(Target.position - transform.position);
// Dampening will slow the turn speed of enemy.
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * Damping);
// transform.LookAt(Target);
}
void chase (){
moveDirection = transform.forward;
moveDirection *= moveSpeed;
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
}
void attack (){
audio.Play();
// Did we hit anything?
if (Physics.Raycast (transform.position, direction, shot, range)) {
Debug.DrawRay(transform.position, direction * range, Color.green);
// Apply a force to the rigidbody we hit
if (hit.rigidbody)
hit.rigidbody.AddForceAtPosition(force * direction, hit.point);
hit.collider.SendMessageUpwards("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
}
muzzleFlash.renderer.enabled = true;
muzzleLight.enabled = true;
yield return new WaitForSeconds(2);
muzzleFlash.renderer.enabled = false;
muzzleLight.enabled = false;
yield return new WaitForSeconds(2);
//allowfire = true;
}