コード例 #1
1
UFunction *UK2Node_LiveEditObject::GetEventMIDISignature() const
{
	FMemberReference ReferenceToUse;
	FGuid DelegateGuid;
	UBlueprint::GetGuidFromClassByFieldName<UFunction>(ULiveEditorBroadcaster::StaticClass(), TEXT("OnEventMIDI"), DelegateGuid);
	ReferenceToUse.SetDirect( TEXT("OnEventMIDI"), DelegateGuid, ULiveEditorBroadcaster::StaticClass(), false );

	UMulticastDelegateProperty* DelegateProperty = ReferenceToUse.ResolveMember<UMulticastDelegateProperty>(this);
	if (DelegateProperty != NULL)
	{
		return DelegateProperty->SignatureFunction;
	}
	return NULL;
}
コード例 #2
0
UFunction* UK2Node_BaseMCDelegate::GetDelegateSignature(bool bForceNotFromSkelClass) const
{
	FMemberReference ReferenceToUse;

	if(!bForceNotFromSkelClass)
	{
		ReferenceToUse = DelegateReference;
	}
	else
	{
		UClass* OwnerClass = DelegateReference.GetMemberParentClass(this);
		FGuid DelegateGuid;
		if (OwnerClass)
		{
			UBlueprint::GetGuidFromClassByFieldName<UFunction>(OwnerClass, DelegateReference.GetMemberName(), DelegateGuid);
		}
		ReferenceToUse.SetDirect(DelegateReference.GetMemberName(), DelegateGuid, OwnerClass ? OwnerClass->GetAuthoritativeClass() : NULL, false);
	}

	UMulticastDelegateProperty* DelegateProperty = ReferenceToUse.ResolveMember<UMulticastDelegateProperty>(this);
	return (DelegateProperty != NULL) ? DelegateProperty->SignatureFunction : NULL;
}