• 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 IvarX · Mar 02, 2012 at 10:07 PM · errorrpgburgzergarcade

BurgZergArcade RPG - BaseCharacter script errors.

Dear readers,

I've been following a tutorial serie from BurgZergArcade about how to make a RPG with Unity for a couple of days now and this is the first time that I'm really encountering a problem with my scripts. Right now the tutorial is telling me how to make scripts for character statistics and how to make a base character. However, at the completion of my script I'll still get 6 errors of the same kind when I try to save my script. Every of them is related to my script named 'BaseCharacter' made with C#:

Three errors of this kind:

Type System.Array' does not contain a definition for Lenght' and no extension method Lenght' of type System.Array' could be found (are you missing a using directive or an assembly reference?)

for lines 19,20 and 21.

And also these three errors:

Type Attribute[]' does not contain a definition for Lenght' and no extension method Lenght' of type Attribute[]' could be found (are you missing a using directive or an assembly reference?)

(For line 56)

Type Vital[]' does not contain a definition for Lenght' and no extension method Lenght' of type Vital[]' could be found (are you missing a using directive or an assembly reference?)

(For line 62)

Type Skill[]' does not contain a definition for Lenght' and no extension method Lenght' of type Skill[]' could be found (are you missing a using directive or an assembly reference?)

(For line 68)

I am completely stuck with these errors and I have no clue how to fix it. I was hoping that anyone of you could possibly help me fix these errors.

Here are my scripts (All of them made with C#):

BaseCharacter script:

using UnityEngine;

using System.Collections;

using System; //added to acces 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)).Lenght];
     _vital = new Vital[Enum.GetValues(typeof(VitalName)).Lenght];
     _skill = new Skill[Enum.GetValues(typeof(SkillName)).Lenght];
     
     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;
 
     CalculateLevel();
 }
 
 
 //take avg of all of the players skills and assign that as the player level
 public void CalculateLevel() {
 }
 
 
 private void SetupPrimaryAttributes() {
     for(int cnt = 0; cnt < _primaryAttribute.Lenght; cnt++) {
         _primaryAttribute[cnt] = new Attribute();
     }
 }
     
 private void SetupVitals() {
     for(int cnt = 0; cnt < _vital.Lenght; cnt++) {
         _vital[cnt] = new Vital();
     }
 }
 
 private void SetupSkills() {
     for(int cnt = 0; cnt < _skill.Lenght; 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 ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .5f));
     //energy
     GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), 1));
     //mana
     GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 1));
 }
 
 private void SetupSkillModifiers() {
     //melee offence
     GetSkill((int)SkillName.Melee_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might), .33f));
     GetSkill((int)SkillName.Melee_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));
     //melee defence
     GetSkill((int)SkillName.Melee_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
     GetSkill((int)SkillName.Melee_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .33f));
     //magic offence
     GetSkill((int)SkillName.Magic_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
     GetSkill((int)SkillName.Magic_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));
     //magic defence
     GetSkill((int)SkillName.Magic_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
     GetSkill((int)SkillName.Magic_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));
     //ranged offence
     GetSkill((int)SkillName.Ranged_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
     GetSkill((int)SkillName.Ranged_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
     //ranged defence
     GetSkill((int)SkillName.Ranged_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
     GetSkill((int)SkillName.Ranged_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));
 }    
 
 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();
 }

}

Related scripts:

ModifiedStat script:

using System.Collections.Generic;

public class ModifiedStat : BaseStat {

private List _mods; //A list of Attributes that modify this stat

private int _modValue; //The amount added to the baseValue from the modifiers

 public ModifiedStat() {
     _mods = new List<ModifyingAttribute>();
     _modValue = 0;
 }
 
 public void AddModifier( ModifyingAttribute mod) {
     _mods.Add(mod);
 }
 
 private void CalculateModValue() {
     _modValue = 0;
     
     if(_mods.Count > 0)
         foreach(ModifyingAttribute att in _mods)
             _modValue += (int)(att.attribute.AdjustedBaseValue * att.ratio);
 }
 
 public new int AdjustedBaseValue {
         get{ return BaseValue + BuffValue + _modValue; }
 }
 
 public void Update() {
     CalculateModValue();
 }

}

public struct ModifyingAttribute { public Attribute attribute; public float ratio;

