x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Asset manager can't find data assets

I have a couple of custom data assets in my project. I have a custom primary asset type for this data asset class, used in handling it using the asset manager. It was working fine yesterday, but for some reason it stopped working. The asset manager can never find my custom data assets. What is even stranger is that for some reason the asset manager can't find any custom asset with class derived from UDataAsset or UPrimaryDataAsset I've tried. It however does find data assets defined in engine. My data assets derive from UPrimaryDataAsset.

The asset manager has no trouble in finding all other classes of assets, it just can't find those derived from Data Asset for some reason. alt text

alt text

 UCLASS(BlueprintType)
 class SGAME_API UItemIdentifier : public UPrimaryDataAsset
 {
     GENERATED_BODY()
 public:
     UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Item Properties")
         FString DisplayName;
     UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Item Properties")
         TSubclassOf<class UItem> ItemClass;
     UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Item Properties")
         bool Stackable = true;
     //Mass in kg per unit
     UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Item Properties")
         float Mass = 1.0f;
     //Volume in liters
     UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Item Properties")
         float Volume = 1.0f;
     UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Item Properties")
         class UTexture2D* Icon;
     UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Item Properties")
         class UStaticMesh* DroppedMesh;
     UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Item Properties")
         TSubclassOf<ADroppedItem> DroppedItemClass = ADroppedItem::StaticClass();
 };

alt text

Product Version: UE 4.17
Tags:
capture.png (12.1 kB)
capture.png (36.1 kB)
capture.png (25.2 kB)
more ▼

asked Sep 14 '17 at 09:49 AM in Bug Reports

avatar image

DELTA_12
116 13 19 24

avatar image Doug E ♦♦ STAFF Sep 14 '17 at 05:54 PM

Hey DELTA_12-

How are you getting the output shown in your first screenshot? I've created a class based on the code you provided, but I'm not sure how you're reporting on the different data assets you have. Please provide full reproduction steps to help me investigate the issue locally.

avatar image DELTA_12 Sep 14 '17 at 08:56 PM

I simply created this data asset, set the asset manager to the settings on the last screenshot and used console command AssetManager.DumpTypeSummary. I'm not using any custom code to handle those assets, just the stock implementation of Asset Manager.

(comments are locked)
10|2000 characters needed characters left

1 answer: sort voted first

Hey DELTA_12-

Please try checking the "Is Editor Only" checkbox. If that doesn't help, try making your class inherit from UDataAsset rather than UPrimrayDataAsset. When I created a copy of your class with these changes, the AssetManager.DumpTypeSummary command properly returned my custom data assets.

Cheers

Doug Wilson

more ▼

answered Sep 15 '17 at 05:53 PM

avatar image DELTA_12 Sep 15 '17 at 07:21 PM

I changed it to just Data Asset and it seems to be working. However it still does not find data assets that inherit from a class derived from UDataAsset, for example I have UItemIdentifier that inherits from UDataAsset and UToolItemIdentifier which inherts from UItemIdentifier. The Asset manager does find the base class but it can't find the derived class. I need both the base and derived class to be loadable by Asset Manager. Is there any way to achieve this?

avatar image Doug E ♦♦ STAFF Sep 19 '17 at 04:11 PM

Hey DELTA_12-

I was able to confirm that grandchildren of UDataAsset all experience the behavior you describe. I have entered a report for this behavior that you can follow here: https://issues.unrealengine.com/issue/UE-50016

avatar image DELTA_12 Oct 18 '17 at 05:21 PM

Hello, I see that the issue is marked as resolved on the issue report, however after updating to 4.17.2 the bug still persists. I'd suggest looking into that.

avatar image onealexleft Oct 21 '17 at 09:04 AM

On 4.17.1 and ran into this issue as well. Current workaround was to derive from UDataAsset and basically duplicate GetPrimaryAssetId() from UPrimaryDataAsset. Making the class blueprintable and creating subclasses that way.

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question