Синтаксис:
Используется 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 BaseCharacter() {
_level = 0;
_freeExp = 0;
_name = string.Empty;
_primaryAttribute = new Attribute[Enum.GetValues(typeof(AttributeName)).Length];
_vital = new Vital[Enum.GetValues(typeof(VitalName)).Length];
_skill = new Skill[Enum.GetValues(typeof(SkillName)).Length];
Debug.Log(_primaryAttribute.Length);
for(int cnt = 0; cnt < _primaryAttribute.Length; cnt++) {
==========>> _primaryAttribute[cnt] = new Attribute(); <<<<<<<<<<<<<<============== Из-за этого падает ================================
Debug.Log(cnt);
}
//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() {
Debug.Log(_primaryAttribute.Length);
for(int cnt = 0; cnt < _primaryAttribute.Length; cnt++) {
_primaryAttribute[cnt] = new Attribute();
Debug.Log(cnt);
}
}
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).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), .5f));
//energy
GetVital((int)VitalName.Energy).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), 1));
//mana
GetVital((int)VitalName.Mana).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 1));
}
private void SetupSkillModifiers() {
//melee offence
GetSkill((int)SkillName.Melee_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might), .33f));
GetSkill((int)SkillName.Melee_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));
//melee defence
GetSkill((int)SkillName.Melee_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
GetSkill((int)SkillName.Melee_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), .33f));
//magic offence
GetSkill((int)SkillName.Magic_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
GetSkill((int)SkillName.Magic_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));
//magic defence
GetSkill((int)SkillName.Magic_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
GetSkill((int)SkillName.Magic_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));
//range offence
GetSkill((int)SkillName.Ranged_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
GetSkill((int)SkillName.Ranged_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
//range defence
GetSkill((int)SkillName.Ranged_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));
GetSkill((int)SkillName.Ranged_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .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 BaseCharacter() {
_level = 0;
_freeExp = 0;
_name = string.Empty;
_primaryAttribute = new Attribute[Enum.GetValues(typeof(AttributeName)).Length];
_vital = new Vital[Enum.GetValues(typeof(VitalName)).Length];
_skill = new Skill[Enum.GetValues(typeof(SkillName)).Length];
Debug.Log(_primaryAttribute.Length);
for(int cnt = 0; cnt < _primaryAttribute.Length; cnt++) {
==========>> _primaryAttribute[cnt] = new Attribute(); <<<<<<<<<<<<<<============== Из-за этого падает ================================
Debug.Log(cnt);
}
//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() {
Debug.Log(_primaryAttribute.Length);
for(int cnt = 0; cnt < _primaryAttribute.Length; cnt++) {
_primaryAttribute[cnt] = new Attribute();
Debug.Log(cnt);
}
}
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).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), .5f));
//energy
GetVital((int)VitalName.Energy).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), 1));
//mana
GetVital((int)VitalName.Mana).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), 1));
}
private void SetupSkillModifiers() {
//melee offence
GetSkill((int)SkillName.Melee_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Might), .33f));
GetSkill((int)SkillName.Melee_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));
//melee defence
GetSkill((int)SkillName.Melee_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
GetSkill((int)SkillName.Melee_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Constituion), .33f));
//magic offence
GetSkill((int)SkillName.Magic_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
GetSkill((int)SkillName.Magic_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));
//magic defence
GetSkill((int)SkillName.Magic_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
GetSkill((int)SkillName.Magic_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Willpower), .33f));
//range offence
GetSkill((int)SkillName.Ranged_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Concentration), .33f));
GetSkill((int)SkillName.Ranged_Offence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .33f));
//range defence
GetSkill((int)SkillName.Ranged_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Nimbleness), .33f));
GetSkill((int)SkillName.Ranged_Defence).AddMidifier(new ModifyingAttribute(GetPrimaryAttribute((int)AttributeName.Speed), .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();
}
}
В чём может быть проблема, странно то, что в уроках всё работает. Хотя у меня версия 3,1 а там 3,0 , но не думаю что из-за этого)