/// <summary> /// Provide an API for outside caller to set the difficulty levels. /// </summary> /// <param name="level"> /// The level. /// </param> public void SetDifficulty(Difficulty level) { this.currentDifficulty = level; }
// Update is called once per frame void Update() { if (Time.time > nextSpawnTime) { float secondsBetweenSpawns = Mathf.Lerp(secondsBetweenSpawnsMinMax.y, secondsBetweenSpawnsMinMax.x, Difficulty.GetDifficultyPercent()); nextSpawnTime = Time.time + secondsBetweenSpawns; float spawnAngle = Random.Range(-spawnAngleMax, spawnAngleMax); float spawnSize = Random.Range(spawnSizeMinMax.x, spawnSizeMinMax.y); Vector2 spawnPosition = new Vector2(Random.Range(-screenHalfWidthInWorldUnits.x, screenHalfWidthInWorldUnits.x), screenHalfWidthInWorldUnits.y + spawnSize); GameObject fallingBlock = (GameObject)Instantiate(fallingBlockPrefab, spawnPosition, Quaternion.Euler(Vector3.forward * spawnAngle)); fallingBlock.transform.localScale = Vector2.one * spawnSize; fallingBlock.transform.parent = transform; } }