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

Mesh.GetVertexAttributeOffset

建议更改

成功!

感謝您幫助我們改善 Unity 文檔的質量。儘管我們無法接受所有提交,但我們會閱讀來自使用者的每一個建議變更,並在適用的情況下進行更新。

關閉

提交失敗

由於某些原因,您的建議變更無法提交。請在幾分鐘後再<a>重試</a>一次。感謝您花時間幫助我們改善 Unity 文檔的質量。

關閉

取消

切換到手冊

聲明

public int GetVertexAttributeOffset(Rendering.VertexAttribute attr);

參數

attr 要檢查的頂點數據屬性。

返回

int 數據屬性的串流內部位元組偏移,如果不存在,則為 -1。

描述

獲取此網格上某個特定頂點數據屬性的頂點緩衝區串流內部的偏移。

網格通常只使用一個頂點緩衝區串流,但可以設置一個頂點佈局,其中屬性使用不同的頂點緩衝區(請見 SetVertexBufferParams)。在使用此類佈局時,請使用此函式來查詢某個給定屬性在串流中的位置。

注意,此函式返回串流中的位元組偏移,但未指定串流。若要辨別包含某個特定屬性的串流,請使用 GetVertexAttributeStream

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 offsets: 0, 12, 0 Debug.Log($"Position offset {mesh.GetVertexAttributeOffset(VertexAttribute.Position)}"); Debug.Log($"Normal offset {mesh.GetVertexAttributeOffset(VertexAttribute.Normal)}"); Debug.Log($"Color offset {mesh.GetVertexAttributeOffset(VertexAttribute.Color)}");

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