private void OnPointUp(BaseEventData arg0) { //GameEntity entity = _context.CreateEntity(); //entity.AddPlayerId(Config.SelfId); //entity.AddSteerPosition(Vector2.zero); // 发送到帧同步服务器 SteerPositionReq req = new SteerPositionReq(); req.X = 0; req.Y = 0; LockStepClientMgr.GetInstance().SendMsg(MsgID.SteerPositionReq, req); }
private void OnClick(BaseEventData arg0) { PointerEventData eventData = (PointerEventData)arg0; //GameEntity entity = _context.CreateEntity(); //entity.AddPlayerId(Config.SelfId); //entity.AddSteerPosition(eventData.position); // 发送到帧同步服务器 SteerPositionReq req = new SteerPositionReq(); req.X = eventData.position.x; req.Y = eventData.position.y; LockStepClientMgr.GetInstance().SendMsg(MsgID.SteerPositionReq, req); }
private void FixedUpdate() { // 2个客户端都登录后,才开始帧同步 if (_loginInPlayerCount < 2) { return; } _nextKeyFrame = _currKeyFrame + Config.SYN_RATE_SERVER; if (_currFrame % Config.SYN_RATE_SERVER == 0) { // 当前关键帧结束 LockStepEnd lockStepEnd = new LockStepEnd(); lockStepEnd.KeyFrame = _nextKeyFrame; lockStepEnd.MsgTotal = _msgIndex; ServerUDPMgr.GetInstance().SendMsgToAll(MsgID.LockStepEnd, lockStepEnd); _currKeyFrame = _currFrame; _msgIndex = 0; } if (_msgQueue.Count != 0) { foreach (LockStepServerMsgItem serverMsgItem in _msgQueue) { if (serverMsgItem.msgId == MsgID.SteerPositionReq) { SteerPositionReq steerPositionReq = (SteerPositionReq)serverMsgItem.msg; SteerPositionRsp steerPositionRsp = new SteerPositionRsp(); steerPositionRsp.PlayerId = serverMsgItem.sendPlayerId; steerPositionRsp.X = steerPositionReq.X; steerPositionRsp.Y = steerPositionReq.Y; // 客户端将要执行该命令的帧 steerPositionRsp.KeyFrame = _nextKeyFrame; steerPositionRsp.MsgIndex = _msgIndex; ServerUDPMgr.GetInstance().SendMsgToAll(MsgID.SteerPositionRsp, steerPositionRsp); _msgIndex++; } } _msgQueue.Clear(); } _currFrame++; }