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

TerrainData.CopyActiveRenderTextureToTexture

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public void CopyActiveRenderTextureToTexture(string textureName, int textureIndex, RectInt sourceRect, Vector2Int dest, bool allowDelayedCPUSync);

参数

textureName 要复制到的地形纹理的名称。
textureIndex 要复制到的地形纹理的索引。
sourceRect 要复制的活动渲染纹理的一部分。
dest 要复制到的地形纹理的 X 和 Y 坐标。
allowDelayedCPUSync 指定是否允许纹理的延迟 CPU 同步。

描述

将活动 RenderTexture 的指定部分复制到地形纹理。

如果 allowDelayedCPUSync 参数设置为 true,并且平台支持在 RenderTextureTexture2D 之间复制,Unity 会执行从活动 RenderTexture 到地形纹理的 GPU 复制。这足以用于地形渲染,但您需要随后调用 SyncTexture 来同步纹理的 CPU 部分。

如果 allowDelayedCPUSync 参数设置为 false,或者平台不支持纹理之间的复制,Unity 会立即读回活动 RenderTexture 的内容,并更新地形纹理的 CPU 和 GPU 部分。

Unity 建议您以 Terrain.heightmapRenderTextureFormat 指定的格式创建要复制的源渲染纹理,并在写入源渲染纹理之前调用 HLSL 函数 PackHeightmap。要使用 PackHeightmap,请确保在着色器中包含包含指令 #include "UnityCG.cginc"

其他资源:DirtyTextureRegionSyncTexture