U3D闯关游戏中的机关运作是怎么实现同步的

目的是机关是要保持一致,游戏中的机关都是本地的脚本驱动的
现在的想法是再开始的时候要做一次机关状态的同步让各个客户端的机关状态保持一致,但是考虑到有延迟的问题会导致这一次的同步到达各个客户端的时间不一致,目前也没有啥太好的想法,想问有什么办法

感觉没什么更好的解决方案,因为客户端所处环境不同,各种原因都有可能导致有延迟

服务器方等待啊,客户端状态好了就给服务端通知啊。

服务端等待的伪代码:

// 设置已经同步好的客户端数量为0
int Count = 0;

// 例如有n个客户端需要同步
// 循环等待客户端发送准备完成的消息
while(count < n)
{
// 线程等待
Thread.Sleep(0);
}

// 开始后续操作开始游戏
BeginGame();


服务端更新伪代码:

ReceiveClientMsg()
{
// 如果收到了准备完成的消息
Server.Count ++ ;
}