わかりました。バイト配列をint
、string
、Stream
などに変換する方法を尋ねる人からの質問があります。個人的に満足できる答えは見つかりませんでした。
そのため、バイト配列を変換したいいくつかの型があります。
UnityEngine.Font
ttf
データを取り込むことができます。
UnityEngine.Testure2D
は、.png
、.jpg
などの画像ファイルからデータを取り込むことができます...
バイト配列をどのようにString
、UnityEngine.Testure2D,UnityEngine.Font
、Bitmap
などに変換しますか...
バイト配列に入力するデータは、バイト配列を変換するタイプによって管理できるデータを持つファイルタイプのものである必要がありますか?
これは現在可能ですか?
任意の助けをいただければ幸いです。
プリミティブ型は、バイト配列として定義された表現を持っているため、簡単です。他のオブジェクトは、ファイルハンドル、他のオブジェクトへの参照など、永続化できないものが含まれている可能性があるためではありません。
tryBinaryFormatter
を使用して、オブジェクトをバイト配列に永続化できます。
public byte[] ToByteArray<T>(T obj)
{
if(obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
using(MemoryStream ms = new MemoryStream())
{
bf.Serialize(ms, obj);
return ms.ToArray();
}
}
public T FromByteArray<T>(byte[] data)
{
if(data == null)
return default(T);
BinaryFormatter bf = new BinaryFormatter();
using(MemoryStream ms = new MemoryStream(data))
{
object obj = bf.Deserialize(ms);
return (T)obj;
}
}
ただし、すべてのタイプがシリアル化できるわけではありません。たとえば、データベースへの接続を「保存」する方法はありません。create接続(接続文字列など)に使用される情報は保存できますが、実際の接続オブジェクトは保存できません。