2)蓝图骨骼类(SkeletonGeneratedClass) 若我们以"SKEL_"作为前缀,并以"_C"为后缀,即调用【LoadObject 函数】并传入路径/Game/TestBlueprint.SKEL_TestBlueprint_C进行加载,我们加载到的是【蓝图骨骼类】,底层类型为【UBlueprintGeneratedClass 类】,它保存在【UBlueprintCore (UBlueprint的基类) 】的【SkeletonGen...
DefaultFreeCamDistance = Cast<AShooterPlayerCameraManager>(GetClass()->ClassDefaultObject)->FreeCamDistance; } 2.判断类型 Other->GetClass()->IsChildOf(AShooterCharacter::StaticClass());//判断Other是否属于AShooterCharacter类型 3.判断是否通过某接口继承实现 UINTERFACE(Blueprintable) class UShooterXXX :...
UUserWidget(constFObjectInitializer&ObjectInitializer);//UObject interfacevirtualclassUWorld* GetWorld()constoverride;virtualvoidPostDuplicate(boolbDuplicateForPIE)override;virtualvoidBeginDestroy()override;virtualvoidPostLoad()override;virtualvoidSerialize(FArchive& Ar)override;//~ End UObject InterfacevoidDup...
另外,不使用的rendering功能一定要在项目设置中关掉,可以大大减少shader分裂的组合数量。 RHI,UI的贴图比较大,由于默认情况下贴图资源被CDO(Class Default Object)引用住无法GC掉,可以用弱引用技术的方式来缓解这个问题。另外,Slate altas Size可以小一点,可以减少冗余的空掉的贴图内存。GPU Particle不用的时候可以把fx....
UMyClass* MyInstance = NewObject(nullptr); 做完后再调用 UPackage::Save() 方法。这是一个静态方法,第一个参数是刚才创建的Package,第二个参数就是要被序列化保存下来的对象,第四个参数是要保存的路径,所以最后代码就大概是这样: UPackage::SavePackage(MyPkg, MyInstance, EObjectFlags::RF_Public|EObject...
java的基类为Object。UE的基类为UObject。 同样,UObject提供了最底层的支持:元数据,GC垃圾回收,序列化,Class Default Object等。 而,如果只是单单使用蓝图进行变成的话,我们只需要知道这么一个概念就行。 如果说要列举UE世界中的“主要成员”,Actor与Component绝对是当仁不让。
关于UClass, StaticClass() 的一些文章: 【UE·底层篇】一文搞懂StaticClass、GetClass和ClassDefaultObject (https://zhuanlan.zhihu.com/p/380809095) Unreal Engine basics and base classes (https://1danielcoelho.github.io/unreal-engine-basics-base-classes/)...
注:CDO即ClassDefaultObject。这涉及UE4每个对象的内部结构,暂时可以理解系统在运行时会默认构造一个该类的对象,这个对象只执行了构造函数。 手动编码配置 除了上面描述的自动配置的方法,我们也可以通过编码让配置信息保存到任意的文件里面。这里我们就必须要用到SaveConfig函数,SaveConfig()函数可以在使用配置类修饰符的...
具体在Class.cpp的4332行,又是一个宏定义。 ? 1 2 3 4 5 6 7 8 9 10 IMPLEMENT_CORE_INTRINSIC_CLASS(UClass, UStruct, { Class->ClassAddReferencedObjects = &UClass::AddReferencedObjects; Class->EmitObjectReference(STRUCT_OFFSET(UClass, ClassDefaultObject), TEXT("ClassDefaultObject")); ...