我尝试使用AsyncGPUReadback从游戏包示例化的游戏对象的网格中获取数据,但我一直收到以下错误
异步GPU回读- GfxBufferID无效
找不到有关它的任何信息。下面是代码:
public static void Run(Mesh sourceMesh, System.Action<Mesh> callback)
{
GraphicsBuffer sourceDataBuffer = sourceMesh.GetVertexBuffer(0);
GraphicsBuffer sourceIndexBuffer = sourceMesh.GetIndexBuffer();
var vertexCount = sourceDataBuffer.count;
var indexCount = sourceIndexBuffer.count;
byte[] sourceData = new byte[vertexCount * (sourceDataBuffer.stride / sizeof(byte))];
byte[] sourceIndex = new byte[(int)(indexCount * ((float)sourceIndexBuffer.stride / sizeof(byte)))];
UnityEngine.Rendering.AsyncGPUReadback.Request(sourceDataBuffer, result =>
{
...
});
}
AsyncGPUReadback不能和资产包一起使用吗?我也试过非异步GetData,但是效果不好--我没有返回任何错误,但是数据是空的。
1条答案
按热度按时间pod7payv1#
对于可能遇到相同问题的用户,将源网格中的vertexBufferTarget设置为“原始”可停止错误:
我从调用中得到的结果仍然不正确,但至少错误消失了。