Files
wyatt 648386cd73 Lua向C#逻辑迁移 一期 #13
将整个插件代码上传
2025-10-26 21:48:39 +08:00

48 lines
1.6 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#define UE_VERSION_VAL(Major, Minor) ((Major) * 10000 + (Minor))
#define UE_CURRENT_VERSION UE_VERSION_VAL(ENGINE_MAJOR_VERSION, ENGINE_MINOR_VERSION)
#define UE_VERSION_BEFORE(Major, Minor) (UE_CURRENT_VERSION < UE_VERSION_VAL(Major, Minor))
#define UE_VERSION_SINCE(Major, Minor) (UE_CURRENT_VERSION >= UE_VERSION_VAL(Major, Minor))
#define UE_VERSION_EQUAL(Major, Minor) (UE_CURRENT_VERSION == UE_VERSION_VAL(Major, Minor))
namespace FCSUnrealSharpUtils
{
UNREALSHARPUTILITIES_API FName GetNamespace(const UObject* Object);
UNREALSHARPUTILITIES_API FName GetNamespace(FName PackageName);
UNREALSHARPUTILITIES_API FName GetNativeFullName(const UField* Object);
UNREALSHARPUTILITIES_API void PurgeMetaData(const UObject* Object);
UNREALSHARPUTILITIES_API FName GetModuleName(const UObject* Object);
UNREALSHARPUTILITIES_API bool IsStandalonePIE();
UNREALSHARPUTILITIES_API void PurgeStruct(UStruct* Struct);
UNREALSHARPUTILITIES_API FGuid ConstructGUIDFromString(const FString& Name);
UNREALSHARPUTILITIES_API FGuid ConstructGUIDFromName(const FName& Name);
UNREALSHARPUTILITIES_API FString MakeQuotedPath(const FString& Path);
template<typename T>
static void GetAllCDOsOfClass(TArray<T*>& OutObjects)
{
for (TObjectIterator<UClass> It; It; ++It)
{
UClass* ClassObject = *It;
if (!ClassObject->IsChildOf(T::StaticClass()) || ClassObject->HasAnyClassFlags(CLASS_Abstract))
{
continue;
}
T* CDO = ClassObject->GetDefaultObject<T>();
OutObjects.Add(CDO);
}
}
};