How to enalbe the Navigation Behavior
The Navigation Behavior class computes the optimal path computed from a Navigation Mesh using the A* algorithm. It then returns a Final Velocity which steers the agent along the computed path.
The Navigation Behavior class, U4DEngine::
The code snippet below shows how to use the U4DNavigation class:
//1. Create a Navigation Object U4DEngine::U4DNavigation *navigation=new U4DEngine::U4DNavigation(); //2. Load a Navigation Mesh by providing the name of the nav mesh and the file if(navigation->loadNavMesh("NavmeshName","navMesh.u4d")){ //set options here such as path radius } //3. Compute Optimal Path. The method required a pointer to the agent and a Target Position. navigation->computePath(myCharacter,targetPosition); //4. Compute the final "Navigation" velocity for the character U4DEngine::U4DVector3n finalVelocity=navigation->getSteering(myCharacter); //Set the final velocity y component to zero. finalVelocity.y=0.0; //Check if the resulting velocity is set to zero. Do this as a a safeguard. I have to fix this issue. if(!(finalVelocity==U4DEngine::U4DVector3n(0.0,0.0,0.0))){ uSoldier->applyVelocity(finalVelocity, dt); uSoldier->setViewDirection(finalVelocity); }