将属性公开给编辑器
// EditAnywhere:公开给编辑器中任何可编辑属性的地方
// BlueprintReadWrite:可在蓝图中拉出 GET SET NODE
UPROPERTY(EditAnywhere, BlueprintReadWrite)
将函数公开给蓝图,蓝图只能调用
UFUNCTION(BlueprintCallable)
void CountdownHasFinished();
将函数公开给蓝图,cpp中提供默认实现,允许蓝图对其覆盖
UFUNCTION(BlueprintNativeEvent)
void CountdownHasFinished();
// _Implementation 后缀是固定格式
virtual void CountdownHasFinished_Implementation();
在 cpp 中只需实现 _Implementation 的版本
// 在cpp中定义默认行为
void ACountdown::CountdownHasFinished_Implementation()
{
CountdownText->SetText(TEXT("GO!"));
}
在蓝图中实现函数,让 cpp 进行调用
先在 cpp 中声明函数
UFUNCTION(BlueprintImplementableEvent)
void CalledFromCpp();
在蓝图中实现该函数
在 cpp 中合适的地方调用
void ATank::BeginPlay()
{
Super::BeginPlay();
CalledFromCpp();
}