incrémentation avec un Joystick

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
AJIN
Messages : 5
Inscription : 01 Juin 2023 11:39

incrémentation avec un Joystick

Message par AJIN » 01 Juin 2023 13:43

Bonjours , dans un projet perso je souhaite incrémenter une variable a chaque fois que le pointe le "Joystick" vers le haut et décrémenter à chaque fois que pointe vers le bas .

Bien que le fonctionnent (placé dans le "Update") , cependant la valeur ne cesse de changer à chaque frame.
Or maintenant je souhaite que cette variable change de valeur seulement une fois que le joystick passe de sa valeur initiale sa valeur maximale et qu'il revient à sa position initiale, de la même manière qu'un getKeyDown,
Malheureusement je ne voit pas comment dois-je m'y prendre

SVP Merci

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

Re: incrémentation avec un Joystick

Message par boubouk50 » 01 Juin 2023 14:29

Je ne sais pas s'il est possible de le faire directement depuis l'Input Manager, depuis le mapping du joystick.
Sinon, en code, tu peux redéfinir le comportement du joystick.
- Définir les états (Bas, Haut, Origine, Autre)
- Définir les comportements en fonction des états (et de leur suite)

Dans l'idée, il te faut définir le comportement du Joystick par une obligation de suite d'états.
Ex : J'incrémente si je pars du centre et je vais en haut (ou en bas) et reviens au centre en moins de 0.5 secondes.
Voici le pseudo de l'exemple donné ci-dessus qui peut te permettre de comprendre la logique du comportement

Code : Tout sélectionner

Si étatCourant Origine                         // etatCourant est défini par la valeur du Joystick [-1 = Bas, 0 = Origine, 1 = Haut]
-- Ajout de l'incrément (0, +1 ou -1)          // Si le Joystick est au centre, on ajoute l'incrément (s'il vaut 0, rien en se passe)
-- dernierEtat = Origine                       // On met à jour l'état 
-- Timer = 0                                   // Et on reset les valeurs par défaut 
-- increment = 0

Si étatCourant Haut (ou Bas)                   // Si le joystick est en Haut (ou en Bas)
-- Si dernierEtat Origine                      // Et que son précédent état était au centre
---- incrément++(ou --)                        // Alors on incrémente une variable
---- dernierEtat = Haut (ou Bas)               // et on met a jour l'état
--Sinon                                        // sinon le test est raté et on remet toutes les valeurs par défaut
---- dernierEtat = Autre
---- Timer = 0
---- increment = 0

Si Timer > 0.5 (tempsMinimumAction)       // Si le temps est écoulé pour une interaction
-- dernierEtat = Autre                    // Alors on remet toutes les valeurs par défaut
-- Timer = 0
-- increment = 0
sinon                                     // Sinon on compte le temps
-- Timer += DeltaTime
"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

AJIN
Messages : 5
Inscription : 01 Juin 2023 11:39

Re: incrémentation avec un Joystick

Message par AJIN » 02 Juin 2023 11:02

Merci beaucoup pour tes explications et ton exemple c'est maintenant beaucoup plus clair sur la manière d'entreprendre la chose je vais m'appuyer dessus pour essayer d'obtenir le résultat escompté
:super: :super:

Répondre

Revenir vers « Unity le logiciel »