Как узнать, когда редактор Unreal завершил загрузку уровняC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как узнать, когда редактор Unreal завершил загрузку уровня

Сообщение Anonymous »

Мне нужно зарегистрировать функцию с помощью IAssetRegistry.OnAssetUpdated(), когда редактор Unreal завершил загрузку уровня по умолчанию.
Я пробовал разные подходы, но Unreal имеет тенденцию запускать функции Actor несколько раз.
  • Конструктор вызывается дважды
  • OnConstruction вызывается много раз
  • PostLoad() также вызывается более одного раза.
Мне нужна функция типа «OnLoaded», которая срабатывает только один раз для вызова RegisterLinkedAssetChangeListener().
#include "ActorBase.h"

#include "UObject/SoftObjectPath.h"

#if WITH_EDITOR
#include "Editor.h"
#include "EditorUtilitySubsystem.h"
#include "EditorUtilityWidget.h"
#include "EditorUtilityWidgetBlueprint.h"
#include "AssetRegistry/AssetRegistryModule.h"
#include "AssetRegistry/IAssetRegistry.h"
#include "Editor/EditorEngine.h"
#include "UnrealEd.h"
#endif

AActorBase::AActorBase()
{
}

#if WITH_EDITOR
void AActorBase::OnConstruction(const FTransform& Transform)
{
}

// this is called more than once too
void AActorBase::PostLoad()
{
Super::PostLoad();

RegisterLinkedAssetChangeListener();
}

void AActorBase::RegisterLinkedAssetChangeListener()
{
if (!GEditor) return;

FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked("AssetRegistry");
IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();

AssetRegistry.OnAssetUpdated().AddUObject(this, &AActorBase::OnLinkedAssetUpdated);
}

void AActorBase::OnLinkedAssetUpdated(const FAssetData& AssetData)
{
// ...
}
#endif


Подробнее здесь: https://stackoverflow.com/questions/798 ... ng-a-level
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»