当前活动的图形纹理。
所有渲染都进入活动的 GraphicsTexture。如果活动的 GraphicsTexture 为 null
,则所有内容都渲染在主窗口中。如果活动的渲染目标是 RenderTexture,则 GraphicsTexture.active
返回 graphicsTexture of RenderTexture.active。
为了将活动渲染目标设置为 GraphicsTexture,它必须在纹理创建时在 GraphicsTextureDescriptor.flags 中启用 GraphicsTextureDescriptorFlags.RenderTarget。
设置 GraphicsTexture.active
等同于使用单个 GraphicsTexture 调用 Graphics.SetRenderTarget。通常,在实现自定义图形效果时,您会更改或查询活动渲染目标;如果您只需要让摄像机渲染到纹理中,则可以使用 RenderTexture 的 Camera.targetTexture。
其他资源:GraphicsTextureDescriptorFlags.RenderTarget、Graphics.SetRenderTarget、RenderTexture.active。
using UnityEngine; using UnityEngine.Rendering; using System.Collections;
// Get the contents of a GraphicsTexture into a Texture2D public class ExampleClass : MonoBehaviour { static public Texture2D GetGfxTexPixels(GraphicsTexture gfxTex) { // Remember currently active render target GraphicsTexture currentActiveRT = GraphicsTexture.active;
// Set the supplied GraphicsTexture as the active one GraphicsTexture.active = gfxTex;
// Create a new Texture2D and read the GraphicsTexture image into it Texture2D tex = new Texture2D(gfxTex.descriptor.width, gfxTex.descriptor.height); tex.ReadPixels(new Rect(0, 0, tex.width, tex.height), 0, 0); tex.Apply();
// Restore previously active render texture GraphicsTexture.active = currentActiveRT; return tex; } }