public virtual void Awake() { // must be on Awake because of Initialization Timing _characterStats = new CharacterStats(); _characterStats.GetDataFromCharacterClass(_characterClass); _characterHPMPManager = GetComponent <CharacterHPMPManager>(); _characterHPMPManager.InitializeLinkCharacter(this); _characterLevelManager = GetComponent <CharacterLevelManager>(); _characterLevelManager?.Initialize(this); _battleAI = GetComponent <BattleAI>(); _characterAbilities = GetComponent <CharacterAbilities>(); _characterAbilities?.InitializeCharacterAbilities(); _characterCamera = GetComponentInChildren <CharacterCamera>(); _characterBattleAnimator = GetComponentInChildren <CharacterBattleAnimator>(); }