异步线程和主线程分工
模型渲染资源的初始化需放在主线线程。
另外Socket由于默认实现使用的是StaticDuplicateObject方式,也需要在主线程做。可以改为使用NewObject方式,这样就能在异步线程做。
所以除了最后InitResources外,都可以在异步线程做。
避免Bounds计算消耗
设置bComputeBoundsOnceForGame为True,避免重复计算
避免多次UpdateChildTransfoms

避免UpdateChildTransforms 消耗
- 避免挂载过多SceneComponent。
- 按需Attach,仅在可见时Attach,不可见时Detach。
- 避免一帧多次调用UpdateChildTransforms
动画播放
老动画基于骨骼未拆分的枪制作,某些骨骼在动画里没有动作,但在合并后的模型里播放时,确有动作。
原因时动画里的骨骼有动画数据和老动画骨骼的Transform相同,但合并后骨骼结构发生了变化,这个Transform不再适用。
解决方法有两种:
- 在动画里删除对应骨骼的BoneTrack。
- 将动画改成Add的,武器不用有idle pose,所以Add动画叠加到RefPose上。