在只知道目标资源路径的基础上,进行运行时态的资源加载,UE提供了LoadObject用来加载资产,LoadClass用来加载类,通过模版约束对象类型,增加操作安全,但是注意,资源加载可能会失败或是无效,需要对操作的结果进行判定。 LoadObject 可直接返回资源有效对象指针 LoadClass 返回操作类,非对象返回UClass类型指针 函数定义: /** *...
3.1 使用LoadClass + FString 通过资源路径同步加载 FString WidgetPath = "/Game/SocGame/Module/UI/HUD/Widget/W_HUD_Interaction.W_HUD_Interaction_C"; //资源路径 UObject* LoadedObject = StaticLoadObject(UObject::StaticClass(), nullptr, *WidgetPath); UClass* LoadedClass = LoadClass<UUserWidget>...
即:FString MyCharacterPath = FString(TEXT("'Blueprint /Game/Core/BP_MyCharacter.BP_MyCharacter_C'"));。 同样的,加载UClass同样还有一个函数LoadClass,也只是将StaticLoadClass封装成模板而已: /** * Load a class object * @see StaticLoadClass */ template< class T > inline UClass* LoadClass( ...
在C++代码中,要调用蓝图类对象,首先得通过LoadClass获取蓝图类,再通过UClass获取到Actor对象,因为这是一个蓝图创建的Actor,C++代码中只能通过反射来获取或者修改Actor对象的属性值。获取Actor的代码如下: FS…
首先是LoadName、LoadOuter和ObjClass侧的operator<<,其被UE覆写,和我们在抽象模型中提到的operator=功能类似,负责对<<右侧的对象进行序列化并保存到左侧的Record中: //SA_VALUE即构建TNamedValue, 其有两个字段: //Name: 内部有const char*成员,也可能为空结...
classFNewCreateModule:publicIModuleInterface { public: /** IModuleInterface implementation */ virtualvoidStartupModule()override; virtualvoidShutdownModule()override; }; 以及定义: NewCreateModule.cpp 1 2 3 4 5 6 7 8 9 10 11 #include"NewCreateModule.h" ...
UClass* WidgetClass = StaticLoadClass(ACluster::StaticClass(), nullptr, TEXT("Blueprint'/FrameWork/Tools/cluster/BP_Cluster.BP_Cluster_C'")); if (WidgetClass) { //UWorld* const World = worldObject->GetWorld(); FTransform Tran = FTransform(FRotator(0, 0, 0), widgetLocation, FVector(...
在C++ 中struct和class来定义类,只有默认的访问控制权限有差别,在 UE 中则不同,USTRUCT 和 UCLASS 则进行了严格的区分,USTRUCT 不能具有反射函数。 数据成员 因为兼容 C 的以及语言特性的实现,C++ 还有 POD 的概念。而介绍 POD 则又先要介绍 C++ 标准中的standard-layout class([ISO/IEC 14882:2014 9.1.7]...
Num()); // 在这里处理或展示文件内容 UE_LOG(LogTemp, Log, TEXT("File content: %s"), *FileContent); } else { UE_LOG(LogTemp, Error, TEXT("Failed to load file: %s"), *FilePath); } } 在这个示例中,UYourClass是一个假设的类名,你需要将它替换为你自己的类名。ReadFileContent函数会...
接着,将UUserWidget绑定至UWidgetComponent。通过LoadClass加载UUserWidget,SetWidgetClass将其绑定。确保"WidgetBlueprint'/Game/God/UI/UI_HeadInfo.UI_HeadInfo_C'"后有_C标识。设置UWidgetComponent渲染模式为Screen,确保其不受Actor移动影响。使用SetRelativeLocation设定UWidgetComponent与Actor相对位置...