- Home /
Problem with hack and slash tutorial
I am currently following BurgZergArcade Hack and Slash Tutorial and I keep getting this error. I just finished the 20. Unity3d Tutorial - Base Character Class 3/3.
Assets/Scripts/Working Scripts/Character Classes/BaseCharacter.cs(113,37): error CS1061: Type Vital' does not contain a definition for
Update' and no extension method Update' of type
Vital' could be found (are you missing a using directive or an assembly reference?)
I followed the code thouroughly but there must be somewhere I screwed up. I can't seem to find where I screwed up. Has anyone else got this error?
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)).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;
CalculateLevel(); }
//take avg of all the players skill and assign that as the player level public void CalculateLevel() { }
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(); } }
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 ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .5f)); //energy GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), 1)); }
public 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)); //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(); } }
Answer by almo · May 02, 2011 at 03:56 PM
Look at the definition of the class Vital. It must have an Update() function, because it is called here:
_vital[cnt].Update();
According to the tutorial there is no "void update" in the script.
Sorry, I missed where the Update was called that was causing the problem. Edited answer to reflect this.
Answer by crafted · Jan 06, 2012 at 09:01 PM
I have also got this problem
7 of these Assets/Scripts/Character Classes/BaseCharacter.cs(93,49): error CS1061: Type Vital' does not contain a definition for
AddModifier' and no extension method AddModifier' of type
Vital' could be found (are you missing a using directive or an assembly reference?)
2 of these Assets/Scripts/Character Classes/BaseCharacter.cs(102,48): error CS1061: Type Skill' does not contain a definition for
AddModifier' and no extension method AddModifier' of type
Skill' could be found (are you missing a using directive or an assembly reference?)
I have spent like 2 hours trying to solve this but I dont know whats wrong...
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 = 1;
_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;
CalculateLevel();
}
public void CalculateLevel() {
}
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++) {
_primaryAttribute[cnt] = new Attribute();
}
}
private void SetupSkills() {
for(int cnt = 0; cnt < _skill.Length; cnt++) {
_primaryAttribute[cnt] = new Attribute();
}
}
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));
//Magicka
GetVital((int)VitalName.Magicka).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 1));
}
private void SetupSkillModifiers() {
//meele
GetSkill((int)SkillName.Meele).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Strength), .33f));
//magic
GetSkill((int)SkillName.Magic).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .165f));
GetSkill((int)SkillName.Magic).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Aim), .165f));
//archery
GetSkill((int)SkillName.Archery).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Aim), .33f));
//defence
GetSkill((int)SkillName.Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constitution), .165f));
GetSkill((int)SkillName.Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Strength), .165f));
}
}