diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineSkeletonImportFactory.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineSkeletonImportFactory.cpp index 7964b95bd..54a2041ef 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineSkeletonImportFactory.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/Private/SpineSkeletonImportFactory.cpp @@ -57,7 +57,18 @@ FText USpineSkeletonAssetFactory::GetToolTip () const { } bool USpineSkeletonAssetFactory::FactoryCanImport (const FString& Filename) { - return true; + if (Filename.Contains(TEXT(".skel"))) return true; + + if (Filename.Contains(TEXT(".json"))) { + TArray rawData; + if (!FFileHelper::LoadFileToArray(rawData, *Filename, 0)) { + return false; + } + if (rawData.Num() == 0) return false; + return strcmp((const char*)rawData.GetData(), "skeleton") > 0 && strcmp((const char*)rawData.GetData(), "spine") > 0; + } + + return false; } void LoadAtlas (const FString& Filename, const FString& TargetPath) {