- Home /
Why is my ID value getting stuck here?
My inventory is just an array that takes an index, and returns the item in that slot. The player increments or decrements the desired index by rolling the mousewheel, which works fine, but I'm having trouble making the number "roll": if the array has 6 values, when desiredSlot is 5 and the player increments it, I want it to reset back to 0, and if it's 0 when the player decrements it, I want to set it to the array.length-1, e.g. the last entry in the array. This looks right to me:
desiredSlot = 0;
if (characterInventory.generalItems.length == 0){
return 0;
}else if (ID > characterInventory.generalItems.length){
desiredSlot = 0;
}
else if (ID < 0){
desiredSlot = characterInventory.generalItems.length - 1; //prevents calling an index that doesn't exist
}
return desiredSlot;
However, this doesn't work at all when I run it- it works when there are only two items in the inventory, but when I try it with six, it constantly flip-flops between the first and last item in the array, and never selects an intermediate index. Is there an obvious hole in my logic here?
Answer by Jessespike · Sep 18, 2015 at 05:35 AM
Try Mathf.Repeat
return (int) Mathf.Repeat(deesiredSlot, characterInventory.generalItems.length);
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
how to use t variable in the bazier curve 2 Answers
moving forward after bazier curve 1 Answer
Programmatically specifying a random point in an arc in front of the player 1 Answer