Bläddra i källkod

[ue4] Only show preview animation and skin in editor viewports.

badlogic 6 år sedan
förälder
incheckning
79e4f9ca69

+ 13 - 11
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) {
 void USpineSkeletonAnimationComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) {
 	Super::Super::TickComponent(DeltaTime, TickType, 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();
 	CheckState();
 
 
 	if (state && bAutoPlaying) {
 	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->update(DeltaTime);
 		state->apply(*skeleton);
 		state->apply(*skeleton);

+ 1 - 1
spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineSkeletonComponent.cpp

@@ -258,7 +258,7 @@ void USpineSkeletonComponent::TickComponent (float DeltaTime, ELevelTick TickTyp
 	InternalTick(DeltaTime);
 	InternalTick(DeltaTime);
 }
 }
 
 
-void USpineSkeletonComponent::InternalTick(float DeltaTime, bool CallDelegates) {
+void USpineSkeletonComponent::InternalTick(float DeltaTime, bool CallDelegates, bool Preview) {
 	CheckState();
 	CheckState();
 
 
 	if (skeleton) {
 	if (skeleton) {

+ 3 - 3
spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonAnimationComponent.h

@@ -260,10 +260,10 @@ public:
 	UPROPERTY(BlueprintAssignable, Category="Components|Spine|Animation")
 	UPROPERTY(BlueprintAssignable, Category="Components|Spine|Animation")
 	FSpineAnimationDisposeDelegate AnimationDispose;
 	FSpineAnimationDisposeDelegate AnimationDispose;
 
 
-	UPROPERTY(Transient, EditAnywhere, Category=Spine)
+	UPROPERTY(EditAnywhere, Category=Spine)
 	FString PreviewAnimation;
 	FString PreviewAnimation;
 
 
-	UPROPERTY(Transient, EditAnywhere, Category=Spine)
+	UPROPERTY(EditAnywhere, Category=Spine)
 	FString PreviewSkin;
 	FString PreviewSkin;
 	
 	
 	// used in C event callback. Needs to be public as we can't call
 	// 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); }
 	void GCTrackEntry(UTrackEntry* entry) { trackEntries.Remove(entry); }
 protected:
 protected:
 	virtual void CheckState () override;
 	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;
 	virtual void DisposeState () override;
 	
 	
 	spine::AnimationState* state;
 	spine::AnimationState* state;

+ 1 - 1
spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineSkeletonComponent.h

@@ -133,7 +133,7 @@ public:
 	
 	
 protected:
 protected:
 	virtual void CheckState ();
 	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 ();
 	virtual void DisposeState ();
 
 
 	spine::Skeleton* skeleton;
 	spine::Skeleton* skeleton;