[유니티] GUITexture -> UI.Image

·

· 최종 수정


금 간 낡은 액자에서 꺼낸 빛바랜 즉석 사진이 새 파란 액자 옆에 기대 있는 장면에 'GUITexture UI.Image로 바꾸는 법' 표제를 얹은 사진풍 이미지

한눈에 보기

  • 문제: Unity 2018에서 만든 프로젝트를 새 버전에서 열면 error CS0619: 'GUITexture' is obsolete 같은 컴파일 오류가 한꺼번에 쏟아집니다.
  • 원인: 예전 GUI 부품인 GUITexture와 GUIText가 Unity 2019.3에서 엔진에서 빠졌습니다. 2019.2까지는 “더 이상 쓰지 않음(Obsolete)” 표시만 붙은 채 남아 있었습니다.
  • 해결: GUITexture는 UI.Image로, GUIText는 UI.Text로 바꾸고 스크립트에 using UnityEngine.UI;를 더합니다. 텍스처를 넣던 곳은 Sprite.Create로 스프라이트를 만들어 sprite에 넣습니다.

확인한 환경: Unity 2018 프로젝트를 Unity 2019.3 이후 버전으로 옮길 때 · 처음 쓴 날 2025-07-10 · 마지막 확인 2026-10-28

GUITexture·GUIText는 Unity 2019.3에서 빠졌습니다

GUITexture와 GUIText는 Unity 2019.3부터 쓸 수 없습니다. 2019.2 스크립팅 문서까지는 “Obsolete” 표시와 함께 남아 있었지만, 2019.3 문서부터는 아예 사라졌습니다. 그래서 Unity 2018에서 만든 프로젝트를 2019.3 이후 버전에서 열면 오류가 대량으로 납니다. 기존 2018 프로젝트를 계속 쓰려면 아래 작업을 해야 합니다.

GUITexture를 UI.Image로, GUIText를 UI.Text로 바꾸는 방법

기존 GUITexture는 모조리 UI.Image로, 기존 GUIText는 모조리 UI.Text로 바꿉니다.

스크립트 맨 위 using UnityEngine;가 있는 부분의 마지막에 using UnityEngine.UI;를 추가합니다.

GUITexture를 Image로 바꿀 때는 텍스처를 넣기 위해 아래처럼 코드를 조금 더 써야 합니다.

Rect rect = new Rect(0, 0, texture.width, texture.height);
Target.GetComponent<Image>().sprite= Sprite.Create(texture, rect, new Vector2(0.5f, 0.5f));

GUITexture는 texture 속성에 텍스처(Texture)를 그대로 넣었지만, UI.Image는 스프라이트(Sprite)만 받습니다. 그래서 위 코드처럼 텍스처 전체 크기의 사각형(Rect)과 가운데 기준점(0.5, 0.5)을 주어 Sprite.Create로 스프라이트를 만든 뒤 sprite에 넣습니다. 바꿔야 하는 곳을 한 장으로 정리하면 아래와 같습니다.

Unity 2018 프로젝트를 2020 이후 버전으로 옮길 때 GUITexture는 UI.Image로, GUIText는 UI.Text로 바꾸고, 스크립트에 using UnityEngine.UI를 더하고, 텍스처는 Sprite.Create로 스프라이트를 만들어 Image.sprite에 넣어야 함을 보여 주는 전후 비교 도식
네 군데 중 코드를 새로 써야 하는 곳은 텍스처를 스프라이트로 바꿔 넣는 4번입니다.

텍스처를 스프라이트로 바꾸지 않고 그대로 보여 주고 싶다면 UI.RawImage도 쓸 수 있습니다. Unity UI 문서에 따르면 Image는 스프라이트만 받지만, RawImage는 어떤 텍스처든 받습니다.

새 프로젝트라면 UGUI와 UI Toolkit 중에서 고릅니다

2026년 10월 기준으로도 UI.Image가 들어 있는 UGUI(Unity UI)는 정식으로 지원됩니다. Unity 6.3 LTS 문서에서 UGUI는 에디터 버전에 맞춰 함께 배포되는 핵심 패키지(core package)이고, 지원 중단 표시가 없습니다. 그래서 이 글처럼 UI.Image로 옮기는 방법은 지금도 그대로 씁니다. 참고로 UGUI 2.0에는 TextMeshPro 패키지가 합쳐져 있습니다(변경 기록).

새로 시작하는 프로젝트라면 UI Toolkit도 선택지입니다. Unity의 UI 시스템 비교 문서는 게임 실행 중 UI에 UGUI를 권장하고 UI Toolkit을 대안으로 듭니다. 해상도가 제각각인 기기에서 화면 위에 덮는 UI나 UI가 아주 많은 작업이라면 UI Toolkit이 맞습니다. 반대로 씬 안에서 직접 배치하거나 애니메이션 클립·타임라인으로 움직이는 UI는 UGUI만 할 수 있습니다.

자주 묻는 질문

GUITexture는 Unity 몇 버전부터 쓸 수 없나요?

Unity 2019.3에서 빠졌습니다. 2019.2 스크립팅 문서까지는 Obsolete 표시와 함께 남아 있었고, 2019.3 문서부터는 GUITexture·GUIText 항목이 없습니다. 그래서 2020이나 2021처럼 2019.3보다 새 버전에서도 쓸 수 없습니다.

“GUITexture has been removed. Use UI.Image instead.” 오류는 어떻게 고치나요?

GUITexture를 쓰는 스크립트에서 나는 컴파일 오류(error CS0619)입니다. 스크립트에 using UnityEngine.UI;를 더하고 GUITexture 타입을 Image로, GUIText 타입을 Text로 바꾸면 됩니다. 텍스처를 넣던 곳은 Sprite.Create로 스프라이트를 만들어 sprite에 넣습니다.

UI.Image에 Texture2D를 바로 넣을 수는 없나요?

없습니다. UI.Image는 스프라이트만 받아서, 본문 코드처럼 Sprite.Create로 스프라이트를 만들어 넣어야 합니다. 텍스처를 그대로 쓰고 싶다면 어떤 텍스처든 받는 UI.RawImage를 쓰면 됩니다.

새 프로젝트에서도 UGUI를 써야 하나, UI Toolkit을 써야 하나요?

둘 다 쓸 수 있습니다. Unity 6.3 LTS 문서는 게임 실행 중 UI에 UGUI를 권장하고 UI Toolkit을 대안으로 듭니다. UI가 많거나 여러 해상도의 화면 위 UI라면 UI Toolkit을, 씬 안 배치나 애니메이션·타임라인 연동이 필요하면 UGUI를 고르면 됩니다.

함께 보면 좋은 글

UNIT5 Dev Blog

Unity·모바일 게임 개발팀 UNIT5가 실제 개발 중 겪은 문제와 해결 과정을 기록합니다. 틀린 내용이나 더 좋은 방법이 있다면 댓글로 알려주세요. 블로그 소개 →

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최근 글