RenderTexture란?
Render Texture는 렌더링 작업에 사용되는 특수 유형의 텍스처입니다.
장면, 개체 또는 후처리 효과를 화면 밖에서 렌더링할 수 있습니다.
다양한 영역을 모니터링할 수 있는 보안 카메라 시스템을 만들고 싶을 때 Render Texture을 사용할 수 있습니다.
이번 포스팅에서는 간단하게 해당 장면을 캡쳐한 후 png파일로 폴더에 저장하는 방법에 대해 배워보고자 합니다.
카메라 세팅
세팅은 위 링크를 참고해주시면 되겠습니다
해당 화면 이미지 캡쳐하기
위 사진과 같이 카메라 세팅 및 Mirror을 세팅해주면 되겠습니다.
위 배치가 맘에 들지 않는다면 본인이 원하시는 대로 배치 하시면 됩니다.
코드
아래 코드를 작성해주겠습니다.
using UnityEngine;
public class Mirror : MonoBehaviour
{
[SerializeField] private RenderTexture m_MirrorRenderTexture;
public void CaptureRenderTexture()
{
Texture2D texture = new Texture2D(m_MirrorRenderTexture.width, m_MirrorRenderTexture.height, TextureFormat.RGB24, false);
RenderTexture.active = m_MirrorRenderTexture;
texture.ReadPixels(new Rect(0, 0, m_MirrorRenderTexture.width, m_MirrorRenderTexture.height), 0, 0);
texture.Apply();
byte[] bytes = texture.EncodeToPNG();
System.IO.File.WriteAllBytes("RenderTextureCapture.png", bytes);
RenderTexture.active = null;
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.C))
{
CaptureRenderTexture();
}
}
}
저는 Mirror라고 스크립트의 이름을 지어줬습니다.
Mirror 스크립트를 만든 다음 Mirror "게임오브젝트"에 붙여주시면 됩니다.
Render Texture에 붙여준 다음 게임을 실행 후 C버튼을 눌러줍니다.
C버튼을 눌러주면 프로젝트 폴더에 png파일을 만들어낼 수 있습니다.
png파일의 경우 프로젝트 폴더내 저장한 경로를 따라가면 찾아볼 수 있습니다!