Size: a a a

2019 March 20

PL

Peter Leontev in Unreal Engine
Alexey Sarapulov
Я вижу, что это нужный флаг, но почему-то у меня по нему отсекается и обычный объект, который я создаю на сцене.
Проверяю как if (GetFlags() & RF_ClassDefaultObject)
А, похоже логика сложнее, чем кажется
источник

PL

Peter Leontev in Unreal Engine
Alexey Sarapulov
Заметил, что во время загрузки проекта выполняются конструкторы и OnConstruction моих Акторов даже если их нет на сцене. Что это такое? Вылезает куча ворнингов из-за того, что выполняется код до того, как мир загружен.
а что у тебя там за код в конструкторе?
источник

AS

Alexey Sarapulov in Unreal Engine
Peter Leontev
а что у тебя там за код в конструкторе?
У меня есть StyleSet, который я настраиваю через объект в ассетах. И задумка такая: когда объект создается на сцене впервые, то он берет установленный стиль. Т.е. если загружается сцена, на которой уже стоит объект, он не должен снова лезть в стиль.
Я в общем-то с этим справляюсь, но CDO лезет в стиль, который еще на этот момент не инициализирован, и выдает ошибки или ворнинги.
источник

PL

Peter Leontev in Unreal Engine
Alexey Sarapulov
У меня есть StyleSet, который я настраиваю через объект в ассетах. И задумка такая: когда объект создается на сцене впервые, то он берет установленный стиль. Т.е. если загружается сцена, на которой уже стоит объект, он не должен снова лезть в стиль.
Я в общем-то с этим справляюсь, но CDO лезет в стиль, который еще на этот момент не инициализирован, и выдает ошибки или ворнинги.
можешь сделать в Actor::PostLoad назначение стиля
источник

AS

Alexey Sarapulov in Unreal Engine
Peter Leontev
можешь сделать в Actor::PostLoad назначение стиля
PostLoad() почему-то не запускается, когда я спавню объект на сцене
источник

AS

Alexey Sarapulov in Unreal Engine
Но запускается при открытии сцены
источник

PL

Peter Leontev in Unreal Engine
потому что он вызывается только для уже сериализованных объектов
источник

AS

Alexey Sarapulov in Unreal Engine
Тогда это мне не подходит
источник

PL

Peter Leontev in Unreal Engine
тебе нужен PostActorCreated
источник

AS

Alexey Sarapulov in Unreal Engine
Спасибо, попробую создать в нем
источник

PL

Peter Leontev in Unreal Engine
но имей ввиду, что PostLoad для уже сохраненного объекта на сцене
источник

PL

Peter Leontev in Unreal Engine
а PostActorCreated, емнип, нет
источник

AS

Alexey Sarapulov in Unreal Engine
Peter Leontev
а PostActorCreated, емнип, нет
Мне как раз и надо запускать свой код только для нового объекта
источник

PL

Peter Leontev in Unreal Engine
вроде ещё какой-то метод есть, куда можно добавить твой код, но я не помню название
источник

PL

Peter Leontev in Unreal Engine
Alexey Sarapulov
Мне как раз и надо запускать свой код только для нового объекта
ну тогда и ок
источник

AS

Alexey Sarapulov in Unreal Engine
Peter Leontev
вроде ещё какой-то метод есть, куда можно добавить твой код, но я не помню название
А, стоп
источник

AS

Alexey Sarapulov in Unreal Engine
я и так сейчас запускаю свой код оттуда
источник

AS

Alexey Sarapulov in Unreal Engine
и это не работает
источник

AS

Alexey Sarapulov in Unreal Engine
все равно есть проход во время загрузки сцены
источник

AS

Alexey Sarapulov in Unreal Engine
и самое забавное, что у этого объекта нет флагов
источник