[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CBF5EG8ZYHTVASNV8XCAT1":3,"skill-same:01M6CBF5EG8ZYHTVASNV8XCAT1":51},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":13,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":6,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M6CBF5EG8ZYHTVASNV8XCAT1","11-ui-component-button",null,"devwinsoft\u002Fdevian","devwinsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F22570160?v=4","01M6C6RR8W05NH8NPKQNCE3Q72","maoshy","01M6C6RRDJ5TJJCZXRTY801YDH",0,"MIT","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian-unity\u002F23-ui-package\u002F20-ui-components\u002F11-ui-component-button\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[23,24,25],"component","ui","11 ui component button","2026-11-10 10:12:30",false,"# 11-ui-component-button\n\nStatus: ACTIVE\nAppliesTo: v11\n\n## Purpose\n\nButton press visual feedback plugin with UnityEvent hooks, optional UI sound playback,\nand `ScrollRect` drag bridge.\n\n## Scope\n\n### Includes\n- PointerDown\u002FUp 시각 피드백 (`EffectType.Scale`, `EffectType.AnchoredPosition`)\n- 선택적 UI 사운드 재생 (`SoundDown`, `SoundUp`)\n- UnityEvent hook (`onDown`, `onUp`)\n- nested scroll 지원용 drag bridge\n  - 부모 `ScrollRect` 자동 탐색\n  - `SetScroll(ScrollRect)`로 수동 override 가능\n- `EventTrigger` 자동 구성\n\n### Sound Playback\n\nOn PointerDown: apply visual feedback + optional UI sound\nOn PointerUp: restore visual state + optional UI sound\nOn BeginDrag: restore visual state and cancel pending PointerUp action\u002Fsound for the current pointer sequence\n\n사운드 재생 경로:\n```\nSOUND_ID -> TB_SOUND.Get(id.Value) -> row.Sound_id -> SoundManager.Instance.PlaySound(..., channelOverride: SoundChannelType.Ui)\n```\n\n- `SoundDown` \u002F `SoundUp`이 invalid면 silent no-op\n- `TB_SOUND.Get()` 결과가 null이거나 `row.Sound_id`가 비어 있으면 silent no-op\n\n## Dependencies (Domain Sound)\n\n| Symbol | Purpose |\n|--------|---------|\n| `SOUND_ID` | 사운드 테이블 키 |\n| `TB_SOUND` | 사운드 테이블 조회 |\n| `SoundManager` | 사운드 재생 |\n| `SoundChannelType.Ui` | UI 채널 지정 |\n\n## SSOT\n\n### Code Path\n```\nframework-cs\u002Fupm\u002Fcom.devian.foundation\u002FSamples~\u002FUIPackage\u002FRuntime\u002FComponent\u002FUIComponentButton.cs\n```\n\n### Class\n```csharp\nnamespace Devian\n{\n    [RequireComponent(typeof(EventTrigger))]\n    public class UIComponentButton : UIComponentBase\n}\n```\n\n### Serialized Fields\n```csharp\n[SerializeField] private EffectType _effectType = EffectType.Scale;\n[SerializeField] private SOUND_ID SoundDown;\n[SerializeField] private SOUND_ID SoundUp;\n```\n\n## Reference\n\n- Parent: `..\u002F00-overview\u002FSKILL.md`\n- Base: [10-ui-component-base](..\u002F10-ui-component-base\u002FSKILL.md)\n- Index: `skills\u002Fdevian-unity\u002F23-ui-package\u002FSKILL.md`\n",{},"main","8cb5bd877a3a7004867d2f55697cb9e4ff2f1734","skills\u002Fdevian-unity\u002F23-ui-package\u002F20-ui-components\u002F11-ui-component-button","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian","https:\u002F\u002Fgithub.com\u002Fdevwinsoft","Kim Hyong Joon","2026-04-12 18:44:10",{"source":7,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add devwinsoft\u002Fdevian --skill 11-ui-component-button",{"tool":43,"command":44},"bunx","bunx skills add devwinsoft\u002Fdevian --skill 11-ui-component-button",{"tool":46,"command":47},"pnpm","pnpm dlx skills add devwinsoft\u002Fdevian --skill 11-ui-component-button","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian-unity\u002F23-ui-package\u002F20-ui-components\u002F11-ui-component-button\u002FSKILL.md",true,[],[52,58,66,74,83,90],{"skillNo":53,"name":54,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":55,"categories":56,"keywords":57,"publishedAt":26},"01M6CBX3K2JJV38ANHVGCAT8A0","devian","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002FSKILL.md",[],[54],{"skillNo":59,"name":60,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":26},"01M6CBX210BFMM8AMN770J9WY8","90-project-archive","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002F80-tools\u002F90-project-archive\u002FSKILL.md",[],[64,65],"archive","90 project archive",{"skillNo":67,"name":68,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":26},"01M6CBWZSGRR9R3YJZB3177667","30-env-management","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002F80-tools\u002F30-env-management\u002FSKILL.md",[],[72,73],"management","30 env management",{"skillNo":75,"name":76,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":26},"01M6CBWYD3TGWBQV7V35551THF","19-page-push-send","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002F80-tools\u002F20-operation\u002F19-page-push-send\u002FSKILL.md",[],[80,81,82],"push","page","19 page push send",{"skillNo":84,"name":85,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":26},"01M6CBWWRQ05A7604GHJKTPJTF","18-page-savedata","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002F80-tools\u002F20-operation\u002F18-page-savedata\u002FSKILL.md",[],[81,89],"18 page savedata",{"skillNo":91,"name":92,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":26},"01M6CBWVH4S2VF1V7B2GBTESCT","17-page-deobfuscate","https:\u002F\u002Fgithub.com\u002Fdevwinsoft\u002Fdevian\u002Fblob\u002Fmain\u002Fskills\u002Fdevian\u002F80-tools\u002F20-operation\u002F17-page-deobfuscate\u002FSKILL.md",[],[81,96],"17 page deobfuscate"]