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

Graphics.CopyBuffer

建议修改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public static void CopyBuffer(GraphicsBuffer source, GraphicsBuffer dest);

参数

source 源缓冲区。
dest 目标缓冲区。

描述

将一个 GraphicsBuffer 的内容复制到另一个。

GPU 高效地复制缓冲区内容。

源缓冲区和目标缓冲区的总缓冲区大小(即 count 乘以 stride)必须匹配。源缓冲区必须具有 GraphicsBuffer.Target.CopySource 目标标志,目标缓冲区必须具有 GraphicsBuffer.Target.CopyDestination 目标标志。

using UnityEngine;

public class ExampleScript : MonoBehaviour { void Start() { // create a source index buffer and set data for it var src = new GraphicsBuffer( GraphicsBuffer.Target.Index | GraphicsBuffer.Target.CopySource, 3, 2); src.SetData(new ushort[]{1, 10, 100}); // create a destination index buffer and copy source into it var dst = new GraphicsBuffer( GraphicsBuffer.Target.Index | GraphicsBuffer.Target.CopyDestination, 3, 2); Graphics.CopyBuffer(src, dst);

// check the copied data var got = new ushort[3]; dst.GetData(got); Debug.Log($"copied data: {got[0]}, {got[1]}, {got[2]}");

// release the buffers src.Release(); dst.Release(); } }