123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- using System;
- using System.IO;
- using UnityEngine;
- internal static class BinaryReaderExtensions
- {
- public static void ReadNaS(this BinaryReader br, out string str)
- {
- if (br.ReadBoolean())
- {
- str = br.ReadString();
- }
- else
- {
- str = null;
- }
- }
- public static int Read(this BinaryReader br, out int i)
- {
- return i = br.ReadInt32();
- }
- public static float Read(this BinaryReader br, out float f)
- {
- return f = br.ReadSingle();
- }
- public static ulong Read(this BinaryReader br, out ulong ul)
- {
- return ul = br.ReadUInt64();
- }
- public static bool Read(this BinaryReader br, out bool b)
- {
- return b = br.ReadBoolean();
- }
- public static void Read(this BinaryReader br, out Vector2 v2)
- {
- br.Read(out v2.x);
- br.Read(out v2.y);
- }
- public static void Read(this BinaryReader br, out Vector3 v3)
- {
- br.Read(out v3.x);
- br.Read(out v3.y);
- br.Read(out v3.z);
- }
- public static void Read(this BinaryReader br, out Vector4 v4)
- {
- br.Read(out v4.x);
- br.Read(out v4.y);
- br.Read(out v4.z);
- br.Read(out v4.w);
- }
- public static void Read(this BinaryReader br, out Quaternion v4)
- {
- br.Read(out v4.x);
- br.Read(out v4.y);
- br.Read(out v4.z);
- br.Read(out v4.w);
- }
- public static void Read(this BinaryReader br, out float[] fary)
- {
- fary = null;
- if (br.ReadBoolean())
- {
- int num = br.ReadInt32();
- fary = new float[num];
- for (int i = 0; i < num; i++)
- {
- fary[i] = br.ReadSingle();
- }
- }
- }
- public static void Read(this BinaryReader br, out int[] iary)
- {
- iary = null;
- if (br.ReadBoolean())
- {
- int num = br.ReadInt32();
- iary = new int[num];
- for (int i = 0; i < num; i++)
- {
- iary[i] = br.ReadInt32();
- }
- }
- }
- public static void Read(this BinaryReader br, out Vector4[] v4ary)
- {
- v4ary = null;
- if (br.ReadBoolean())
- {
- int num = br.ReadInt32();
- v4ary = new Vector4[num];
- for (int i = 0; i < num; i++)
- {
- br.Read(out v4ary[i]);
- }
- }
- }
- public static T ReadParse<T>(this BinaryReader br, out T value)
- {
- return value = (T)((object)Enum.Parse(typeof(T), br.ReadString()));
- }
- }
|