1.創建一個新專案
2.新增一個Camera和RenderTexture,並將RenderTexture托放到剛剛新增的Camera上,並關閉該Camera的Flare Layer、GUI Layer、Audio Listener
為了方便區分兩個Camera(一個是預設的Main Camera、一個是剛剛新增的Camera)所看到的場景,所以在場景中放入一個Cube,並讓兩台Camera從不同視角觀看
3.新增一個C# script,並命名為RenderTexture2Texture2D.cs
為了檢驗是否真的有把RenderTexture轉成Texture2D,所以我在此範例進行存檔的動作
using System.IO;
using UnityEngine;
public class RenderTexture2Texture2D : MonoBehaviour
{
public RenderTexture rt;
private void OnGUI()
{
if(GUI.Button(new Rect(100, 100, 100, 30), "Get Picture"))
{
GetPicture();
}
}
private void GetPicture()
{
RenderTexture.active = rt;
Texture2D t = new Texture2D(rt.width, rt.height);
t.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0, true);
using (FileStream fs = new FileStream("D:/pic.png", FileMode.Create))
{
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(t.EncodeToPNG());
}
}
}
4.腳本放到Main Camera上,並將Cam托放到Rt上
5.執行後按下Get Picture得到pic.png,打開後可以看到確實是從上方的Camera所照到的畫面
留言列表