Je me bats pour effectuer le mouvement de mes ennemies, qui ont un rigidbody pour ne pas passer au travers des murs et des objets.
Au départ j'avais une solution qui semblait satisfaisante :
V1 :
Code : Tout sélectionner
if (!ZombieDead)
{
transform.rotation = Quaternion.LookRotation(Vector3.RotateTowards(transform.forward, wantedRotation, 0.1f, 0.0f));
if (ZPV > 20)
{
GetComponent<Rigidbody>().transform.position = Vector3.MoveTowards(transform.position, newWantedPosition, speed * Time.deltaTime);
}
Mais les méchants recule d'un coup lors d'une collision avec un objet en mouvement comme une balle de flipper.
j'ai chercher sur internet et j'ai trouvé AddForce, mais les méchants gardent une inertie trop importante et continuent leurs mouvements au lieu de se déplacer vers moi pour m'attaquer.
V2 :
Code : Tout sélectionner
if (!ZombieDead)
{
transform.LookAt(newWantedPosition);
if (ZPV > 20)
{
GetComponent<Rigidbody>().AddRelativeForce((newWantedPosition - transform.position).normalized * 2500 * Time.smoothDeltaTime);
}
J'ai aussi essayé de leur donner un poids de 5000 unités et coché la case gravité sans plus de succès.