其他都一样
DECLARE_MULTICAST_DELEGATE(FMulticastDelegateSignature)
FMulticastDelegateSignature myMulticastDelegate;
实现方:
AGameModeBase* modebase = UGameplayStatics::GetGameMode(GetWorld());
ATestGameModeBase* mymode = Cast<ATestGameModeBase>(modebase);
if (mymode)
{
mymode->myOneParamDelegate.BindUObject(this, &AListener::ChangeColor);
mymode->myHandle == mymode->myMulticastDelegate.AddUObject(this, &AListener::Changelightstrength);
}
触发方里
mygamemode->myMulticastDelegate.Broadcast();