GetVertexBufferStride(int)
Get vertex buffer stream stride in bytes.
Read time 1 minuteLast updated 7 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.CoreModule
public int GetVertexBufferStride(int stream)
Parameters
Vertex data stream index to check for.
Returns
Type | Description |
|---|---|
| int | Vertex data size in bytes in this stream, or zero if the stream is not present. |
Remarks
Meshes usually use a single vertex buffer stream. But it is possible to setup a vertex layout where some attributes use different vertex buffers (see Mesh.SetVertexBufferParams, VertexAttributeDescriptor). You can use this function to query vertex data size in bytes within the given stream.
using UnityEngine;using UnityEngine.Rendering;public class ExampleScript : MonoBehaviour{ void Start() { // Create a Mesh with custom vertex data layout: // position and normal go into stream 0, // color goes into stream 1. var mesh = new Mesh(); mesh.SetVertexBufferParams(10, new VertexAttributeDescriptor(VertexAttribute.Position, VertexAttributeFormat.Float32, 3, stream:0), new VertexAttributeDescriptor(VertexAttribute.Normal, VertexAttributeFormat.Float32, 3, stream:0), new VertexAttributeDescriptor(VertexAttribute.Color, VertexAttributeFormat.UNorm8, 4, stream:1)); // Prints 2 (two vertex streams) Debug.Log($"Vertex stream count: {mesh.vertexBufferCount}"); // Next two lines print: 24 (12 bytes position + 12 bytes normal), 4 (4 bytes color) Debug.Log($"Steam 0 stride {mesh.GetVertexBufferStride(0)}"); Debug.Log($"Steam 1 stride {mesh.GetVertexBufferStride(1)}"); // Cleanup Object.DestroyImmediate(mesh); }}
Additional Resources: Mesh.vertexBufferCount, Mesh.GetVertexAttributeOffset, Mesh.SetVertexBufferParams.