/// <summary> /// /// </summary> /// <param name="aName">The name of the mesh</param> /// <param name="aWidth">The overall width of the plane</param> /// <param name="aHeight">The overall height of the plane</param> /// <param name="aMeshBoarder">The inner boarder percent of the plane</param> /// <param name="aOutterUV">The outter UV percentages</param> /// <param name="aInnerUV"></param> /// <returns></returns> public static Mesh GenerateUniformPlane(Mesh aMesh, float aWidth, float aHeight, UIBoarder aMeshBoarder, UIBoarder aOutterUV, UIBoarder aInnerUV) { if (aMesh == null) { return null; } ///Outer edges UIBoarder meshInnerBoarder = new UIBoarder(-aWidth * 0.5f, aWidth * 0.5f, aHeight * 0.5f, -aHeight * 0.5f); ///Inner edges UIBoarder meshOutterBoarder = new UIBoarder( meshInnerBoarder.left + aWidth * aMeshBoarder.left, meshInnerBoarder.right - aWidth * (1.0f - aMeshBoarder.right), meshInnerBoarder.top - aHeight * (1.0f - aMeshBoarder.top), meshInnerBoarder.bottom + aHeight * aMeshBoarder.bottom); Mesh mesh = aMesh; Vector3[] vertices = new Vector3[36]; Vector2[] texCoords = new Vector2[36]; Color[] colors = new Color[36]; int[] indices = new int[54]; //top left face vertices[0] = new Vector3(meshInnerBoarder.left, meshInnerBoarder.top, 0.0f); vertices[1] = new Vector3(meshOutterBoarder.left, meshInnerBoarder.top, 0.0f); vertices[2] = new Vector3(meshOutterBoarder.left, meshOutterBoarder.top, 0.0f); vertices[3] = new Vector3(meshInnerBoarder.left, meshOutterBoarder.top, 0.0f); //top middle face vertices[4] = new Vector3(meshOutterBoarder.left, meshInnerBoarder.top, 0.0f); vertices[5] = new Vector3(meshOutterBoarder.right, meshInnerBoarder.top, 0.0f); vertices[6] = new Vector3(meshOutterBoarder.right, meshOutterBoarder.top, 0.0f); vertices[7] = new Vector3(meshOutterBoarder.left, meshOutterBoarder.top, 0.0f); //top right face vertices[8] = new Vector3(meshOutterBoarder.right, meshInnerBoarder.top, 0.0f); vertices[9] = new Vector3(meshInnerBoarder.right, meshInnerBoarder.top, 0.0f); vertices[10] = new Vector3(meshInnerBoarder.right, meshOutterBoarder.top, 0.0f); vertices[11] = new Vector3(meshOutterBoarder.right, meshOutterBoarder.top, 0.0f); //middle left face vertices[12] = new Vector3(meshInnerBoarder.left, meshOutterBoarder.top, 0.0f); vertices[13] = new Vector3(meshOutterBoarder.left, meshOutterBoarder.top, 0.0f); vertices[14] = new Vector3(meshOutterBoarder.left, meshOutterBoarder.bottom, 0.0f); vertices[15] = new Vector3(meshInnerBoarder.left, meshOutterBoarder.bottom, 0.0f); //middle middle face vertices[16] = new Vector3(meshOutterBoarder.left, meshOutterBoarder.top, 0.0f); vertices[17] = new Vector3(meshOutterBoarder.right, meshOutterBoarder.top, 0.0f); vertices[18] = new Vector3(meshOutterBoarder.right, meshOutterBoarder.bottom, 0.0f); vertices[19] = new Vector3(meshOutterBoarder.left, meshOutterBoarder.bottom, 0.0f); //middle right face vertices[20] = new Vector3(meshOutterBoarder.right, meshOutterBoarder.top, 0.0f); vertices[21] = new Vector3(meshInnerBoarder.right, meshOutterBoarder.top, 0.0f); vertices[22] = new Vector3(meshInnerBoarder.right, meshOutterBoarder.bottom, 0.0f); vertices[23] = new Vector3(meshOutterBoarder.right, meshOutterBoarder.bottom, 0.0f); //bottom left face vertices[24] = new Vector3(meshInnerBoarder.left, meshOutterBoarder.bottom, 0.0f); vertices[25] = new Vector3(meshOutterBoarder.left, meshOutterBoarder.bottom, 0.0f); vertices[26] = new Vector3(meshOutterBoarder.left, meshInnerBoarder.bottom, 0.0f); vertices[27] = new Vector3(meshInnerBoarder.left, meshInnerBoarder.bottom, 0.0f); //bottom middle face vertices[28] = new Vector3(meshOutterBoarder.left, meshOutterBoarder.bottom, 0.0f); vertices[29] = new Vector3(meshOutterBoarder.right, meshOutterBoarder.bottom, 0.0f); vertices[30] = new Vector3(meshOutterBoarder.right, meshInnerBoarder.bottom, 0.0f); vertices[31] = new Vector3(meshOutterBoarder.left, meshInnerBoarder.bottom, 0.0f); //bottom right face vertices[32] = new Vector3(meshOutterBoarder.right, meshOutterBoarder.bottom, 0.0f); vertices[33] = new Vector3(meshInnerBoarder.right, meshOutterBoarder.bottom, 0.0f); vertices[34] = new Vector3(meshInnerBoarder.right, meshInnerBoarder.bottom, 0.0f); vertices[35] = new Vector3(meshOutterBoarder.right, meshInnerBoarder.bottom, 0.0f); //Top left UV texCoords[0] = new Vector2(0.0f, 1.0f); texCoords[1] = new Vector2(aOutterUV.left, 1.0f); texCoords[2] = new Vector2(aOutterUV.left, aOutterUV.top); texCoords[3] = new Vector2(0.0f, aOutterUV.top); //Top Center UV texCoords[4] = new Vector2(aOutterUV.left, 1.0f); texCoords[5] = new Vector2(aOutterUV.right, 1.0f); texCoords[6] = new Vector2(aOutterUV.right, aOutterUV.top); texCoords[7] = new Vector2(aOutterUV.left, aOutterUV.top); //Top Right UV texCoords[8] = new Vector2(aOutterUV.right, 1.0f); texCoords[9] = new Vector2(1.0f, 1.0f); texCoords[10] = new Vector2(1.0f, aOutterUV.top); texCoords[11] = new Vector2(aOutterUV.right, aOutterUV.top); //Middle Left UV texCoords[12] = new Vector2(0.0f, aOutterUV.top); texCoords[13] = new Vector2(aOutterUV.left, aOutterUV.top); texCoords[14] = new Vector2(aOutterUV.left, aOutterUV.bottom); texCoords[15] = new Vector2(0.0f, aOutterUV.bottom); //Middle Center UV texCoords[16] = new Vector2(aInnerUV.left, aInnerUV.top); texCoords[17] = new Vector2(aInnerUV.right, aInnerUV.top); texCoords[18] = new Vector2(aInnerUV.right, aInnerUV.bottom); texCoords[19] = new Vector2(aInnerUV.left, aInnerUV.bottom); //Middle Right UV texCoords[20] = new Vector2(aOutterUV.right, aOutterUV.top); texCoords[21] = new Vector2(1.0f, aOutterUV.top); texCoords[22] = new Vector2(1.0f, aOutterUV.bottom); texCoords[23] = new Vector2(aOutterUV.right, aOutterUV.bottom); //Bottom Left UV texCoords[24] = new Vector2(0.0f, aOutterUV.bottom); texCoords[25] = new Vector2(aOutterUV.left, aOutterUV.bottom); texCoords[26] = new Vector2(aOutterUV.left, 0.0f); texCoords[27] = new Vector2(0.0f, 0.0f); //Bottom Center UV texCoords[28] = new Vector2(aOutterUV.left, aOutterUV.bottom); texCoords[29] = new Vector2(aOutterUV.right, aOutterUV.bottom); texCoords[30] = new Vector2(aOutterUV.right, 0.0f); texCoords[31] = new Vector2(aOutterUV.left, 0.0f); //Bottom Right UV texCoords[32] = new Vector2(aOutterUV.right, aOutterUV.bottom); texCoords[33] = new Vector2(1.0f, aOutterUV.bottom); texCoords[34] = new Vector2(1.0f, 0.0f); texCoords[35] = new Vector2(aOutterUV.right, 0.0f); for (int i = 0; i < 36; i++) { colors[i] = Color.white; } int face = 0; for (int i = 0; i < 53; i += 6) { indices[i + 0] = face + 0; indices[i + 1] = face + 1; indices[i + 2] = face + 3; indices[i + 3] = face + 1; indices[i + 4] = face + 2; indices[i + 5] = face + 3; face += 4; } mesh.vertices = vertices; mesh.colors = colors; mesh.uv = texCoords; mesh.uv1 = texCoords; mesh.uv2 = texCoords; mesh.triangles = indices; mesh.RecalculateNormals(); mesh.RecalculateBounds(); return mesh; }
public static Mesh GenerateUniformPlane(string aName, float aWidth, float aHeight, UIBoarder aTextureBoarder) { return GenerateUniformPlane(aName, aWidth, aHeight, aTextureBoarder, new UIBoarder(0.1f, 0.9f, 0.9f, 0.1f), new UIBoarder(0.1f, 0.9f, 0.9f, 0.1f)); }
public static Mesh GenerateUniformPlane(string aName, float aWidth, float aHeight, UIBoarder aMeshBoarder, UIBoarder aOutterUV, UIBoarder aInnerUV) { Mesh mesh = new Mesh(); mesh.name = aName; return GenerateUniformPlane(mesh, aWidth, aHeight, aMeshBoarder, aOutterUV, aInnerUV); }
public override void Clear() { base.Clear(); m_Disabled = false; m_DisabledTexture = null; m_NormalTexture = null; m_HoverTexture = null; m_DownTexture = null; m_EnabledTextColor = Color.white; m_DisabledTextColor = Color.gray; m_EventListener = null; m_LabelText = string.Empty; m_LabelFontSize = 100; m_LabelFont = null; m_LabelFontTexture = null; m_LabelColor = Color.white; m_ImageWidth = 1.0f; m_ImageHeight = 1.0f; m_ImageMeshBoarder = new UIBoarder(0.1f, 0.9f, 0.9f, 0.1f); m_ImageOuterUVBoarder = new UIBoarder(0.1f, 0.9f, 0.9f, 0.1f); m_ImageInnerUVBoarder = new UIBoarder(0.1f, 0.9f, 0.9f, 0.1f); m_ImageTexture = null; m_ImageShader = null; m_ImageColor = Color.white; }