Добрый вечер, господа.
Что имеется?
Структура:
Код:
USTRUCT(BlueprintType)
struct FWeaponStruct : public FTableRowBase
{
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = WeaponData)
TAssetPtr<UTexture> Icon;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = WeaponData)
TAssetPtr<UStaticMesh> StaticMesh;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = WeaponData)
TAssetPtr<UMaterialInstance> Material;
};
и функция получения структуры из таблицы:
Код:
FWeaponStruct AMyGameItem::GetWeaponData(int32 Index)
{
FWeaponStruct Data = *WeaponDataTable->FindRow<FWeaponStruct >(*FString::FromInt(Index), TEXT(""));
return Data;
}
В последующих действиях это используется так:
Код:
void AMyGameItem::SetParam()
{
FWeaponStruct WPData = GetItemData(ID);
Mesh->SetStaticMesh(WPData.StaticMesh.Get());
Mesh->SetMaterial(0, WPData.Material.Get());
}
Проблема в том, что объект с ленивой ссылкой (TAssetPtr<>) не находится из таблицы, если данный объект не существует в мире. (хотя в таблице отображаются). Если добавить статику, к примеру, в мир - функция находит объект данной статики из таблицы.
Жесткие ссылки не подходят, в таблице больше 3000 строчек.
В чем мой косяк?
Спасибо!