一切和不带参标准代理一样除了绑定的方法必须使已经绑定好在代理上的参数,同样类型
gamemode里
DECLARE_DELEGATE_OneParam(FParamDelegateSignature, FLinearColor)
public:
FParamDelegateSignature myOneParamDelegate;
实现方里:
AGameModeBase* modebase = UGameplayStatics::GetGameMode(GetWorld());
ATestGameModeBase* mymode = Cast<ATestGameModeBase>(modebase);
if (mymode)
{
mymode->myOneParamDelegate.BindUObject(this, &AListener::ChangeColor);
}
其中的void AListener::ChangeColor(FLinearColor color)
{
pointlight->SetLightColor(color);
}
触发方里:
AGameModeBase* gamemode = UGameplayStatics::GetGameMode(GetWorld());
ATestGameModeBase* mygamemode = Cast<ATestGameModeBase>(gamemode);
if (mygamemode)
{
FLinearColor red = FLinearColor(0, 1, 1, 0);
mygamemode->myOneParamDelegate.Execute(red);
}