using System; using System.IO; using UnityEngine; internal static class BinaryWriterExtensions { public static void WriteNaS(this BinaryWriter bw, string str) { bw.Write(str != null); if (str != null) { bw.Write(str); } } public static void Write(this BinaryWriter bw, Vector2 v2) { bw.Write(v2.x); bw.Write(v2.y); } public static void Write(this BinaryWriter bw, Vector3 v3) { bw.Write(v3.x); bw.Write(v3.y); bw.Write(v3.z); } public static void Write(this BinaryWriter bw, Vector4 v4) { bw.Write(v4.x); bw.Write(v4.y); bw.Write(v4.z); bw.Write(v4.w); } public static void Write(this BinaryWriter bw, Quaternion q) { bw.Write(q.x); bw.Write(q.y); bw.Write(q.z); bw.Write(q.w); } public static void Write(this BinaryWriter bw, float[] fary) { bw.Write(fary != null); if (fary != null) { bw.Write(fary.Length); foreach (float value in fary) { bw.Write(value); } } } public static void Write(this BinaryWriter bw, int[] iary) { bw.Write(iary != null); if (iary != null) { bw.Write(iary.Length); foreach (int value in iary) { bw.Write(value); } } } public static void Write(this BinaryWriter bw, Vector4[] v4ary) { bw.Write(v4ary != null); if (v4ary != null) { bw.Write(v4ary.Length); foreach (Vector4 v in v4ary) { bw.Write(v); } } } }