# vertexAttributeCount

> Returns the number of vertex attributes that the mesh has. (Read Only)

## Definition

* **Type:** Property
* **Namespace:** [UnityEngine](/engine/6000.3/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public int vertexAttributeCount { get; }
```

### Remarks

This property returns the number of active vertex attributes (see [VertexAttributeDescriptor](/engine/6000.3/script-reference/unityengine/rendering/vertexattributedescriptor.md)). Together with [Mesh.GetVertexAttribute](/engine/6000.3/script-reference/unityengine/mesh/getvertexattribute.md) it can be used to query information about vertex attributes that are present in the mesh, without needing any managed allocations.

```csharp
using UnityEngine;
using UnityEngine.Rendering;

public class ExampleScript : MonoBehaviour
{
    void Start()
    {
        // Create a Mesh with custom vertex data layout
        var mesh = new Mesh();
        mesh.SetVertexBufferParams(10,
            new VertexAttributeDescriptor(VertexAttribute.Position, VertexAttributeFormat.Float32, 3),
            new VertexAttributeDescriptor(VertexAttribute.Normal, VertexAttributeFormat.Float32, 3),
            new VertexAttributeDescriptor(VertexAttribute.Color, VertexAttributeFormat.UNorm8, 4));

        // Prints 3 (three attributes)
        Debug.Log($"Vertex stream count: {mesh.vertexAttributeCount}");

        // Cleanup
        Object.DestroyImmediate(mesh);
    }
}
```

Additional Resources: [Mesh.GetVertexAttribute](/engine/6000.3/script-reference/unityengine/mesh/getvertexattribute.md), [Mesh.GetVertexAttributes](/engine/6000.3/script-reference/unityengine/mesh/getvertexattributes.md), [VertexAttributeDescriptor](/engine/6000.3/script-reference/unityengine/rendering/vertexattributedescriptor.md).
