Unity 매뉴얼: Raw Image 제어
개요
Raw Image는 Unity에서 사용자에게 상호작용하지 않는 이미지를 표시하기 위한 UI 요소입니다. 이 컨트롤은 주로 장식적 목적이나 아이콘 등에 사용됩니다. Raw Image는 스프라이트 대신 모든 종류의 텍스처를 사용할 수 있어 더욱 유연하게 이미지를 다룰 수 있습니다.
Raw Image의 주요 특성
| 프로퍼티 | 기능 |
|---|---|
| Texture | 표시할 이미지를 나타내는 텍스처 |
| Color | 이미지에 적용할 컬러 |
| Material | 이미지 렌더링에 사용되는 머티리얼 |
| Raycast Target | 활성화 시 Unity가 이미지를 레이캐스팅 대상으로 간주 |
| UV Rectangle | 컨트롤 사각형 안 이미지의 오프셋과 크기 조절 |
Raw Image 사용법
Raw Image는 여러 기능과 설정을 통해 다양한 방식으로 활용할 수 있습니다. 예를 들어, URL에서 다운로드한 이미지를 표시하거나 게임 오브젝트의 텍스처를 사용할 수 있습니다.
UV Rectangle 프로퍼티
- UV Rectangle을 사용하여 큰 이미지의 일부를 표시할 수 있습니다.
- X, Y 좌표는 컨트롤의 왼쪽 하단 모서리에 이미지의 어떤 부분을 정렬할지를 결정합니다.
- 예시: X 좌표가 0.25이면 이미지의 왼쪽 1/4가 잘립니다.
W, H 프로퍼티
- W와 H 프로퍼티는 각각 이미지의 너비 및 높이가 컨트롤 사각형에 맞도록 얼마나 확대/축소될지를 지정합니다.
- 예시: 너비와 높이가 각각 0.5일 경우 이미지의 1/4이 컨트롤 사각형에 맞게 축소됩니다.
활용 예제
1. URL에서 이미지 다운로드 및 표시
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
public class ImageLoader : MonoBehaviour
{
public RawImage rawImage;
void Start()
{
StartCoroutine(LoadImage("https://example.com/image.png"));
}
IEnumerator LoadImage(string url)
{
using (UnityWebRequest webRequest = UnityWebRequestTexture.GetTexture(url))
{
yield return webRequest.SendWebRequest();
if (webRequest.result == UnityWebRequest.Result.ConnectionError)
{
Debug.LogError("Error: " + webRequest.error);
}
else
{
Texture texture = DownloadHandlerTexture.GetContent(webRequest);
rawImage.texture = texture;
}
}
}
}
2. 이미지 크기 조정 및 색상 변경
using UnityEngine;
using UnityEngine.UI;
public class AdjustRawImage : MonoBehaviour
{
public RawImage rawImage;
void Start()
{
rawImage.color = Color.red; // 이미지 색상을 빨간색으로 변경
rawImage.rectTransform.sizeDelta = new Vector2(200, 100); // 이미지 크기 조정
}
}
결론
Raw Image는 Unity UI에서 강력한 도구로, 텍스처의 유연한 활용이 가능하여 다양한 게임 UI 요소에 잘 어울립니다. 위의 예제를 실제로 구현해 보면서 Raw Image의 다양한 기능을 익혀보세요.