我有一个包含五个广告位的广告资源。将项目添加到我的库存时,我会检查最佳插槽。如果所有插槽都已满,我想在控制台中显示一行并返回该方法,但我无法确定该部分。我知道最佳插槽的值只会从0到4,但我的if(bestSlot >= 4
)不能正常工作。
int bestSlot = -1;
for (int i = 0; i < PlayerInventory.Items.Count(); i++)
{
if (PlayerInventory.Items[i].ItemName == "empty")
{
if (bestSlot < 0)
{
bestSlot = i;
}
}
else if (PlayerInventory.Items[i].ItemName != "empty")
{
if (PlayerInventory.Items[i].ItemName == item.ItemName)
{
bestSlot = i;
}
}
}
// add now
if (bestSlot >= 4)
{
Console.WriteLine("inventory full");
return;
}
if (bestSlot >= 0)
{ //add the item }
现在,该项目未添加到库存中,但(bestSlot>= 0)
中的代码仍在运行,当控制台显示该行时,我的库存中有一个空插槽。
答案 0 :(得分:0)
if (PlayerInventory.Items[4].ItemName != "empty" && PlayerInventory.Items[4].ItemName == item.ItemName)
{
Console.WriteLine("inventory full");
return;
}
在第一次阅读时你的问题并不是很清楚,但我认为你需要这个。您应该删除for循环以及循环bestSlot变量中的所有内容。在此之后找到所需的代码。
你的问题是你要进入PlayerIventory的所有元素,但是你只想检查5.你可以用我给你看的代码来做这个。