蓝图中有个动画接口类传递连击index和角色是否在攻击,确定播放哪个攻击动画,


这里也改成C++
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "BPI_Anims.generated.h"
// This class does not need to be modified.
UINTERFACE(MinimalAPI)
class UBPI_Anims : public UInterface
{
GENERATED_BODY()
};
/**
*
*/
class ROUGHLIKE1_API IBPI_Anims
{
GENERATED_BODY()
// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
UFUNCTION(BlueprintNativeEvent, BlueprintCallable,Category = "Anim Interface")
void INT_SetAttacks(int32 comboIndex, bool IsAttacking);
};
在角色类添加
public:
//调用攻击动画接口类
UFUNCTION(BlueprintCallable, Category = "Animation")
void SetAnimAttack(int32 comboIndex, bool bIsAttacking);
void AMyPaperZDCharacter::SetAnimAttack(int32 comboIndex, bool bIsAttacking)
{
//获取动画组件
UPaperZDAnimationComponent* animComp = GetAnimationComponent();
if (!animComp)
{
return;
}
//获取动画实例
UPaperZDAnimInstance* animInstance = animComp->GetAnimInstance();
if (!animInstance)
{
return;
}
//检查是否实现接口
if (animInstance->Implements<UBPI_Anims>())
{
IBPI_Anims::Execute_INT_SetAttacks(animInstance, comboIndex, bIsAttacking);
}
}
改后,把以前的蓝图接口类删除,
在角色类中变为

动画蓝图类中替换为新接口,
