My AI Script is not working fully.

Hello, i have been creating a script for a advancedAI, but can’t get it to work fully, so i want the AI to detect when i for example hit it and start chasing me, but it does not seem to be able to detect me when i hit it.

Script here.

using UnityEngine;
using System.Collections;

public class AdvancedEnemyAI : MonoBehaviour{

public int health = 100;
public float viewRange = 25f;
public float attackRange = 5f;

public bool isChasing = false;

public Transform playerTransform;

private NavMeshAgent agent;

private void Start()
{
    agent = GetComponent<NavMeshAgent>(); // Find the Component "NavMeshAgent"
}

private void Update()
{
    Ray ray = new Ray(transform.position, Vector3.forward);
    RaycastHit hitInfo;

    CheckHealth();

    if(Physics.Raycast(ray, out hitInfo, viewRange))
    {
        if(hitInfo.collider.tag == "Player")
        {
            if (isChasing == false)
            {
                isChasing = true;

                if(playerTransform == null)
                {
                    playerTransform = hitInfo.collider.GetComponent<Transform>();
                }
            }
        }
    }

    if (Physics.Raycast(ray, out hitInfo, attackRange))
    {

    }

    Debug.DrawRay(ray.origin, ray.direction * viewRange, Color.red);

    if (isChasing == true)
    {
        agent.SetDestination(playerTransform.position);
    }
}

public void TakeDamage(int damage)
{
    health -= damage;
    Debug.Log("Enemy took damage and now has " + health + "health!");
}

private void CheckHealth()
{
    if(health <= 0)
    {
        Destroy(gameObject);
    }
}

}

And the Detecting Script here

using UnityEngine;
using System.Collections;

public class PlayerDetector : MonoBehaviour
{

private Transform playerDetectoTransform;

private AdvancedEnemyAI advancedEnemyAI;

private void Start()
{
    advancedEnemyAI = GetComponentInParent<AdvancedEnemyAI>();
}

private void OnTriggerEneter(Collider target)
{
    if (target.tag == "Player")
    {
        playerDetectoTransform = target.GetComponent<Transform>();

        if(advancedEnemyAI.playerTransform == null)
        {
            advancedEnemyAI.playerTransform = playerDetectoTransform;
        }
    }
}

}

First: I would change something in your script. Its sees be a lot of unecessary stuff. Don’t you get a compilation error? OnTriggerEneter is written wrong. It´s OnTriggerEnter.

Check if your player has a rigidybody and a cillider. Check if your enemy has a it too. Verify the “Is Trigger” option in both objects.
Read more about both below

Here´s what I would do: Uncheck the “Is Trigger” on both objects. Rigidbody on both objects.
And this script in your enemy:

using UnityEngine; using System.Collections;

public class AdvancedEnemyAI : MonoBehaviour{
public int health = 100;
 public float viewRange = 25f;
 public float attackRange = 5f;
 public bool isChasing = false;
 public Transform playerTransform;
 private NavMeshAgent agent;

 private void Start()
 {
     agent = GetComponent<NavMeshAgent>(); // Find the Component "NavMeshAgent"
 }

 private void Update()
 {
     Ray ray = new Ray(transform.position, Vector3.forward);
     RaycastHit hitInfo;
     //CheckHealth();
     //if(Physics.Raycast(ray, out hitInfo, viewRange))
     //{
         //if(hitInfo.collider.tag == "Player")
         //{
             //if (isChasing == false)
             //{
                 //isChasing = true;
                 //if(playerTransform == null)
                 //{
                     //playerTransform = hitInfo.collider.GetComponent<Transform>();
                 //}
             //}
         //}
     //}

     if (Physics.Raycast(ray, out hitInfo, attackRange))
     {

     }
     Debug.DrawRay(ray.origin, ray.direction * viewRange, Color.red);

     if (isChasing == true)
     {
         agent.SetDestination(playerTransform.position);
     }
 }

 void OnCollisionEnter(Collision target)
 {
     if (target.tag == "Player")
     {
         playerDetectoTransform = target.GetComponent<Transform>();
         if(advancedEnemyAI.playerTransform == null)
         {
             advancedEnemyAI.playerTransform = playerDetectoTransform;
         }
     }
 }

 //public void TakeDamage(int damage)
 //{
     //health -= damage;
     //Debug.Log("Enemy took damage and now has " + health + "health!");
//}
// Call you where you used to call TakeDamage
 public  void CheckHealth(int damage)
 {
     if(health <= 0)
     {
         Destroy(gameObject);
     }
     else
     {
          health -= damage;
          Debug.Log("Enemy took damage and now has " + health + "health!");
     }
 }