Class VertexHelper
A utility class that can aid in the generation of meshes for the UI.
Implements
Inherited Members
Namespace: UnityEngine.UI
Assembly: UnityEngine.UI.dll
Syntax
public class VertexHelper : IDisposable
Remarks
This class implements IDisposable to aid with memory management.
Examples
using UnityEngine;
using UnityEngine.UI;
public class ExampleClass : MonoBehaviour
{
Mesh m;
void Start()
{
Color32 color32 = Color.red;
using (var vh = new VertexHelper())
{
vh.AddVert(new Vector3(0, 0), color32, new Vector2(0f, 0f));
vh.AddVert(new Vector3(0, 100), color32, new Vector2(0f, 1f));
vh.AddVert(new Vector3(100, 100), color32, new Vector2(1f, 1f));
vh.AddVert(new Vector3(100, 0), color32, new Vector2(1f, 0f));
vh.AddTriangle(0, 1, 2);
vh.AddTriangle(2, 3, 0);
vh.FillMesh(m);
}
}
}
Constructors
VertexHelper()
Construct an empty VertexHelper backed by persistent native storage.
Declaration
public VertexHelper()
VertexHelper(Mesh)
Construct a VertexHelper seeded with the contents of an existing Mesh.
Declaration
public VertexHelper(Mesh m)
Parameters
| Type | Name | Description |
|---|---|---|
| Mesh | m | Mesh whose vertices, colors, UV channels (0-4), normals, tangents, and submesh 0 indices are copied into the helper. |
Properties
currentIndexCount
Get the number of indices set on the VertexHelper.
Declaration
public int currentIndexCount { get; }
Property Value
| Type | Description |
|---|---|
| int |
currentVertCount
Current number of vertices in the buffer.
Declaration
public int currentVertCount { get; }
Property Value
| Type | Description |
|---|---|
| int |
Methods
AddTriangle(int, int, int)
Add a triangle to the buffer.
Declaration
public void AddTriangle(int idx0, int idx1, int idx2)
Parameters
| Type | Name | Description |
|---|---|---|
| int | idx0 | index 0 |
| int | idx1 | index 1 |
| int | idx2 | index 2 |
AddUIVertexQuad(UIVertex[])
Add a quad to the stream.
Declaration
public void AddUIVertexQuad(UIVertex[] verts)
Parameters
| Type | Name | Description |
|---|---|---|
| UIVertex[] | verts | 4 Vertices representing the quad. |
AddUIVertexStream(List<UIVertex>, List<int>)
Add a stream of custom UIVertex and corresponding indices.
Declaration
public void AddUIVertexStream(List<UIVertex> verts, List<int> indices)
Parameters
| Type | Name | Description |
|---|---|---|
| List<UIVertex> | verts | The custom stream of verts to add to the helpers internal data. |
| List<int> | indices | The custom stream of indices to add to the helpers internal data. |
AddUIVertexTriangleStream(List<UIVertex>)
Add a list of triangles to the stream. Each group of 3 verts becomes one triangle.
Declaration
public void AddUIVertexTriangleStream(List<UIVertex> verts)
Parameters
| Type | Name | Description |
|---|---|---|
| List<UIVertex> | verts | Vertices to add. Length should be divisible by 3. |
AddVert(UIVertex)
Add a single vertex to the stream.
Declaration
public void AddVert(UIVertex v)
Parameters
| Type | Name | Description |
|---|---|---|
| UIVertex | v | The vertex to add |
AddVert(Vector3, Color32, Vector4)
Add a single vertex to the stream.
Declaration
public void AddVert(Vector3 position, Color32 color, Vector4 uv0)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | position | Position of the vert |
| Color32 | color | Color of the vert |
| Vector4 | uv0 | UV of the vert |
AddVert(Vector3, Color32, Vector4, Vector4, Vector3, Vector4)
Add a single vertex to the stream.
Declaration
public void AddVert(Vector3 position, Color32 color, Vector4 uv0, Vector4 uv1, Vector3 normal, Vector4 tangent)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | position | Position of the vert |
| Color32 | color | Color of the vert |
| Vector4 | uv0 | UV of the vert |
| Vector4 | uv1 | UV1 of the vert |
| Vector3 | normal | Normal of the vert. |
| Vector4 | tangent | Tangent of the vert |
AddVert(Vector3, Color32, Vector4, Vector4, Vector4, Vector4, Vector3, Vector4)
Add a single vertex to the stream.
Declaration
public void AddVert(Vector3 position, Color32 color, Vector4 uv0, Vector4 uv1, Vector4 uv2, Vector4 uv3, Vector3 normal, Vector4 tangent)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | position | Position of the vert |
| Color32 | color | Color of the vert |
| Vector4 | uv0 | UV of the vert |
| Vector4 | uv1 | UV1 of the vert |
| Vector4 | uv2 | UV2 of the vert |
| Vector4 | uv3 | UV3 of the vert |
| Vector3 | normal | Normal of the vert. |
| Vector4 | tangent | Tangent of the vert |
AddVert(Vector3, Color32, Vector4, Vector4, Vector4, Vector4, Vector3, Vector4, Vector4)
Add a single vertex to the stream.
Declaration
public void AddVert(Vector3 position, Color32 color, Vector4 uv0, Vector4 uv1, Vector4 uv2, Vector4 uv3, Vector3 normal, Vector4 tangent, Vector4 prevPosition)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | position | Position of the vert |
| Color32 | color | Color of the vert |
| Vector4 | uv0 | UV of the vert |
| Vector4 | uv1 | UV1 of the vert |
| Vector4 | uv2 | UV2 of the vert |
| Vector4 | uv3 | UV3 of the vert |
| Vector3 | normal | Normal of the vert. |
| Vector4 | tangent | Tangent of the vert |
| Vector4 | prevPosition | Previous position of the vert (in the UV4 slot) |
Clear()
Clear all vertices from the stream.
Declaration
public void Clear()
Dispose()
Cleanup allocated memory.
Declaration
public void Dispose()
FillMesh(Mesh)
Fill the given mesh with the stream data.
Declaration
public void FillMesh(Mesh mesh)
Parameters
| Type | Name | Description |
|---|---|---|
| Mesh | mesh | The mesh to write the current vertex and index data into. |
GetUIVertexStream(List<UIVertex>)
Create a stream of UI vertex (in triangles) from the stream.
Declaration
public void GetUIVertexStream(List<UIVertex> stream)
Parameters
| Type | Name | Description |
|---|---|---|
| List<UIVertex> | stream | The list to populate with the current vertex data in triangle-stream format. |
PopulateUIVertex(ref UIVertex, int)
Fill a UIVertex with data from index i of the stream.
Declaration
public void PopulateUIVertex(ref UIVertex vertex, int i)
Parameters
| Type | Name | Description |
|---|---|---|
| UIVertex | vertex | Vertex to populate |
| int | i | Index to populate. |
SetUIVertex(UIVertex, int)
Set a UIVertex at the given index.
Declaration
public void SetUIVertex(UIVertex vertex, int i)
Parameters
| Type | Name | Description |
|---|---|---|
| UIVertex | vertex | The vertex to fill |
| int | i | the position in the current list to fill. |