private void Awake() { var monsterPools = statsHolder.FindObjectByType <MonsterStats>(); _blockManager = GetComponentInChildren <MapBlockManager>(); _mapGrid = GetComponentInChildren <MapGrid>(); _gameInputManager = GetComponentInChildren <GameInputManager>(); _gameInteractorCtrl = GetComponentInChildren <InGameUICtrl>(); _poolManager = GetComponentInChildren <PoolManager>(); _gameUnitManager = GetComponentInChildren <GameUnitManager>(); _levelDesignManager = GetComponentInChildren <LevelDesignManager>(); _headView = GetComponentInChildren <HeaderView>(); _mapBlockBottomView = GetComponentInChildren <MapBlockBottomView>(); _mapGrid.SetUp(); _gameInputManager.SetUp(_mapGrid, _blockManager); _gameUnitManager.SetUp(_blockManager, _mapGrid, poolingTheme.total); _levelDesignManager.Init(_gameUnitManager, _blockManager, _mapGrid, monsterPools); _gameInteractorCtrl.SetUp(_gameInputManager, _gameUnitManager, _levelDesignManager, _mapGrid, _blockManager, poolingTheme, statsHolder); }