Page 1 sur 1

[RESOLU] [MY-AL] Array / tableaux out of range

Publié : 12 Juil 2018 01:12
par riobusor66
Bonjour, sa fait des heures que j'essaye de régler mon problème mais rien ne marche..

J'utilise une coroutine pour utiliser une fonction qui génère des arbre, le problème est qu’après 2 arbre j’obtiens cette erreur:
IndexOutOfRangeException: Array index is out of range.
PlanetGenerator+<GenerateTree>c__Iterator3.MoveNext () (at Assets/Scripts/PlanetGenerator.cs:281)
UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)
et voici le code:

Code : Tout sélectionner

private IEnumerator GenerateTree(Vector3 sCoord, int[,] coordTop)
    {
        int[] pos = new int[2] { 2, 2 };

        for (int i = 0; i < sliderPSize.value - 4; i++)
        {
            for (int j = 0; j < sliderPSize.value - 4; j++)
            {
                if (pos[1] < sliderPSize.value - 4)
                {
                    Debug.Log("pos[0]: " + pos[0] + " | coordTop[pos[i], pos[j]: " + coordTop[pos[i], pos[j]] + " | pos[1]: " + pos[1] + " | i: " + i + " | j:" + j);
                    TreeGenerator(new Vector3(pos[0] + sCoord.x, coordTop[pos[i], pos[j]] + sliderPSize.value + sCoord.y + 1, pos[1] + sCoord.z));
                    pos[0] += Random.Range(4, 9);
                    if (pos[0] > sliderPSize.value - 4)
                    {
                        pos[0] = Random.Range(2, 5);
                        pos[1] += Random.Range(4, 9);
                    }
                }
                Debug.Log("pos[0]: " + pos[0] + " | coordTop[pos[i], pos[j]: " + coordTop[pos[i], pos[j]] + " | pos[1]: " + pos[1] + " | i: " + i + " | j:" + j);
                yield return new WaitForSeconds(0.01f);
            }
        }
    }
La ligne 281 est TreeGenerator(...

Pour les valeur des variables:
float sliderPSize = 20 (Même en augmentant celle si sa change rien)
Vector3 SCoord = (0, 0, 0)
int[,] coordTop[(int)sliderPSize.value - 2, (int)sliderPSize.value - 2]

Merci d'avance pour votre aide

Re: [MY-AL] Problème dans mes tableau

Publié : 12 Juil 2018 09:16
par boubouk50
salut, je pense que cela vient de pos[ i], pos[j] dans la ligne.
pos est un tableau de 2 éléments, i et j vont de 0 à sliderPSize.value - 4. Il se peut alors que i et j soient supérieurs à 1 et donc que tu essaies d'accéder à un élément de pos inexistant.

Re: [Résolue] [MY-AL] Problème dans mes tableau

Publié : 12 Juil 2018 15:23
par riobusor66
Merci beaucoup sa a marché. :-D