- Home /
problem with LookRotation on simple AI
Hi, i'm currently making a 2.5D game where you assign target to characters by clicking on the wanted target, then the characters walk to it and attack it. Everything work except that when character stack near a target after destroying it, some of them go away from the others and go in a totally different direction. giving them a new target don't change anything to their direction while the other correctly follow the new target.
I have a script on my character prefab for the AI, and a script on the different target to report the mouseclick.
here is the AI script : var moveSpeed : int = 1; var rotationSpeed : int = 1; var maxDistance : int; var attackTimer : float; var coolDown : float; private var myTransform : Transform; private var clickTarget : Transform; var ExitPoint : Transform; var blocked : boolean = false;
 
               function Awake() { clickTarget = ExitPoint; myTransform = transform; attackTimer = 0; coolDown = 2.0f; }
 function Start() { maxDistance = 2; }
 function Update () {
  if(TargetSelect.newTarget == true){
     clickTarget = TargetSelect.target.transform;
     }
     else{
     clickTarget = ExitPoint;}
 //Look at clickTarget
 var relativePos = clickTarget.position - myTransform.position;
 var quatRotat = Quaternion.LookRotation(relativePos);
 myTransform.rotation.y = quatRotat.y;
 Debug.DrawLine(clickTarget.position, myTransform.position, Color.yellow);
 if(Vector3.Distance(clickTarget.position, myTransform.position) > maxDistance && !blocked) {
 //Move towards clickTarget
     myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
 }
 // Attacking
     if (attackTimer > 0) {
     attackTimer -= Time.deltaTime;
 }
 if(attackTimer < 0){
     attackTimer = 0;
 }
 if(attackTimer == 0) {
     Attack();
     attackTimer = coolDown;
 }
 }
 function Attack () { var distance = Vector3.Distance(clickTarget.transform.position, transform.position); var dir = (clickTarget.transform.position - transform.position).normalized; var direction = Vector3.Dot(dir, transform.forward); if(distance < 2.5f){ if(direction > 0) { eh = clickTarget.GetComponent("Health"); eh.AdjustCurrentHealth(-10); } } } 
 and here is a link to a webplayer if you can't understand the problem : http://dl.dropbox.com/u/6912146/proto_02/WebPlayer.html
 Your answer
 
 
             Follow this Question
Related Questions
Simulating Mouse Input for AI 0 Answers
Follow up to AI Pathfinding Question 0 Answers
Clamping LookRotation. 1 Answer
Turret Rotation Problems 1 Answer
I need to instantiate a empty gameObject 2 Units right/left of a 'Enemies' Transform? 3 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                