void OnStateChanged() { var isWaiting = false; switch (_currentState) { case TowerState.PLACING: mainCamera.Retarget(rows [rows.Count - 1].transform); mainCamera.distance = 4; ToggleBlocksLock(true); blockPlacer.enabled = true; break; case TowerState.REMOVING: mainCamera.Retarget(towerCenter.transform); mainCamera.distance = 6; blockPlacer.enabled = false; ToggleBlocksLock(false); break; case TowerState.WAITING: mainCamera.Retarget(towerCenter.transform); mainCamera.distance = 10; blockPlacer.enabled = false; waitTimer = 0f; isWaiting = true; ToggleBlocksLock(true); break; case TowerState.FALLING: ToggleBlocksLock(true); GameManager.instance.State = GameState.OVER; break; } if (StateChanged != null) { StateChanged(this, new TowerStateChangedEventArgs(State, isWaiting)); } }