배경
지금은 노드를 누르는 즉시 결과가 튀어나온다.
노드 클릭 ─┬─ 이미 배움 → 알림 "이미 배운 특성입니다."
├─ 조건 미달 → 알림 "계정 레벨 n이 필요합니다." / "○○을 먼저 배워야 합니다."
├─ 포인트 부족 → 알림 "특성 포인트가 부족합니다."
└─ 전부 통과 → 확인 팝업 → 서버 요청
노드 칸 아래 한 줄(BuildDetail)이 조건이거나 효과 중 하나만 적는다 —
잠기면 조건을, 열리면 효과를. 즉 열려 있는 특성은 무엇을 얼마나 주는지 한 줄로밖에 못 본다.
"눌러야 알 수 있는데, 누르면 바로 팝업"이라 읽고 결정할 자리가 없다.
바꿀 흐름
노드 클릭 → 하단 정보 영역에 그 특성을 펼친다 (이름 · 효과 · 조건 · 필요 포인트 · 현재 상태)
└─ [확인] 버튼 → 지금의 판정·팝업·알림을 그대로 탄다
판정 순서와 문구는 바꾸지 않는다. 서버 판정과 같은 순서(선행 → 계정 레벨 → 포인트)를 유지하고, 그것이 불리는 시점만 노드 클릭에서 [확인] 클릭으로 옮긴다.
조사 결과 — 무엇이 어디 있나
| 무엇 | 어디 |
|---|---|
| 노드 클릭 진입점 | TraitPresenter.OnNodeClicked(TraitNodeView) — 판정 4단계 + _ui.AskConfirm |
| 조건 판정 | TraitPresenter.MeetsConditions(tid, notice) — notice:true면 이유를 알린다 |
| 효과 문구 | TraitPresenter.DescribeEffect · 칸 한 줄은 BuildDetail |
| 노드 클릭 이벤트 | TraitNodeView.Clicked |
| 트리 데이터 | UserTraitTable(효과·필요 포인트) + 같은 TID의 UnlockTable(계정 레벨·선행) |
| 확인 팝업 · 알림 | UIManager.AskConfirm · ServerWaitManager.RaiseNotice |
서버·패킷 변경 없음. C_UserTraitLearnRequest는 그대로다.
수정 필요 파일
| 파일 | 무엇 |
|---|---|
Assets/Scripts_Client/UI/Storage/TraitPresenter/TraitPresenter.cs |
OnNodeClicked를 "고른다" 로 바꾸고, 지금의 판정+팝업은 새 OnConfirmClicked로 옮긴다. 고른 TID(_selectedTraitTid)를 들고 정보 영역을 그린다 |
씬 #Storage Canvas > Trait Presenter |
Scroll View Panel 아래에 정보 영역 + [확인] 버튼 신설 |
Assets/Scripts_Client/UI/Storage/TraitPresenter/TraitNodeView.cs |
고른 칸을 표시할 상태가 필요하면(선택 테두리) 여기 — 판단은 Presenter가 한다 |
Assets/Scripts_Client/UI/Storage/Storage 규칙.md · UI 배치 현황.md |
2단계 플로우 · 새 영역 한 줄 |
영향 범위
Trait Presenter안에서 끝난다. 창고 탭 줄·격자·도구 줄·판매 목록과 무관하다.Trait Presenter는Trait Tab Panel(34)+Point Text(22)+Scroll View Panel(flexH 1)구성이다. 정보 영역을 붙이면 트리 스크롤 영역이 그만큼 줄어든다 — 높이를 고정할지 정해야 한다.Redraw가 해금·계정 레벨 변경마다 돈다. 정보 영역도 같이 갱신돼야 한다 — 찍은 직후 "필요 포인트 n" 이 남아 있으면 안 된다.- 고른 칸이 다시 그려지며 사라질 수 있다(탭 전환 · 트리 재구성). 고른 TID를 들고 있되 그 TID가 지금 구역에 없으면 정보 영역을 비운다.
할 일
-
[x] 씬에 특성 정보 영역 + [확인] 버튼 만들고 높이 규격 정하기
-
[x]
OnNodeClicked→ 선택만 (판정·팝업 제거) ·_selectedTraitTid보관 -
[x] 정보 영역 그리기 — 이름 · 효과 · 필요 포인트 · 조건(선행·계정 레벨) · 현재 상태
-
[x] [확인] 버튼에 기존 판정 4단계 +
AskConfirm연결 (순서·문구 그대로) -
[x]
Redraw·탭 전환·찍기 성공 뒤 정보 영역 동기화 (사라진 TID는 비운다) -
[x] 고른 칸 표시(선택 테두리 등)
-
[x]
Storage 규칙.md·UI 배치 현황.md갱신 -
[x] 플레이 모드 실측 — 잠김·가능·배움 노드 클릭 · [배우기] 알림/팝업 · 찍은 직후 갱신 · 탭 전환
2026-09-29 구현 · 사용자 실측 완료: 정보 영역 높이 = 판매 목록(375 고정) · 버튼 50 · 문구 [배우기]. 잠긴 노드도 누를 수 있게 풀었다(정보를 읽어야 하므로). [배우기]는 배운 특성에서만 숨는다.
완료 조건
노드를 눌러도 팝업이 뜨지 않고 하단에 그 특성이 펼쳐진다. [확인]을 눌렀을 때만 기존 해금 확인 팝업 / 포인트 부족·조건 미달 알림이 뜬다. 찍고 나면 정보 영역이 즉시 "배움"으로 바뀐다.
막고 있는 것 / 선행 일감
- 없음
관련 커밋
- 이 커밋 — 2단계 플로우 · 정보 영역(판매 목록과 같은 자리·높이) · 노드 선택 테두리 ·
Trait Presenter패딩 0 · 간격 5