AGENT SKILL
12-asset-id
暂无简介
- License 许可
- MIT
- 最近更新
- 2026-04-12
- Stars
- ★ 0
- Forks
- 0
02 资源文件 5
- 参考文档evals/code-evals.json2.5 KB
- 参考文档evals/evals.json2.5 KB
- 许可证LICENSE11.1 KB
- 参考文档SOURCE.md333 B
- 参考文档TRUST.auto.yaml2.1 KB
03 SKILL.md 正文
12-asset-id
Status: ACTIVE AppliesTo: v10 Type: Component Specification
1. 목적
Unity Editor에서 특정 폴더의 prefab 목록을 스캔하여, Inspector에서 string 기반 ID를 선택할 수 있도록 하는 AssetId 패턴을 정의한다.
- TableId 패턴과 동일한 UX (Select 버튼 + 검색 + 그리드 선택, 클릭 즉시 적용)
- 폴더 경로는 BundleSettings(
Assets/Resources/Devian/BundleSettings.asset) 에서 공급받는다. - deprecated/fallback 레이어는 만들지 않는다.
2. 네임스페이스
모든 코드는 namespace Devian.
3. 패키지
- selector base 클래스는
com.devian.foundation(Editor) - runtime ID 타입과 Generated selector는 해당 owning package에 둔다
4. 파일 위치 (정본)
Editor (base — com.devian.foundation):
com.devian.foundation/Editor/AssetId/
├── BaseEditorAssetIdSelector.cs
└── BaseEditorScriptableAssetIdSelector.cs
Settings (단일 정본):
Assets/Resources/Devian/BundleSettings.asset(JSON 형태 금지)com.devian.foundation/Runtime/Unity/Settings/BundleSettings.cs
Runtime ID 타입 + Generated selector는 owning package 기준:
{owning-package}/Runtime/{Feature}/
└── {ASSET}_ID.cs
{owning-package}/Editor/Generated/
└── {ASSET}_ID.Editor.cs
Parent:
skills/devian-unity/20-common-package/00-overview/SKILL.mdskills/devian-unity/20-common-package/18-bundle-settings/SKILL.md
5. SearchDir 공급 규약(Hard)
Selector는 BundleSettings.asset에서 key로 SearchDir를 찾는다.
BundleSettings.GetEntry(key)로 조회 (key = ID 타입명, e.g.COMMON_EFFECT_ID)- 매칭 실패 시
"Assets"fallback (최후 수단)
AssetId key는 단일 SearchDir(string) 만 지원한다.
6. Selector Window 표시 규약 (Hard)
- Drawer는 Select 버튼 클릭 시 반드시 Selector 창을 화면에 표시해야 한다.
- Selector 창에는 Apply/Create 버튼이 존재하면 안 된다. (SSOT: skills/devian/10-module/03-ssot/SKILL.md)
- 따라서 Selector는 EditorWindow(Utility) 기반으로 생성/표시한다.
- Selector 캐싱은 금지한다. (창을 닫았다가 다시 Select 시 창이 안 뜨는 버그 방지)
CreateInstance후 반드시 ShowUtility() 로 표시 상태로 만들어야 한다.
권장 패턴(정본):
protected override TSelector GetSelector()
{
var w = ScriptableObject.CreateInstance<TSelector>();
w.ShowUtility();
return w;
}
NOTE: 기존 "ScriptableWizard 기반/DisplayWizard 강제" 문구는 SSOT의 "Apply 버튼 금지"와 충돌하므로 제거한다.
7. 금지(Hard)
- deprecated/fallback settings 추가/유지 금지 (예: AssetIdSearchSettings)
- BundleSettings.json 형태 금지 (.asset 단일 정본)
- Selector 캐싱 금지 (창을 닫았다가 다시 Select 시 창이 안 뜨는 버그 방지)
@로 시작하는 prefab name은 목록에서 제외한다. (AssetManager 정책과 일치)- ID 값은 prefab.name 그대로 저장한다.
- Apply 버튼 금지: 선택 리스트(SelectionGrid)에서 항목을 클릭하는 즉시 Value가 적용되고, Selector 창은 자동으로 닫혀야 한다.