c# - 如何从游戏对象列表中删除游戏对象,其中每个游戏对象都是实例化的“块”或类
问题描述
我最近开始学习制作统一游戏,但遇到了无法解决的问题:
我创建了一个名为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 指令或程序集引用?)
解决方案
首先,您确定您的数组包含该片段吗?
如果是这样,试试这个(如果你没有):
piece c = pieces[x,y];
if(c != null){
activepiece.Remove(c.GameObject);
Destroy(c.gameObject);
}
推荐阅读
- php - Php - 如何扫描大图像文件夹并删除未使用的图像
- pycharm - Pycharm 社区版无法在 Windows 7 32 位中打开
- java - 为什么 SpringApplicationBuilder.run() 使用 AtomicBoolean obj 然后使用同步,AtomicBoolean 不能保证线程安全?
- c# - Assembly.Load .NET Core
- java - 在 Spring Boot 应用程序中解析 JSON
- pandas - 带有空列的堆积条形图
- c++ - 关于合并两个列表的算法的一些问题
- docker - Docker Gitlab更改忘记的root密码
- java - 如何将简单的值从ui表单传递给spring webflow
- javascript - 您可以在输入类型编号中步进“1.00”而不是 1 吗?