我试图创建一个矩阵并用字符串填充它以便我以后可以操作它,继承我的代码
using UnityEngine;
using System.Collections;
public class ScenarioMatrix : MonoBehaviour {
public GFRectGrid _grid;
public string[,] _scenarioArray;
/*
USAREMOS A SEGUINTE NOMECLATURA PARA O GRID
E = GRID VAZIO TEM SOMENTE O CENARIO
SP = Spawn Point, é onde o player começa
EP = é onde o player termina
L = Lajota é o caminho onde o player pode andar
CG = color get, é onde o bloco pega uma cor
CD = color drop é onde o bloco deixa a cor
*/
private string[] _values = {"E","SP","EP","L","CG","CD" };
// Use this for initialization
void Start() {
_scenarioArray = new string[(int)_grid.size.x, (int)_grid.size.z];
//montamos o array
for (int _largura = 1; _largura <= _grid.size.x; _largura++)
{
for (int _comprimento = 1; _comprimento <= _grid.size.z; _comprimento++)
{
string _valor = _values[Random.Range(0, _values.Length-1)];
_scenarioArray[_largura, _comprimento] = _valor;
//Debug.Log(_values[Random.Range(0, _values.Length)]);
}
}
Debug.Log(_scenarioArray);
}
// Update is called once per frame
void Update () {
}
}
到目前为止,我得到了错误 IndexOutOfRangeException:数组索引超出范围。 ScenarioMatrix.Start()(在Assets / Game / Scripts / ScenarioMatrix.cs:30)
我在这段代码中做错了什么?
答案 0 :(得分:2)
将_comprimento <= _grid.size.z
替换为_comprimento < _grid.size.z
和
带有_largura <= _grid.size.x
的 _largura < _grid.size.x
数组索引基于0(从0开始,而不是1)