Functions is not been called

Good Evening,

I´ve got a scrip, and there is a function on it that is not been accessed. Can you help please.

The cod is as follow,
public class Manager : MonoBehaviour {

public float redTimer = 0f;  //Tempo decorrido que o vermelho foi setado
public float maxRedTimer = 0f; // Maximo tempo para retirar o vermelho
public float minRedTimer = 0f; // Minimo tempo para retirar o vermelho
public float actualRedTimer = 0; // tempo atual para retirar o vermelho
public static bool changeRed = false; // Se esta na hora de mudar para o vermelho
public static int idRedFrame = 0; // Qual o quadro para colocar o vermelho
private bool[] usedFrame = new bool[15]; 	//Array usado para saber quais quadros ja foram usados
							// O index do Array indica o neumero do quadro.
//public int loopCount = 0;	// Usado no metodo que zera o Array de quadros usados
private bool usedFrameCompleted = false; // indica que todo o Array dos quadros usados foi zerada
private int frameCount = 0; // Quantas frames foram utilizadas

// Use this for initialization
void Start () {
	actualRedTimer = 3f;
	ResetIdFrame(); // Zerando o Array dos quadros usados pela primeira vez

}

// Update is called once per frame
void Update () {
	redTimer += Time.deltaTime; 
	if (redTimer >= actualRedTimer) 
	{
		changeRed = true;
		idRedFrame = FindFrame ();
		redTimer = 0f;
	}
	
	
	
	
	
	
}

int FindFrame()
{
	int idFrame;
	idFrame = 0;
	bool gotFrame = false;
	idFrame = Random.Range(0,15);
	while (!gotFrame) {
		if (frameCount < 15) {// Se o Array de quadros nao estiver completo

			if(usedFrame[idFrame])
			{if (idFrame == 14 && usedFrame[idFrame])
				{
					idFrame = 0;
				}else
				{
					idFrame++;
				}

			}else
			{
				usedFrame[idFrame] = true;
				gotFrame = true;
				frameCount++;
			}
		} else {
			ResetIdFrame();
		}
	}
	return idFrame;
}

	public void ResetIdFrame()  //Metodo para Zerar o Array usedFrame
{
	int loopCount = 0;
	while (!usedFrameCompleted)
	{
		usedFrame[loopCount] = false;
		loopCount++;
		if (loopCount == 15)
		{
			usedFrameCompleted = true;
			loopCount = 0;
			frameCount = 0; // Indica que nenhuma frame foi utilizada
		}
		
	}
}

}

The function ResetIdFrame is never accessed, and I end up in a endless loop.

Hey there!

ResetIDFrame is called, it’s just that you never reset usedFrameCompleted to false so it never goes into the loop again after the first time and just cascades.

Try to reset that at the end of the ResetIDFrame function and that should give you the behavior you’re looking for, or use a local variable instead that could work too.