C# 销毁实例化对象时的统一性问题-销毁原始对象的所有克隆

C# 销毁实例化对象时的统一性问题-销毁原始对象的所有克隆,c#,unity3d,C#,Unity3d,基本上,我正在尝试重新创建一个DDR类型的东西,我只是试图降低基本的游戏性。对于游戏开发,我还是个新手,但我有一点经验。现在我正在实例化一个包含4个不同箭头方向的随机箭头,当我这样做时,我会将它放在一个列表中。列表中的第一个箭头始终是场景中的下一个箭头,我使用RemoveAt()来确保这一点。我遇到的问题是,当我在列表中的一行中得到两个相同的箭头方向(来自相同的原始预置)时,删除一个箭头方向将删除所有连续箭头方向。它只是这样做的;例如,如果我的箭头顺序是left、left、down,它将删除两个

基本上,我正在尝试重新创建一个DDR类型的东西,我只是试图降低基本的游戏性。对于游戏开发,我还是个新手,但我有一点经验。现在我正在实例化一个包含4个不同箭头方向的随机箭头,当我这样做时,我会将它放在一个列表中。列表中的第一个箭头始终是场景中的下一个箭头,我使用RemoveAt()来确保这一点。我遇到的问题是,当我在列表中的一行中得到两个相同的箭头方向(来自相同的原始预置)时,删除一个箭头方向将删除所有连续箭头方向。它只是这样做的;例如,如果我的箭头顺序是left、left、down,它将删除两个left。如果我的箭头顺序是左、下、左,它只会删除第一个左箭头,我就是不知道为什么。我知道不是名字的问题,因为我每次都试着改变它,但没有任何效果,我试着使用队列,我做的每件事都无法让它工作,我需要帮助

spawnedBox = Instantiate(spawningBox, new Vector3(spawnPos, -6, 0), Quaternion.identity) as GameObject;

arrows.Add(spawnedBox);
(不同文件)

destroyArrow=FindObjectOfType().arrows[0];
FindObjectOfType().arrows.RemoveAt(0);销毁(销毁箭头);

实例化每个箭头并将其存储到数组中。然后在需要时,将其从阵列中销毁。您可以尝试以下方法:

public GameObject[] ArrowsArray;

//Here you instantiate the arrow and you store it 
ArrowsArray[index] = Instantiate (originalPref, transform.position, Quaternion.identity) as GameObject;

//Here you destroy the gameObject and remove it from the array
Destroy(ArrowsArray[index]);
ArrowsArray.RemoveAt (index);

实例化每个箭头并将其存储到数组中。然后在需要时,将其从阵列中销毁。您可以尝试以下方法:

public GameObject[] ArrowsArray;

//Here you instantiate the arrow and you store it 
ArrowsArray[index] = Instantiate (originalPref, transform.position, Quaternion.identity) as GameObject;

//Here you destroy the gameObject and remove it from the array
Destroy(ArrowsArray[index]);
ArrowsArray.RemoveAt (index);

请编辑您的问题并添加代码的一部分。没有它,我们无法帮助您。添加如何删除GameObject的代码
spawnedBox=实例化(spawningBox,新向量3(spawnPos,-6,0),Quaternion.identity)作为GameObject
箭头。添加(生成框)(不同的文件)
destroyArrow=FindObjectOfType().arrows[0]
FindObjectOfType().arrows.RemoveAt(0)
销毁(销毁箭头)抱歉,这是我的第一篇文章,我真的不知道如何格式化在你发布的代码中,你总是在销毁数组的第一个元素(你正在传递索引0)。我想销毁索引0,但它会删除所有相同类型的箭头,即使它们不在索引0中。请编辑你的问题并添加一段代码。没有它,我们无法帮助您。添加如何删除GameObject的代码
spawnedBox=实例化(spawningBox,新向量3(spawnPos,-6,0),Quaternion.identity)作为GameObject
箭头。添加(生成框)(不同的文件)
destroyArrow=FindObjectOfType().arrows[0]
FindObjectOfType().arrows.RemoveAt(0)
销毁(销毁箭头)抱歉,这是我的第一篇文章,我真的不知道如何格式化在你发布的代码中,你总是在销毁数组的第一个元素(你正在传递索引0)。我想销毁索引0,但它会删除所有相同类型的箭头,即使它们不在索引0中。
List
是一件事。
List
是一件事。