 public ModifyingAttribute(Attribute att, float rat) {
     attribute = att;
     ratio = rat;
 }

}

BaseStat script:

public class BaseStat { private int _baseValue; //the base value of this stat private int _buffValue; //the amount of the buff to this stat private int _expToLevel; //the total amount of exp needed to raise this skill private float _levelModifier; //the modifier applied to the exp needed to raise the skill

 public BaseStat() {
     _baseValue = 0;
     _buffValue = 0;
     _levelModifier = 1.1f;
     _expToLevel = 100;
 }
 

region Basic Setters and Getters

//Basic Setters and Getters public int BaseValue { get{ return _baseValue; } set{ _baseValue = value; } }

 public int BuffValue {
     get{ return _buffValue; }
     set{ _buffValue = value; }
 }
 
 
 public int ExpToLevel {
     get{ return _expToLevel; }
     set{ _expToLevel = value; }
 }
 
 
 public float LevelModifier {
     get{ return _levelModifier; }
     set{ _levelModifier = value; }
 }

endregion

 private int CalculateExpToLevel() {
     return (int)(_expToLevel * _levelModifier);
 }
 
 public void LevelUp() {
     _expToLevel = CalculateExpToLevel();
     _baseValue++;
 }
 
 public int AdjustedBaseValue {
     get{ return _baseValue + _buffValue; }
 }

}

Attributes Script:

public class Attribute : BaseStat {

 public Attribute() {
     ExpToLevel = 50;
     LevelModifier = 1.05f;
 }

}

public enum AttributeName { Might, Constitution, Nimbleness, Speed, Concentration, Willpower, Charisma }

Vital Script:

public class Vital : ModifiedStat { private int _curValue;

 public Vital() {
     _curValue = 0;
     ExpToLevel = 50;
     LevelModifier = 1.1f;
 }
 
 public int CurValue {
     get{
         if(_curValue > AdjustedBaseValue)
             _curValue = AdjustedBaseValue;
         
         return _curValue;
     }
     set{ _curValue = value; }
 }

}

public enum VitalName { Health, Energy, Mana }

Skill Script:

public class Skill : ModifiedStat { private bool _known;

 public Skill() {
     _known = false;
     ExpToLevel = 25;
     LevelModifier = 1.1f;
 }
 
 public bool Known {
     get{ return _known; }
     set{ _known = value; }
 }

}

public enum SkillName { Melee_Offence, Melee_Defence, Ranged_Offence, Ranged_Defence, Magic_Offence, Magic_Defence }

Excuse me for the wall of text. Any help would be very appreciated.

Comment
Add comment
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

3 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Adamcbrz · Mar 03, 2012 at 05:25 AM

The answer is right in the errors. You spelled the word Length incorrectly.

Hope that helps.

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
avatar image
0

Answer by IvarX · Mar 03, 2012 at 11:08 AM

Oh wow.. I feel really stupid about that. Thanks a lot! :)

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
avatar image
0

Answer by CritekGaming · Dec 01, 2012 at 06:29 AM

does it matter whether i use unitron or mlnodevelop because when i made the ModifiedStat it came up with and error:

Assets/Ascripts/!Character/Charcter classes/ModifiedStat.cs(8,9): error CS0246: The type or namespace name `List' could not be found. Are you missing a using directive or an assembly reference?

(i use unitron)

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 Adamcbrz · Dec 01, 2012 at 06:47 AM 0
Share

Please don't post new questions in the answer section of another question. One only people who have commented on the answer will see your question which means it is less likely to get answered. Two you can't give credit to people for answering you question. Three it makes it hard for others to find the answers they need if questions are baried in other questions. (stepping down off my soap box).

But to address your issue no it doesn't matter which coding tool you use. Those are glorified text editors and while helpful are doing little to tie in with unity. Unity compiles the code so any text editor will work. So keep going with what you are comfortable.

The error you are getting is saying that the namespaces you are including with the "using" keyword does not contain List. $$anonymous$$ake sure you add "using System.Collections.Generic". I think that is the right namespace.

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.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

8 People are following this question.

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

Related Questions

Error CS1503, Error CS1502 1 Answer

Burgzergarcade Why am i getting an error after re-importing? 1 Answer

need help, with greater than statment 1 Answer

BCE0043: Unexpected Token: Contact Error 1 Answer

Script Error 4 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges