Не работает Notify, что делать? В Анимации ивент есть
При проигрывании анимации перезарядки не хотелось бы, чтоб персонаж стрелял, я сделал нотифай, но почему то при проигрывании анимации он всё ещё может стрелять. Вот весь код текстом и то, где используется Нотифай
WeaponComponent:
h
UPROPERTY(EditDefaultsOnly, Category = "Weapon")
UAnimMontage* CurrentReloadAnimation = nullptr;
cpp:
void UWeaponComponent::InitAnim()
{
if (!CurrentReloadAnimation) return;
const auto& NotifyEvents = CurrentReloadAnimation->Notifies;
for (const FAnimNotifyEvent& NotifyEvent : NotifyEvents)
{
if (auto ClipingFinishNotify = Cast<UClipingAnimNotify>(NotifyEvent.Notify))
{
ClipingFinishNotify->OnNotified.AddUObject(this,&UWeaponComponent::OnClipingFinished);
break;
}
}
}
void UWeaponComponent::OnClipingFinished(USkeletalMeshComponent* MeshComp)
{
ACharacter* Character = Cast<ACharacter>(GetOwner());
if (!Character || MeshComp != Character->GetMesh()) return;
IsClipingInProgress = false;
}
Notify:
h
#pragma once
#include "CoreMinimal.h"
#include "Animation/AnimNotifies/AnimNotify.h"
#include "ClipingAnimNotify.generated.h"
DECLARE_MULTICAST_DELEGATE_OneParam(FOnNotifiedSignature, USkeletalMeshComponent*)
UCLASS()
class MYPROJECT_API UClipingAnimNotify : public UAnimNotify
{
GENERATED_BODY()
public:
virtual void Notify(USkeletalMeshComponent* MeshComp, UAnimSequenceBase* Animation)override;
FOnNotifiedSignature OnNotified;
};
cpp
#include "Animations/ClipingAnimNotify.h"
void UClipingAnimNotify::Notify(USkeletalMeshComponent* MeshComp, UAnimSequenceBase* Animation)
{
OnNotified.Broadcast(MeshComp);
Super::Notify(MeshComp, Animation);
}