I am trying to build an array of nested arrays in a matrix format to store game objects but can’t seem to get it right. Any idea what am I doing wrong?

Thanks!

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class ProcessorRows {
	public GameObject processorSlot;
}

public class ProcessorColumns {
	public ProcessorRows[] processorRows;
}

public class ProcessorDetails {

	public int processorRowSlots;
	public int processorColumnsSlots;

	//public ProcessorColumns[] processorColumns;
}

public class ProcessorDesignController : MonoBehaviour {

	public GameObject processorObject;
	public ProcessorColumns[] processorColumns;

	private static ProcessorDesignController processorDesignController;

	public static ProcessorDesignController Instance() {
		if (!processorDesignController){
			processorDesignController = FindObjectOfType (typeof(ProcessorDesignController)) as ProcessorDesignController;
			if (!processorDesignController)
				Debug.LogError("There Needs to be one active processorDesignController script on a GameObject in your scene");
		}
		return processorDesignController;
	}

	public void initProcessorDesigner( ProcessorDetails details ){

		processorObject.SetActive (true);
		
		ProcessorColumns[] processorColumns = new ProcessorColumns[details.processorColumnsSlots];

		for (int i = 0; i < details.processorColumnsSlots; i++) {
			ProcessorRows[] processorRows = new ProcessorRows[details.processorRowSlots]; 

			processorColumns *= processorRows;*
  •  	for (int j = 0; j < details.processorRowSlots; i++){*
    
  •  		GameObject processorSlot = new GameObject("Light");*
    
  •  		processorSlot.AddComponent<Light>();*
    
  •  		processorSlot.transform.position = new Vector3( Random.Range(0f,10f),Random.Range(0f,10f),Random.Range(0f,10f));*
    

_ processorColumns*[j] = processorSlot;_
_
}_
_
}_
_
}*_

}

Here was what I can up with should anyone ever have the same question:

using UnityEngine;
using System.Collections;

public class ProcessorDetails {
	public int processorRowSlots;
	public int processorColumnsSlots;
}

public class ProcessorDesignController : MonoBehaviour {

	public GameObject processorObject;

	private GameObject[,] processorSlots;

	private static ProcessorDesignController processorDesignController;

	public static ProcessorDesignController Instance() {
		if (!processorDesignController){
			processorDesignController = FindObjectOfType (typeof(ProcessorDesignController)) as ProcessorDesignController;
			if (!processorDesignController)
				Debug.LogError("There Needs to be one active processorDesignController script on a GameObject in your scene");
		}
		return processorDesignController;
	}

	public void initProcessorDesigner( ProcessorDetails details ){
		processorObject.SetActive (true);

		GameObject[,] processorSlots = new GameObject[details.processorColumnsSlots, details.processorRowSlots];

		for (int i = 0; i < details.processorColumnsSlots; i++) {
			for (int j = 0; j < details.processorRowSlots; j++){
				GameObject processorSlot = new GameObject("Light");
				processorSlot.AddComponent<Light>();
				processorSlot.transform.position = new Vector3( Random.Range(0f,10f),Random.Range(0f,10f),Random.Range(0f,10f));
				processorSlots.SetValue( processorSlot, i, j );
			}
		}

		for (int i = 0; i < processorSlots.GetLength(0); i++){
			for (int j = 0; j < processorSlots.GetLength(1); j++){
				Debug.Log("Column " + i + ", Row " + j);
				processorSlots[i, j].SetActive(true);
				processorSlots[i,j].GetComponent<Light>().color = new Color (Random.Range(0.0f,1.0f),Random.Range(0.0f,1.0f),Random.Range(0.0f,1.0f));
			}
		}
	}
}