devwinsoft/devian/11-ui-popup-canvas-panel

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Install

npx vskill@latest install devwinsoft/devian/11-ui-popup-canvas-panel

SKILL.md

11-ui-popup-canvas-panel — UIPopupCanvas / UIPopupPanel

Status: ACTIVE AppliesTo: v1

Purpose

popup overlay canvas와 panel layer root를 정의한다.

Implementation Location (3-path mirror)

경로역할
framework-cs/upm/com.devian.foundation/Samples~/UIPackage/Runtime/Popup/UPM mirror
framework-cs/apps/UnityExample/Packages/com.devian.foundation/Samples~/UIPackage/Runtime/Popup/Packages mirror
framework-cs/apps/UnityExample/Assets/Samples/Devian Foundation/0.1.0/UIPackage/Runtime/Popup/현재 workspace 구현 기준

UIPopupCanvas

  • UIBaseCanvas<UIPopupCanvas>, IPoolable
  • UIPopupPanel _panel을 소유한다
  • NormalizeCanvasRect()로 full-stretch rect를 강제한다
  • bootstrap 후 Init()되어 panel을 expose한다
  • public OnPoolSpawned() / OnPoolDespawned()는 base _HandlePoolSpawned() / _HandlePoolDespawned() bridge다
  • canvas/panel은 init once를 유지하고, respawn 시 base helper가 canvas-owned component와 panel-owned subtree를 재초기화한다

UIPopupPanel

  • UIBasePanel<UIPopupCanvas>
  • UIPopupDim과 PopupRoot를 소유한다
  • manager가 spawn한 UIPopupFrameBase를 PopupRoot에 attach / detach 한다
  • AttachFrame(frame)는 frame을 PopupRoot에 붙인 뒤 아직 init 전이면 frame._Init(owner.canvas) + frame._InitComplete()를 호출한다
  • panel 아래 시각 계층은 다음을 기준으로 정리한다
text
Dim (UIPopupDim)
PopupRoot
-> popup frames...

UIPopupDim

  • Dim child GameObject에 붙는 shared modal layer component
  • 같은 GameObject의 Image와 CanvasGroup를 사용한다
  • RequireComponent(typeof(Image)), RequireComponent(typeof(CanvasGroup)) 규약으로 고정한다
  • IPointerClickHandler로 dim click을 manager에 전달한다
  • Button / EventTrigger는 사용하지 않는다

Modal State

ApplyModalState(bool showDim, bool blockBehind, bool closeOnDimClick)가 담당한다.

  • dim 표시 여부
  • blocker 여부
  • dim click 허용 여부

panel은 UIPopupDim.ApplyState(...)로 위 상태를 위임한다. dim color/alpha는 prefab Image의 원본 값을 사용한다 (스크립트에서 덮어쓰지 않음). dim과 blocker는 항상 top popup frame policy 기준으로 계산한다.

Input Gate Boundary

  • shared dim/blocker는 UIPopupDim이 담당한다
  • popup 간 top-only input gate는 UIPopupFrameBase의 root CanvasGroup가 담당한다
  • UIPopupPanel은 popup별 input gate를 직접 관리하지 않는다

Editor Install

  • UIPopupPanelEditor가 Edit Mode inspector button을 제공한다
  • Install Missing은 Dim과 PopupRoot child를 생성하고 reference를 연결한다
  • Dim에는 Image, CanvasGroup, UIPopupDim을 설치한다
  • Normalize Layout는 두 child rect를 full-stretch로 다시 맞춘다

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/devwinsoft/devian/11-ui-popup-canvas-panel/badge)](https://verified-skill.com/skills/devwinsoft/devian/11-ui-popup-canvas-panel)

Something wrong with this skill or its page? Tell us.