// Update is called once per frame void Update() { if (!activePlayerInstance) { if (Input.GetKeyDown(KeyCode.Alpha1) && characters.Count > 0) { SpawnCharacter(characters[0]); } else if (Input.GetKeyDown(KeyCode.Alpha2) && characters.Count > 1) { SpawnCharacter(characters[1]); } else if (Input.GetKeyDown(KeyCode.Alpha3) && characters.Count > 2) { SpawnCharacter(characters[2]); } } //update UI if (activePlayerInstance) { Health playerHealth = activePlayerInstance.GetComponent <Health>(); if (playerHealth) { playerHealthText.text = Mathf.Max(0, playerHealth.currentHealth).ToString(); } else { playerHealthText.text = "No Health"; } } else { playerHealthText.text = "???"; } if (scoreText) { scoreText.text = string.Format("Score: {0}", score); } float enemyMultiplier = 1; if (progressManager) { var progressStage = progressManager.GetCurrentStage(); if (progressStage != null) { enemyMultiplier = progressStage.enemyMultiplier; } } //spawn if (activeEnemies.Count < maxEnemies * enemyMultiplier) { var enemy = PickRandomEnemy(enemies); SpawnEnemy(enemy); } //spawn flying if (activeFlyingEnemies.Count < maxFlyingEnemies * enemyMultiplier) { var enemy = PickRandomEnemy(flyingEnemies); SpawnFlyingEnemy(enemy); } optimiseEnemyTick += Time.deltaTime; if (optimiseEnemyTick > 1.0f) { //cleanup null enemies activeEnemies.RemoveAll(v => v == null); activeFlyingEnemies.RemoveAll(v => v == null); //optimise enemies OptimiseEnemies(activeEnemies); //OptimiseEnemies(activeFlyingEnemies); //don't optimise flying enemies or they can't fly to the player optimiseEnemyTick = 0; } //mute button if (Input.GetButtonDown("Mute")) { AudioListener audioListener = followCamera.GetComponent <AudioListener>(); audioListener.enabled = !audioListener.enabled; } if (Input.GetButtonDown("PixelScaleToggle")) { var pixelScaleHelper = followCamera.GetComponent <PixelCameraHelper>(); if (pixelScaleHelper) { pixelScaleHelper.pixelScale = pixelScaleHelper.pixelScale == 1 ? 2 : 1; } } }