あるキャラクターの位置を同期する際に、サーバでは正常に位置が更新され、クライアント側では位置がガガガガっとシェイクするような見た目が起こるバグがあった。
割と複雑な構造なプロジェクトだったので気が付かなかったが、IsServerを入れれていなかったことが原因だった。
実際に起こったことをシンプルに書くと以下のような感じだった。
修正前
protected override void HandleCharacterEnter(BaseNetworkCreature character)
{
obj.GetComponent<NetworkObject>().Spawn();
}
修正後
protected override void HandleCharacterEnter(BaseNetworkCreature character)
{
if (IsServer) {
obj.GetComponent<NetworkObject>().Spawn();
}
}