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

GraphicsTexture.active

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

public static Rendering.GraphicsTexture active;

描述

当前活动的图形纹理。

所有渲染都进入活动的 GraphicsTexture。如果活动的 GraphicsTexture 为 null,则所有内容都渲染在主窗口中。如果活动的渲染目标是 RenderTexture,则 GraphicsTexture.active 返回 graphicsTexture of RenderTexture.active

为了将活动渲染目标设置为 GraphicsTexture,它必须在纹理创建时在 GraphicsTextureDescriptor.flags 中启用 GraphicsTextureDescriptorFlags.RenderTarget

设置 GraphicsTexture.active 等同于使用单个 GraphicsTexture 调用 Graphics.SetRenderTarget。通常,在实现自定义图形效果时,您会更改或查询活动渲染目标;如果您只需要让摄像机渲染到纹理中,则可以使用 RenderTextureCamera.targetTexture

其他资源:GraphicsTextureDescriptorFlags.RenderTargetGraphics.SetRenderTargetRenderTexture.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; } }