C# Новый экземпляр класса возвращает ноль - PullRequest
1 голос
/ 04 мая 2020

Я пытаюсь создать экземпляр нового класса 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.), Но все еще нулевым.

...