private bool PointRaycastMesh(Vector2 hitPos, ref FlatMeshData data) { int trisCount = data.Triangles.Length / 3; for (int i = 0; i < trisCount; i++) { var v1 = data.Vertices[data.Triangles[3 * i]]; var v2 = data.Vertices[data.Triangles[3 * i + 1]]; var v3 = data.Vertices[data.Triangles[3 * i + 2]]; if (v1 == v2 || v2 == v3 || v1 == v3) { continue; } if (PointInTriangle(hitPos, v1, v2, v3)) { return(true); } } return(false); }
protected Mesh CreateMeshFromBlob(ref FlatMeshData data) { var verts = new Vector3[data.Vertices.Length]; for (int i = 0; i < verts.Length; i++) { var x = data.Vertices[i].x; var y = data.Vertices[i].y; verts[i] = new Vector3(x, y); } var triangles = new int[data.Triangles.Length]; for (int i = 0; i < triangles.Length; i++) { triangles[i] = data.Triangles[i]; } return(new Mesh { vertices = verts, triangles = triangles }); }