AGENT SKILL
30-ui-canvas-id
暂无简介
- License 许可
- MIT
- 最近更新
- 2026-04-12
- Stars
- ★ 0
- Forks
- 0
03 SKILL.md 正文
30-ui-canvas-id
Status: ACTIVE AppliesTo: v1 Type: Component Specification
목적
UIBaseCanvas 프리팹을 참조하기 위한 string wrapper ID 타입.
파일 위치 (SSOT)
- Runtime:
com.devian.foundation/Samples~/UIPackage/Runtime/Base/UI_CANVAS_ID.cs - Editor Selector:
com.devian.foundation/Samples~/UIPackage/Editor/UICanvasIdSelector.cs - Editor Drawer:
com.devian.foundation/Samples~/UIPackage/Editor/UI_CANVAS_ID_Drawer.cs
String Wrapper 패턴
UI_CONTAINER_ID, UI_SCROLL_CELL_ID와 동일한 구조:
[Serializable]
public sealed class UI_CANVAS_ID
{
public string Value;
public bool IsValid => !string.IsNullOrEmpty(Value);
// implicit operators for string 호환
}
Selector/Drawer 규약 (AssetId Base 준수)
필수 규칙
- Apply/Create 버튼 금지
- ShowUtility() 필수
- Selector 캐싱 금지
- 클릭 즉시 적용 + 창 자동 닫기
SearchDir 공급
UISettings.GetSearchDir("UI_CANVAS_ID")로 조회- 실패/폴더 없음이면
"Assets"fallback
스캔 대상
UIBaseCanvas또는 concrete subclass가 있는 Prefab 목록을 SearchDir에서 스캔BaseEditorAssetIdSelector<UIBaseCanvas>재활용 (AssetManager.FindPrefabs)@prefix 이름 제외- case-insensitive 중복 name은 에러 로그 후 스킵
UISettings 연계
UI_CANVAS_ID는 일반UIBaseCanvas참조용 공용 타입이다.- loading canvas bootstrap에는 사용하지 않는다.
Editor 구현
Selector 클래스
public sealed class UICanvasIdSelector : BaseEditorAssetIdSelector<UIBaseCanvas>
{
protected override string GroupKey => "UI_CANVAS_ID";
protected override string DisplayTypeName => "UI_CANVAS_ID";
}
Drawer 클래스
[CustomPropertyDrawer(typeof(UI_CANVAS_ID))]
public sealed class UI_CANVAS_ID_Drawer : BaseEditorID_Drawer<UICanvasIdSelector>
{
// ShowUtility()로 창 표시
}
주의 사항
UIBaseCanvas는 abstract base지만, selector는 prefab root의GetComponent<UIBaseCanvas>()로 concrete subclass를 잡는다- selector 캐싱 금지 (항상
CreateInstance)
Reference
- Parent:
skills/devian-unity/23-ui-package/SKILL.md - AssetId Base:
skills/devian-unity/20-common-package/12-asset-id/SKILL.md - UICanvas System:
skills/devian-unity/23-ui-package/10-base-system/11-ui-canvas-system/SKILL.md - UISettings:
skills/devian-unity/23-ui-package/10-base-system/13-ui-settings/SKILL.md