public static void DrawQuads(Vector3[] verts, float width) { if (verts.Length >= 16250) { Vector3[] array = new Vector3[verts.Length - 16250]; for (int i = 16250; i < verts.Length; i++) { array[i - 16250] = verts[i]; } Vector3[] array2 = new Vector3[16250]; for (int j = 0; j < 16250; j++) { array2[j] = verts[j]; } DebugUtility.DrawQuads(array, width); verts = array2; } width /= 2f; Vector3[] array3 = new Vector3[verts.Length * 4]; int[] array4 = new int[verts.Length * 6]; for (int k = 0; k < verts.Length; k++) { Vector3 vector = verts[k]; int num = k * 4; array3[num] = vector + new Vector3(-width, 0f, -width); array3[num + 1] = vector + new Vector3(-width, 0f, width); array3[num + 2] = vector + new Vector3(width, 0f, width); array3[num + 3] = vector + new Vector3(width, 0f, -width); int num2 = k * 6; array4[num2] = num; array4[num2 + 1] = num + 1; array4[num2 + 2] = num + 2; array4[num2 + 3] = num; array4[num2 + 4] = num + 2; array4[num2 + 5] = num + 3; } Mesh mesh = new Mesh(); mesh.name = "DebugUtility_Mesh"; mesh.vertices = array3; mesh.triangles = array4; mesh.RecalculateNormals(); mesh.RecalculateBounds(); GameObject gameObject = new GameObject("DebugMesh"); MeshRenderer meshRenderer = gameObject.AddComponent(typeof(MeshRenderer)) as MeshRenderer; meshRenderer.material = DebugUtility.active.defaultMaterial; (gameObject.AddComponent(typeof(MeshFilter)) as MeshFilter).mesh = mesh; }