// 使得碰撞体和圆柱体重合在一起
// CapsuleComponent 和 UStaticMeshComponent 重合
public:
// 易受攻击
void SetVulnerable();
// 不易受攻击
void SetInVulnerable();
private:
// 默认材质
class UMaterialInterface* DefaultMaterial;
// 能被主角吃掉的时候的材质
// 容易收到主角攻击
class UMaterialInterface* VulnerableMaterial;
AEnemy::AEnemy()
{
// 使得碰撞体和圆柱体重合在一起
// CapsuleComponent 和 UStaticMeshComponent 重合
EnemyBody->SetRelativeLocation(FVector(0, 0, -50));
static ConstructorHelpers::FObjectFinder<UMaterial> VulnerableMat(TEXT("'/Game/Materials.M_Enemy_Vulnerable"));
}
void AEnemy::BeginPlay()
{
Super::BeginPlay();
// 获得当前的材质
DefaultMaterial = EnemyBody->GetMaterial(0);
}
void AEnemy::SetVulnerable()
{
EnemyBody->SetMaterial(0, VulnerableMaterial);
// 过一段时间可以不受攻击
}
void AEnemy::SetInVulnerable()
{
}
找内容浏览器下的文件
需要引入#include "UObject/ConstructorHelpers.h"
// 创建样子
// 找到对应的材质
static ConstructorHelpers::FObjectFinder<UStaticMesh> CylinderObj(TEXT("'/Game/StarterContent/Shapes/Shape_Cylinder'"));
static ConstructorHelpers::FObjectFinder<UMaterial> VulnerableMat(TEXT("'/Game/Materials.M_Enemy_Vulnerable‘"));
Vulnerable adj. 易受攻击的;易受伤害的;脆弱的;有局方的;有身价的
InVulnerable adj. 不能伤害的;刀枪不入的;无懈可击的;不可攻破的