DB : Boucle avec délais

Pour les scripts écrits en C#
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
simiji
Messages : 21
Inscription : 06 Avr 2017 16:51

DB : Boucle avec délais

Message par simiji » 20 Avr 2017 18:27

Bonjour à tous !

Petite question rapide :

Comment faire pour qu'il y ai un temps d'attente sur une boucle for ?

j'ai créé un petit code pour que, sur ma scène soit instancier un nombre exact d'élément, mais ces derniers apparaissent en même temps et les colider n'apprécient pas. De ce fait, J'aimerais faire en sorte qu'il y ai un petit délais entre chaque apparitions.

Je suis désolée, la question est toute bête et je devine facilement que la réponse doit être d'une simplicité déconcertante -.-' je suis encore une noob en la matière...

En tout cas, je vous remercie d'avance pour le temps que vous me consacrez ! :cote:

voici mon code :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class instantiate : MonoBehaviour
{
    public GameObject word;
    public int numWords;
    

    void Start()
    {
        
        for (int i = 0; i < numWords; i++)
           
        { 

        Instantiate(word);
       
        }

    }
}
:!: Les balises code SVP :!:
Merci de lire la Netiquette.

Nazarick
Messages : 60
Inscription : 03 Avr 2017 21:44

Re: DB : Boucle avec délais

Message par Nazarick » 20 Avr 2017 19:26

Pour créer un délai définissable, tu peux utiliser les coroutines.

Coroutines : https://docs.unity3d.com/ScriptReference/Coroutine.html
WaitForSeconds : https://docs.unity3d.com/ScriptReferenc ... conds.html

simiji
Messages : 21
Inscription : 06 Avr 2017 16:51

Re: DB : Boucle avec délais

Message par simiji » 07 Mai 2017 12:09

Hmmm

J'ai effectivement mit un StartCoroutine, mais il ne le prend pas en compte...

voici le code

Code : Tout sélectionner

using System.Collections.Generic;
using UnityEngine;

public class instantiate : MonoBehaviour
{
    public GameObject word;
    int combien = 0;
    public int limite;

    void Update()
    { 
        
       if (combien < limite)
           
        {
            
            Instantiate(word);
           
            StartCoroutine(Wait(10.5f));
            
            combien++;
            
        }
    }

    private IEnumerator Wait(float seconds)
    {
      
        yield return new WaitForSeconds(seconds);

    }
}

simiji
Messages : 21
Inscription : 06 Avr 2017 16:51

Re: DB : Boucle avec délais

Message par simiji » 07 Mai 2017 12:11

On m'a conseillé de changer le code, dorénavant je n'utilise plus de boucle for... le problème n'est pas résolu pour autant. Par contre, avec ce code, les gameObject n'apparaissent pas tous en même temps ce qui est quand même, bien meilleur :D

Avatar de l’utilisateur
Greg
Messages : 156
Inscription : 08 Mai 2017 15:22

Re: DB : Boucle avec délais

Message par Greg » 08 Mai 2017 15:57

Bonjour, peut-être...

Code : Tout sélectionner

 
    public GameObject go;
    int counter = 0;
    public int max = 10;
    float delay = 10.5f;

    void Update()
    {
        if (counter < max && Time.time > delay)
        {
            delay = Time.time + delay;

            Instantiate(go);
            counter++;

        }
        else
            Destroy(this);
    }
ou quelque chose comme ça ! ^^
Mon jeu de développement cellulaire : MICROBIOME (encore quelques bugs...)
(merci bien à ceux qui passent mettre des étoiles ! ^^)

Répondre

Revenir vers « (C#) CSharp »