/// <summary> /// アバター配置 /// </summary> /// <param name="autoStartTimer">タイマーを作動させるかどうか</param> public void SpawnAvatar(bool autoStartTimer = true) { // 2回インクリメントして正しくない挙動ですが、 // 運用中のランキングに影響出るので仕様としました>< var nextNum = (int)_spawnNumCurve.Evaluate(++_spawnCount); var nextTrapNum = (int)_spawnTrapNumCurve.Evaluate(++_spawnCount); do { // ダンジョン自動生成 _mazeGenerator.GenerateMaze(); // 各種オブジェクト配置 _mazeGenerator.ClearObjects(); _mazeGenerator.SpawnGoal(nextNum); _mazeGenerator.SpawnAvatar(nextNum); _mazeGenerator.SpawnTrap(nextTrapNum); // 迷路が狭すぎてアバターを配置できない場合は、生成からやり直す var spawnedObjects = _mazeGenerator.GetSpawnedObjects(); if (spawnedObjects.Exists(x => x.GetComponent <AvatarControlChecker>() != null)) { break; } } while (true); _timer.StopTimer(); if (autoStartTimer) { _timer.StartTimer(); } }
private IEnumerator ShootTimer() { circularTimer?.StartTimer(forcedShotTime, delegate { }); shotSpeed = baseShotSpeed; elapsedTime = 0.0f; while (elapsedTime < forcedShotTime) { elapsedTime += Time.deltaTime; yield return(null); } Shoot(); }
public void StartTimer() { timer.StartTimer(); }
/// <summary> /// ゲーム開始通知 /// </summary> public void OnGameStart() { _state.Value = GameState.Playing; _timer.StartTimer(); }