Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using System;
public class BaseCharacter : MonoBehaviour {
private string _name;
private int _Level;
private uint _freeExp;
private Attribute[] _primaryAttribute;
private Vital[] _vital;
private Skill[] _skill;
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 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 void AddExp(uint exp)
{
_freeExp+=exp;
CalculateLevel();
}
public void CalculateLevel()
{
}
public void SetupPrimaryAttributes()
{
for(int cnt = 0; cnt<_primaryAttribute.Length;cnt++)
_primaryAttribute[cnt] = new Attribute();
}
public void SetupVitals()
{
for(int cnt = 0; cnt<_vital.Length;cnt++){
_vital[cnt]=new Vital();}
SetupVitalModifiers();
}
public void SetupSkills()
{
for(int cnt =0; cnt<_skill.Length;cnt++)
{
_skill[cnt]= new Skill();
}
SetupSkillModifiers();
}
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()
{
ModifyingAttribute healthModify = new ModifyingAttribute();
healthModify.attribute = GetPrimaryAttribute((int)AttributeName.Constituion);
healthModify.ratio = 0.5f;
ModifyingAttribute energyModify = new ModifyingAttribute();
energyModify.attribute = GetPrimaryAttribute((int)AttributeName.Constituion);
energyModify.ratio = 1.0f;
ModifyingAttribute manaModify = new ModifyingAttribute();
manaModify.attribute = GetPrimaryAttribute((int)AttributeName.Willpower);
manaModify.ratio = 1.0f;
//GetVital((int)VitalName.Health).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion),.5f));
//GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion),1.0f));
//GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower),1.0f));
}
public void SetupSkillModifiers()
{
GetSkill((int)SkillName.Melle_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might),.33f));
GetSkill((int)SkillName.Melle_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness),.33f));
GetSkill((int)SkillName.Melle_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed),.33f));
GetSkill((int)SkillName.Melle_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion),.33f));
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));
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));
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));
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();
}
}
}
using System.Collections;
using System;
public class BaseCharacter : MonoBehaviour {
private string _name;
private int _Level;
private uint _freeExp;
private Attribute[] _primaryAttribute;
private Vital[] _vital;
private Skill[] _skill;
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 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 void AddExp(uint exp)
{
_freeExp+=exp;
CalculateLevel();
}
public void CalculateLevel()
{
}
public void SetupPrimaryAttributes()
{
for(int cnt = 0; cnt<_primaryAttribute.Length;cnt++)
_primaryAttribute[cnt] = new Attribute();
}
public void SetupVitals()
{
for(int cnt = 0; cnt<_vital.Length;cnt++){
_vital[cnt]=new Vital();}
SetupVitalModifiers();
}
public void SetupSkills()
{
for(int cnt =0; cnt<_skill.Length;cnt++)
{
_skill[cnt]= new Skill();
}
SetupSkillModifiers();
}
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()
{
ModifyingAttribute healthModify = new ModifyingAttribute();
healthModify.attribute = GetPrimaryAttribute((int)AttributeName.Constituion);
healthModify.ratio = 0.5f;
ModifyingAttribute energyModify = new ModifyingAttribute();
energyModify.attribute = GetPrimaryAttribute((int)AttributeName.Constituion);
energyModify.ratio = 1.0f;
ModifyingAttribute manaModify = new ModifyingAttribute();
manaModify.attribute = GetPrimaryAttribute((int)AttributeName.Willpower);
manaModify.ratio = 1.0f;
//GetVital((int)VitalName.Health).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion),.5f));
//GetVital((int)VitalName.Energy).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion),1.0f));
//GetVital((int)VitalName.Mana).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower),1.0f));
}
public void SetupSkillModifiers()
{
GetSkill((int)SkillName.Melle_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might),.33f));
GetSkill((int)SkillName.Melle_Offence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness),.33f));
GetSkill((int)SkillName.Melle_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed),.33f));
GetSkill((int)SkillName.Melle_Defence).AddModifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion),.33f));
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));
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));
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));
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();
}
}
}
класс Vital
Синтаксис:
Используется csharp
using UnityEngine;
public class Vital : BaseStat
{
private int _curValue;
public Vital()
{
_curValue = 0;
ExpToLvl=50;
LvlMod = 1.1f;
}
public int CurValue
{
get{if(_curValue>AdjustedBaseValue)
_curValue=AdjustedBaseValue;
return _curValue;
}
set{_curValue=value;}
}
}
public enum VitalName
{
Health,
Energy,
Mana
}
public class Vital : BaseStat
{
private int _curValue;
public Vital()
{
_curValue = 0;
ExpToLvl=50;
LvlMod = 1.1f;
}
public int CurValue
{
get{if(_curValue>AdjustedBaseValue)
_curValue=AdjustedBaseValue;
return _curValue;
}
set{_curValue=value;}
}
}
public enum VitalName
{
Health,
Energy,
Mana
}
и класс Skill
Синтаксис:
Используется csharp
using UnityEngine;
public class Skill : ModifyStat
{
private bool _known;
public Skill()
{
_known = false;
ExpToLvl = 25;
LvlMod = 1.1f;
}
public bool Known
{
get{return _known;}
set{_known=value;}
}
}
public enum SkillName
{
Melle_Offence,
Melle_Defence,
Ranged_Offence,
Ranged_Defence,
Magic_Offence,
Magic_Defence
}
public class Skill : ModifyStat
{
private bool _known;
public Skill()
{
_known = false;
ExpToLvl = 25;
LvlMod = 1.1f;
}
public bool Known
{
get{return _known;}
set{_known=value;}
}
}
public enum SkillName
{
Melle_Offence,
Melle_Defence,
Ranged_Offence,
Ranged_Defence,
Magic_Offence,
Magic_Defence
}
Как видите Vital и Skill очень похожи, но при попытке скомпилить строки
Синтаксис:
Используется csharp
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();
}
}
{
for(int cnt = 0; cnt<_vital.Length;cnt++)
{
_vital[cnt].Update();
}
for(int cnt = 0; cnt<_skill.Length;cnt++)
{
_skill[cnt].Update();
}
}
Возникает ошибка - Assets/Stats/BaseCharacter.cs(133,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?)
Помогите, пожалуйста, разобраться как исправить эту досадную ошибку.