Вам просто нужно использовать логическое значение или состояние независимо от того, что вы предпочитаете, и просто избегать создания новых экземпляров.
Может быть что-то вроде этого в SpawnerController создать логическое значение, называемое, например, spawneable, это логическое значение может быть общедоступными вы можете изменить его от смерти игрока до ложного, и таким образом вы остановите клонирование:
void Update()
{
if (timeBtwSpawns <= 0)
{
if(spawneable)
{
int randPos = Random.Range(0, spawnSpots.Length);
Instantiate(duck, spawnSpots[randPos].position, Quaternion.identity);
timeBtwSpawns = startTimeBtwSpawns;
}
}
else
{
timeBtwSpawns -= Time.deltaTime;
}
}
Это самый простой способ, который я могу себе представить, не самый лучший, но у вас это получилось за нескольколинии.