[Unity] 커스텀 Editor UI

gest·2026년 7월 26일

unity

목록 보기
12/12

CustomEditor

using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

[CustomEditor(typeof(컴포넌트))]
public class 클래스이름 : Editor
{
}

이거 설정하면 컴포넌트에서 자체 UI를 디자인 할 수 있다.

serializedObject.FindProperty

클래스의 SerializeField 변수를 탐색하는 함수다.

private SerializedProperty _zones;

private void OnEnable()
{
    변수 = serializedObject.FindProperty("변수");
}

OnInspectorGUI

인스펙터 GUI 그리는 함수다.


public override void OnInspectorGUI()
{
    serializedObject.Update();
    
    serializedObject.ApplyModifiedProperties();
}

함수

DrawPropertiesExcluding

제외변수를 제외하고 클래스의 SerializeField를 기존처럼 가져온다.
DrawPropertiesExcluding(serializedObject, "제외변수1", "제외변수2");
여기서 제외변수에 m_Script를 넣는다면 스크립트 참조 필드(회색 영역)를 제거하는 거다.

EditorGUILayout.HelpBox(문자열, MessageType.Info);

메세지박스라고 보면 된다.

이렇게 생겼는데 두 번째 매개변수는 왼쪽의 아이콘 설정 방법이다.

EditorGUILayout.BeginVertical / EndVertical

그 사이에 그리는 내용들을 세로로 감싸는 박스 영역을 만든다. 스타일을 넣으면 배경 박스 모양이 생긴다.

EditorGUILayout.BeginVertical(EditorStyles.helpBox);
// ... 안에 그릴 내용들
EditorGUILayout.EndVertical();


이렇게 박스 느낌이 난다.

Button

GUIContent("내용"), height, width

if (GUILayout.Button(
        new GUIContent("좌표 순서로 정렬", "위→아래, 왼→오른 순으로 zones 배열을 다시 담습니다."),
        GUILayout.Height(24f), GUILayout.Width(140f)))
{
    ApplySort(rows);
}

0개의 댓글