hi, i have found that GetCollisionProfileName always return Custom even if the Collision preset is standard OverlapDynamic. does anyone know why is this happen?
this is the log before collision changed, which is the collision preset in the pie
UX2FunctionWrapper_Fire_Collision::OnFire.X2FunctionWrapper_Fire_Collision_1(36): DI1211, 15401124, Old Collision: Custom
UX2ActorLibrary::PushCollision(457): DI1211, 15401124, PrimitiveComp: BP_WoodenArrow0.BP_PerceiveBox; NewCollisionTag: _PC$$Fire$$$$Custom
this is a common problem when running in animation loops.
for now, i can find 2 solutions:
- store corresponding variable value in main thread, tick or sth
- switch running thread to main game thread
after more logic digging, the final reason have been found.
it has nothing to do with animation, or thread. when the arrow is equipped to the player, some other logic set its CollisionProfileName to Custom directly.
and, animation notify is definitely running in game thread. no need to switch to game thread here.