You can have the factory method where you instantiate the prefab in WaveManagerWaveManager also call InitializeInitialize on the EnemyAttackEnemyAttack after you initialize EnemyEnemy. There you would execute the code currently in AwakeAwake. This allows you to control how you initialize these components that depend on each other and orchestrate the order in which that happens.