销毁实例化对象时Unity中的问题-销毁原始对象的所有克隆

时间:2019-05-09 05:12:33

标签: c# unity3d

基本上,我正在尝试重新创建DDR类的东西,而我只是在尝试降低基本的游戏玩法。在游戏开发方面,我仍然是一个新手,但我有一点经验。现在,我实例化了4个不同箭头方向的随机箭头,然后将其放入列表中。列表中的第一个箭头始终是场景中的下一个箭头,我使用RemoveAt()来确保这一点。我得到的问题是,当我在列表中的一行中同时收到两个相同的箭头方向(来自相同的原始预制件)时,如果删除两个箭头,则它们将是连续的。它只是这样做。例如,如果我的箭头顺序是左,左,下,则删除两个左箭头。如果我的箭头顺序是左,下,左,则只会删除第一个左箭头,而我只是不知道为什么。我知道这不是名字,因为我每次都尝试更改它,但是什么也没做,我尝试使用队列,我所做的一切都无法正常工作,我需要帮助。

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

arrows.Add(spawnedBox);

(不同文件)

destroyArrow = FindObjectOfType<Blocks>().arrows[0];
FindObjectOfType<Blocks>().arrows.RemoveAt(0); Destroy(destroyArrow);

1 个答案:

答案 0 :(得分:0)

实例化每个箭头并将其存储到数组中。然后在需要时将其从阵列中销毁。您可以尝试这样的事情:

//this works
<body>
        <script>
        var svg = d3.select("body").append("svg");

            svg.attr("width", 250);
            svg.attr("height", 250);

            var rect = svg.append("rect");

            rect.attr("x", 50);
            rect.attr("y", 50);
            rect.append("style", "fill:blue");
            rect.attr("width", 80);
            rect.attr("height", 80);
        </script>
</body>
//this doesn't work
//inside bhha.js. 
//bhha.js is called from <script> tag in the main html
var svg = d3.select("body").append("svg");

svg.attr("width", 250);
svg.attr("height", 250);

var rect = svg.append("rect");

rect.attr("x", 150);
rect.attr("y", 150);
rect.attr("width", 20);
rect.attr("height", 20);