所以这就是我希望做的事情:
Grid[elem.Column, elem.Row] = null;
但是这段代码不能像我想的那样工作。
我想从Grid [,]中删除该元素,然后使用null值替换它。不要将元素更改为null,因为该元素包含将来仍需要的信息。
以下是我的代码块,因为我相信我会被要求提供更多信息。
public class GridController : MonoBehaviour
{
public Element Element;
public Element[,] Grid;
int _gridColumns = 40;
int _gridRows = 40;
void Start()
{
Grid = new Element[_gridRows, _gridColumns];
for (int column = 0; column < _gridColumns; column++)
{
for (int row = 0; row < _gridRows; row++)
{
Grid[column, row] = Instantiate(Element) as Element;
}
}
}
public void ChangeCell(Element elem, int newRow)
{
Grid[elem.Column, elem.Row] = null;
}
}
public class Element : MonoBehaviour
{
public GridController gridController;
public int Column;
public int Row;
void OnMouseOver()
{
gridController.ChangeCell(this, Row);
}
}
请注意,有更多代码,但您应该了解我正在寻找的内容。
这基本上是我想要的:
Grid[elem.Column, elem.Row].ReplaceWith(null);
但不幸的是我在网上找不到任何类型的东西。
答案 0 :(得分:0)
你可以这样做:
var obj = Grid[index1, index2]; // store reference in "obj"
Grid[index1, index2] = null; //replace object in Grid by "null"
所以,现在你在obj
变量中有引用,你可以在代码中使用它(保存,进行一些计算或其他)