版本:Unity 6 (6000.0)
语言英语
  • C#

网格.GetVertexAttributeStream

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们会查看用户提出的每项建议变更,并在适用情况下进行更新。

关闭

提交失败

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

关闭

取消

切换至手册

声明

public int GetVertexAttributeStream(渲染.VertexAttribute attr);

参数

attr 要检查的顶点数据属性。

返回

数据属性的流索引,如果不存在,则返回 -1。

描述

获取此网格上特定顶点数据属性的顶点缓冲流索引。

网格通常使用单个顶点缓冲流,但可以设置一个顶点布局,其中属性使用不同的顶点缓冲区(参见SetVertexBufferParams)。当使用此布局时,请使用此函数查询给定属性属于哪个顶点缓冲流。

请注意,此函数返回流的索引,而不指定属性在流中的位置。若要识别流中给定属性的位置,请使用GetVertexAttributeOffset

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 stream indices: 0, 0, 1 Debug.Log($"Position stream {mesh.GetVertexAttributeStream(VertexAttribute.Position)}"); Debug.Log($"Normal stream {mesh.GetVertexAttributeStream(VertexAttribute.Normal)}"); Debug.Log($"Color stream {mesh.GetVertexAttributeStream(VertexAttribute.Color)}");

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