unity利用rendertexture將攝像機圖像渲染到GUI屏幕上小圖顯示
設置內容
- 創建兩個攝像機,一個攝像機將圖像渲染到屏幕上,另一個攝像機將圖像渲染到RenderTexture紋理貼圖上。
- 創建一個GUI,其中Canvas爲畫布,上面有兩個控件,一個爲RawImage:用於將渲染後的圖像貼在上面,另一個爲Toggle選擇控件,如下圖所示。
代碼
- 不是很難理解,實現的功能就是通過勾選選擇控件,來開啓小視圖在GUI上。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class cameraDisplay : MonoBehaviour
{
public RenderTexture rt;
public Camera cam;
private RawImage UIImage;
Toggle isRawCamera;
void Start()
{
if (isRawCamera == null)
{
isRawCamera = GetComponent<Toggle>();
}
isRawCamera.isOn = false;
if (UIImage == null)
{
UIImage = GameObject.Find("RawImage").GetComponent<RawImage>();
}
UIImage.enabled = false;
UIImage.texture = null;
}
void Update()
{
if(Input.GetKeyUp(KeyCode.Q))
{
if (isRawCamera.isOn == false)
{
isRawCamera.isOn = true;
}
else
{
isRawCamera.isOn = false;
}
}
if (isRawCamera.isOn == true)
{
UIImage.enabled = true;
UIImage.texture = rt;
}
else
{
UIImage.enabled = false;
UIImage.texture = null;
}
}
}
實現效果
- 勾選住isRawCamera,GUI右下角出現小視圖,存在一個問題,我渲染到屏幕上的視圖camera做了後處理,渲染到Rendertexture的相機沒有加後處理腳本,所以兩個視圖看起來不太一樣。