void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info) { if(stream.isWriting) { // This is OURS myInfo.position = transform.position; myInfo.rotation = transform.rotation; if(head != null) myInfo.headRotation = head.rotation; stream.SendNext(playerName); stream.SendNext(SerializeNetworkCharPacket(myInfo)); } else { // This is others' playerName = (string)stream.ReceiveNext(); receivedInfo = (NetworkCharPacket) DeserializeNetworkCharPacket ((byte[])stream.ReceiveNext()); } }
static object DeserializeNetworkCharPacket(byte[] bytes) { NetworkCharPacket packet = new NetworkCharPacket (); int index = 0; Protocol.Deserialize (out packet.position.x, bytes, ref index); Protocol.Deserialize (out packet.position.y, bytes, ref index); Protocol.Deserialize (out packet.position.z, bytes, ref index); Protocol.Deserialize (out packet.rotation.x, bytes, ref index); Protocol.Deserialize (out packet.rotation.y, bytes, ref index); Protocol.Deserialize (out packet.rotation.z, bytes, ref index); Protocol.Deserialize (out packet.rotation.w, bytes, ref index); Protocol.Deserialize (out packet.headRotation.x, bytes, ref index); Protocol.Deserialize (out packet.headRotation.y, bytes, ref index); Protocol.Deserialize (out packet.headRotation.z, bytes, ref index); Protocol.Deserialize (out packet.headRotation.w, bytes, ref index); return packet; }