Hello tous,
Ma question peut sembler bète mais, souhaitant faire déplacer un bonhomme au click (type STR/Wargame), je me retrouve avec ce constat :
- lorsque le rendu rame, utiliser le UPDATE est naze : en effet, le déplacement du bonhomme est fonction du nombre d'image par seconde et est donc lent (même si cette convention est connu des joueurs)
- Si j'utilise une coroutine contenant un while avec un délai d'attente, je me dis que je lance un autre thread alors que Update sollicite déjà naturellement le proc.
Qu'en pensez-vous ?
Il y a t-il une bonne raison, pour déplacer un perso, de préférer une méthode qu'une autre ?
D'avance merci !
[DB-AL] Différence entre While dans Coroutine et Update
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
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
[DB-AL] Différence entre While dans Coroutine et Update
Développeur de jeu sur Unity. https://vilolaboratory.itch.io/
1er jeu (04/2020) : Anti-Zombie System, micro jeu de gestion de résistance contres des zombie
https://vilolaboratory.itch.io/anti-zombie-system
1er jeu (04/2020) : Anti-Zombie System, micro jeu de gestion de résistance contres des zombie
https://vilolaboratory.itch.io/anti-zombie-system
Re: [DB-AL] Différence entre While dans Coroutine et Update
Bonjour,
Unity n'est pas de base multithread (ou alors il faut passer par le nouveau système DOTS, et son Job System).
Donc attention avec les coroutines, car même si cela y ressemble, ce ne sont pas des threads à proprement parlé.
Et même si elles ne sont pas dépendante du framerate, elles restent néanmoins dépendante de la boucle principale.
Après techniquement, en passant par une coroutine tu auras peut-être l'impression d'un contrôle du temps (pour aller d'un point A vers un point B), mais niveau rendu l'impression de saccades perdurera à mon avis. D’ailleurs dans l'Update, c'est pour cela qu'il est conseillé de lier les opérations sur les transforms au deltaTime. Cela n'évitera pas une chute de fps, mais les valeurs de déplacements/rotation seront constant dans le temps.
Après, pourquoi cela rame ? Là est peut-être la vrai piste à creuser
Unity n'est pas de base multithread (ou alors il faut passer par le nouveau système DOTS, et son Job System).
Donc attention avec les coroutines, car même si cela y ressemble, ce ne sont pas des threads à proprement parlé.
Et même si elles ne sont pas dépendante du framerate, elles restent néanmoins dépendante de la boucle principale.
Après techniquement, en passant par une coroutine tu auras peut-être l'impression d'un contrôle du temps (pour aller d'un point A vers un point B), mais niveau rendu l'impression de saccades perdurera à mon avis. D’ailleurs dans l'Update, c'est pour cela qu'il est conseillé de lier les opérations sur les transforms au deltaTime. Cela n'évitera pas une chute de fps, mais les valeurs de déplacements/rotation seront constant dans le temps.
Après, pourquoi cela rame ? Là est peut-être la vrai piste à creuser
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: [DB-AL] Différence entre While dans Coroutine et Update
Salut,
Le plus simple pour toi est de régler ton problème d’optimisation.
Je ne sais pas ce que tu as exactement comment "rendu", mais si tu as un décalage entre tes déplacements et le rendu de ton décors par exemple cela peut être très étrange pour l'utilisateur.
Tu pourrais nous en dire plus.
Le plus simple pour toi est de régler ton problème d’optimisation.
Je ne sais pas ce que tu as exactement comment "rendu", mais si tu as un décalage entre tes déplacements et le rendu de ton décors par exemple cela peut être très étrange pour l'utilisateur.
Tu pourrais nous en dire plus.