Показать сообщение отдельно
Старый 18.10.2020, 11:15   #21
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: Очередные вопросы от меня по игровой логике и скриптингу

Сообщение от pax Посмотреть сообщение
А можешь показать пример как ты это используешь? По идее должно работать...



Не обратил внимания, что твой список это 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;
               }
        }


Пример показать не могу, к сожалению я бэкапнулся на 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;
}


З.ы. Меня устроил твой вариант с полной очисткой листа, так и будет когда снова дойду до этого дела.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием