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
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
private void RedemarrerLeChrono()
{
prochaineApparition = Time.time + Random.Range(0, delaiMax);
} Pour un rappel sur lāalĆ©atoire,Ā cāest ici!
