[Unity] Texture2D 를 Image로 보여주기 (Sprite.create)
스크린샷을 찍고 (참고)
프리뷰를 보여주고 싶을 때가 있습니다.
아래의 순서로 작업해주면 됩니다.
1. CaptureScreenshotAsTexture 로 Texture2D 를 구한다.
2. Sprite.Create 로 Texture2D -> Sprite를 해준다.
3. Image의 sprite를 세팅한다.
public Image preview;
private Texture2D texture;
private void CaptureAndShowPreview()
{
texture = ScreenCapture.CaptureScreenshotAsTexture();
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
preview.sprite = sprite;
...
}
2번에서 사용된 Sprite.Create 를 살펴봅시다.
저는 가장 간단한 선언 (네모친 것) 을 사용해주었습니다.
파라미터들 중에서 제가 사용해준 것 위주로 살펴볼게요!
1. texture
Sprite로 만들어주고 싶은 텍스쳐를 여기 넘겨줍니다.
2. rect
texture에 rectangular section을 표시한 만큼 Sprite를 만들어줍니다.
우선 Rect 은 x, y, width, height 를 받는 struct 인데요,
예를들어 Rect(50.0f, 10.0f, 200.0f, 140.0f) 를 넘겨주면
초록색 빗금친 영역만 sprite로 만들어집니다.
텍스쳐의 전체영역을 다 sprite로 만들고 싶으면
Rect(0, 0, texture.width, texture.height) 를 넘겨주면 됩니다.
3. pivot
sprite의 센터를 나타내는 포인트를 넘겨줍니다.
예를들어
Vector2(0.0f, 0.0f) 는 센터가 bottom left 임을 의미하고
Vector2(1.0f, 1.0f) 는 센터가 top right 임을 의미합니다.
중간을 센터로 해주고 싶으면 Vector2(0.5f, 0.5f) 로 해줍니다.
여기서 설정해주는 피벗 포인트를 코드로 해주는 것입니다!