IEnumerator LoadStats() { yield return(new WaitUntil(() => enemyStats.isLoaded == true)); animalName = enemyStats.AnimalName; currentHp = enemyStats.MaxHealth; moveType = enemyStats.MoveType; animalName = enemyStats.AnimalName; moveAmount = enemyStats.MoveAmount; moveSpeed = enemyStats.MoveSpeed; moveDelay = enemyStats.MoveDelay; atk = enemyStats.Atk; attackType = enemyStats.AttackType; weapon = enemyStats.Weapon; noOfShots = enemyStats.Shots; atkRange = enemyStats.AtackRange; atkSpeed = enemyStats.AtkSpeed; targetDelay = enemyStats.TargetDelay; exp = enemyStats.Exp; reward = enemyStats.Reward; hpReward = enemyStats.HpReward; sprite = enemyStats.Sprite; size = enemyStats.Size; moveAbility = enemyStats.MoveAbility; shootAbility = enemyStats.ShootAbility; enemySprite.spriteName = sprite; spawnPos = transform.position; healthSlider.value = currentHp / (float)enemyStats.MaxHealth; isAlive = true; yield return(new WaitForSeconds(0.2f));//Break so that everything can be loaded first enemyChaser.Init(); shooter.Init(weapon, this, motor, projectilePrefab, gunEnd); motor.Init(this, enemyCollider); yield return(new WaitForSeconds(1.8f)); DoANewThing = true; }