Страница 1 из 1

что не так с скриптом? Двухмерный масив!!

СообщениеДобавлено: 18 ноя 2017, 14:26
Toni_NeNar
вот ошибка: IndexOutOfRangeException: Array index is out of range

Синтаксис:
Используется csharp
    public int[,] Bords;
    public int Size;

    void Start()
    {
        CreateBord();
    }

    void CreateBord()
    {
        for (int x = 0; x < Size + 1; x++)
        {
            for (int y = 0; y < Size + 1; y++)
            {
                   Bords[x, y] = 0;
            }
        }
    }

Re: что не так с скриптом? Двухмерный масив!!

СообщениеДобавлено: 18 ноя 2017, 14:31
Anonymyx
Вы не создали массив, а просто объявили ссылку.
Синтаксис:
Используется csharp
public int[,] Bords;
    public int Size;

    void Start()
    {
        Bords = new int[Size, Size];
        CreateBord();
    }

И + 1 не нужен в цикле.

Re: что не так с скриптом? Двухмерный масив!!

СообщениеДобавлено: 18 ноя 2017, 14:40
Toni_NeNar
Anonymyx писал(а):Вы не создали массив, а просто объявили ссылку.
Синтаксис:
Используется csharp
public int[,] Bords;
    public int Size;

    void Start()
    {
        Bords = new int[Size, Size];
        CreateBord();
    }

И + 1 не нужен в цикле.

не помогло
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Mehamic : MonoBehaviour {

    public int[,] Bords;

    // public GameObject[] Component;
    public int Size;

    //private GameObject CreatComponent;

    void Start()
    {
        Bords = new int[Size, Size];
        CreateBord();
        //Spawn();
    }

    void CreateBord()
    {
       

        for (int x = 0; x < Size + 1; x++)
        {
            for (int y = 0; y < Size + 1; y++)
            {
               
                Bords[x, y] = 0;
            }
        }
    }


}
 

ERROR

IndexOutOfRangeException: Array index is out of range.
Mehamic.CreateBord () (at Assets/Mehamic.cs:30)
Mehamic.Start () (at Assets/Mehamic.cs:17)

Re: что не так с скриптом? Двухмерный масив!!

СообщениеДобавлено: 18 ноя 2017, 15:02
Anonymyx
Я же написал, +1 не нужен.
Size - количество элементов. Индексация начинается с 0!

Re: что не так с скриптом? Двухмерный масив!!

СообщениеДобавлено: 18 ноя 2017, 15:06
Toni_NeNar
Огромное спасибо я с этими массивами напрягся не увидел

Re: что не так с скриптом? Двухмерный масив!!

СообщениеДобавлено: 18 ноя 2017, 16:18
Anonymyx
И кстати,
Синтаксис:
Используется csharp
 for (int x = 0; x < Size + 1; x++)
        {
            for (int y = 0; y < Size + 1; y++)
            {
               
                Bords[x, y] = 0;
            }
        }

Этот код не имеет смысла, так как int структурный тип и по умолчанию уже имеет значение которое и равно 0.