Войти
Unreal EngineФорумОбщее

Begin Play вызывается дважды

#0
(Правка: 22:33) 22:22, 21 окт. 2020

Есть простой актер на карте
И у него BeginPlay вызывается дважды, что приводит к кривой инициализации этого актера.
Конечно можно закостылить это DoOnce, но разве двойной вызов возможен?

Актер
Изображение

вывод в логе

LogLevel: ActivateLevel /Game/Maps/MenuMaps/UEDPIE_0_LoadingMap 1 1 0 - карта лоадера 
LogBlueprintUserMessages: [BP_Hydro_MaintenancePanel2_11] 1 - первый вызов
LogLevel: ActivateLevel /Game/Maps/UEDPIE_0_Hydroponics 1 1 0 - карта с актером
LogBlueprintUserMessages: [BP_Hydro_MaintenancePanel2_11] 2 - второй вызов

Я выявил зависимость между тем где спавнится игрок и этим багов, если игрок спавнится на карте с этим актором, то баг есть. Но если карту подгрузить потом, то бага нету.
Спавню актера игрока и цепляю его к контроллеру после того как карта загрузится.

Вероятно лажает где то загрузка уровней, сейчас ее ковыряю, но может кто сталкивался с таким поведением и подскажет ответ:)

ps не в том подразделе случайно создал тему...


#1
(Правка: 1:06) 0:58, 22 окт. 2020

и спустя 4 часа поисков, гуглинга и дебага я нашел в чем косяк был:)
это комбинация из levelstreamingvolume и play in editor. Оно по только эпикам ведомой причине загружало в память уровень(в том числе и бегин плей акторов) с которого я давил "play" в редакторе и не выгружая его запускала стандартный пайп и снова запускала бегин плей, хотя я не абсолютно уверен в том что это именно так работало.

Решил я просто - повыключал волумы в редакторе, потом после загрузки нужных уровней включаю их обратно.

Unreal EngineФорумОбщее