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

Сообщение от Crystal Посмотреть сообщение
Это не работает, ночью я пробовал такой вариант.
Сейчас тоже попробовал, и тоже не работает.
А можешь показать пример как ты это используешь? По идее должно работать...

Сообщение от Crystal Посмотреть сообщение
Здесь "IsDead" это что и откуда? Я тут не понял где это должно быть вбито у объекта.
Не обратил внимания, что твой список это GameObject. Вот пример при котором я предполагаю, что у тебя на каждом юните висит одноименный класс Unit:
for(int i FightScene.Units.Count-1i>=0i--)
{
    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 
UnitMonoBehaviour
{
        public 
int health 100;

        public 
bool IsDead => health <= 0;


Пример класса Unit (свойство IsDead в виде обычного свойства только для чтения)
using UnityEngine;

public class 
UnitMonoBehaviour
{
        public 
int health 100;

        public 
bool IsDead
        
{
               
get
               
{
                      return 
health <= 0;
               }
        }


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