C# AI, Enemy is flying at me when I jump.

I have a C# AI script it works but when i jump the enemy is following me up in the air so its flying while attacking. Here is the script:

using UnityEngine;
using System.Collections;

public class EnemyAI : MonoBehaviour {
	public Transform target;
	public int moveSpeed;
	public int rotationSpeed;
	public bool inTrigger;
	public int maxDistance;
	
	private Transform myTransform;
	
	void Awake() {
		myTransform = transform;
	}

	// Use this for initialization
	void Start() {
		GameObject go = GameObject.FindGameObjectWithTag("Player");
		
		target = go.transform;
		
		maxDistance = 2;
	}
	
	// Update is called once per frame
	void Update() {
		
		if(inTrigger){
			myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);
		
			if(Vector3.Distance(target.position, myTransform.position) > maxDistance){
				myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
			}
		}

	}
	
	void OnTriggerEnter(Collider other) {
		inTrigger = true;
	}
	
	void OnTriggerExit(Collider other) {
		inTrigger = false;	
	}
}

is there any way to fix this?

void Update() {

       if(inTrigger){
         myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);

         if(Vector3.Distance(target.position, myTransform.position) > maxDistance){
          // my code
          Vector3 xzFoward = myTransform.forward;
        xzFoward.y = 0.0f;
		xzFoward = xzFoward.Normalize();
          //end of my code
          myTransform.position += xzFoward  * moveSpeed * Time.deltaTime; // use xzFowared instead of myTransform 
         }
       }

    }

Vector3 xzFoward = myTransform.forward; // makes a coppy of your foward
xzFoward.y = 0.0f; // removes y (up) component)
xzFoward = xzFoward.Normalize(); // makes x/z slightly larger so that total magnatude once again == 1.0 (myTransform.forward’s magnatude is 1.0)

the part where I re-normalise it is the part allot of people forget… if you don’t do that as you go higher they will slow down as they are still moving up, it just cancels the up movement, when you use a foward vector to multiply through your data, you must always make sure that it’s normalised, so if you remove an axis it once again must be normalised

so to break it down

make a coppy of the foward vector
remove the component you don’t want (i.e. y)
renormalise the vector to be 1.0 so that when you multiply it it correctly

I havn’t tested this on a moving object, so theres a chance Ive made a logical error, but from experience this should work (plus I added debug logs allong each step to check it was doing the right thing… It was

transform.Translate and transform.position will move your flying object through colliders. Use .Move instead.