Показать сообщение отдельно
Старый 18.10.2020, 11:41   #22
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Очередные вопросы от меня по игровой логике и скриптингу

Тогда просто меняй в моем пример Unit на MonsterInfo. Вот тебе еще пример)

for(int i FightScene.Units.Count-1i>=0i--)
{
    
// если в списке уже уничтоженный объект
    
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);
           }
    }

__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Crystal (18.10.2020)