Game Development Reference
In-Depth Information
Begin:
// If we can reach our pawn....
if(NavigationHandle.ActorReachable(target))
{
/** Clear any debug lines that would otherwise be
drawn*/
FlushPersistentDebugLines();
/** Move directly toward our pawn */
MoveToward(target,target);
}
else if( FindNavMeshPath())
{
// Our end goal is to reach our pawn
NavigationHandle.SetFinalDestination
(target.Location);
/** Clear any debug lines that would otherwise be
drawn */
FlushPersistentDebugLines();
// Draw lines for how to reach our pawn
NavigationHandle.DrawPathCache(,TRUE);
// Move to the first node on the path
if(NavigationHandle.GetNextMoveLocation
(TempDest, Pawn.GetCollisionRadius()))
{
// Draw the line to our pawn
DrawDebugLine(Pawn.Location,TempDest,255,0,0,true);
/** Draw a red sphere to illustrate the next
location the bot will stop at */
DrawDebugSphere(TempDest,16,20,255,0,0,true);
/** Move directly to this red sphere, without
pathfinding */
MoveTo(TempDest, target);}
}
else
{
/** We can't follow the pawn, so exit this state
otherwise we'll enter an infinite loop. */
GotoState('Idle');
}
// Go back to the beginning of this state
goto 'Begin';
}
 
Search Nedrilad ::




Custom Search