UE4 的那些坑

Actor同步问题

笔者一天发现,如果在服务端去设置一个actor的位置时,客户端的actor会发生位置拉扯现象。

起初以为是网络同步问题,但后来把set actor location 去掉后,不再出现此类问题。

后在模板中复现这个问题,但客户端的actor并没有出现位置拉扯现象,让笔者纳闷很久。

之后在查看源码的时候,发现了在Actor基类中,有这么一个函数。

 

`void AActor::OnRep_AttachmentReplication()`

在这个函数里,有对RootComponent位置设置并同步的代码,这就恰恰导致了如果我们在后台再次使用设置位置的API,就会导致附加到另一个actor上的actor位置出现拉扯现象。

要解决这个问题也非常简单,只需把 OnRep_ReplicatedMovement OnRep_AttachmentReplication 这两个函数重载即可。

posted @ 2022-12-16 16:16  moonstoneG  阅读(174)  评论(0)    收藏  举报