Voici un petit script simple dont la condition incluant CancelInvoke() ne fonctionne pas.
Dès que l'incrémentation est supérieure à 5,InvokeRepeating doit s'arreter mais ne s'arrete pas !
Pourquoi?
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class appui_particulier : MonoBehaviour
{
int c=0;
public float time_interval;
public int incrementation;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(Input.GetKeyDown(KeyCode.N))
{
InvokeRepeating("increment",0,time_interval);
if(increment()>5)
{
CancelInvoke();
}
}
}
int increment()
{
c+=incrementation;
print("valeur incrémentée: "+c);
return c;
}
}
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class appui_particulier : MonoBehaviour
{
int c=0;
public float time_interval;
public int incrementation;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(Input.GetKeyDown(KeyCode.N))
{
InvokeRepeating("increment",0,time_interval);
CancelInvoke();
}
}
int increment()
{
c+=incrementation;
print("valeur incrémentée: "+c);
return c;
}
}
merci de votre aide