24 lines
		
	
	
		
			772 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			772 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include "CSExportedFunction.h"
 | 
						|
 | 
						|
// Native bound function. If you want to bind a function to C#, use this macro.
 | 
						|
// The managed delegate signature must match the native function signature + outer name, and all params need to be blittable.
 | 
						|
#define UNREALSHARP_FUNCTION()
 | 
						|
 | 
						|
class FCSBindsManager
 | 
						|
{
 | 
						|
public:
 | 
						|
	
 | 
						|
	static FCSBindsManager* Get();
 | 
						|
	
 | 
						|
	UNREALSHARPBINDS_API static void RegisterExportedFunction(const FName& ClassName, const FCSExportedFunction& ExportedFunction);
 | 
						|
 | 
						|
	UNREALSHARPBINDS_API static void* GetBoundFunction(const TCHAR* InOuterName, const TCHAR* InFunctionName, int32 ManagedFunctionSize);
 | 
						|
 | 
						|
private:
 | 
						|
	FCSBindsManager() = default;
 | 
						|
	static FCSBindsManager* BindsManagerInstance;
 | 
						|
	TMap<FName, TArray<FCSExportedFunction>> ExportedFunctionsMap;
 | 
						|
};
 |