[DB-AL] ralentissement en sortie de route

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
eugenie86
Messages : 11
Inscription : 10 Mai 2020 02:56

[DB-AL] ralentissement en sortie de route

Message par eugenie86 » 17 Mai 2020 01:31

Bonjour à tous! :)

Je pose beaucoup de questions sur ce forum à cause du projet sur lequel je suis et vous m'aidez vraiment beaucoup. Donc déjà merci!

Mon soucis actuellement c'est que j'aimerais avoir un effet de ralentissement de mon player quand il sort de la trajectoire. J'ai réussi à associé un polygon collider à la forme de ma trajectoire, mais je ne sais pas comment je dois écrire le script..

J'ai vu ca sur un forum Anglais: https://answers.unity.com/questions/598 ... oad-o.html
J'ai copier/coller ce qui est proposé mais ca ne fonctionne pas. J'imagine bien qu'il ne suffit pas de copier/coller mais je ne sais pas ce qu'il faut faire d'autre.

Voici une image de mon projet et de l'allure du polygon collider associé à ma trajectoire:
Image

Merci pour votre aide!

Avatar de l’utilisateur
jmhoubre
Messages : 858
Inscription : 05 Oct 2019 22:05

Re: [DB-AL] ralentissement en sortie de route

Message par jmhoubre » 17 Mai 2020 11:19

Bonjour,
le conseil général, c'est d'apprendre avec des tutos qui sont faits pour démarrer (et pas des tutos dans lesquels on te montre comment faire telle ou telle chose). Je n'ai pas trouvé ta présentation, difficile d'aller plus loin sans savoir ce que tu sais et ce que tu cherches à faire.

eugenie86
Messages : 11
Inscription : 10 Mai 2020 02:56

Re: [DB-AL] ralentissement en sortie de route

Message par eugenie86 » 17 Mai 2020 20:08

Je ne sais pas grand chose en programmation, ce n'est pas du tous mon domaine de compétence, mais je dois essayer de faire ce projet dans le cadre d'un stage .

J'aimerais que mon player ralentis lorsqu'il sort de la trajectoire, un peu comme dans certain jeux de course lorsqu'une voiture sort de la route.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6220
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB-AL] ralentissement en sortie de route

Message par boubouk50 » 19 Mai 2020 09:38

Tu pourrais fermer les collider externes pour déterminer si tu es dedans ou dehors. Ou l'inverse, créer un collider que pour la route.
Les fonctions OnTriggerEnter, OnTriggerStay et OnTriggerExit détermineront ensuite le comportement de ton "véhicule" en jouant sur la vitesse de celui-ci par exemple.
Je suppose que tu n'utilises pas de physique, sinon cela peut se déterminer par la friction au sol.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
jmhoubre
Messages : 858
Inscription : 05 Oct 2019 22:05

Re: [DB-AL] ralentissement en sortie de route

Message par jmhoubre » 19 Mai 2020 15:05

Bonjour,
sur la photo on voit 2 serpentins verts, j'imagine que ce sont les colliders qui bordent la route. Si tu les élargis suffisamment, tu as donc une zone "hors route". Tu dois passer ces colliders en "Trigger" et leur affecter un script contenant, comme le propose boubouk, une fonction OnTriggerStay, qui s'exécutera tant que le joueur reste dans cette zone, et à chaque frame. Cette fonction devra diminuer la vitesse un peu à chaque frame. Quelques chose comme :

Code : Tout sélectionner

private void OnTriggerStay () {
	playerSpeed -= coef * Time.deltatime;
}
coef est à déterminer par l'expérience, tu pourrais essayer playerSpeed / 20.

Répondre

Revenir vers « (C#) CSharp »