Boucle while infini

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
lili493118
Messages : 15
Inscription : 04 Juil 2017 16:24

Boucle while infini

Message par lili493118 » 14 Août 2018 17:59

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

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Boucle while infini

Message par Alesk » 14 Août 2018 18:23

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 ?

lili493118
Messages : 15
Inscription : 04 Juil 2017 16:24

Re: Boucle while infini

Message par lili493118 » 14 Août 2018 21:40

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

lili493118
Messages : 15
Inscription : 04 Juil 2017 16:24

Re: Boucle while infini

Message par lili493118 » 14 Août 2018 21:43

voila ma fonction principale

Image

 ! Message de : Max
Postez le listing de votre code directement (encadré des balises code prévues à cet effet) et non un screen.
Merci de lire la Netiquette.

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Boucle while infini

Message par Alesk » 15 Août 2018 10:46

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

Avatar de l’utilisateur
nzoway
Messages : 12
Inscription : 12 Août 2018 11:08

Re: Boucle while infini

Message par nzoway » 22 Août 2018 10:21

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:

Code : Tout sélectionner

Thread myThread;
myThread = new Thread(new ThreadStart(ThreadLoop));
myThread.Start();

public static void ThreadLoop()
    {
       White(true){
         // Ton thread ici
       }
      }
 

Répondre

Revenir vers « Scripting »