I have the latest version and I have reset the editor but I’m still getting the error.
ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
System.Collections.Generic.List`1[UnityEditor.EditorWindow].get_Item (Int32 index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/List.cs:633)
UnityEditor.DockArea.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:327)
I am getting the same error here, not sure how to tell which line it is at
using System;
using System.Collections.Generic;
using UnityEngine;
using Random = UnityEngine.Random;
public class BoardManager : MonoBehaviour {
public class Count{
public int minimum;
public int maximum;
public Count(int min,int max){
minimum= min;
maximum = max;
}
}
public int columns = 8;
public int rows = 8;
public Count wallCount =new Count (5,9);
public Count foodCount = new Count (1, 5);
public GameObject exit;
public GameObject[] floorTiles;
public GameObject[] wallTiles;
public GameObject[] foodTiles;
public GameObject[] enemyTiles;
public GameObject[] outerWallTiles;
private Transform boardHolder;
private List <Vector3> gridPositions = new List<Vector3>();
void InitialiseList(){
gridPositions.Clear();
for(int x =1;x < columns -1; x++){
for(int y=1; y< rows -1; y++){
gridPositions.Add(new Vector3(x,y,0f));
}
}
}
void BoardSetup (){
boardHolder = new GameObject ("Board").transform;
for(int x =-1;x < columns + 1; x++){
for(int y=-1; y< rows +1; y++){
GameObject toInstantiate = floorTiles[Random.Range(0, floorTiles.Length)];
if (x == -1 || x == columns || y == -1 || y == rows) {
toInstantiate = outerWallTiles[Random.Range(0, outerWallTiles.Length )];
GameObject instance = Instantiate(toInstantiate, new Vector3(x, y, 0f), Quaternion.identity) as GameObject;
instance.transform.SetParent(boardHolder);
}
}
}
}
Vector3 RandomPosition(){
int randomIndex = Random.Range(0, gridPositions.Count);
Vector3 randomPosition = gridPositions[randomIndex];
gridPositions.RemoveAt(randomIndex);
return RandomPosition();
}
void LayoutObjectAtRandom(GameObject[] tileArray, int minimum, int maximum){
int objectCount = Random.Range (minimum, maximum + 1);
for (int i = 0; i < objectCount; i++) {
Vector3 randomPosition = RandomPosition();
GameObject tileChoice = tileArray[Random.Range (0, tileArray.Length)];
Instantiate (tileChoice, randomPosition, Quaternion.identity);
}
}
public void SetupScene (int level){
BoardSetup ();
InitialiseList ();
LayoutObjectAtRandom (wallTiles, wallCount.minimum,wallCount.maximum);
LayoutObjectAtRandom (foodTiles, foodCount.minimum, foodCount.maximum);
int enemyCount = (int)Math.Log (level, 2f);
LayoutObjectAtRandom(enemyTiles, enemyCount, enemyCount);
Instantiate (exit, new Vector3(columns -1,rows -1, 0f), Quaternion.identity);
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}