public override string MakeDiffFrame() { BinaryFormatter bf = new BinaryFormatter(); MemoryStream ms = new MemoryStream(); PlayerDiffFrameData frameData = new PlayerDiffFrameData(); frameData.position = VectorArrayConverter.vector3ToArray(transform.position); frameData.rotation = VectorArrayConverter.vector3ToArray(transform.rotation.eulerAngles); bf.Serialize(ms, frameData); return(Convert.ToBase64String(ms.ToArray())); }
public string MakeDiffFrame(Guid killer) { BinaryFormatter bf = new BinaryFormatter(); MemoryStream ms = new MemoryStream(); PlayerDiffFrameData frameData = new PlayerDiffFrameData(); frameData.position = VectorArrayConverter.vector3ToArray(transform.position); frameData.rotation = VectorArrayConverter.vector3ToArray(transform.rotation.eulerAngles); frameData.killerGUID = new Byte[killer.ToByteArray().Length]; killer.ToByteArray().CopyTo(frameData.killerGUID, 0); bf.Serialize(ms, frameData); return(Convert.ToBase64String(ms.ToArray())); }
public override void LoadDiffFrame(string binarySave) { byte[] byteArray = Convert.FromBase64String(binarySave); MemoryStream mf = new MemoryStream(byteArray); BinaryFormatter bf = new BinaryFormatter(); PlayerDiffFrameData data = (PlayerDiffFrameData)bf.Deserialize(mf); transform.position = VectorArrayConverter.arrayToVector3(data.position); transform.rotation = Quaternion.Euler(VectorArrayConverter.arrayToVector3(data.rotation)); if (data.killerGUID != null) { killerGUID = new Guid(data.killerGUID); if (GameObjectStateManager.Instance.doesParentExist(killerGUID)) { Destroy(killerGUID); } } }