Рендер камеры вручную.
Это будет рендерить камеру. Функция будет использовать флаги очистки камеры, целевую текстуру и все другие параметры.
Камера отправит OnPreCull, OnPreRender &
OnPostRender на любые прикрепленные скрипты, и отрендерит любые возможные графические фильтры.
Это используется для регуляции порядка рендера. Для использования этой функции создайте
камеру и отключите её. Затем вызовите Render на ней.
Вы не сможете вызвать функцию Render с камеры, которая в настоящее время в процессе рендеринга. Если вы хотите
сделать это, то создайте копию камеры, и настройте её так, чтобы она соответствовала оригинальной камере, используя CopyFrom.
See Also: RenderWithShader.
// Take a "screenshot" of a camera's Render Texture. function RTImage(cam: Camera) { // The Render Texture in RenderTexture.active is the one // that will be read by ReadPixels. var currentRT = RenderTexture.active; RenderTexture.active = cam.targetTexture; // Render the camera's view. cam.Render(); // Make a new texture and read the active Render Texture into it. var image = new Texture2D(cam.targetTexture.width, cam.targetTexture.height); image.ReadPixels(new Rect(0, 0, cam.targetTexture.width, cam.targetTexture.height), 0, 0); image.Apply(); // Replace the original active Render Texture. RenderTexture.active = currentRT; return image; }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { Texture2D RTImage(Camera cam) { RenderTexture currentRT = RenderTexture.active; RenderTexture.active = cam.targetTexture; cam.Render(); Texture2D image = new Texture2D(cam.targetTexture.width, cam.targetTexture.height); image.ReadPixels(new Rect(0, 0, cam.targetTexture.width, cam.targetTexture.height), 0, 0); image.Apply(); RenderTexture.active = currentRT; return image; } }