手动渲染相机。
这将渲染相机。它将使用相机的清除标志、目标纹理和所有其他设置。
相机将向附加的任何脚本发送 OnPreCull、OnPreRender 和 OnPostRender,并渲染任何最终的图像滤镜。
这用于精确控制渲染顺序。要使用此功能,请创建一个相机并禁用它。然后在其上调用 Render。
您无法从当前正在渲染的相机调用 Render 函数。如果您希望执行此操作,请创建相机的副本,并使用 CopyFrom 使其与原始相机匹配。
其他资源:RenderWithShader。
using UnityEngine;
public class Example : MonoBehaviour { // Take a "screenshot" of a camera's Render Texture. Texture2D RTImage(Camera camera) { // The Render Texture in RenderTexture.active is the one // that will be read by ReadPixels. var currentRT = RenderTexture.active; RenderTexture.active = camera.targetTexture;
// Render the camera's view. camera.Render();
// Make a new texture and read the active Render Texture into it. Texture2D image = new Texture2D(camera.targetTexture.width, camera.targetTexture.height); image.ReadPixels(new Rect(0, 0, camera.targetTexture.width, camera.targetTexture.height), 0, 0); image.Apply();
// Replace the original active Render Texture. RenderTexture.active = currentRT; return image; } }