current | The vector being managed. |

target | The vector. |

maxRadiansDelta | The distance between the two vectors in radians. |

maxMagnitudeDelta | The length of the radian. |

**Vector3**
The location that RotateTowards generates.

Rotates a vector `current`

towards `target`

.

This function is similar to MoveTowards except that the vector is treated as a direction rather
than a position. The `current`

vector will be rotated round toward the `target`

direction by an angle
of `maxRadiansDelta`

, although it will land exactly on the target rather than overshoot. If the magnitudes
of `current`

and `target`

are different then the magnitude of the result will be linearly interpolated during
the rotation. If a negative value is used for `maxRadiansDelta`

, the vector will rotate away from `target/`

until it is pointing in exactly the opposite direction, then stop.

using UnityEngine; using System.Collections;

public class ExampleClass : MonoBehaviour { // The target marker. Transform target;

// Angular speed in radians per sec. float speed;

void Update() { Vector3 targetDir = target.position - transform.position;

// The step size is equal to speed times frame time. float step = speed * Time.deltaTime;

Vector3 newDir = Vector3.RotateTowards(transform.forward, targetDir, step, 0.0f); Debug.DrawRay(transform.position, newDir, Color.red);

// Move our position a step closer to the target. transform.rotation = Quaternion.LookRotation(newDir); } }