Ejemplo n.º 1
0
    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()));
    }
Ejemplo n.º 2
0
    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()));
    }
Ejemplo n.º 3
0
    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);
            }
        }
    }