Цитата Сообщение от SlavikSG Посмотреть сообщение
Не-не-не!!! Сори!
Я этой функцией вывода вспомогательного сообщения, только ввел вас в заблуждение.
Все! Забыли про Sss("Удалили красную зену: " + actorName); Дело вовсе не в этом. Ошибка есть так или иначе. Вот код без этой функции и ошибка все равно возникает:
Код:
public override void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> damages)
{
base.OnActorDead(missionNumber, shortName, actor, damages);
if (actor is AiGroundActor)
   {
    (actor as AiGroundActor).Destroy();
   }
}
Проверил только что еще раз. Ошибка есть. И нет ошибки, если проделать все тоже самое, но с секундной задержкой.
Но подчеркиваю: И в том и в этом случае, зенитка все равно нормально удаляется.
Сорри, я сейчас в отпуске, поэтому только набегами и проверить что да как не могу. По дестрою умершего объекта до меня только сейчас дошло - во время actorDie на объект цепляются всякие дымы, огни и пр. эффекты, которые какое-то время инициализируются и через какое-то время должны прекратиться, если такой умерший объект задестроить - вылезет NullReferenceException при попытке системой обработать эти эффекты. Плюс, убитые пушки, например, при убийстве принимают "дохлый вид" не заменой на модельку дохлой, а приведением живой к дохлому виду - темнеет, опускает ствол и т.д., соответственно, игра пытается довернуть ствол в "мёртвое состояние " а объект скриптом уже задестроен - вот NullReferenceExceptionи выскакивает.