16,重置参数从蓝图通知 + 蓝图接口 迁移到 C++ 通知 + C++/ 蓝图接口
接收通知类
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include “CoreMinimal.h”
#include “Notifies/PaperZDAnimNotify.h”
#include “ANZ_ResetAtk.generated.h”
/**
*
*/
UCLASS()
class ROUGHLIKE1_API UANZ_ResetAtk : public UPaperZDAnimNotify
{
GENERATED_BODY()
protected:
virtual void OnReceiveNotify_Implementation(UPaperZDAnimInstance* OwningInstance) const override;
};
// Fill out your copyright notice in the Description page of Project Settings.
#include “ANZ_ResetAtk.h”
#include “Combat.h”
#include <PaperZDAnimInstance.h>
void UANZ_ResetAtk::OnReceiveNotify_Implementation(UPaperZDAnimInstance* OwningInstance) const
{
if (!OwningInstance)
{
return;
}
AActor* ownerActor = OwningInstance->GetOwningActor();
if (!ownerActor)
{
return;
}
if (ownerActor->Implements())
{
ICombat::Execute_INT_ResetAtk(ownerActor);
}
}
接口类
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include “CoreMinimal.h”
#include “UObject/Interface.h”
#include “Combat.generated.h”
// This class does not need to be modified.
UINTERFACE(MinimalAPI)
class UCombat : public UInterface
{
GENERATED_BODY()
};
/**
*
*/
class ROUGHLIKE1_API ICombat
{
GENERATED_BODY()
// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
UFUNCTION(BlueprintNativeEvent, Category = “Combat”)
void INT_ResetAtk();
virtual void INT_ResetAtk_Implementation() = 0;
};
角色类改造
#include “Combat.h”
class ROUGHLIKE1_API AMyPaperZDCharacter : public APaperZDCharacter, public ICombat
virtual void INT_ResetAtk_Implementation() override;
void AMyPaperZDCharacter::INT_ResetAtk_Implementation()
{
ResetCombatParams();
}
动画通知替换

更多推荐
所有评论(0)