I’m really having trouble adding the ability for my enemy to avoid onjects. I know I should be using some kind of ray-casting but I just can’ figure it out. Any help is very much appreciated. Here is my code without the object avoiding:
var player : Transform; var speed : float=5; var range : float=15; var hitRange : float=6; var enemyDamage : float=10; var rotationSpeed : float=5; var damageTimer : float=0; var delta : Vector3; var distance; function Update() { distance = Vector3.Distance(transform.position, player.transform.position); if(distance<=range) { MoveTowards(); AttackPlayer(); } } var moveSpeed = Vector3.zero; // this variable stores the current velocity var gravity: float = 20; // gravity like in the Move example function MoveTowards() { if(distance<=(hitRange/1.5)) return; var character = GetComponent(CharacterController); if (character.isGrounded){ delta = player.transform.position - transform.position; delta.y = 0; // zero delta.y before normalization! delta.Normalize(); transform.forward = delta; // turn enemy to the player moveSpeed = delta * speed; } moveSpeed.y -= gravity * Time.deltaTime; // apply gravity acceleration character.Move(moveSpeed * Time.deltaTime); // move the character } function AttackPlayer() { damageTimer+=Time.deltaTime; if (distance < hitRange && damageTimer>=1.5) { damageTimer=0f; player.SendMessageUpwards ("ApplyDamage", enemyDamage, SendMessageOptions.DontRequireReceiver); } }