Probleme de boucle et de thread
Kfkfkf
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Mon code:
Et mon but est de faire un "saut fluide" Avec un cube
Mais se qui se passe en appuyant sur la touche up c que il y a une attente du temps de System. Threading etc... Puis le cube ce tp direct en haut. Alors que j'aimerais qu'il monte fluidement, quesqu'y ne va pas?
**Modifié par la modération pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE
Mon code:
If(input.GetKeyDown("up")) { Int i = 0; While (i < 10){ System.Threading.Thread.Sleep(100) ; Transfrom.Translate( 0, 0.1f, 0) ; I++; } }
Et mon but est de faire un "saut fluide" Avec un cube
Mais se qui se passe en appuyant sur la touche up c que il y a une attente du temps de System. Threading etc... Puis le cube ce tp direct en haut. Alors que j'aimerais qu'il monte fluidement, quesqu'y ne va pas?
**Modifié par la modération pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE
Configuration: Android / Chrome 69.0.3497.128
A voir également:
- Probleme de boucle et de thread
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Pc qui s'allume et s'éteint en boucle - Forum Virus
- Tv orange chargement en boucle ✓ - Forum TV & Vidéo
- Huawei s'allume et s'éteint en boucle - Forum Huawei
2 réponses
Alors je ne connais pas Unity, et donc je ne sais pas comment fonctionne la méthode Translate de l'objet Transforme.
Cependant un Thread.Sleep bloque entièrement le Thread en cours. Donc s'il s'agit de ton Thread principal c'est probablement normal que tu sois figé.
Je te conseille d'utiliser un Timer, c'est un objet qui va compter un intervalle dans son coin (un thread à lui) et quand cet intervalle est atteint déclenche un évènement Thread Safe (sans danger de "casser" une donnée entre 2 Threads) auquel tu t'abonnes. Dans la méthode abonnée, tu mets ton code de déplacement
J'ai trouvé un exemple ici https://forum.unity.com/threads/c-timer-event.127920/
Ton code de déplacement est à mettre où il est écrit
PS à l'avenir pour poster un code, merci d'utiliser les balises de codes, en suivant ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Cependant un Thread.Sleep bloque entièrement le Thread en cours. Donc s'il s'agit de ton Thread principal c'est probablement normal que tu sois figé.
Je te conseille d'utiliser un Timer, c'est un objet qui va compter un intervalle dans son coin (un thread à lui) et quand cet intervalle est atteint déclenche un évènement Thread Safe (sans danger de "casser" une donnée entre 2 Threads) auquel tu t'abonnes. Dans la méthode abonnée, tu mets ton code de déplacement
J'ai trouvé un exemple ici https://forum.unity.com/threads/c-timer-event.127920/
Ton code de déplacement est à mettre où il est écrit
//do things
PS à l'avenir pour poster un code, merci d'utiliser les balises de codes, en suivant ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code