2017-05-11 1 views
0

Ich habe Feinde, die zu verschiedenen Wegpunkten mit NavMesh Agent patrouillieren Ich möchte, wenn der Feind den nächsten Wegpunkt erreichen, um die gleiche Rotation wie dieser Wegpunkt zu haben. Hier ist der Code:NavMesh Agent Override Rotation

void Update() 
{ 
    if (agent.remainingDistance < 0.1) 
     { 
      // tried to stop the agent so I can override it's rotation, doesn't work 
      agent.Stop(); 
      // Give him the desired rotation 
      transform.rotation = wayPoints[curretPoint].rotation; 

      if (curretPoint < wayPoints.Length -1) 
      { 
       curretPoint++; 
      } 
      else 
      { 
       curretPoint = 0; 
      } 
      // make him wait for a fixed amount of time 
      patrolTimer += Time.deltaTime; 
      if (patrolTimer >= patrolWait) 
      { 
       patrolTimer = 0; 
       agent.SetDestination (wayPoints[curretPoint].position); 
       agent.Resume(); 
      } 
     } 
} 

Das Problem ist, dass er hin und her sehr schnell weiter dreht, kann ich nicht teh gewünschten Effekt erhalten, die ich will.

Antwort

0

Versuchen Sie, Winkelgeschwindigkeit von NavMesh-Agent auf 0

Edit:

, die funktionieren sollte:

// make him wait for a fixed amount of time 
    patrolTimer += Time.deltaTime; 
    if (patrolTimer >= patrolWait) 
    { 
     if (curretPoint < wayPoints.Length -1) 
     { 
      curretPoint++; 
     } 
     else 
     { 
      curretPoint = 0; 
     } 
     patrolTimer = 0; 
     agent.SetDestination (wayPoints[curretPoint].position); 
     agent.Resume(); 
    } 
+0

Nein, das hat nichts getan. – Abdou023

+0

Ich habe meinen Beitrag bearbeitet, versuche diesen. – Woltus

+0

Das hat perfekt funktioniert. Vielen Dank. – Abdou023

0

Dies ist, wie ich es behandelt: Stattdessen Mittel zu tun. Halt(); und agent.Resume(); Ich habe einfach seine Geschwindigkeit auf 0 gesetzt und transform.Rotate verwendet, um das Zeichen zu drehen.