private void Awake() { _interactiveObject = new ListExecuteObject(); _reference = new Reference(); PlayerBase player = _reference.PlayerBall; _cameraController = new CameraController(_reference.PlayerBall.transform, _reference.MainCamera.transform); _interactiveObject.AddExecuteObject(_cameraController); if (Application.platform == RuntimePlatform.WindowsEditor) { _inputController = new InputController(_reference.PlayerBall); _interactiveObject.AddExecuteObject(_inputController); } _displayEndGame = new DisplayEndGame(_reference.EndGame); _displayBonuses = new DisplayBonuses(_reference.Bonus); _displayWinGame = new DisplayWinGame(_reference.Win); foreach (var o in _interactiveObject) { if (o is BadBonus badBonus) { badBonus.OnCaughtPlayerChange += CaughtPlayer; badBonus.OnCaughtPlayerChange += _displayEndGame.GameOver; } if (o is GoodBonus goodBonus) { goodBonus.onPointChange += AddBonus; _bonusGOCount++; } } _reference.RestartButton.onClick.AddListener(RestartGame); _reference.RestartButton.gameObject.SetActive(false); }
public ExecutController(PlayerBase player, CameraController cameraController) { _interactiveObjects = new ListInteractiveObject(); _executeObjects = new ListExecuteObject(player, cameraController); }