手动渲染摄像机。
该函数用于渲染摄像机。它将使用摄像机的清除标记、目标纹理和所有其他设置。
摄像机会将 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; } }