- Home /
Question by
Sannerex · Mar 12, 2018 at 09:05 PM ·
argumentoutofrangeexception
ArgumentOutOfRange error with list
I'm getting an argument out of range error and I don't know how to fix it. Here is my relevant code:
/// Max allowed slots in inventory.
/// </summary>
public int maxInventorySpace = 5;
/// <summary>
/// Equips the item located at the associated index.
/// </summary>
public int currentlyEquippedItemIndex = 0;
/// <summary>
/// Items currently in inventory.
/// </summary>
public List<ItemPickUp> itemsInInventory = new List<ItemPickUp>();
/// <summary>
/// Scroll through the items with the mouse wheel.
/// </summary>
void ScrollItems()
{
if (Input.GetAxis("Mouse ScrollWheel") > 0f)
{
if (currentlyEquippedItemIndex >= itemsInInventory.Count - 1)
currentlyEquippedItemIndex = 0;
else
currentlyEquippedItemIndex++;
}
else if (Input.GetAxis("Mouse ScrollWheel") < 0f)
{
if (currentlyEquippedItemIndex <= 0)
currentlyEquippedItemIndex = itemsInInventory.Count - 1;
else
currentlyEquippedItemIndex--;
}
// Select the item at the index if it is not already equipped
if (itemsInInventory[currentlyEquippedItemIndex].isEquipped == false)
{
SelectItem(currentlyEquippedItemIndex);
}
}
Unity says I'm getting the error because of this:
// Select the item at the index if it is not already equipped
if (itemsInInventory[currentlyEquippedItemIndex].isEquipped == false)
{
SelectItem(currentlyEquippedItemIndex);
}
Comment
What do you do if you have no items in your inventory (i.e. itemsInInventory is empty)? Your code always tries to access an item in your inventory, even when its empty.
Try:
if (itemsInInventory.Count > 0 && itemsInInventory[currentlyEquippedItemIndex].isEquipped == false)
{
SelectItem(currentlyEquippedItemIndex);
}
Answer by Summit_Peak · Mar 13, 2018 at 12:22 AM
Change:
if (itemsInInventory[currentlyEquippedItemIndex].isEquipped == false)
To:
if (currentlyEquippedItemIndex >=0 && currentlyEquippedItemIndex < itemsInInventory.Count && itemsInInventory[currentlyEquippedItemIndex].isEquipped == false)
Your answer
Follow this Question
Related Questions
What's the proper way to see if a Vector3 List index is null? 1 Answer
Need some help with list and reusing the list in next scene 0 Answers
Cannot access last element of a list of GameObjects 1 Answer
Error: ArgumentOutOfRangeException: Argument is out of range. 1 Answer
ArgumentOutOfRangeException with no script reference Android 2 Answers