2017-08-27 74 views
0

ベクトルからなるクラスをシリアライズしようとしています。そのようなことを修正しようとすると、いくつかのエラーが表示されます。だから、私はベクトルをシリアライズする方法を助ける必要があります。私はそれを浮動小数点に変換して、直列化し、後でその浮動小数点を非直列化して変換で取り出す必要がありますか?はいの場合はどうですか?Unityバイナリシリアライザを使ってVector3をシリアライズする方法

 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

は(クォータニオンと同様)のVector3はシリアライズではないようです。独自のV3クラス/構造体内にラップするか、各フロートを個別にシリアライズしてください。 – Everts

+0

@Everts私は方法を知らない –

答えて

1

Vector3はシリアル化できないようです。少なくとも、それは過去10年間、おそらくそれはv2017で変わるだろう。

ベクトル2/3/4またはクォータニオンをシリアル化するためには、まずそれの新しいバージョンを作成します。

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

代わりにするVector3のボールクラスで、このバージョンを使用します。

全クラスの実装は、時:http://answers.unity3d.com/questions/956047/serialize-quaternion-or-vector3.html

関連する問題