Сообщение от pax
А можешь показать пример как ты это используешь? По идее должно работать...
Не обратил внимания, что твой список это GameObject. Вот пример при котором я предполагаю, что у тебя на каждом юните висит одноименный класс Unit:
for(int i = FightScene.Units.Count-1; i>=0; i--) { if(FightScene.Units[i] == null || FightScene.Units[i].GetComponent<Unit>().IsDead) { Destroy(FightScene.Units[i]); FightScene.Units.RemoveAt(i); } }
А вот пример класса Unit (свойство IsDead в виде лямбда функции):
using UnityEngine;
public class Unit: MonoBehaviour { public int health = 100;
public bool IsDead => health <= 0;
}
Пример класса Unit (свойство IsDead в виде обычного свойства только для чтения)
using UnityEngine;
public class Unit: MonoBehaviour { public int health = 100;
public bool IsDead { get { return health <= 0; } }
}
|
Пример показать не могу, к сожалению я бэкапнулся на 14 октября,
на момент до соединения двух сцен в одну. Да и собственно тыб там не разобрался,
скрипты содержащие нужные участки огромные. В принципе пост 17 это и есть вырезки из существовавшего кода.
17
Нет у меня на каждом юните класса юнит,
висит отдельный скрипт в монобехавере с переменными,
хранщими в себе нужные цифры. Переменная смерти там есть.
public class MonsterInfo : MonoBehaviour
{
public int MonsterNumber; //Порядковый номер монстра
public int ThreatLevel; //Уровень угрозы монстра
public int MonsterControl = 0; //Статус выделения монстра, по умолчанию "0" не выделен.
public float MAXHP;
public float HP;
public int MonsterDeath = 0; // Смерть монстра, 1 - это труп.
public float SilaMin;
public float SilaMax;
public float Udacha;
public float LEVEL; // Уровень монстра.
public float EXPAMAX; // Максимальная экспа до левелапа.
public float EXPA; // Текущая экспа.
public float VALUATION; // Ценность в экспе за убийство этого монстра
public int Storona; // Чей монстр: 1. Дикий, 2. Вражеский, 3. Наш, 4. Союзнический.
public int NomerHoda; // Номер под которым ходит наш монстр.
public float GKU = 0f; // Готовность монстра к удару
public int MonsterSkill1;
public int MonsterSkill1Range;
public int MonsterSkill1Position;
public int MonsterSkill2;
public int MonsterSkill2Range;
public int MonsterSkill2Position;
public int MonsterSkill3;
public int MonsterSkill3Range;
public int MonsterSkill3Position;
public int MonsterSkill4;
public int MonsterSkill4Range;
public int MonsterSkill4Position;
public int MonsterSkill5;
public int MonsterSkill5Range;
public int MonsterSkill5Position;
public int MonsterSkill6;
public int MonsterSkill6Range;
public int MonsterSkill6Position;
}
З.ы. Меня устроил твой вариант с полной очисткой листа, так и будет когда снова дойду до этого дела.