Я пытаюсь создать экземпляр нового класса Character, но он возвращает значение NULL (хотя некоторые переменные класса создаются).
Я пытался создать конструктор, но класс Character содержит ScriptableObject (CharacterClass) и Я не могу сделать полный конструктор.
Что я могу сделать?
Поля класса символов, конструктор и метод инициализации:
public string _className;
public CharacterClass _characterClass;
public bool _isTheFocus;
public int _level;
public int _targetXP;
[ProgressBar(0, "_targetXP")] public int _currentXP;
public CharacterStat _HP;
public int _currentHP;
public int _currentShield;
public CharacterStat _physicalAttack;
public CharacterStat _magicalAttack;
public CharacterStat _physicalDefense;
public CharacterStat _magicalDefense;
public List<CharacterState> _characterStates;
public Character() {
_className = "";
_isTheFocus = false;
_level = 0;
_currentXP = 0;
_targetXP = 0;
_HP = new CharacterStat();
_currentHP = 0;
_currentShield = 0;
_physicalAttack = new CharacterStat();
_magicalAttack = new CharacterStat();
_physicalDefense = new CharacterStat();
_magicalDefense = new CharacterStat();
_characterStates = new List<CharacterState>();
}
public void Initialization() {
_className = _characterClass._className;
_level = 1;
_HP = new CharacterStat(_characterClass.HP);
_physicalAttack = new CharacterStat(_characterClass.PhysicalAttack);
_magicalAttack = new CharacterStat(_characterClass.MagicalAttack);
_physicalDefense = new CharacterStat(_characterClass.PhysicalDefense);
_magicalDefense = new CharacterStat(_characterClass.MagicalDefense);
InitializeHPGrowth();
InitializeStatGrowth(_physicalAttack.Value, ref physicalAttackDie);
InitializeStatGrowth(_magicalAttack.Value, ref magicalAttackDie);
InitializeStatsPercent(ref _physicalDefense.BaseValue);
InitializeStatsPercent(ref _magicalDefense.BaseValue);
InitializeStats();
ExpNextLevel();
}
Метод создания нового класса символов:
public void InitClassToBufferCharacter(CharacterClass targetClass) {
bufferCharacter = new Character();
bufferCharacter._characterClass = targetClass;
bufferCharacter.Initialization();
}
Результат BufferCharacter:
BufferCharacter
BufferCharacter был инициализирован методом инициализации (level, hp, et c.), Но все еще нулевым.