No seguinte código, consigo o resultado esperado:
Vector3 direction = player.transform.position - transform.position;
_rb.MovePosition(_rb.position + direction.normalized * Time.deltaTime * speed);
Já aqui, pelo parêntese, o resultado é totalmente errado e meu NPC fica parado em um canto aleatório da fase
Vector3 direction = player.transform.position - transform.position;
_rb.MovePosition((_rb.position + direction.normalized) * Time.deltaTime * speed);
Alguém sabe me dizer por quê isso acontece? Eu acredito que seja porque eu to mexendo diretamente com minha posição inicial e multiplicando ela, ao invés de multiplicar pelo vetor de direção, é isso?