From b4a1f6978b081cd9ad55461c759b9c44970e6cda Mon Sep 17 00:00:00 2001 From: badlogic Date: Wed, 9 Oct 2019 14:48:16 +0200 Subject: [PATCH] [ue4] Added missing null check in bone driver component. Closes #1517. --- .../Blueprints/SpineboyHover_Blueprint.uasset | Bin 0 -> 28277 bytes .../Private/SpineBoneDriverComponent.cpp | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 spine-ue4/Content/GettingStarted/Blueprints/SpineboyHover_Blueprint.uasset diff --git a/spine-ue4/Content/GettingStarted/Blueprints/SpineboyHover_Blueprint.uasset b/spine-ue4/Content/GettingStarted/Blueprints/SpineboyHover_Blueprint.uasset new file mode 100644 index 0000000000000000000000000000000000000000..538380cc3f9e10450da3033779df63f587a7b63f GIT binary patch literal 28277 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 K#mDI%&ix+@%i7}r literal 0 HcmV?d00001 diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneDriverComponent.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneDriverComponent.cpp index 6e4914d98..320322dfb 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneDriverComponent.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineBoneDriverComponent.cpp @@ -40,7 +40,7 @@ void USpineBoneDriverComponent::BeginPlay () { } void USpineBoneDriverComponent::BeforeUpdateWorldTransform(USpineSkeletonComponent* skeleton) { - if (skeleton == lastBoundComponent) { + if (skeleton == lastBoundComponent && skeleton) { if (UseComponentTransform) { skeleton->SetBoneWorldPosition(BoneName, GetComponentLocation()); } @@ -56,7 +56,7 @@ void USpineBoneDriverComponent::TickComponent (float DeltaTime, ELevelTick TickT if (Target) { USpineSkeletonComponent* skeleton = static_cast(Target->GetComponentByClass(USpineSkeletonComponent::StaticClass())); - if (skeleton != lastBoundComponent) { + if (skeleton != lastBoundComponent && skeleton) { // if (lastBoundComponent) lastBoundComponent->BeforeUpdateWorldTransform.RemoveAll(this); if (!skeleton->BeforeUpdateWorldTransform.GetAllObjects().Contains(this)) skeleton->BeforeUpdateWorldTransform.AddDynamic(this, &USpineBoneDriverComponent::BeforeUpdateWorldTransform);