한눈에 보기
- 문제: 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에 넣습니다. 바꿔야 하는 곳을 한 장으로 정리하면 아래와 같습니다.

텍스처를 스프라이트로 바꾸지 않고 그대로 보여 주고 싶다면 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를 고르면 됩니다.
함께 보면 좋은 글
- Unity Project Auditor: Unity 프로젝트 품질·최적화의 시작점 — 버전을 옮긴 프로젝트의 코드·에셋·설정을 정적 분석으로 점검해 성능 저하와 비효율을 찾는 방법입니다.
- Unity Analytic 관련 package를 모두 제거한 후에 앱 실행시 오류 발생하는 문제 — 빠진 기능을 지웠는데도 실행 오류가 남을 때 Post Process로 정리하는 방법입니다.

답글 남기기