Unity 6.3
0 онлайн 40 гостей 3 в системе
Вход

Mesh.GetVertexAttributeStream

Declaration

public int GetVertexAttributeStream(Rendering.VertexAttribute attr);

Параметры

Параметр Описание
АТР Атрибут данных вершины для проверки.

Возвращаемое значение

инт Индекс потока атрибута data, или -1, если он отсутствует.

Описание

Получает индекс потока вершинного буфера определенного атрибута данных вершины на этой Сети.

Этот метод определяет, какой поток буфера вершин содержит указанный атрибут вершины в соответствии с текущим расположением вершин Сети.

Unity позволяет гибко организовывать атрибуты вершин (например, position, normal, UVs, color). Они могут быть переплетены вместе в одном потоке (обычно поток 0) или распределены между несколькими отдельными потоками (потоками 0, 1, 2 и т.д.). Вы настраиваете этот расположение с помощью методов, таких как SetVertexBufferParams.

При работе с многотоковыми расположениями, или когда вам нужно знать, какой поток буфера содержит данные определенного атрибута, используйте эту функцию. Например, вам может понадобиться индекс потока, чтобы передать его другим методам, таким как GetVertexBufferStride или GetVertexAttributeOffset, или при доступе к конкретным буферам через MeshData API.

Эта функция возвращает нулевое значение индекса потока, содержащего атрибут. Она не предоставляет байтовое смещение атрибута в этом потоке; для этой цели используйте 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); } }

Дополнительные ресурсы: ,VertexAttribute,, ,HasVertexAttribute,, ,GetVertexAttributeOffset,, ,vertexBufferCount,, ,GetVertexBufferStride,.