删除第一个项目时实例化下一个项目

时间:2018-09-16 12:04:46

标签: c# unity3d

我有一个脚本,当玩家从商店购买X数量时实例化游戏对象,它可以工作,但我遇到了一个问题。您会发现,假设玩家购买了大约200件物品,我的游戏就会落后;我编写了一个脚本,将上面的每个项目都设置为false,但这仍然使我的游戏滞后。

这是不理想的,我想知道是否有一种方法可以保留玩家购买的物品的数量(整数),但是当玩家将第一个物品丢入(将一个孩子从其父母中拉出)时实例化该物品。具体区域。

所以说,如果玩家购买了3个物品,则其中一个已经被实例化,而接下来的两个则未被实例化,那么当玩家将第一个物品放入特定区域时,下一个便被实例化,而第三个物品尚未被实例化。直到第二个也放置在特定区域。这是我的实例化脚本:

void Update () {

        if (happenOnce == false) {
            for (int x = 0; x < slotCon.GetComponent<SlotController> ().Wallet; x++) {
                var item = Instantiate (ItemPrefab) as GameObject;
                item.transform.position = transform.position;
                item.transform.SetParent (slotHolder.transform);
                item.SetActive (true);
            }
            happenOnce = true;
         }
}

1 个答案:

答案 0 :(得分:2)

我不确定这是否可以解决您的具体困境(我不确定您商店的具体情况)。

我将记录循环中已实例化的项目数量和已删除的项目数量。然后,如果我按照您的逻辑,则只希望在前一个项目发生时才生成下一个项目已被删除,所以我们可以做。

if (droppeditemscount >= instantiateditemscount)
{
instantiate()
}