using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PreviewManager : MonoBehaviour {
[Header ("Preview References")]
public Camera[] renderCam = new Camera[3];
public Renderer[] previewRenderer = new Renderer[3];
Texture2D[] previewTex = new Texture2D[3];
RenderTexture[] renderTex = new RenderTexture[3];
bool isPreviewRendering = true;
void LateUpdate () {
OnPostRender ();
}
void OnPostRender () {
if (!isPreviewRendering) return;
for (int i = 0; i < renderCam.Length; i++) {
renderTex[i] = GetCameraRT (renderCam[i]);
previewTex[i] = toTexture2D (renderTex[i]);
previewRenderer[i].material.SetTexture ("_BaseColorMap", previewTex[i]);
}
}
public RenderTexture GetCameraRT (Camera cam) {
var rt = RenderTexture.GetTemporary (Screen.width, Screen.height);
cam.targetTexture = rt;
cam.Render ();
cam.targetTexture = null;
return rt;
}
Texture2D toTexture2D (RenderTexture rTex) {
Texture2D tex = new Texture2D (512, 512, TextureFormat.RGB24, false);
RenderTexture.active = rTex;
tex.ReadPixels (new Rect (0, 0, rTex.width, rTex.height), 0, 0);
tex.Apply ();
return tex;
}
}