UserData

  1. 定义 UserData

    UCLASS()
    class ADVMOD_API UStaticMeshUserData : public UAssetUserData
    {
    	GENERATED_BODY()
    	
    public:
    	UPROPERTY(EditAnywhere)
    	FString MeshPath;
    };
    
  2. 新建,添加

    UStaticMeshUserData* StaticMeshUserData = StaticMesh->GetAssetUserData<UStaticMeshUserData>();
    if (!StaticMeshUserData)
    {
    	StaticMeshUserData = NewObject<UStaticMeshUserData>(StaticMesh, UStaticMeshUserData::StaticClass(), NAME_None, RF_Transactional);
    	StaticMeshUserData->MeshPath = StaticMesh->GetPathName();
    	StaticMeshUserData->PostEditChange();
    
    	StaticMesh->AddAssetUserData(StaticMeshUserData);
    	StaticMesh->PostEditChange();
    	StaticMesh->MarkPackageDirty();
    }
    
  3. 获取

    UAssetUserData* Data = Obj->GetAssetUserDataOfClass(UStaticMeshUserData::StaticClass());
    UStaticMeshUserData* UserData = Cast<UStaticMeshUserData>(Data);
    // 或
    UStaticMeshUserData* StaticMeshUserData = StaticMesh->GetAssetUserData<UStaticMeshUserData>();
    

你可能感兴趣的:(UE5,C++,ue5,c++,UserData)