Unity如何使用二进制序列化器序列化Vector3

时间:2017-08-27 16:41:08

标签: c# unity3d

我正在尝试序列化一个由向量​​组成的类。因此,在尝试修复此类问题时会弹出一些错误。所以,我需要帮助如何序列化矢量。我必须将其转换为float并序列化,然后反序列化该float并在转换时检索。如果是的话怎么样?

       BinaryFormatter bf = new BinaryFormatter();
       BallData ball = new BallData();
       ball.velocity = usergivenvelocity;
       ball.initialposition = position;
       FileStream file = File.Create(Application.persistentdatapath + "/Level_" + levelnumber.ToString() + ".dat");
       bf.Serialize(file,ball);

1 个答案:

答案 0 :(得分:1)

Vector3似乎不可序列化。至少,它已经过去10年了,也许它会随着2017年的变化而变化。

为了序列化Vector2 / 3/4或Quaternion,您首先要创建它的新版本:

[System.Serializable]
public class Vector3Ser
{
    public float x,y,z;
}

在Ball类中使用此版本而不是Vector3。

全班实施:http://answers.unity3d.com/questions/956047/serialize-quaternion-or-vector3.html