/* 所有网络消息 ////////////////////////////////////////////// 不需要同步的消息 ////////////////////////////////////////////// EndGame // 本局结束 { } ////////////////////////////////////////////// 高频率的同步消息 ////////////////////////////////////////////// // 对应 GameData(5)和GameDataTo(6) GameData // 所有在游戏内的广播消息的通用结构,可以包含Rpc、SpawnMsg等等 { flag // GameData 或 GameDataTo gameId msgData // 具体的网络消息 } // SyncNetObject和Rpc有很多,在NetObject中实现 SyncNetObject // 定时同步innnerNetObject的数据 { DataFlag // 1 netId // 这个innerNetObject的id data // netObject的序列化数据 } Rpc // 远程调用(Remote Procedure Call)的通用结构 { RpcFlag // 2 netId // 调用的网络对象 callId // 函数id data // 函数参数(可选) } SpawnMsg // 生成\创建innerNetObject的消息,包括角色、场景中的物件比如门等 { SpawnFlag // 4 spawnId // 父InnerNetObject的SpawnId clientId // ownerId SpawnFlag numOfNetObjs // innerNetObject的个数 lenOfMsg netId // 这个innerNetObject分配的netId DataFlag data // 单个innerNetObject的序列化数据 ... lenOfMsg netId DataFlag data // 单个innerNetObject的序列化数据 ... } DespawnMsg // 销毁单个netObject { DespawnFlag // 5 netId } SceneChange // 场景加载完毕的消息,用来同步 { SceneChangeFlag // 6 clientId sceneName } PlayerReady // 某个玩家已经准备好 { ReadyFlag // 7 clientId } */