Compare commits
2 Commits
a530eba460
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 7719e77b77 | |||
| fd68071416 |
@@ -1334,14 +1334,19 @@ namespace Convention
|
||||
while (loadingTask.Count > 0)
|
||||
{
|
||||
// 防止大量无延迟函数的使用导致假死机
|
||||
//if (Time.realtimeSinceStartup - CoroutineStarter.waitClock > maxWaitClock)
|
||||
if (Time.realtimeSinceStartup - CoroutineStarter.waitClock > maxWaitClock)
|
||||
{
|
||||
yield return null;
|
||||
}
|
||||
if (loadingTask.Peek().MoveNext())
|
||||
{
|
||||
if (loadingTask.Peek().Current is IEnumerator next)
|
||||
var current = loadingTask.Peek().Current;
|
||||
if (current is IEnumerator next)
|
||||
loadingTask.Push(next);
|
||||
else if (current is YieldInstruction yieldInstruction)
|
||||
yield return yieldInstruction;
|
||||
else if (current is CustomYieldInstruction customYieldInstruction)
|
||||
yield return customYieldInstruction;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1362,7 +1367,7 @@ namespace Convention
|
||||
// 防止大量无延迟函数的使用导致假死机
|
||||
if (Time.realtimeSinceStartup - CoroutineStarter.waitClock > maxWaitClock)
|
||||
{
|
||||
yield return null;
|
||||
yield return ir.Current;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2615,7 +2620,7 @@ namespace Convention
|
||||
{
|
||||
return reader.ReadBoolean();
|
||||
}
|
||||
public static void WriteInt(BinaryWriter writer, int data)
|
||||
public static void WriteInt(BinaryWriter writer, in int data)
|
||||
{
|
||||
writer.Write(data);
|
||||
}
|
||||
@@ -2623,7 +2628,7 @@ namespace Convention
|
||||
{
|
||||
return reader.ReadInt32();
|
||||
}
|
||||
public static void WriteFloat(BinaryWriter writer, float data)
|
||||
public static void WriteFloat(BinaryWriter writer, in float data)
|
||||
{
|
||||
writer.Write(data);
|
||||
}
|
||||
@@ -2631,7 +2636,7 @@ namespace Convention
|
||||
{
|
||||
return reader.ReadSingle();
|
||||
}
|
||||
public static void WriteChar(BinaryWriter writer, char data)
|
||||
public static void WriteChar(BinaryWriter writer, in char data)
|
||||
{
|
||||
writer.Write(data);
|
||||
}
|
||||
@@ -2639,15 +2644,15 @@ namespace Convention
|
||||
{
|
||||
return reader.ReadChar();
|
||||
}
|
||||
public static void WriteString(BinaryWriter writer, string data)
|
||||
public static void WriteString(BinaryWriter writer, in string data)
|
||||
{
|
||||
writer.Write(data);
|
||||
writer.Write(data ?? "");
|
||||
}
|
||||
public static string ReadString(BinaryReader reader)
|
||||
{
|
||||
return reader.ReadString();
|
||||
}
|
||||
public static void WriteVec3(BinaryWriter writer, Vector3 data)
|
||||
public static void WriteVec3(BinaryWriter writer, in Vector3 data)
|
||||
{
|
||||
writer.Write(data.x);
|
||||
writer.Write(data.y);
|
||||
@@ -2661,7 +2666,7 @@ namespace Convention
|
||||
z = reader.ReadSingle();
|
||||
return new Vector3(x, y, z);
|
||||
}
|
||||
public static void WriteVec2(BinaryWriter writer, Vector2 data)
|
||||
public static void WriteVec2(BinaryWriter writer, in Vector2 data)
|
||||
{
|
||||
writer.Write(data.x);
|
||||
writer.Write(data.y);
|
||||
@@ -2673,6 +2678,22 @@ namespace Convention
|
||||
y = reader.ReadSingle();
|
||||
return new Vector2(x, y);
|
||||
}
|
||||
public static void WriteColor(BinaryWriter writer, in Color data)
|
||||
{
|
||||
writer.Write(data.r);
|
||||
writer.Write(data.g);
|
||||
writer.Write(data.b);
|
||||
writer.Write(data.a);
|
||||
}
|
||||
public static Color ReadColor(BinaryReader reader)
|
||||
{
|
||||
float r, g, b, a;
|
||||
r = reader.ReadSingle();
|
||||
g = reader.ReadSingle();
|
||||
b = reader.ReadSingle();
|
||||
a = reader.ReadSingle();
|
||||
return new(r, g, b, a);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -2682,40 +2703,40 @@ namespace Convention
|
||||
|
||||
public static void SerializeNativeArray(BinaryWriter writer, in NativeArray<int> array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
int e = Mathf.Min(array == null ? 0 : array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
writer.Write(array[start++]);
|
||||
}
|
||||
}
|
||||
public static int DeserializeNativeArray(BinaryReader reader, ref NativeArray<int> array, int start = 0)
|
||||
public static int DeserializeNativeArray(BinaryReader reader, ref NativeArray<int> array)
|
||||
{
|
||||
int count = reader.ReadInt32();
|
||||
if (array.Length < count)
|
||||
array.ResizeArray(count);
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
array[start + i] = reader.ReadInt32();
|
||||
array[i] = reader.ReadInt32();
|
||||
}
|
||||
return count;
|
||||
}
|
||||
public static void SerializeArray(BinaryWriter writer, in int[] array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
int e = Mathf.Min(array == null ? 0 : array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
writer.Write(array[start++]);
|
||||
}
|
||||
}
|
||||
public static int[] DeserializeIntArray(BinaryReader reader, int start = 0)
|
||||
public static int[] DeserializeIntArray(BinaryReader reader)
|
||||
{
|
||||
int count = reader.ReadInt32();
|
||||
int[] array = new int[count];
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
array[start + i] = reader.ReadInt32();
|
||||
array[i] = reader.ReadInt32();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
@@ -2726,40 +2747,40 @@ namespace Convention
|
||||
|
||||
public static void SerializeNativeArray(BinaryWriter writer, in NativeArray<float> array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
int e = Mathf.Min(array == null ? 0 : array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
writer.Write(array[start++]);
|
||||
}
|
||||
}
|
||||
public static int DeserializeNativeArray(BinaryReader reader, ref NativeArray<float> array, int start = 0)
|
||||
public static int DeserializeNativeArray(BinaryReader reader, ref NativeArray<float> array)
|
||||
{
|
||||
int count = reader.ReadInt32();
|
||||
if (array.Length < count)
|
||||
array.ResizeArray(count);
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
array[start + i] = reader.ReadSingle();
|
||||
array[i] = reader.ReadSingle();
|
||||
}
|
||||
return count;
|
||||
}
|
||||
public static void SerializeArray(BinaryWriter writer, in float[] array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
int e = Mathf.Min(array == null ? 0 : array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
writer.Write(array[start++]);
|
||||
}
|
||||
}
|
||||
public static float[] DeserializeFloatArray(BinaryReader reader, int start = 0)
|
||||
public static float[] DeserializeFloatArray(BinaryReader reader)
|
||||
{
|
||||
int count = reader.ReadInt32();
|
||||
float[] array = new float[count];
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
array[start + i] = reader.ReadSingle();
|
||||
array[i] = reader.ReadSingle();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
@@ -2770,20 +2791,20 @@ namespace Convention
|
||||
|
||||
public static void SerializeArray(BinaryWriter writer, in string[] array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
int e = Mathf.Min(array == null ? 0 : array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
writer.Write(array[start++]);
|
||||
writer.Write(array[start++] ?? "");
|
||||
}
|
||||
}
|
||||
public static string[] DeserializeStringArray(BinaryReader reader, int start = 0)
|
||||
public static string[] DeserializeStringArray(BinaryReader reader)
|
||||
{
|
||||
int count = reader.ReadInt32();
|
||||
string[] array = new string[count];
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
array[start + i] = reader.ReadString();
|
||||
array[i] = reader.ReadString();
|
||||
}
|
||||
return array;
|
||||
}
|
||||
@@ -2794,7 +2815,7 @@ namespace Convention
|
||||
|
||||
public static void SerializeNativeArray(BinaryWriter writer, in NativeArray<Vector3> array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
int e = Mathf.Min(array == null ? 0 : array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
@@ -2804,7 +2825,7 @@ namespace Convention
|
||||
start++;
|
||||
}
|
||||
}
|
||||
public static int DeserializeNativeArray(BinaryReader reader, ref NativeArray<Vector3> array, int start = 0)
|
||||
public static int DeserializeNativeArray(BinaryReader reader, ref NativeArray<Vector3> array)
|
||||
{
|
||||
int count = reader.ReadInt32();
|
||||
if (array.Length < count)
|
||||
@@ -2815,13 +2836,13 @@ namespace Convention
|
||||
x = reader.ReadSingle();
|
||||
y = reader.ReadSingle();
|
||||
z = reader.ReadSingle();
|
||||
array[start + i] = new(x, y, z);
|
||||
array[i] = new(x, y, z);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
public static void SerializeArray(BinaryWriter writer, in Vector3[] array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
int e = Mathf.Min(array == null ? 0 : array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
@@ -2852,7 +2873,7 @@ namespace Convention
|
||||
|
||||
public static void SerializeNativeArray(BinaryWriter writer, in NativeArray<Vector2> array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
int e = Mathf.Min(array == null ? 0 : array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
@@ -2861,7 +2882,7 @@ namespace Convention
|
||||
start++;
|
||||
}
|
||||
}
|
||||
public static int DeserializeNativeArray(BinaryReader reader, ref NativeArray<Vector2> array, int start = 0)
|
||||
public static int DeserializeNativeArray(BinaryReader reader, ref NativeArray<Vector2> array)
|
||||
{
|
||||
int count = reader.ReadInt32();
|
||||
if (array.Length < count)
|
||||
@@ -2871,13 +2892,13 @@ namespace Convention
|
||||
{
|
||||
x = reader.ReadSingle();
|
||||
y = reader.ReadSingle();
|
||||
array[start + i] = new(x, y);
|
||||
array[i] = new(x, y);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
public static void SerializeArray(BinaryWriter writer, in Vector2[] array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
int e = Mathf.Min(array == null ? 0 : array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
@@ -2886,7 +2907,7 @@ namespace Convention
|
||||
start++;
|
||||
}
|
||||
}
|
||||
public static Vector2[] DeserializeVec2Array(BinaryReader reader, int start = 0)
|
||||
public static Vector2[] DeserializeVec2Array(BinaryReader reader)
|
||||
{
|
||||
int count = reader.ReadInt32();
|
||||
Vector2[] array = new Vector2[count];
|
||||
@@ -2895,7 +2916,55 @@ namespace Convention
|
||||
{
|
||||
x = reader.ReadSingle();
|
||||
y = reader.ReadSingle();
|
||||
array[start + i] = new(x, y);
|
||||
array[i] = new(x, y);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Color
|
||||
|
||||
public static void SerializeNativeArray(BinaryWriter writer, in NativeArray<Color> array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
WriteColor(writer, array[start]);
|
||||
start++;
|
||||
}
|
||||
}
|
||||
public static int DeserializeNativeArray(BinaryReader reader, ref NativeArray<Color> array)
|
||||
{
|
||||
int count = reader.ReadInt32();
|
||||
if (array.Length < count)
|
||||
array.ResizeArray(count);
|
||||
float x, y, z;
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
array[i] = ReadColor(reader);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
public static void SerializeArray(BinaryWriter writer, in Color[] array, int start = 0, int end = int.MaxValue)
|
||||
{
|
||||
int e = Mathf.Min(array.Length, end);
|
||||
writer.Write(e - start);
|
||||
while (start < e)
|
||||
{
|
||||
WriteColor(writer, array[start]);
|
||||
start++;
|
||||
}
|
||||
}
|
||||
public static Color[] DeserializeVec3Array(BinaryReader reader)
|
||||
{
|
||||
int count = reader.ReadInt32();
|
||||
Color[] array = new Color[count];
|
||||
float x, y, z;
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
array[i] = ReadColor(reader);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user