j'essaye de déplacer un voilier au point où j'ai cliqué avec la souris. ce mouvement doit être réaliste (rame à l'arrière où le navire se déplace) donc si le clic de la souris est laissé et devant le navire le navire doit ensuite s'y déplacer avec un chemin sinueux afin d'avoir la bonne rotation
je serais heureux si quelqu'un pouvait m'aider avec ce problème merci
Réponses:
Voir cette page
la source
Comme solution simple, comme je l'ai déjà dit dans un commentaire, vous pouvez essayer cette approche:
considérez une phase où vous pointez le vaisseau dans la direction cible, dans cette phase vous appliquez une rotation à la gorgée mais aussi un mouvement vers l'avant. Lorsque le navire fait déjà face à la cible, vous pouvez appliquer une vitesse d'avance maximale. J'ai organisé un test dans love2d, voici la méthode de mise à jour du vaisseau.
L'exemple d'animation montre (la boucle finale) un cas où le navire ne peut pas atteindre la cible, car la combinaison de la vitesse de virage et de la marche avant définit un rayon de braquage trop grand, dans ce cas, il peut être utile de réduire le "
turnForwordSpeed
" ou mieux de le faire en fonction de la distance angulaire (a
) et de la distance cible.la source
Système de maillage Unity Nav, il ferait probablement ce que vous voulez en jouant un peu avec les valeurs de l'agent de navigation.
Les maillages de navigation sont assez simples à utiliser. Et uniquement utilisable dans la configuration descendante (ou du moins uniquement disponible pour le mouvement x / z)
Page de manuel Unity sur la configuration d'un maillage de navigation
Fondamentalement, vous pouvez utiliser n'importe quel maillage de forme pour créer une zone de navigation, ajouter des agents de navigation à vos objets et leur faire trouver leur chemin autour d'un maillage de navigation
la source