A veces un objeto debe desplazarse automáticamente hacia un punto.

MoveTowards

transform.position = Vector3.MoveTowards(
    transform.position,
    objetivo.position,
    velocidad * Time.deltaTime
);

Detectar llegada

if (Vector3.Distance(
    transform.position,
    objetivo.position
) < 0.1f)
{
    Debug.Log("Llegó");
}

Dirección manual

Vector3 direccion =
    (objetivo.position - transform.position).normalized;

Mover:

transform.position +=
    direccion * velocidad * Time.deltaTime;

Rotar hacia el objetivo

Vector3 direccion =
    objetivo.position - transform.position;

direccion.y = 0f;

if (direccion.sqrMagnitude > 0.001f)
{
    transform.rotation =
        Quaternion.LookRotation(direccion);
}

Resumen rápido

Vector3.MoveTowards(...)
Vector3.Distance(...)
(objetivo - origen).normalized