Bonjours , Pour mon jeu que je suis en train de coder , j'utilise base un fonction avec une boucle while
Le probleme est que la boucle semble infini car unity crash
En effet dans mon code , j'utilise while(bool is true ){
et ici je lance toute mes fonctions qui vont devoir se succeder en boucle jusqu'a un moment ou la bool passera en false }
Je ne comprend pas pourquoi il considere la boucle infini car la bool passe bien a false a un moment du code
Pouvez vous m'aidez merci
cordialement Alyson
Boucle while infini
Re: Boucle while infini
Salut,
Il serait judicieux de nous montrer la partie de ton code qui foire.
Ensuite il ne me semble pas très opportun d'utiliser une boucle while comme ça sur le thread principal, car ça va geler l'exécution de tout le reste... Il vaudrait mieux le faire sur un thread secondaire.
Tu cherches à faire quoi au juste ?
Il serait judicieux de nous montrer la partie de ton code qui foire.
Ensuite il ne me semble pas très opportun d'utiliser une boucle while comme ça sur le thread principal, car ça va geler l'exécution de tout le reste... Il vaudrait mieux le faire sur un thread secondaire.
Tu cherches à faire quoi au juste ?
-
- Messages : 15
- Inscription : 04 Juil 2017 16:24
Re: Boucle while infini
En fait je voulais faire comme ca vraiment pour rhytmer l'odre des fonctions et pourvoir repeter cet ensemble jusqu'a un certain moment quoi
-
- Messages : 15
- Inscription : 04 Juil 2017 16:24
Re: Boucle while infini
voila ma fonction principale
Re: Boucle while infini
Ton code ne pourra pas fonctionner comme ça, ta boucle while va bloquer l'exécution de tout le reste.
Unity a déjà une boucle principale intrinsèque, pas besoin d'en ajouter une, il faut que tu apprennes à structurer ton code autrement.
Regarde du côté des fonctions Awake, Start, Update, LateUpdate ... et tout un tas d'autres, plus d'infos ici : https://docs.unity3d.com/Manual/ExecutionOrder.html
Ensuite si tu veux contrôler dans quel ordre s'exécutent tes scripts, tu peux le définir dans
Edit / Project Settings / Script Execution Order -> https://docs.unity3d.com/Manual/class-MonoManager.html
Unity a déjà une boucle principale intrinsèque, pas besoin d'en ajouter une, il faut que tu apprennes à structurer ton code autrement.
Regarde du côté des fonctions Awake, Start, Update, LateUpdate ... et tout un tas d'autres, plus d'infos ici : https://docs.unity3d.com/Manual/ExecutionOrder.html
Ensuite si tu veux contrôler dans quel ordre s'exécutent tes scripts, tu peux le définir dans
Edit / Project Settings / Script Execution Order -> https://docs.unity3d.com/Manual/class-MonoManager.html
Re: Boucle while infini
Ce que tu veux faire c'est un multi thread, ce qui est tout fait possible sur C# (mais je ne sais pas du tout comment Unity le gère).
J'ai un projet similaire serveur / client sur visual studio, le serveur devait écouter le port en permanence sur le port pour que les clients puisse s'y connecter ( dans une boucle White(true))
Si tu places cette boucle dans le thread principal, le code ne peut plus dérouler normalement, ce qui est logique.
D'après mes souvenirs, ça doit être un truc du genre:
J'ai un projet similaire serveur / client sur visual studio, le serveur devait écouter le port en permanence sur le port pour que les clients puisse s'y connecter ( dans une boucle White(true))
Si tu places cette boucle dans le thread principal, le code ne peut plus dérouler normalement, ce qui est logique.
D'après mes souvenirs, ça doit être un truc du genre:
Code : Tout sélectionner
Thread myThread;
myThread = new Thread(new ThreadStart(ThreadLoop));
myThread.Start();
public static void ThreadLoop()
{
White(true){
// Ton thread ici
}
}