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;
 | |
| };
 |