Installer 인스펙터
공개 API가 아닌 에디터 커스텀 컴포넌트와 관련된 내용입니다. 사용자 콜백이 아니므로, 선택에 따라 읽지 않으셔도 무방합니다.
세 Installer 모두 Editor/ObjectInstallerEditor.cs 한 파일에 CustomEditor가 정의되어 있습니다.
| 에디터 클래스 | 대상 |
|---|---|
ObjectInstallerEditor | ObjectInstaller |
MasterInstallerEditor | MasterInstaller |
SceneInstallerEditor | SceneInstaller |
ObjectInstallerEditor
상단 버튼
- Bake Dependencies —
installer.BakeDependencies()호출. 배경색 연녹색 강조.
요약 패널 (DrawReferenceOverview)
같은 ObjectInstaller 서브트리의 MonoBehaviour를 모두 스캔해 필드 메타를 집계합니다.
-
Local Dependencies
[Inject]SerializedObject/SerializedProperty로 object reference 읽기, 실패 시field.GetValue폴백.N / M fields linked표시, 각 줄에[OK]/[Missing].
-
Scene Dependencies
[SceneInject]IsTypeRegisteredInScene(fieldType): 씬의SceneInstaller를FindObjectOfType으로 찾고,_sceneReferrals배열에 할당 가능한 컴포넌트 타입이 있는지 검사(fieldType.IsAssignableFrom(comp.GetType())).[Registered]/[Optional — not registered]/[Not in scene registry].
-
Global Dependencies
[GlobalInject]IsTypeRegisteredInMaster: 동일하게MasterInstaller의_globalReferrals배열을 검사.[Registered]/[Optional — not registered]/[Not in registry].
기본 인스펙터
serializedObject이터레이터로m_Script제외한 모든 프로퍼티 표시 —_parentScope등 일반 필드 포함.
// 인스펙터가 “등록됨”을 판단하는 방식 (개념)
// Global: MasterInstaller._globalReferrals 열거
// Scene: SceneInstaller._sceneReferrals 열거
// fieldType.IsAssignableFrom(comp.GetType())
Named 바인딩(Id)까지 인스펙터가 정밀 검증하는지는 현재 구현이 타입 할당만 보는지 확인이 필요합니다.
씬/전역 리스트에 동일 인터페이스가 여러 개일 때는 런타임 Resolve 규칙을 함께 참고하세요.
MasterInstallerEditor
-
Refresh Global Registry버튼 →RefreshRegistry(). -
Global Registry HelpBox:
_globalReferrals.arraySize. -
_globalReferrals프로퍼티 필드는GUI.enabled = false로 읽기 전용 표시. -
m_Script숨김.
SceneInstallerEditor
-
Refresh Scene Registry버튼 →RefreshSceneRegistry(). -
Scene Registry HelpBox:
_sceneReferrals동일 패턴. -
_sceneReferrals읽기 전용,m_Script숨김.
다른 에디터 창과의 관계
-
Dependency Graph :
Window > UNInject > Dependency Graph—UNInjectGraphWindow.cs. -
베이크 검증 :
Window > UNInject > Validate Bake—UNInjectBakeValidator.cs(빌드 전처리에서도 동일 로직).
자세한 진단 도구는 Diagnostics 섹션 문서를 참고하세요.