private async UniTaskVoid RoundStartTask(GamePlaySettingData gamePlaySettingData) { Debug.Log("なんかいっぱい準備する"); // なんかスタートする var players = _playerProvider.GetCurrentPlayers(); var spawnPoints = new Queue <Transform>(); _stageMapSetting.GetPlayerSpawnPoints().ForEach(x => spawnPoints.Enqueue(x)); players.ForEach(x => _stageScoreManager.AddPlayer(x)); players.ForEach(x => { var player = _playerFactory.Create(x); var spawnPoint = spawnPoints.Dequeue(); player.transform.position = spawnPoint.position; player.transform.rotation = spawnPoint.rotation; var basket = _basketFactory.Create(); player.SetBasket(basket); basket.transform.localPosition = Vector3.zero; }); // debug用 var gameObject = new GameObject(); var scoreView = gameObject.AddComponent <DebugPlayerScoreView>(); scoreView.Setup(_scoreManager); var correctedCount = 0; while (correctedCount < _currentGamePlaySetting.CorrectCount) { correctedCount++; // 次の便まで待つ await UniTask.Delay(TimeSpan.FromSeconds(_currentGamePlaySetting.CorrectInterval)); // 便がくる // 回収装置が満タンになるまで待つ // 回収装置が退場する // ポイントが精算される。 } if (_cancellationTokenSource.IsCancellationRequested) { return; } // 終了~~~~~ SceneManager.LoadScene("ResultScene"); }
public void Setup(GamePlaySettingData gamePlaySettingData) { _currentGamePlaySetting = gamePlaySettingData; }