using System; using System.Runtime.InteropServices; using UnityEngine; public static class QExtensions { public static TStruct[] ToStructArray(this IntPtr ptr, int count) { if (ptr == IntPtr.Zero) return null; TStruct[] result = new TStruct[count]; int size = Marshal.SizeOf(); IntPtr current = ptr; for (int i = 0; i < count; ++i) { result[i] = Marshal.PtrToStructure(current); current = new IntPtr(current.ToInt64() + size); } return result; } public static Vector3 ToVector3(this QVec3 vec) { return new Vector3(vec.x, vec.y, vec.z); } }