Цикл for может быть не лучшим способом для этого. Как насчет просто увеличить значение при вызове метода?
private int count = 0;
public void ChangeClassButton()
{
Debug.Log("Skiftede klasse");
if(!changeClassBool){
{
Debug.Log(activeDrum[count]);
changeClassText.text = activeDrum[count];
OscMessage oscM = Osc.StringToOscMessage("/changeClass" + count);
Debug.Log(Osc.OscMessageToString(oscM));
oscHandler.Send(oscM);
changeClassBool = true;
if (count >= activeDrum.Length)
{
count = 0;
} else{
count++;
}
}
}
Кроме того, почему это не работает сейчас. Вы упоминаете, что вы установили changeClassBool
в false через определенное время. Но этот цикл запускается мгновенно, что означает, что он завершится за один кадр, независимо от того, насколько велик цикл. Если вы хотите подождать в цикле, вы можете сделать его сопрограммой и добавить yield return null
, чтобы заставить его ждать один кадр.
Но если единственное, что вы хотите сделать, это проходить это каждый раз, когда вы нажимаете кнопку, просто использование счетчика вместо цикла намного менее сложно и стабильно.