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的相机没有加后处理脚本,所以两个视图看起来不太一样。