Incrementos de distancia fijos entre dos posiciones de Vector3

Tengo dos posiciones de Vector3:

Vector3 start = new Vector3(1f, 1f, 1f); Vector3 target = new Vector3(5f, 5f, 5f); 

¿Cómo transformo los objects de los juegos en una cantidad fija desde el inicio hasta el objective, digamos .1f?

Esto se hace fácilmente con porcentajes, porque puede hacer:

 var dist = target - start; var d = 5f; // 5 increments var step = dist / d; while (start != target) { start += step; } 

¿Cómo se hace esto con pasos fijos, no porcentuales? Digamos que quiero incrementar .1f en alguna dirección:

  var dist = target - start; var step = new Vector3(.1f, .1f, .1f); //How do I determine the direction of the increment? while (start != target) { start += step; } 

Gracias

Es realmente simple: ya tiene la diferencia entre el objective y el inicio en la variable dist. Simplemente normalice ese vector3, multiplíquelo por la distancia de paso y luego puede agregarlo.

 start += dist.normalized * stepDist 

Nota: El código probablemente bucle para siempre. Probablemente deberías verificar la distancia antes de agregar el paso.

 float d = dist.magnitude; if (d<stepDist) start = target; else start += dist.normalized * stepDist