From 79e4f9ca69e9854ae0516631b9634400406c74fa Mon Sep 17 00:00:00 2001 From: badlogic Date: Fri, 8 Mar 2019 16:37:22 +0100 Subject: [PATCH] [ue4] Only show preview animation and skin in editor viewports. --- .../SpineSkeletonAnimationComponent.cpp | 24 ++++++++++--------- .../Private/SpineSkeletonComponent.cpp | 2 +- .../Public/SpineSkeletonAnimationComponent.h | 6 ++--- .../Public/SpineSkeletonComponent.h | 2 +- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonAnimationComponent.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonAnimationComponent.cpp index a9edb99dd..45d4f2691 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonAnimationComponent.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonAnimationComponent.cpp @@ -89,23 +89,25 @@ void USpineSkeletonAnimationComponent::BeginPlay() { void USpineSkeletonAnimationComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) { Super::Super::TickComponent(DeltaTime, TickType, ThisTickFunction); - InternalTick(DeltaTime); + InternalTick(DeltaTime, true, TickType == LEVELTICK_ViewportsOnly); } -void USpineSkeletonAnimationComponent::InternalTick(float DeltaTime, bool CallDelegates) { +void USpineSkeletonAnimationComponent::InternalTick(float DeltaTime, bool CallDelegates, bool Preview) { CheckState(); if (state && bAutoPlaying) { - if (lastPreviewAnimation != PreviewAnimation) { - if (PreviewAnimation != "") SetAnimation(0, PreviewAnimation, true); - else SetEmptyAnimation(0, 0); - lastPreviewAnimation = PreviewAnimation; - } + if (Preview) { + if (lastPreviewAnimation != PreviewAnimation) { + if (PreviewAnimation != "") SetAnimation(0, PreviewAnimation, true); + else SetEmptyAnimation(0, 0); + lastPreviewAnimation = PreviewAnimation; + } - if (lastPreviewSkin != PreviewSkin) { - if (PreviewSkin != "") SetSkin(PreviewSkin); - else SetSkin("default"); - lastPreviewSkin = PreviewSkin; + if (lastPreviewSkin != PreviewSkin) { + if (PreviewSkin != "") SetSkin(PreviewSkin); + else SetSkin("default"); + lastPreviewSkin = PreviewSkin; + } } state->update(DeltaTime); state->apply(*skeleton); diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp index 5547ae43f..b36506c08 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp @@ -258,7 +258,7 @@ void USpineSkeletonComponent::TickComponent (float DeltaTime, ELevelTick TickTyp InternalTick(DeltaTime); } -void USpineSkeletonComponent::InternalTick(float DeltaTime, bool CallDelegates) { +void USpineSkeletonComponent::InternalTick(float DeltaTime, bool CallDelegates, bool Preview) { CheckState(); if (skeleton) { diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonAnimationComponent.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonAnimationComponent.h index f11ddd07f..2239250a3 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonAnimationComponent.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonAnimationComponent.h @@ -260,10 +260,10 @@ public: UPROPERTY(BlueprintAssignable, Category="Components|Spine|Animation") FSpineAnimationDisposeDelegate AnimationDispose; - UPROPERTY(Transient, EditAnywhere, Category=Spine) + UPROPERTY(EditAnywhere, Category=Spine) FString PreviewAnimation; - UPROPERTY(Transient, EditAnywhere, Category=Spine) + UPROPERTY(EditAnywhere, Category=Spine) FString PreviewSkin; // used in C event callback. Needs to be public as we can't call @@ -271,7 +271,7 @@ public: void GCTrackEntry(UTrackEntry* entry) { trackEntries.Remove(entry); } protected: virtual void CheckState () override; - virtual void InternalTick(float DeltaTime, bool CallDelegates = true) override; + virtual void InternalTick(float DeltaTime, bool CallDelegates = true, bool Preview = false) override; virtual void DisposeState () override; spine::AnimationState* state; diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h index 376a8a93c..3295b4008 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h @@ -133,7 +133,7 @@ public: protected: virtual void CheckState (); - virtual void InternalTick(float DeltaTime, bool CallDelegates = true); + virtual void InternalTick(float DeltaTime, bool CallDelegates = true, bool Preview = false); virtual void DisposeState (); spine::Skeleton* skeleton;