首页 > 解决方案 > 如何从游戏对象列表中删除游戏对象,其中每个游戏对象都是实例化的“块”或类

问题描述

我最近开始学习制作统一游戏,但遇到了无法解决的问题:

我创建了一个名为piece. pieces是片类的二维数组。然后我创建了一个名为activepiece.

为了添加到列表中,我实例化了一个游戏对象并将其添加到列表中,如下所示:

GameObject go = Instantiate(piecePrefab[index],GetTileCenter(x,y),Quaternion.identity) as GameObject; 
go.transform.SetParent (transform);
pieces[x,y] = go.GetComponent<piece>();
pieces[x,y].SetPosition (x,y);
activepiece.Add (go);

现在问题在于从列表中删除某个/特定的部分,我尝试按以下方式进行操作:

piece c = pieces[x,y];
if(c != null){
    activepiece.Remove(c.GameObject);
    Destroy(c.GameObject);    
}

我从 Unity 遇到了这个错误:

错误 CS1061:“piece”不包含“GameObject”的定义,并且找不到接受“piece”类型的第一个参数的可访问扩展方法“GameObject”(您是否缺少 using 指令或程序集引用?)

标签: c#unity3d

解决方案


首先,您确定您的数组包含该片段吗?

如果是这样,试试这个(如果你没有):

piece c = pieces[x,y];
if(c != null){   
    activepiece.Remove(c.GameObject);
    Destroy(c.gameObject);  
}

推荐阅读