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

BlendShapeBufferRange

UnityEngine 中的结构体

/

实现于:UnityEngine.CoreModule

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

描述

描述混合形状顶点数据在GraphicsBuffer中的位置。

当您使用BlendShapeBufferLayout.PerShape调用Mesh.GetBlendShapeBuffer时,Unity 会返回一个包含混合形状顶点数据的GraphicsBuffer,这些数据按混合形状排序。

当您为给定的混合形状调用Mesh.GetBlendShapeBufferRange时,Unity 会返回此结构体。使用此结构体可以在GraphicsBuffer中找到该混合形状的数据。

using UnityEngine;
using UnityEngine.Rendering;

public class Example : MonoBehaviour { public Mesh mesh; public ComputeShader computeShader;

void Start() { // Fetch GraphicsBuffer with Blend Shape data, ordered per shape, from the mesh var perShapeBuffer = mesh.GetBlendShapeBuffer(BlendShapeBufferLayout.PerShape);

// Iterate over all Blend Shapes in a mesh for (int blendShapeIndex = 0; blendShapeIndex < mesh.blendShapeCount; ++blendShapeIndex) { // Fetch which indices in the buffer that is part of this Blend Shape var blendShapeRange = mesh.GetBlendShapeBufferRange(blendShapeIndex);

// Set the start and end indices of the Blend Shape in the compute shader computeShader.SetInt("_StartIndex", (int)blendShapeRange.startIndex); computeShader.SetInt("_EndIndex", (int)blendShapeRange.endIndex);

// Dispatch compute shader and access data between start and end index for this Blend Shape computeShader.Dispatch(0, 64, 1, 1); }

// Dispose of GraphicsBuffer to avoid leak memory perShapeBuffer.Dispose(); } }

属性

endIndex请求的混合形状的最后一个混合形状顶点的索引。
startIndex请求的混合形状的第一个混合形状顶点的索引。