How to move an object across terrain?
I have these enemies that follow the player when it comes within the enemies range, but when I jump or walk down a hilly terrain the enemy stays floating in the air while still following the player. So how do I make it that the enemy stays on the terrain whilst the player is walking down the terrain or jumping
public class SpiderFollow : MonoBehaviour {
public GameObject player;
public float targetDistance;
public float allowedRange = 20;
public GameObject enemy;
public float enemySpeed;
public int attackTrigger;
public RaycastHit shot;
public Collider playerTrigger;
public int isAttacking;
public GameObject screenFlash;
public AudioSource hurt01;
public AudioSource hurt02;
public AudioSource hurt03;
public int painSound;
void Update()
{
transform.LookAt(player.transform);
if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out shot))
{
targetDistance = shot.distance;
if (targetDistance < allowedRange)
{
enemySpeed = 0.1f;
if (attackTrigger == 0)
{
enemy.GetComponent<Animation>().Play("walk");
transform.position = Vector3.MoveTowards(transform.position, player.transform.position, enemySpeed);
}
} else
{
enemySpeed = 0;
enemy.GetComponent<Animation>().Play("idle");
}
}
if (attackTrigger == 1)
{
if (isAttacking == 0)
{
StartCoroutine(EnemyDamage());
}
enemySpeed = 0;
enemy.GetComponent<Animation>().Play("attack");
}
}
void OnTriggerEnter(Collider other)
{
if (other.tag == "Player")
{
attackTrigger = 1;
}
}
void OnTriggerExit()
{
attackTrigger = 0;
}
IEnumerator EnemyDamage()
{
isAttacking = 1;
painSound = Random.Range(1, 4);
yield return new WaitForSeconds(0.4f);
screenFlash.SetActive(true);
GlobalHealth.playerHealth -= 2;
if (painSound == 1)
{
hurt01.Play();
}
if (painSound == 2)
{
hurt02.Play();
}
if (painSound == 3)
{
hurt03.Play();
}
yield return new WaitForSeconds(0.05f);
screenFlash.SetActive(false);
yield return new WaitForSeconds(0.5f);
isAttacking = 0;
}
}
Comment
Your answer
Follow this Question
Related Questions
How to make enemy detect a character in his certain range? 1 Answer
Enemy's set position is incorrect? 1 Answer
Boss ai help EoW 0 Answers
How do i stop my enemy from not colliding? 1 Answer
EnemyAI code help 0 Answers