private void Update() { spawnRate = defaultSpawnRate + ((float)currentScore / 100000f); asteroidMaxInstance = defaultAsteroidMaxInstance + ((int)currentScore / 5000); if (spawnTime > 0 && asteroidCounter < asteroidMaxInstance) { spawnTime -= Time.deltaTime; if (spawnTime <= 0) { int pos = Random.Range(0, spawnPointTotal); asteroidCounter++; try { asteroidManager.Spawn(pos); } catch { int type = Random.Range(0, asteroidPrefab.Length); asteroidManager.Create(type, pos); } // reset timer spawnTime = 1f / spawnRate; } } else { spawnTime = 1f / spawnRate; } if (currentScore >= 5000) { if (ufoSpawnTime > 0 && ufoCounter < maxUFOInstance) { ufoSpawnTime -= Time.deltaTime; if (ufoSpawnTime <= 0) { CreateUFO(); ufoSpawnTime = 20; } } else { ufoSpawnTime = 20; } } }