Unreal CPP中的事件
事件系统可以允许我在一个位置声明事件的调用,而在另一个地方实现这个事件,合理的使用事件系统可以使代码逻辑更加清晰。
声明事件
你可以在一个Unreal类 (UObject) 里声明事件,本质是声明一个函数,不过你可以先不去实现这个函数的具体定义,像这样:
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
void TestBegin();
如此可以声明一个允许在蓝图中可以实现定义的事件,这样我们可以在蓝图里实现它的具体定义,BlueprintImplementableEvent
是用来标志这是一个事件,当然还有别的事件声明方式,不过这是我常用的方式,另外值得一提的是,事件函数里,是可以声明参数的。
调用事件
声明之后确保,在一个位置调用该事件,可以是使用CPP,也可以使用蓝图,但总之需要将其调用,比如:
// Called when the game starts or when spawned
void APlayerPawn::BeginPlay()
{
Super::BeginPlay();
TestBegin();
}
这里我就在BeginPlay()
中调用了这个事件,这样当BeginPlay()
被调用时就会调用TestBegin()
定义事件
最重要的一步就是事件的定义,这里就可以去蓝图中实现事件的具体逻辑了。