egametang / ET

Unity3D Client And C# Server Framework
Other
8.78k stars 3k forks source link

设置客户端启动Process=0,不使用默认值和服务器一致 #637

Closed zzGamer666 closed 1 week ago

zzGamer666 commented 1 week ago

如果和服务器一致,有可能会导致服务器同步到客户端的Entity和新添加的Id重复。

egametang commented 1 week ago

是不是逻辑写错了,客户端的Entity怎么会跟服务器创建的Entity放在同一个管理器中

zzGamer666 commented 1 week ago

我是在服务器创建了component,添加了child然后序列化到客户端,在客户端Deserialize的时候根据同步下来的一些信息,又对component添加了一些child,如果Process id和服务器一致,假如服务器客户端在同1秒创建child就会有可能导致 Entity Id 一致。

zzGamer666 commented 1 week ago

我是使用 Mempack 加 ISerializeToEntity 进行Entity 同步的,在客户端Deserialize的时候又添加了新的child

egametang commented 1 week ago

这种场景我想不出来,一般来说,服务端的Entity跟客户端的 Entity不会是同一个Parent,你想想为什么不在服务端生成好呢,要到客户端再add一个child。如果一定需要的话自己修改一下就行了