Any change to the setting for the variable bStartWithTickEnabled in a skeletal mesh component is not registered. The component will tick even when the variable is set to false.
Setting bStartWithTickEnabled on an Actor Component works as expected (Does not tick until explicitly told to)
UMySkeletalMeshComponent(); virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;
#include "Engine.h" #define DebugText(text) if (GEngine) GEngine->AddOnScreenDebugMessage(-1, 1.5, FColor::White,text) UMySkeletalMeshComponent::UMySkeletalMeshComponent() { PrimaryComponentTick.bStartWithTickEnabled = false; } void UMySkeletalMeshComponent::TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) { Super::TickComponent(DeltaTime, TickType, ThisTickFunction); DebugText("RandomText"); }
Result:
The "RandomText" appears in the viewport after adding the instance and appears in PIE even though the skeletal mesh component should need its tick enabled before Tick occurs
Expected:
When bStartWithTickEnabled is false, component doesn't tick until EnableTick() is called
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-47203 in the post.
7 |
Component | UE - Gameplay - Components |
---|---|
Affects Versions | 4.16.2 |
Created | Jul 13, 2017 |
---|---|
Resolved | Aug 18, 2021 |
Updated | Aug 18, 2021 |