I want to change the stats of enemies mid game depending on the player score… so i’m checking if the score is more than the required score for each enemy on each frame using the update method. This is a bad solution for it and I want to know if there is any better ones. Thanks
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyStateChanger : MonoBehaviour
{
[Header("Normal Parrot Limit")]
[SerializeField] Enemy normalParrot;
[SerializeField] int normalParrotOriginalSpawnLimit;
[SerializeField] int normalParrotMidGameSpawnLimit;
[SerializeField] int normalScoreRequiredToChangeLimit;
[Header("Fast Parrot Speed")]
[SerializeField] Enemy fastParrot;
[SerializeField] float fastParrotOriginalSpeed;
[SerializeField] float fastParrotNewSpeed;
[SerializeField] int fastParrotScoreRequiredToChangeSpeed;
[Header("Big Parrot Limit")]
[SerializeField] Enemy bigParrot;
[SerializeField] int bigParrotOriginalSpawnLimit;
[SerializeField] int bigParrotMidGameSpawnLimit;
[SerializeField] int bigParrotLateGameSpawnLimit;
[SerializeField] int bigMidScoreRequiredToChangeLimit;
[SerializeField] int bigLateScoreRequiredToChangeLimit;
[Header("Fluff Cannon Limit")]
[SerializeField] Enemy fluffCannon;
[SerializeField] int fluffCannonOriginalSpawnLimit;
[SerializeField] int fluffCannonMidGameSpawnLimit;
[SerializeField] int fluffCannonLateGameSpawnLimit;
[SerializeField] int fluffMidScoreRequiredToChangeLimit;
[SerializeField] int fluffLateScoreRequiredToChangeLimit;
private void Start()
{
fluffCannon.setSpawnLimit(fluffCannonOriginalSpawnLimit);
normalParrot.setSpawnLimit(normalParrotOriginalSpawnLimit);
fastParrot.GetComponent<MoveObject>().setSpeed(fastParrotOriginalSpeed);
bigParrot.setSpawnLimit(bigParrotOriginalSpawnLimit);
}
private void Update()
{
if (ScoreManager.currentScore >= fluffMidScoreRequiredToChangeLimit)
fluffCannon.setSpawnLimit(fluffCannonMidGameSpawnLimit);
if (ScoreManager.currentScore >= fluffLateScoreRequiredToChangeLimit)
fluffCannon.setSpawnLimit(fluffCannonLateGameSpawnLimit);
if (ScoreManager.currentScore >= normalScoreRequiredToChangeLimit)
normalParrot.setSpawnLimit(normalParrotMidGameSpawnLimit);
if (ScoreManager.currentScore >= bigMidScoreRequiredToChangeLimit)
bigParrot.setSpawnLimit(bigParrotMidGameSpawnLimit);
if (ScoreManager.currentScore >= bigLateScoreRequiredToChangeLimit)
bigParrot.setSpawnLimit(bigParrotLateGameSpawnLimit);
if (ScoreManager.currentScore >= fastParrotScoreRequiredToChangeSpeed)
fastParrot.GetComponent<MoveObject>().setSpeed(fastParrotNewSpeed);
}
}