- Home /
IndexOutOfRangeException
It has come up with the same error 9 times at the same time. IndexOutOfRangeException: Array index is out of range. BaseCharacter.GetVital (Int32 index) (at Assets/Scripts 1/Character Classes/BaseCharacter.cs:77) GameSettings.SaveCharacterData () (at Assets/Scripts 1/GameSettings.cs:44) CharacterGenerator.DisplayCreateButton () (at Assets/Scripts 1/Character Classes/CharacterGenerator.cs:151) CharacterGenerator.OnGUI () (at Assets/Scripts 1/Character Classes/CharacterGenerator.cs:62)
Here is my script it says it is on line 77, Please Help:
using UnityEngine; using System.Collections; using System; //added to access the enum class
public class BaseCharacter : MonoBehaviour { private string _name; private int _level; private uint _freeExp; private Attribute[] _primaryAttribute; private Vital[] _vital; private Skill[] _skill; public void Awake() { _name = string.Empty; _level = 0; _freeExp = 0; _primaryAttribute = new Attribute[Enum.GetValues(typeof(AttributeName)).Length]; _vital = new Vital[Enum.GetValues(typeof(VitalName)).Length]; _skill = new Skill[Enum.GetValues(typeof(SkillName)).Length]; SetupPrimaryAttributes(); SetupVitals(); SetupSkills(); } public string Name { get{ return _name; } set{ _name = value; } } public int Level { get{ return _level; } set{ _level = value; } } public uint FreeExp { get{ return _freeExp; } set{ _freeExp = value; } } public void AddExp(uint exp) { _freeExp += exp; CaluclateLevel(); } //take the average of all of the players skills and assign that as the player level public void CaluclateLevel() { } private void SetupPrimaryAttributes(){ for(int cnt = 0; cnt < _primaryAttribute.Length; cnt++) { _primaryAttribute[cnt] = new Attribute(); } } private void SetupVitals(){ for(int cnt = 0; cnt < _vital.Length; cnt++) _vital[cnt] = new Vital(); SetupVitalModifiers(); } private void SetupSkills(){ for(int cnt = 0; cnt < _skill.Length; cnt++) _skill[cnt] = new Skill(); } public Attribute GetPrimaryAttribute(int index) { return _primaryAttribute[index]; } public Vital GetVital(int index) { return _vital[index]; } public Skill GetSkill(int index) { return _skill[index]; } private void SetupVitalModifiers() { //health GetVital((int)VitalName.Health).AddModifier(new ModifiyingAttribute { attribute = GetPrimaryAttribute((int)AttributeName.Fitness), ratio = 0.5f}); //Energy GetVital((int)VitalName.Energy).AddModifier(new ModifiyingAttribute { attribute = GetPrimaryAttribute((int)AttributeName.Fitness), ratio = 1f}); //Mana GetVital((int)VitalName.Mana).AddModifier(new ModifiyingAttribute { attribute = GetPrimaryAttribute((int)AttributeName.Wisdom), ratio = 1f}); } public void StatUpdate() { for(int cnt = 0; cnt < _vital.Length; cnt++) _vital[cnt].Update (); for(int cnt = 0; cnt < _skill.Length; cnt++) _skill[cnt].Update (); } }
can you please format this solid wall of text !
for any help to be given, please format your code. You can do this by highlighting all your code, then clicking the 10101 button at the top of the edit window.
Though, it may be easier just to delete the code, paste it in again from the source, then highlight all the code and press the 101010 button at the top of the edit window before posting.
Yep, can't expect help without formatting. Can you read your own question? If you can't, don't post it.
Holy cow! Wall Of Code crits for over 9000! kmeboe is slain. :(
After you fix your formatting, it will also be helpful if you tell us the line that is causing the error ("line 77" doesn't help us). You can find this by double-clicking on the error message, and it should take you to the offending line.
I think your error comes from this:
_vital = new Vital[Enum.GetValues(typeof(VitalName)).Length];
and this:
public Vital GetVital(int index) { return _vital[index]; }
Check that the value you are passing does not exceed the range given in the declaration. As well check first that:
Enum.GetValues(typeof(VitalName)).Length
actually returns a value. I could not find out where it came from.
@fafase you read this? Please $$anonymous$$ch me master!! xD
Your answer
Follow this Question
Related Questions
Simple index out of range question? 1 Answer
Simple index out of range question? 1 Answer
ArgumentOutOfRange Exception 1 Answer
Array out of its own range? 4 Answers
helpme RPC 1 Answer