using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(컴포넌트))]
public class 클래스이름 : Editor
{
}
이거 설정하면 컴포넌트에서 자체 UI를 디자인 할 수 있다.
클래스의 SerializeField 변수를 탐색하는 함수다.
private SerializedProperty _zones;
private void OnEnable()
{
변수 = serializedObject.FindProperty("변수");
}
인스펙터 GUI 그리는 함수다.
public override void OnInspectorGUI()
{
serializedObject.Update();
serializedObject.ApplyModifiedProperties();
}
제외변수를 제외하고 클래스의 SerializeField를 기존처럼 가져온다.
DrawPropertiesExcluding(serializedObject, "제외변수1", "제외변수2");
여기서 제외변수에 m_Script를 넣는다면 스크립트 참조 필드(회색 영역)를 제거하는 거다.

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

이렇게 생겼는데 두 번째 매개변수는 왼쪽의 아이콘 설정 방법이다.
그 사이에 그리는 내용들을 세로로 감싸는 박스 영역을 만든다. 스타일을 넣으면 배경 박스 모양이 생긴다.
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
// ... 안에 그릴 내용들
EditorGUILayout.EndVertical();

이렇게 박스 느낌이 난다.
GUIContent("내용"), height, width
if (GUILayout.Button(
new GUIContent("좌표 순서로 정렬", "위→아래, 왼→오른 순으로 zones 배열을 다시 담습니다."),
GUILayout.Height(24f), GUILayout.Width(140f)))
{
ApplySort(rows);
}