Тогда просто меняй в моем пример Unit на MonsterInfo. Вот тебе еще пример)
for(int i = FightScene.Units.Count-1; i>=0; i--)
{
// если в списке уже уничтоженный объект
if(FightScene.Units[i] == null)
{
// просто его удаляем из списка
FightScene.Units.RemoveAt(i);
}
else
{
// объект в списке не уничтожен
// берем с объекта компонент MonsterInfo
var monsterInfo = FightScene.Units[i].GetComponent<MonsterInfo>();
// если компонента нет, то это не монстр, если это монстр, то смотрим его жизни,
// если сдох, уничтожаем и выкидываем из списка
if(monsterInfo != null && monsterInfo.HP <= 0)
{
Destroy(FightScene.Units[i]);
FightScene.Units.RemoveAt(i);
}
}
}