Вопрос неопределенный, но я думаю, что понимаю достаточно, чтобы ответить.
Прежде всего, ваше утверждение, что ваше утверждение "если" вообще ничего не делает, является ложным и вводящим в заблуждение.Если после нажатия кнопки Alpha2 появляется ошибка, это означает, что код успешно попытался выполнить все, что есть в операторе if.
Проблема заключается в том, что ваш клон Gameobject не назначен.Переменная похожа на пустую оболочку или шелуху, которая может содержать и указывать на игровой объект, который у вас есть внутри игры.
Вот очень простой кусок кода для поведения, которое вы описали:
[SerializeField] Gameobject clonePrefab; //You have to drag and drop a prefab from Unity here
List<Gameobject> clones=new List<Gameobject>();
void Start(){
for(i=0,i<10,i++){
clones.Add(Instantiate(clonePrefab));
}
}
void Update(){
if (Input.GetKeyDown(KeyCode.Alpha2))
{
for(i=0,i<clones.Count,i++){
Destroy(clones[i]);
}
}
}