template<class T>
T* GetObjectFromAsset(TSoftObjectPtr<T> AssMat)
{
if (AssMat.Get() && AssMat.IsValid())
{
return AssMat.Get();
}
else if (AssMat.ToString() != TEXT(""))
{
return LoadObject<T>(NULL, *AssMat.ToString(), NULL, LOAD_None, NULL);
}
return NULL;
};
template<class T>
TSubclassOf<T> GetClassFromAsset(TSoftClassPtr<T> AssMat)
{
if (AssMat.Get() && AssMat.IsValid())
{
return AssMat.Get();
}
else if (AssMat.ToString() != TEXT(""))
{
return LoadClass<T>(NULL, *AssMat.ToString(), NULL, LOAD_None, NULL);
}
return NULL;
};
PROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "DigitalMan")
TSoftObjectPtr<USkeletalMesh> DigitalMesh;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "DigitalMan")
TSoftClassPtr<UAnimInstance> DigitalAnimBP; //TSubclassOf<UAnimInstance> DigitalAnimBP;
TSubclassOf<UAnimInstance> UDigitalManFunctionLibrary::GetAnimInstanceFromAssetPtr(TSoftClassPtr<UAnimInstance> AssMat)
{
return GetClassFromAsset<UAnimInstance>(AssMat);
}
USkeletalMesh* UDigitalManFunctionLibrary::GetSkeletalMeshFromAssetPtr(TSoftObjectPtr<USkeletalMesh> AssMat)
{
return GetObjectFromAsset<USkeletalMesh>(AssMat);
}
USkeletalMesh* TemDigitalMesh = UDigitalManFunctionLibrary::GetSkeletalMeshFromAssetPtr(DigitalMesh);
TSubclassOf<UAnimInstance> TemDigitalAnimBP = UDigitalManFunctionLibrary::GetAnimInstanceFromAssetPtr(DigitalAnimBP);