[EditorWindow] 기본적인 에디터 창 구축

2025. 1. 22. 01:27·유니티(Unity)/커스텀 에디터
목차
  1. 📌 개요
  2. 📌 EditorWindow
  3. 📌 GUILayout & EditorGUILayout & EditorStyle

📌 개요

 

 

 

 

 

최근 Unity Editor 제작에 관심이 많습니다.

  • 현업에서 기획자 또는 아트를 위한 툴 제작
  • 게임 개발에 자주 사용되는 기능을 툴로 제작
  • 신규 프로젝트를 위한 기본 템플릿

등등...

 

단순히 게임 컨텐츠 제작 뿐만 아니라, 툴을 직접 개발하는 경우도 많더라구요.

 

그래서 Unity Editor에 대해 기초부터 공부하고자 합니다.

 

 

 

 

 


📌 EditorWindow

 

 

EditorWindow : Unity Editor 내부에 개발자를 위한 도구나 툴을 제작할 수 있도록 돕는 클래스

 

Unity의 기본 제공 창인 Scene, Inspector, Console과 비슷한 동작을 하는 커스텀 창을 만들 수 있습니다. EditorWindow을 통해 주로 사용하는 주요 메서드와 이벤트를 살펴보도록 하겠습니다.

 

 

 

 

 

// 메뉴에 "My Custom Window" 항목 추가
[MenuItem("My Custom Window/Open")]
public static void ShowWindow()
{
    // 창 생성 및 표시
    var window = GetWindow<MyCustomWindow>("My Custom Window");
    // window.Show();
}

 

 

GitWindow<T>(string window_name)

 

커스텀 창을 생성하고 표시합니다.

 

Show() 메서드를 통해 창을 표시할 수도 있습니다.

 

다만, GetWindow()와 다른 점은 기존 창이 열려 있어도 중복으로 열리지 않습니다.

 

 

 

 

 

private void OnGUI()
{
    // UI 갱신
}

 

 

OnGUI()

 

Window 창에 UI를 렌더링할 때 사용하며, 모든 UI 요소는 이 메서드에서 정의됩니다.

 

Update() 메서드도 존재하는데, Monobehaviour에서 제공하는 Update 메소드와 유사합니다.

 

매 프레임마다 호출됩니다.

 

💡 MonoBehaviour.Update VS EditorWindow.Update 차이점

MonoBehaviour.Update는 런타임 환경에서, EditorWindow.Update는 에디터 환경에서 호출됩니다.

 

 

 

그 외 메서드들

 

OnEnable() : 창이 열릴 때 호출

OnDisable() : 창이 닫힐 때 호출

OnFocus() : 창이 포커스 될 때 호출

OnLostFocus() : 창의 포커스가 사라질 때 호출

 

 

 

 

 


📌 GUILayout & EditorGUILayout & EditorStyle

 

private void OnGUI()
{
    GUILayout.Label("Hello, Unity Editor!", EditorStyles.boldLabel);

    // 텍스트 입력 필드
    textFieldValue = EditorGUILayout.TextField("Input Text:", textFieldValue);

    // 버튼 생성
    if (GUILayout.Button("Click Me"))
    {
        Debug.Log("Button Clicked! Input: " + textFieldValue);
    }
}

 

 

GUILayout & EditorGUILayout은 IMGUI에서 기본 UI 요소를 배치하는 데 사용됩니다.

 

(IMGUI : Immediate Mode GUI, Unity GUI 시스템 중 하나로, Editor 환경에서 UI를 빠르게 그리기 위한 도구)

  • GUILayout : IMGUI 시스템에서 제공하는 UI 요소 배치 클래스 (자동 레이아웃 시스템, 간단한 처리 제공)
  • EditorGUILayout : 에디터 환경에 특화된 UI 요소 배치 클래스 (GUILayout과 비슷하지만, 에디터에서 자주 사용되는 기능과 오브젝트, 에셋 등 추가 제공)
  • EditorStyles : IMGUI 요소에 스타일을 적용하는 클래스 (레이아웃 사용자 설정)

 

위 세 가지를 조합하여 Unity 에디터 도구를 개발할 수 있습니다. 각 클래스의 기능은 다음 포스터에서 자세히 다뤄보도록 하겠습니다.

 

 

 

 

 

[ Unity Editor 공식 문서 ]

 

에디터 창 - Unity 매뉴얼

애플리케이션에 커스텀 창을 얼마든지 생성할 수 있습니다. 커스텀 창은 인스펙터, 씬 또는 기타 빌트인 창처럼 작동합니다. 이 방법은 게임의 하위시스템에 사용자 인터페이스를 추가하는 데

docs.unity3d.com

 

 

즉시 모드 GUI(IMGUI) - Unity 매뉴얼

“즉시 모드” GUI 시스템(IMGUI라고도 함)은 Unity의 메인 게임 오브젝트 기반 UI 시스템과 완전히 별개의 기능입니다. IMGUI는 코드 기반 GUI 시스템이며, 주로 프로그래머를 위한 툴로 사용됩니다. On

docs.unity3d.com

 

 

 

 

 

'유니티(Unity) > 커스텀 에디터' 카테고리의 다른 글

[EditorUtility.DisplayDialog] 팝업 창 제작  (0) 2025.01.19
[FilePath] 에디터 환경 변수 저장  (0) 2025.01.18
[Unity 기능] 커스텀 패키지 제작하기  (1) 2024.12.20
  1. 📌 개요
  2. 📌 EditorWindow
  3. 📌 GUILayout & EditorGUILayout & EditorStyle
'유니티(Unity)/커스텀 에디터' 카테고리의 다른 글
  • [EditorUtility.DisplayDialog] 팝업 창 제작
  • [FilePath] 에디터 환경 변수 저장
  • [Unity 기능] 커스텀 패키지 제작하기
게임을 제작하는 사람
게임을 제작하는 사람
안녕하세요, 게임 개발자 천냥입니다! 게임을 제작하는 개발자들에게 도움이 될만한 정보와 지식을 제공하는 블로그입니다 ;)
  • 게임을 제작하는 사람
    천냥의 게임 개발 일지
    게임을 제작하는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기 (84)
      • 유니티(Unity) (53)
        • 콘텐츠 기능 (7)
        • 커스텀 에디터 (4)
        • 이슈 도감 (10)
        • 최적화 기법 (4)
        • 쉐이더 (3)
        • 포톤 (0)
        • 이론 정리 (15)
        • 유용한 패키지 정리 (3)
        • 패키지: Cinemachine 정리 (7)
      • C# (2)
      • IT (29)
        • 기술 정리 (2)
        • 알고리즘 (26)
        • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    addressable
    URP
    카메라
    시네머신
    Unity
    직렬화
    유니티
    커스텀 패키지
    custom package
    Shader
    sprite atlas
    C++
    allin1spriteshader
    UI
    editor
    클래스 명명
    게임 개발
    최적화
    Cinemachine
    2d endless platform 구현
    무한 플랫포머
    쉐이더
    클래스 이름
    에디터
    오블완
    코딩 테스트
    getComponent
    끝 없는 2d 맵
    코테
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
게임을 제작하는 사람
[EditorWindow] 기본적인 에디터 창 구축
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.