[Unity] bouton enfoncé

Fermé
docteur_nemo Messages postés 21 Date d'inscription vendredi 7 juillet 2017 Statut Membre Dernière intervention 17 juillet 2018 - Modifié le 17 juil. 2018 à 16:36
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 17 juil. 2018 à 18:57
Bonjour,
je suis en train de développer un jeu sur UNITY.
cela fait plusieurs jours que je cherche un moyen de déplacer mon personnage en gardant un bouton enfoncé. J'ai réussis a déplacer mon personnage avec un bouton seulement il n'avance qu'un fois par toucher. J'ai trouver le moyen de détecter quand un bouton est enfoncé avec "OnPointerDown" seulement cela prend un script complet et s'attache au niveau du bouton. Du coup je ne sais pas comment faire pour déplacer mon personnage depuis ce bouton.
Si vous pouviez m'aider ^^
Merci

3 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
17 juil. 2018 à 16:49
Bonjour,
Je ne connais pas Unity, mais C# oui.

Je te propose une solution basée sur Winform, en espérant que cela puisse s’adapter à Unity.

Il existe les événements MouseDown et MouseUp.
On peut aussi utliser des timers (y’en a plusieurs sortes).

Voici le principe, il y a une méthode Avancer
private void Avancer()
{
   // ici tout le code pour avancer une fois.
}


Dans l’événement MouseDown
Avancer();
timerAvancer.Start(); // ou .Enabled = true selon le type de timer


Le timer doit avoir un intervalle ni trop rapide ni trop lent 100 à 200 ms me parraissent bien, mais c’est à tester.
Dans la méthode abonnée au timer (Tick, Elasped, etc selon le type de timer)
Avancer();


Et enfin dans le MouseUp du bouton
timerAvancer.Stop();


Ainsi dès que le bouton est enfoncé, le personnage avance.
Puis le timer va faire avancer le personnage tous à chaque déclenchement, jusqu’à ce que le bouton soit relâché.
0