반응형
오딘 인스펙터의 클래스 공부해보기
오딘 인스펙터 내부의 클래스들에 대해서 알아보고, 어떤식으로 작동되는지 분석해 보는 시간을 가져보려고 합니다.
오딘 인스펙터 에셋을 추천을 했으니, 그 내부의 구조에 대한 설명도 해드리는게 맞겠다 싶어서 이런 포스트를 올리게 되었네요.
오딘 인스펙터 주요 클래스
- OdinMenuTree
아마 오딘 인스펙터의 큰 뼈대가 되어주는 클래스라고 생각됩니다.
System.Collections의 인터페이스인 IEnumerable 을 상속받고 있습니다- OdinMenuTree 속 주요 변수 살펴보기
public static 으로 OdinMenuTree 클래스인 ActiveMenuTree 가 있고,
private static 으로 HashSet<OdinMenuItem> cachedHashList 이 있습니다.
private OdinMenuTreeDrawCongif 클래스로 defaultConfig가 있습니다.
public 변수들로는
List<OdinMenuItem> FlatMenuTree 라는 리스트와,
OdinMenuTreeSelection 클래스를 불러오는 Selection => selection;
OdinMenuItem 클래스로 가장 근본이되는 RootMenuItem => root;
List<OdinMenuItem> 리스트로 접근하는 MenuItems => root.ChildMenuItems;
이 외에도 여러 변수들이 있긴 한데, 아마도 위에 적은 변수들 외에는 직접 접근을 해야하는 경우는
많이 없을 것 같아서 따로 소개는 안했습니다.
- OdinMenuTree 속 주요 함수 살펴보기
Add();
AddRange<T>();
IEnumerable<OdinMenuItem> 반환형을 갖는 EnumerateTree(); DFS 방식으로 탐색해주는 함수
DrawMenuTree();
...등등.. 함수들이 너무 많네요. 제가 직접 사용할 함수의 경우에는 주로 Add나 EnumerateTree정도
일것 같네요. - OdinMenuTreeExtension 주요 함수 살펴보기 (확장메서드)
GetMenuItem();
AddAllAssetsAtPath();
AddMenuItemAtPath();
AddObjectAtPath();
SortMenuItemsByName();
AddIcon();
AddIcons();
AddThumbnailIcon();
확장 메서드의 경우에도 오버로드들이 여러가지로 되어있어서, 사용전에 어떤 오버로드가 있는지 확인하시는 것도 좋을듯 합니다.
- OdinMenuTree 속 주요 변수 살펴보기
- OdinMenuItem
오딘 인스펙터에서 관리되는 가장 작은 단위의 요소로 보시면 될것 같네요.
Action<OdinMenuItem> OnDrawItem;
Action<OdinMenuItem> OnRightClick;
등과 같은 이벤트들이 있고, 메뉴들의 Icon을 불러오는 프로퍼티들이나, 해당 아이템이 선택되거나 해제되는 동작을 정의해주는 함수들이 있습니다.
Select(); , Deselect();
이 외에도 해당 메뉴아이템의 토글키에 관한 함수나, 경로등을 불러오는 함수들이 있는데, 직접적으로 사용할 일은
적어보이네요. - OdinMenuTreeSelection
오딘 메뉴 트리에서 어떤 오딘메뉴아이템이 선택되었는지에 해당되는 정보를 담는 클래스입니다.
OdinMenuItem에서 Select된 경우에 해당 Selection에 메뉴아이템 정보가 담기는 방식으로 동작하는 것으로 보입니다. - 그외 클래스들
OdinMenuEditorWindow
OdinEditorWindow
OdinMenuTreeDrawConfig
OdinMenuStyle
SirenixGUIStyles
Clipboard
PropertyTree
우선은 오딘 인스펙터에서 사용하는 클래스는 이정도만 알아두시면 충분한 것으로 생각됩니다.
오늘은 오딘 인스펙터에 포함된 클래스들을 나열해보고 그 안에 어떤 함수가 있는지 훑어보는 시간을 가졌습니다.
다음번에는 해당 에셋에 포함된 어트리뷰트의 종류들을 나열하고 배워보는 시간을 가져보려고 합니다.
그럼 다음에 또봐요~
반응형