Switching from SimpleMove to Move

Hi there!

I have an AI driven character that has been using CharacterController.SimpleMove so far, and all good. But now I need this character to jump. When trying to switch over CharacterController.Move, my character suddenly starts moving in a different manner, even if I use the same direction vector.

I used to move my character this way:


  Vector3 dir = (targetPosition - transform.position).normalized;
  dir *= speed * Time.fixedDeltaTime;
  controller.SimpleMove (dir);

If I just change “.SimpleMove” in this code to “.Move” , the character will run move much faster. Why is that? What can I do to behave same way as with SimpleMove?? Is it because of the gravity? What is the gravity SimpleMove applies?

Thanks!

SimpleMove is frame rate independent under the hood, meaning that it takes the input and multiplies it by Time.deltaTime (or at least that’s what I assume).

Move on the other hand does not do that. So to convert from SimpleMove to Move, take your input to SimpleMove and multiply it by Time.deltaTime.

Oh and also, SimpleMove applies gravity. So there’s that too.