我有一个脚本,当玩家从商店购买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;
}
}
答案 0 :(得分:2)
我不确定这是否可以解决您的具体困境(我不确定您商店的具体情况)。
我将记录循环中已实例化的项目数量和已删除的项目数量。然后,如果我按照您的逻辑,则只希望在前一个项目发生时才生成下一个项目已被删除,所以我们可以做。
if (droppeditemscount >= instantiateditemscount)
{
instantiate()
}