using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraScreen : MonoBehaviour {
public Camera arcamera;//截图相机
public GameObject projectionModel; //投影模型
public GameObject hiddenModel; //隐藏模型
private void Start()
{
//旋转相机角度
//arcamera.transform.Rotate(new Vector3(0, 0, -90));
//将物体移出视野
hiddenModel.transform.position = new Vector3(100, 100, 100);
}
private void Update()
{
ScreenPicture();
}
/// <summary>
/// 获取摄像机截图图片,并将图片贴到模型上
/// </summary>
public void ScreenPicture()
{
//投影
projectionModel.GetComponent<Renderer>().material.mainTexture = CaptureCamera(arcamera, new Rect(0, 0, 500, 500));
}
/// <summary>
/// 摄像机截图
/// </summary>
/// <param name="camera"></param>
/// <param name="rect"></param>
/// <returns></returns>
Texture2D CaptureCamera(Camera camera, Rect rect)
{
RenderTexture rt = new RenderTexture((int)rect.width, (int)rect.height, 0);
camera.targetTexture = rt;
camera.Render();
RenderTexture.active = rt;
Texture2D screenShot = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false);
screenShot.ReadPixels(rect, 0, 0);
screenShot.Apply();
camera.targetTexture = null;
RenderTexture.active = null;
GameObject.Destroy(rt);
//保存图片
//byte[] bytes = screenShot.EncodeToPNG();
//string filename = Application.dataPath + "/picture/Screenshot.png";
//System.IO.File.WriteAllBytes(filename, bytes);
return screenShot;
}
}
Unity 相机截图并投影
猜你喜欢
转载自blog.csdn.net/l1336037686/article/details/80974794
今日推荐
周排行