public ArrayMeshSurface(ArrayMesh mesh, int index) { Ensure.That(mesh, nameof(mesh)).IsNotNull(); Ensure.That(index, nameof(index)).IsGte(0); Mesh = mesh; Index = index; Key = mesh.SurfaceGetName(index); FormatMask = Mesh.SurfaceGetFormat(index); PrimitiveType = Mesh.SurfaceGetPrimitiveType(Index); BlendShapeMode = Mesh.BlendShapeMode; _material = memo(() => Optional(Mesh.SurfaceGetMaterial(index))); }