//获取客户端位置请求的处理的代码 public void OnSyncPositionReceived(ClientPeer peer, OperationRequest operationRequest, SendParameters sendParameters) { //接收位置并保持起来 byte[] bytes = (byte[])DictTool.GetValue <byte, object>(operationRequest.Parameters, 1); ProtoData.SyncPositionC2S syncPositionC2S = BinSerializer.DeSerialize <ProtoData.SyncPositionC2S>(bytes); peer.x = syncPositionC2S.x; peer.y = syncPositionC2S.y; peer.z = syncPositionC2S.z; }
//发起位置信息请求 public void SendSyncPositionRequest(Vector3 pos) { ProtoData.SyncPositionC2S syncPositionC2S = new ProtoData.SyncPositionC2S(); syncPositionC2S.x = pos.x; syncPositionC2S.y = pos.y; syncPositionC2S.z = pos.z; byte[] bytes = BinSerializer.Serialize(syncPositionC2S); //把位置信息x,y,z传递给服务器端 Dictionary <byte, object> data = new Dictionary <byte, object>(); data.Add(1, bytes); PhotonEngine.Peer.OpCustom((byte)OperationCode.SyncPosition, data, true);//把Player位置传递给服务器 }