How will i make my objects/model(say a car) face the way points and travel towards it,instead of blindly following it?

i’m a newbie and i’m trying out some stuff with a few models.
I have a car model and when i was trying to use waypoints to make it follow throught those points ,my car isn’t facing towards it .
Instead it is trying to just move towards the waypoint no matter what side it is turned .

I want the car’s front side to be facing towards the waypoint it is trying to reach.

To get a direction from two positions the basic calculation is like this:

target.position - transform.position

To set a new look rotation from a direction over time (with linear interpolation):

var rotationSpeed : float = 10.0;
var direction : Vector3 = Vector3(target.position - transform.position);
var newLookRotation : Quaternion = Quaternion.LookRotation(direction);

transform.rotation = Quaternion.Slerp(transform.rotation, newLookRotation, rotationSpeed*Time.deltaTime);

There’s also a function called RotateTowards which can be useful. If you don’t want to rotate over time and just set the rotation immediately, you can use LookAt.

transform.LookAt(target);

So what you basically have to do is to assign each next waypoint as your target when you’ve finished the current. As you haven’t posted any script, an example:

var allWayPoints = Transform[];
var currentWayPoint : int;
var target : Transform;

// Called when reaching current waypoint
function FinishedWaypoint () {
    // Increase currentWayPoint by one and make it loop if exceeds length of all waypoints
    currentWayPoint++; currentWayPoint = currentWayPoint%allWayPoints.Length;

    // Set next waypoint as new target (to later rotate towards it)
    target = allWayPoints[currentWayPoint];
}

On another note, I saw you had duplicate posts in the moderation queue. There might be a little bit of delay of the publication of your questions as you have to wait for approval from a moderator - just so you don’t think that your question got lost.

who likes the c# from the answer code this is the code :

            Vector3 direction = targetPosition - transform.position;

            Quaternion newlook_rotation = Quaternion.LookRotation(direction);

            transform.rotation = Quaternion.Slerp(transform.rotation, newlook_rotation, rotation_speed * Time.deltaTime);