private void OnInstaller(SlingManager slingManager) { _slingManager = slingManager; LevelEventBus.SubscribeEvent(LevelEventType.STARTED, () => _deleteIndex = 0); LevelEventBus.SubscribeEvent(LevelEventType.LEVEL_UP, () => DeleteLevel(_deleteIndex++)); }
public void Detect() { if (!_isActive) { return; } _ray.origin = _carBase.transform.position; _ray.direction = _carBase.transform.forward; if (Physics.Raycast(_ray, out _raycastHit, 3f, _layerMask)) { var final = _raycastHit.collider.GetComponentInParent <FinalHighway>(); if (final != null) { final.FinishLevel(_carBase); DisableDetectorForSeconds(2); } else { DisableDetectorForSeconds(1); LevelEventBus.InvokeEvent(LevelEventType.FAIL); } } }
private void Awake() { _levelGenerator.Initialize(); _playerView.Initialize(); _carBase.Initialize(); LevelEventBus.SubscribeEvent(LevelEventType.STARTED, (number) => { Debug.Log("Gameplay Count : " + number); }); }
public CarSlingController(CarDirectionController carDirectionController, SlingManager slingManager, PlayerView playerView) { _slingManager = slingManager; _carDirectionController = carDirectionController; _playerView = playerView; LevelEventBus.SubscribeEvent(LevelEventType.STARTED, () => { _targetSling = null; _targetSlingIndex = 0; }); }
public void Initialize() { ButtonVisible(true); _levelUpText.enabled = false; _counterText.enabled = false; _startButton.onClick.AddListener(() => LevelEventBus.InvokeEvent(LevelEventType.STARTED)); _startButton.onClick.AddListener(() => LevelEventBus.InvokeEvent(LevelEventType.STARTED, ++_gamePlayCount)); LevelEventBus.SubscribeEvent(LevelEventType.STARTED, () => { UpdateCounter(0); _counterText.enabled = true; ButtonVisible(false); }); LevelEventBus.SubscribeEvent(LevelEventType.FAIL, () => ButtonVisible(true)); LevelEventBus.SubscribeEvent(LevelEventType.LEVEL_UP, OnLevelUp); }
public void Initialize() { LevelEventBus.SubscribeEvent(LevelEventType.FAIL, () => { _finalHighway = null; _levelIndex = 0; _levelManager.DeleteWholeLevels(); }); LevelEventBus.SubscribeEvent(LevelEventType.STARTED, () => { GenerateLevels(3); _carBase.SetCarPosition(_levelManager.GetHighwayOfLevel(0, 0).transform); }); LevelEventBus.SubscribeEvent(LevelEventType.LEVEL_UP, () => { Timer.Instance.TimerWait(5f, () => GenerateLevels(1)); }); }
public void Initialize(CarSlingController carSlingController) { IsActive = false; _carSlingController = carSlingController; _driftEffect = GetComponentInChildren <TrailRenderer>(); LevelEventBus.SubscribeEvent(LevelEventType.STARTED, () => { IsActive = true; _driftEffect.Clear(); }); LevelEventBus.SubscribeEvent(LevelEventType.FAIL, () => { IsActive = false; }); _carCornerDetector = new CarCornerDetector(transform); _movingActive = true; }
public void Initialize() { _carCamera = _carCamera == null ? Camera.main : _carCamera; _cameraOffset = _carCamera.transform.position - transform.position; _carDirectionController = new CarDirectionController(transform); _carSlingController = new CarSlingController(_carDirectionController, _slingManager, _playerView); _carMovementController = GetComponent <CarMovementController>(); _carMovementController.Initialize(_carSlingController); LevelEventBus.SubscribeEvent(LevelEventType.STARTED, () => { gameObject.SetActive(true); }); LevelEventBus.SubscribeEvent(LevelEventType.FAIL, () => { gameObject.SetActive(false); }); }
public void FinishLevel(Transform car) { var finishPos = FinishPosition; switch (Direction) { case HighwayDirection.UP: finishPos.x -= 20; break; case HighwayDirection.LEFT: finishPos.z += 20; break; case HighwayDirection.RIGHT: finishPos.z -= 20; break; } car.transform.DOMove(finishPos, 1f); LevelEventBus.InvokeEvent(LevelEventType.LEVEL_UP); }
public CarDirectionController(Transform carBase) { _carBase = carBase; LevelEventBus.SubscribeEvent(LevelEventType.FAIL, () => _handleAnim.Kill()); }