As an instance I’ve a category UFoo
which has a dynamic delegate myDelegate
with no parameters. I can’t modify the contents of UFoo
in any manner.
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FMyDelegate);
UCLASS()
class UFoo : public UObject
{
GENERATED_BODY()
public:
UPROPERTY()
FMyDelegate myDelegate;
// remainder of class
}
I even have a category UBar
which comprises three UFoo
-type objects foo1
, foo2
and foo3
. UBar
additionally has a operate DoStuff(int32 num)
which takes a single integer as a parameter.
UCLASS()
class UBar : public UObject
{
GENERATED_BODY()
public:
UFUNCTION()
void DoStuff(int32 num);
UPROPERTY()
TObjectPtr foo1;
UPROPERTY()
TObjectPtr foo2;
UPROPERTY()
TObjectPtr foo3;
// remainder of class
}
I wish to bind DoStuff
to the myDelegate
delegate of foo1
, foo2
and foo3
. However as a result of the record of parameters is totally different between the delegate and DoStuff
, this clearly can’t be accomplished as is.
That being mentioned, I do know that within the case of foo1
‘s delegate, the integer worth handed to DoStuff
ought to at all times be 1. Likewise, it needs to be 2 for foo2
, and three for foo3
. In that case, does this develop into doable? Is there a method to specify a default parameter worth of types for DoStuff
that’s totally different per UFoo
occasion, permitting me to bind DoStuff
to their delegates regardless of the differing parameter lists?