2D Grid, accessing in different gameObject

I have the following code:
var grid : GameObject[,];

function Start(){
	grid = new GameObject[gridSizeX, gridSizeY];
	for(var y : int = 0; y < gridSizeY; y++){
		for(var x : int = 0; x < gridSizeX; x++){
			var s : GameObject = Instantiate(square, Vector3(transform.position.x-(x * (square.renderer.bounds.size.x)), transform.position.y, transform.position.z+(y * (square.renderer.bounds.size.z))), Quaternion.identity);
			grid[x, y] = s;
		}
	}
}

And then in a different object:

function Start(){
	gridData = gameObject.Find("Grid").GetComponent("DefenseGrid");
	Debug.Log(gridData);
}

function OnMouseOver(){
	gridData.grid[1,2].renderer.material.color = Color.red;
	renderer.material.color = Color.red;
}

This throws the error: "MissingFieldException: Field ‘UnityEngine.GameObject[,].’ not found.
This doesn’t make any sense to me at all, since when I do tests in the first object, I can access the array properly.

It worked for me. I used:

//DefenseGrid.js
var grid : GameObject[,];
var gridSizeX : int;
var gridSizeY : int;
var square : GameObject;

    function Start(){
        grid = new GameObject[gridSizeX, gridSizeY];
        for(var y : int = 0; y < gridSizeY; y++){
           for(var x : int = 0; x < gridSizeX; x++){
             var s : GameObject = GameObject.Instantiate(square, Vector3(transform.position.x-(x * (square.renderer.bounds.size.x)), transform.position.y, transform.position.z+(y * (square.renderer.bounds.size.z))), Quaternion.identity);
             grid[x, y] = s;
           }
        }
    }

and:

//WhateverGrid.js
    var gridData : DefenseGrid;
    
    function Start(){
        gridData = GameObject.Find("Grid").GetComponent("DefenseGrid");
    }
    
    function OnMouseOver(){
        gridData.grid[1,2].renderer.material.color = Color.red;
        renderer.material.color = Color.red;
    }

Be sure you write “defense” all over in your script, and not some “defense” and some “defence”. Maybe that triggered your error somehow. I did that mistake once. :S I have never been so frustrated, I could not understand what I did wrong; the code were free of errors elsewhere. Defence and defense are different spellings of the same word :slight_smile: