So I've been working on a simple AI. However I'm having issues.

This is what I have yet I don’t know what I’m doing wrong.

Here is my code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MonsterAI : MonoBehaviour {

public Transform target;
public float AiSpeed;
//set to 20
public float gravity;

Vector3 moveVector;
private Vector3 movement;

void Update () 
{
	//transform.LookAt (target);

	CharacterController controller = GetComponent<CharacterController>();

	//Check if character is grounded
	if (controller.isGrounded == false)
	{
		//Add gravity Vector
		movement.y -= gravity * Time.deltaTime;
	}

	Vector3 dir = target.position - transform.position;
	float angle = Mathf.Atan2 (dir.z, dir.x) * Mathf.Rad2Deg;
	transform.rotation = Quaternion.AngleAxis (-angle + 90, Vector3.up);

	movement.y -= gravity * Time.deltaTime;
	movement = transform.TransformDirection (movement);
	controller.Move (movement * AiSpeed * Time.deltaTime);
}

}

Figured it. For anyone who wants to learn how here is the script. Give or take.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MonsterAI : MonoBehaviour {

public bool active;
public Transform target;
public float AiSpeed;
//set to 20
public float gravity;

Vector3 moveVector;
private Vector3 movement = Vector3.zero;

void Start ()
{
	
}

void FixedUpdate () 
{

	CharacterController controller = GetComponent<CharacterController>();

	if (active) 
	{
		movement = Vector3.forward;
	} else 
	{
		movement = new Vector3 (0, movement.y, 0);
	}
	movement = transform.TransformDirection (movement);

	if (controller.isGrounded) 
	{
		gravity = 0;
	} else 
	{
		gravity = gravity - 0.1f;
	}
	movement.y = gravity;
	controller.Move (movement * AiSpeed * Time.deltaTime);
}

void Update()
{
	CharacterController controller = GetComponent<CharacterController>();

	if (active) 
	{
		Vector3 dir = target.position - transform.position;
		float angle = Mathf.Atan2 (dir.z, dir.x) * Mathf.Rad2Deg;
		transform.rotation = Quaternion.AngleAxis (-angle + 90, Vector3.up);
	}
}

}