异步线程和主线程分工

模型渲染资源的初始化需放在主线线程。
另外Socket由于默认实现使用的是StaticDuplicateObject方式,也需要在主线程做。可以改为使用NewObject方式,这样就能在异步线程做。
所以除了最后InitResources外,都可以在异步线程做。

避免Bounds计算消耗

设置bComputeBoundsOnceForGame为True,避免重复计算

避免多次UpdateChildTransfoms

Pasted image 20250731151753.png

避免UpdateChildTransforms 消耗

  1. 避免挂载过多SceneComponent。
  2. 按需Attach,仅在可见时Attach,不可见时Detach。
  3. 避免一帧多次调用UpdateChildTransforms

动画播放

老动画基于骨骼未拆分的枪制作,某些骨骼在动画里没有动作,但在合并后的模型里播放时,确有动作。
原因时动画里的骨骼有动画数据和老动画骨骼的Transform相同,但合并后骨骼结构发生了变化,这个Transform不再适用。
解决方法有两种:

  1. 在动画里删除对应骨骼的BoneTrack。
  2. 将动画改成Add的,武器不用有idle pose,所以Add动画叠加到RefPose上。