Цитата Сообщение от podvoxx Посмотреть сообщение
Код:
public override void OnTrigger(int missionNumber, string shortName, bool active)
    {
        base.OnTrigger(missionNumber, shortName, active);

        if ("A_defend_B".Equals(shortName) && active)
        {       
            smpSendMSG.SendMessageToAll("*** Юнит красных вошел в зону - подмиссия [ {0} ], trigger - [ {1} ]", "Chat", missionNumber, shortName);
            GamePlay.gpGetTrigger(shortName).Enable = false;
        }
    }
Не срабатывает триггер после первого раза.
Пробовал и так:
GamePlay.gpGetTrigger(shortName).Enable = true;

Может вообще не так делаю?
Посмотрел, вспомнил как оно работает . active устанавливается при входе объекта в зону триггера, сбрасывается при выходе из зоны, OnTrigger срабатывает и в первом и во втором случае. Т.о. если машинка заехала в зону триггера и не выехала - active будет true и следующая въехавшая машинка изменить и, соответственно, вызвать OnTrigger не сможет. Если машинка проехала зону триггера - на въезде она установит active , на выезде снимет его (будет 2 вызова OnTrigger ), следующая машинка въехав установит active, выехав - снимет, и т.д. Ну а Enable - просто разрешает или запрещает работу триггера.