
A primeira etapa para resolver o erro de Exception Index Out Of Range é verificar se o índice que você está tentando acessar está dentro do intervalo permitido, um erro muito comum é acabar se esquecendo do valor limite que foi atribuído a uma variável ou até mesmo não levar em consideração se esta mesma variável está sendo chamada dentro de um loop, pois a interação incorreta de um loop pode resultar em uma exceção de índice.
Use o depurador da Unity para identificar o problema. Adicione pontos de interrupção em seu código e execute o programa em modo de depuração. Quando a execução atingir o ponto de interrupção, verifique os valores das variáveis relevantes e confirme se o índice está dentro do intervalo permitido, vou te mostrar alguns exemplos de Debug.Log(“”) a seguir:
int[] array = { 1, 2, 3, 4, 5 };
int index = 3;if (index >= 0 && index < array.Length)
{
int value = array[index];
Debug.Log(“O valor no índice ” + index + ” é ” + value);
}
else
{
Debug.LogError(“O índice está fora do intervalo permitido.”);
}
Utilize um bloco try-catch para lidar com o erro de Exception Index Out Of Range. Quando o erro ocorrer, o bloco catch irá capturá-lo e você poderá tratar o erro adequadamente, como exibindo uma mensagem de erro para o usuário.
Por Exemplo:
try {
int[] array = { 1, 2, 3, 4, 5 };
int index = 6;
int value = array[index];
Debug.Log(“O valor no índice ” + index + ” é ” + value);
} catch (IndexOutOfRangeException e) {
Debug.LogError(“O índice está fora do intervalo permitido: ” + e.Message);
}
O método Contains verifica se um item está presente na coleção, em vez de retornar seu índice.
Por Exemplo:
int[] array = { 1, 2, 3, 4, 5 };
int value = 6;
if (array.Contains(value)) {
int index = Array.IndexOf(array, value);
Debug.Log(“O valor ” + value + ” está no índice ” + index + “.”);
} else {
Debug.LogError(“O valor ” + value + ” não está presente na matriz.”);
}
É útil utilizar o método TryGetValue se estiver trabalhando com um dicionário. O método TryGetValue verifica se uma chave está presente no dicionário e se estiver, retorna o valor correspondente.
Por Exemplo:
Dictionary<int, string> dictionary = new Dictionary<int, string>
{
{ 0, “zero” },
{ 1, “um” },
{ 2, “dois” },
{ 3, “três” }
};
int index = 5;
string value;
if (dictionary.TryGetValue(index, out value))
{
Debug.Log(“O valor no índice ” + index + ” é ” + value);
}
else
{
Debug.LogError(“O índice está fora do intervalo permitido.”);
}
3,969 visualizações
Tudo sobre o desenvolvimento de jogos em um só lugar. Toda semana trazemos muitas notícias, vídeos, entrevistas, dicas, tutoriais, calendário, ferramentas e serviços para você, que deseja realizar seu sonho de criar games!
Receba novidades exclusivas sobre desenvolvimento de jogos em seu email!
© Copyright 2024 │ Over Games – O seu portal sobre desenvolvimento de jogos │ Todos os direitos reservados.
Cookie | Duração | Descrição |
---|---|---|
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |