ChronomĆØtre et gestion du temps

Dans cette page trouveras :

GƩrer le dƩlai

Ā 

Tu aimerais pouvoir dĆ©clencher du code aprĆØs un certain dĆ©lai? Ce guide est fait pour toi! Tu apprendras comment crĆ©er un dĆ©lai, rĆ©pĆ©ter le chronomĆØtre et inclure de l’alĆ©atoire!

DƩlai simple

Voici un script d’exemple avec tous les Ć©lĆ©ments qui te permettront de crĆ©er un dĆ©lai!Ā 

public class NomDeTonScript : MonoBehaviour
{
    public float delaiMax;
    private float prochaineApparition;

    private void Start()
    {
        prochaineApparition = delaiMax;
    }

    private void Update()
    {
        if(Time.time > prochaineApparition)
        {
            // mets ton code ici! 
        }
    }
}

Explication des variables

  • public float delaiMax – sert Ć  dĆ©finir le temps d’attente en secondes. Comme c’est une variable publique, tu peux le modifier depuis l’inspecteur. N’oublie pas de le changer dans l’inspecteur pour qu’il ne soit pas Ć©gal Ć  zĆ©ro! (sinon il est inutile)

  • private float prochaineApparition – variable qui va stocker le moment (en secondes) qu’il faudra dĆ©passer pour dĆ©clencher le code!

Ā 

Explication du Start

 private void Start()
    {
        prochaineApparition = delaiMax;
    }
Sert Ć  initialiser le prochain temps d’apparition (en secondes) en fonction du dĆ©lai indiquĆ© dans l’inspecteur.

Explication de l’Update

 private void Update()
    {
        if(Time.time > prochaineApparition)
        {
            // mets ton code ici! 
        }
    }

Time.time est la variable qui indique le temps passĆ© depuis le dĆ©but du jeu (en seconde). On vĆ©rifie si ce temps dĆ©passe celui qu’on a fixĆ© pour la prochaineApparition. Si c’est le cas, Ƨa dĆ©clenche le code Ć  l’intĆ©rieur de la condition!

Redémarrer le chronomètre

Tel quel, le script attend juste un dĆ©lai pour faire ce qu’on lui demande. Cela serait bien de pouvoir redĆ©marrer le chrono pour qu’il puisse exĆ©cuter ton code Ć  intervalles rĆ©guliers! Imaginons par exemple que tu veuilles faire apparaĆ®tre des obstacles toutes les deux secondes!
Ā 
Ajoute Ć  ton script une fonction qui permet de redĆ©marrer le chrono.Ā Tout ce que fait cette fonction est de rĆ©pĆ©ter ce qu’on a dĆ©jĆ  Ć©crit dans la fonction Start.
private void RedemarrerLeChrono()
    {
        prochaineApparition = Time.time + delaiMax;
    }

D’ailleurs c’est pour cette raison que tu peux remplacer ce que tu as mis dans Start par un simple appel de la fonction RedemarrerLeChrono();

 private void Start()
    {
        RedemarrerLeChrono();
    }
Dans la fonction Update, tu vas appeler RedemarrerLeChrono() Ć  chaque fois que la condition est remplie.
private void Update()
    {
        if(Time.time > prochaineApparition)
        {
             RedemarrerLeChrono();
            // mets ton code ici! 
        }
    }
Cela aura pour effet de faire redĆ©marrer le chronomĆØtre Ć  chaque fois que le dĆ©lai est atteint. Le code que tu vas Ć©crire Ć  l’intĆ©rieur de la condition ne sera exĆ©cutĆ© qu’à intervalles rĆ©guliers.Ā 

Redémarrer le chronomètre dans un délai aléatoire

C’est trĆØs sympa d’avoir du code qui s’exĆ©cute rĆ©guliĆØrement comme une horloge, mais c’est souvent plus faire d’ajouter de l’alĆ©atoire dedans! Ne pas prĆ©voir quand apparaĆ®tra le prochain obstacle est bien plus amusant pour le joueur! Pour cela, rien de plus simple: il faut juste modifier la fonction RedemarrerLeChrono() en y intĆ©grant un dĆ©lai alĆ©atoire.
private void RedemarrerLeChrono()
    {
        prochaineApparition = Time.time + Random.Range(0, delaiMax);
    }

Pour un rappel sur l’alĆ©atoire,Ā c’est ici!

Retour en haut