我正在尝试序列化一个由向量组成的类。因此,在尝试修复此类问题时会弹出一些错误。所以,我需要帮助如何序列化矢量。我必须将其转换为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);
答案 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