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 WhipJr · Aug 10, 2017 at 05:57 AM · c#arrayerror message

Index Out of Range Exception?

 //conditions to check
     public int[] cause = 
             { 0 //Enemy is at full health
             , 1 //Enemy health <= 90%
             , 2 //Enemy health <= 75%
             , 3 //Enemy health <= 50%
             , 4 //Enemy ehalth <= 25%
             , 5 //Owner is at full health
             , 6 //Owner health <= 90%
             , 7 //Owner health <= 75%
             , 8 //Owner health <= 50%
             , 9 //Owner health <= 25%
             , 10 //DEFAULT
             };
     //actions to perform
     public int[] effect = 
             { 0 //Light Attack
             , 1 //Medium Attack
             , 2 //Heavy Attack
             , 3 //Magic: Fire
             , 4 //Magic: Ice
             , 5 //Magic: Cure
             , 6 //Magic: Cura
             , 7 //Use item
             , 8 //Unsummon
             , 9 //UNASSIGNED
             , 10 //UNNASSIGNED
             };
 
     // Use this for initialization
     void Start () {
 
     options = new int[][,] //first thrown here.
     {
         new int[,] { { cause[9],effect[6] }, { cause[8],effect[6] }, { cause[7],effect[5] }, { cause[4],effect[2] }, { cause[3],effect[3] }, { cause[10],effect[6] }, { cause[2],effect[7] }, { cause[2],effect[8] }, { cause[1],effect[9] }, { cause[0],effect[0] }} 
     };
     }

The code above is a snippet that is giving me a slight issue. with the variables as is, it throws an ArrayIndexOutofRange error at the line indicated with a comment, and it throws a second wherever i am calling the data. at the moment i am using a test calling of:

 Debug.Log(options[0][0,0]); //should return 9

here's the interesting part, if i change the 6th cause of options from cause[10] to anything else that i have listed, then i don't get the error.

Comment
Add comment · Show 1
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 bobisgod234 · Aug 10, 2017 at 06:12 AM 0
Share

I am not getting any errors when I try your code. Since your 'cause' and 'effect' variables are public members of a $$anonymous$$onoBehaviour, is it possible that you have accidentally changes the serialized values of these arrays from the inspector?

Try adding [System.NonSerialized] just above each

     [System.NonSerialized]     
     public int[] cause = 
                  { 0 //Enemy is at full health
                  , 1 //Enemy health <= 90%
                  , 2 //Enemy health <= 75%
                  , 3 //Enemy health <= 50%
                  , 4 //Enemy ehalth <= 25%
                  , 5 //Owner is at full health
                  , 6 //Owner health <= 90%
                  , 7 //Owner health <= 75%
                  , 8 //Owner health <= 50%
                  , 9 //Owner health <= 25%
                  , 10 //DEFAULT
                  };
          //actions to perform
     [System.NonSerialized]     
     public int[] effect = 
                  { 0 //Light Attack
                  , 1 //$$anonymous$$edium Attack
                  , 2 //Heavy Attack
                  , 3 //$$anonymous$$agic: Fire
                  , 4 //$$anonymous$$agic: Ice
                  , 5 //$$anonymous$$agic: Cure
                  , 6 //$$anonymous$$agic: Cura
                  , 7 //Use item
                  , 8 //Unsummon
                  , 9 //UNASSIGNED
                  , 10 //UNNASSIGNED
                  };
 

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by Ashokkumar-M · Aug 10, 2017 at 06:45 AM

Hi, @WhipJr I checked your code. Its working fine. The Only problem I could figure out in your case is if you have changed cause array in the inspector by mistake this problem might occur. So check the inspector whether you have 11 elements in cause and effect array and if not change it. Alternatively change the cause and effect array to private so the values will not be changed in inspector.

   int[] cause =
             { 0 //Enemy is at full health
              , 1 //Enemy health <= 90%
              , 2 //Enemy health <= 75%
              , 3 //Enemy health <= 50%
              , 4 //Enemy ehalth <= 25%
              , 5 //Owner is at full health
              , 6 //Owner health <= 90%
              , 7 //Owner health <= 75%
              , 8 //Owner health <= 50%
              , 9 //Owner health <= 25%
              , 10 //DEFAULT
              };
     //actions to perform
     int[] effect =
             { 0 //Light Attack
              , 1 //Medium Attack
              , 2 //Heavy Attack
              , 3 //Magic: Fire
              , 4 //Magic: Ice
              , 5 //Magic: Cure
              , 6 //Magic: Cura
              , 7 //Use item
              , 8 //Unsummon
              , 9 //UNASSIGNED
              , 10 //UNNASSIGNED
              };
 
     // Use this for initialization
     void Start()
     {
 
         int[][,] options = new int[][,] //first thrown here.
         {
          new int[,] { { cause[9],effect[6] }, { cause[8],effect[6] }, { cause[7],effect[5] }, { cause[4],effect[2] }, { cause[3],effect[3] }, { cause[10],effect[6] }, { cause[2],effect[7] }, { cause[2],effect[8] }, { cause[1],effect[9] }, { cause[0],effect[0] }}
         };
         Debug.Log(options[0][0, 0]);
     }

This is the code I checked. Its working fine.

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 WhipJr · Aug 10, 2017 at 02:44 PM 0
Share

thank you. i must have been too tired and not noticed that the editor wasn't updating the array when i added more too it. setting it to private was the best options since there is no good reason to need to edit that outside of the script

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

370 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

Related Questions

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

IndexOutOfRangeException help on debug 3 Answers

Set default length for an array of elements of a custom class in inspector 0 Answers

How to check if a value exists in an array (C#) 3 Answers


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