[ue4] Added error dialogs when skeleton and atlas couldn't be loaded.

This commit is contained in:
badlogic 2018-07-03 12:14:59 +02:00
parent be834c5145
commit 71c0887dab
4 changed files with 25 additions and 6 deletions

View File

@ -30,6 +30,8 @@
#include "SpinePluginPrivatePCH.h"
DEFINE_LOG_CATEGORY(SpineLog);
class FSpinePlugin : public SpinePlugin {
virtual void StartupModule() override;
virtual void ShutdownModule() override;

View File

@ -107,12 +107,14 @@ void USpineSkeletonAnimationComponent::CheckState () {
if (Atlas && SkeletonData) {
spSkeletonData* data = SkeletonData->GetSkeletonData(Atlas->GetAtlas(false), false);
skeleton = spSkeleton_create(data);
spAnimationStateData* stateData = SkeletonData->GetAnimationStateData(Atlas->GetAtlas(false));
state = spAnimationState_create(stateData);
state->rendererObject = (void*)this;
state->listener = callback;
trackEntries.Empty();
if (data) {
skeleton = spSkeleton_create(data);
spAnimationStateData* stateData = SkeletonData->GetAnimationStateData(Atlas->GetAtlas(false));
state = spAnimationState_create(stateData);
state->rendererObject = (void*)this;
state->listener = callback;
trackEntries.Empty();
}
}
lastAtlas = Atlas;

View File

@ -33,6 +33,7 @@
#include <string.h>
#include <string>
#include <stdlib.h>
#include "Runtime/Core/Public/Misc/MessageDialog.h"
#define LOCTEXT_NAMESPACE "Spine"
@ -103,10 +104,22 @@ spSkeletonData* USpineSkeletonDataAsset::GetSkeletonData (spAtlas* Atlas, bool F
if (skeletonDataFileName.GetPlainNameString().Contains(TEXT(".json"))) {
spSkeletonJson* json = spSkeletonJson_create(Atlas);
this->skeletonData = spSkeletonJson_readSkeletonData(json, (const char*)rawData.GetData());
if (!skeletonData) {
#if WITH_EDITORONLY_DATA
FMessageDialog::Debugf(FText::FromString(UTF8_TO_TCHAR(json->error)));
#endif
UE_LOG(SpineLog, Error, TEXT("Couldn't load skeleton data and atlas: %s"), UTF8_TO_TCHAR(json->error));
}
spSkeletonJson_dispose(json);
} else {
spSkeletonBinary* binary = spSkeletonBinary_create(Atlas);
this->skeletonData = spSkeletonBinary_readSkeletonData(binary, (const unsigned char*)rawData.GetData(), (int)rawData.Num());
if (!skeletonData) {
#if WITH_EDITORONLY_DATA
FMessageDialog::Debugf(FText::FromString(UTF8_TO_TCHAR(binary->error)));
#endif
UE_LOG(SpineLog, Error, TEXT("Couldn't load skeleton data and atlas: %s"), UTF8_TO_TCHAR(binary->error));
}
spSkeletonBinary_dispose(binary);
}
if (animationStateData) {

View File

@ -32,6 +32,8 @@
#include "ModuleManager.h"
DECLARE_LOG_CATEGORY_EXTERN(SpineLog, Log, All);
class SPINEPLUGIN_API SpinePlugin : public IModuleInterface {
public: