版本:Unity 6(6000.0)
语言中文(简体)
  • C#

网格.GetVertexBufferStride

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读来自用户的每一处建议的更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,无法提交您建议的更改。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到 Manual

声明

public int GetVertexBufferStride(int stream);

参数

要检查的顶点数据流索引。

返回

int 此流中的顶点数据大小(以字节为单位),如果流不存在,则为零。

说明

获取顶点缓冲区流字节跨步。

网格通常使用单个的顶点缓冲区流。但可以设置一个顶点布局,其中一些属性使用不同的顶点缓冲区(参见SetVertexBufferParamsVertexAttributeDescriptor)。可以使用此函数查询给定流中的按字节计的顶点数据大小。

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); } }