本文使用关卡动画回调为例
1.创建关卡动画
FString assetsPath = "你的路径";
FStringAssetReference sequenceName(assetsPath);
ULevelSequence* sequenceAsset = Cast<ULevelSequence>(sequenceName.TryLoad());
ALevelSequenceActor* currentLevelSequenceActor = nullptr;
ULevelSequencePlayer* sequencePlayer = ULevelSequencePlayer::CreateLevelSequencePlayer(GetWorld(), sequenceAsset, FMovieSceneSequencePlaybackSettings(), currentLevelSequenceActor);
2.在.h文件中创建回调引用和方法
UFUNCTION()
void OnFinished();
ULevelSequencePlayer* nowLSPlayer = nullptr;
.cpp中的实现
void ALevelSequenceManager::OnFinished()
{
UE_LOG(LogTemp, Warning, TEXT("Finish结束了"));
}
3.使用回调
OnFinishedDelegate.BindUFunction(this,STATIC_FUNCTION_FNAME(TEXT("ALevelSequenceItem::OnFinished")));
sequencePlayer->OnFinished.Add(OnFinishedDelegate);