Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by lightyearz2 · Feb 01, 2018 at 05:17 AM · c#errorinventoryscrollargumentoutofrangeexception

Scrolling inventory script giving argument out of range.

So i have a script that controls the scrolling hotbar / inventory. Here is what I have:`using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;

public class Inventory : MonoBehaviour {

 public List<Obj> Inven = new List<Obj>();

 public Image slot2;
 public Image slot3;
 public Image slot4;


 public Obj selectedSlot;
 public Obj selectedSlottakeone;
 public Obj selectedSlotplusone;

 public float mouseSelected;

 public float selected;

 // Use this for initialization
 void Start () {
     selected = 1;
    

 }
 
 // Update is called once per frame
 void Update () {

     if (selected < Inven.Count)
     {
         selected = Inven.Count;
     }

     if (selected < 0)
     {
         selected = 0;
     }
     if (Inven.Count != 0)
     {
         selectedSlot = Inven[(int)selected];
         if (selected - 1 >= 0)
             selectedSlottakeone = Inven[(int)selected - 1];
         if (selected + 1 <= Inven.Count)
         selectedSlotplusone = Inven[(int)selected + 1];
         slot3.sprite = selectedSlot.img;
         slot4.sprite = selectedSlotplusone.img;
         slot2.sprite = selectedSlottakeone.img;
     } 


     selected += Input.GetAxis("Mouse ScrollWheel");
    




 }

} `

I am getting the error argument out of range at line 44. can anyone help?

Comment
Add comment · Show 3
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Prastiwar · Feb 01, 2018 at 06:15 AM 0
Share
 if (selected + 1 < Inven.Count)
          selectedSlotplusone = Inven[(int)selected + 1];

I think you don't want to have index as Inven.Count, max index is always (collection.Length -1)

avatar image meat5000 ♦ · Feb 01, 2018 at 09:28 AM 0
Share

In Engineering, we count from ZERO, not ON$$anonymous$$ Field 0 is the 1st field. This is applied here as Computer Scientists are largely Engineers too.

You are probably overshooting twice. As stated before, given count from 0, the actual collection max field is always 1 less than the total fields, due to na$$anonymous$$g.

You overshoot a second time when you use <=. That '=' makes an operation occur that one last time too many in cases like this.

avatar image meat5000 ♦ · Feb 01, 2018 at 09:33 AM 0
Share

You are ten steps from the edge of the cliff. if number of steps left is Greater than or equal to none, take a step... right?

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by melsy · Feb 01, 2018 at 06:12 AM

it looks like you are calling +1 larger than the List size on that line.

List.Count = the size of the list so if there are 12 items in the list, List.Count = 12.

when you call List[12 +1] you are taking it out of range.

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image lightyearz2 · Feb 02, 2018 at 06:36 AM 0
Share

sorry, the line system excludes the tags at the top. It is actually this piece: selectedSlot = Inven[(int)selected]; throwing the error.

avatar image
0

Answer by Legend_Bacon · Feb 02, 2018 at 08:37 AM

Hello there,

As previously said, the problem is that you're assigning selected to your list size (count), and then using it as an index for that same list. That means, if the line selected = Inven.Count is reached, the line selectedSlot = Inven[(int)selected]; will give you an error.

replace selected = Inven.Count with selected = Inven.Count -1 and you should be fine, as selected would then point to the last item in your list.

Hope that helps!

Cheers,

~LegendBacon

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

450 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Multiple Cars not working 1 Answer

Perfect inventory code giving errors? [C#] 1 Answer

Distribute terrain in zones 3 Answers

Getting ArgumentOutOfRangeException on array c# 1 Answer

Can´t instantiate objects in list correctly 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges