private void RecievePacket(RecievedPacket packet) { if (packet.type == PacketType.charSelect) { // Send out complete list of selectors if (packet.value == PacketValue.completeList) { selectorList.GetListFromBytes(packet, UpdateSelector); // Add selector } else if (packet.value == PacketValue.addUpdate) { UpdateSelector(selectorList.UnpackObj(packet.data), packet.GetTimeDifference()); MultiplayerManager.peerManager.SendDataToAllPeers(selectorList.GetBytesFromList(), PacketType.charSelect, PacketValue.completeList, true); // Selector moves or changes } else if (packet.value == PacketValue.changeUpdate) { UpdateSelector(selectorList.UnpackObj(packet.data), packet.GetTimeDifference()); } // Load the game } else if (packet.type == PacketType.startGame) { MultiplayerManager.manager.LoadGame(selectorList, packet.GetTimeDifference()); } }
// Send out a list of objects which changed in the last time step private void PhysicsHandler() { if (MultiplayerManager.IsHost) { if (movedObjList.Count() != 0) { MultiplayerManager.peerManager?.SendDataToAllPeers(movedObjList.GetBytesFromList(), PacketType.objectMove, PacketValue.changeUpdate); movedObjList.Reset(); } } }