所以我的 Unity 项目中有一个列表,当我在播放模式下从该列表中删除一个元素时,例如从第一个插槽中,列表正在缩小。我想让该列表保持与以前相同的大小,但我不知道该怎么做。有没有办法,例如,用空对象替换删除的对象?
此外,这是我现在正在谈论的那部分代码:
public class Inventory : MonoBehaviour
{
public List<GameObject> items;
public GameObject selectedGameObject;
public int SelectedItem = 0;
public int maxSlots;
public int maxStack;
public ItemSlot[] itemSlot;
public void AddItem(string itemName, int quantity, Sprite itemSprite, string ItemDesc, GameObject itemObj)
{
for (int i = 0; i < itemSlot.Length; i++)
{
if (itemSlot[i].IsFull == false)
{
itemSlot[i].AddItem(itemName, quantity, itemSprite, ItemDesc);
items.Add(itemObj);
selectedGameObject = itemObj;
UpdateSelectedItem();
return;
}
}
SelectedItem = items.IndexOf(itemObj.gameObject);
}
public void RemoveItem(GameObject itemObj)
{
for (int i = 0; i < itemSlot.Length; i++)
{
itemSlot[i].RemoveObj();
items.Remove(itemObj);
}
}
}
我想创建一个系统,允许我在调用 RemoveItem() 时从列表中删除对象而不缩小它。
每当我尝试从那里删除一个元素时,对象列表就会缩小。我希望该列表保持相同的大小,因此即使对象被删除,列表大小也保持不变。