Unreal Engine 4 C 自定义事件
发表于2017-09-17
在本文中将介绍如何实现和Actor中的BeginOverlap和EndOverlap相似的事件。
第一步,声明委托类型
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FActorTest, float, fValue); 1
上面的宏声明委托的类型,我们可以指定有几个参数,OneParams,TwoParams,以此类推。这是一个动态的委托,我们可以在运行时随时增加或者删除通知的函数。
第二步,定义委托
UPROPERTY(BlueprintAssignable, Category = "Game|Test") FActorOnTest OnActorTest;
这是一个成员属性,注意一定要是BlueprintAssignable。
第三步,定义蓝图中实现的事件
UFUNCTION(BlueprintImplementableEvent, Category = "EventTest") void ReceiveActorTest(float fValue);
这个函数声明成BlueprintImplementableEvent,表示这是一个在蓝图中实现的事件函数,C 代码中不用实现它,在需要的时候直接调用即可。
比如,我在Tick里触发这个事件:
void AMyEventActor::Tick( float DeltaTime ) { Super::Tick( DeltaTime ); ReceiveActorTest(10); }