public static Mesh Create9SlicedMesh(float border = 1f, float width = 3f, float height = 3f, float marginUV = 1f)
{
Mesh mesh = new Mesh();
mesh.vertices = new Vector3[] {
new Vector3(0, 0, 0),
new Vector3(border, 0, 0),
new Vector3(width - border, 0, 0),
new Vector3(width, 0, 0),
new Vector3(0, border, 0),
new Vector3(border, border, 0),
new Vector3(width - border, border, 0),
new Vector3(width, border, 0),
new Vector3(0, height - border, 0),
new Vector3(border, height - border, 0),
new Vector3(width - border, height - border, 0),
new Vector3(width, height - border, 0),
new Vector3(0, height, 0),
new Vector3(border, height, 0),
new Vector3(width - border, height, 0),
new Vector3(width, height, 0)
};
mesh.uv = new Vector2[] {
new Vector2(0, 0),
new Vector2(marginUV, 0),
new Vector2(1 - marginUV, 0),
new Vector2(1, 0),
new Vector2(0, marginUV),
new Vector2(marginUV, marginUV),
new Vector2(1 - marginUV, marginUV),
new Vector2(1, marginUV),
new Vector2(0, 1 - marginUV),
new Vector2(marginUV, 1 - marginUV),
new Vector2(1 - marginUV, 1 - marginUV),
new Vector2(1, 1 - marginUV),
new Vector2(0, 1),
new Vector2(marginUV, 1),
new Vector2(1 - marginUV, 1),
new Vector2(1, 1)
};
mesh.triangles = new int[] {
0, 4, 5,
0, 5, 1,
1, 5, 6,
1, 6, 2,
2, 6, 7,
2, 7, 3,
4, 8, 9,
4, 9, 5,
5, 9, 10, // center plane
5, 10, 6, // center plane
6, 10, 11,
6, 11, 7,
8, 12, 13,
8, 13, 9,
9, 13, 14,
9, 14, 10,
10, 14, 15,
10, 15, 11
};
return mesh;
}