Get All Active Montages from UAnimInstance in Unreal Engine 5 C++
UCLASS()
class TESTING_API UMyBFL : public UBlueprintFunctionLibrary {
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable)
static TArray<UAnimMontage*> GetActiveMontages(UAnimInstance* AnimInstance) {
TArray<UAnimMontage*> ActiveMontages;
if (!IsValid(AnimInstance)) {
return ActiveMontages;
}
for (auto& MontageInstance : AnimInstance->MontageInstances) {
if (MontageInstance && MontageInstance->Montage && MontageInstance->IsActive()) {
ActiveMontages.Add(MontageInstance->Montage);
}
}
return ActiveMontages;
}
};