GitHub 이슈: #20
배경
✅ 끝났다 (2026-09-02). 컴파일 에러 3건이 0이 됐고, 상태바에 다이아 칸까지 붙였다.
⚠️ (당시) 이 일감을 하기 전까지 Unity 프로젝트는 컴파일되지 않았다.
서버에서 재화 구조를 행(row) 축에서 컬럼(column) 축으로 바꿨다.
재화가 늘면 종류 행을 추가하는 게 아니라 컬럼·필드를 추가하는 구조다.
같이 유료 재화 Dia가 추가됐다.
| 이전 | 이후 | |
|---|---|---|
| DB | t_user_currency (user_id, currency_type, amount) |
t_user_currency (user_id PK, gold, dia) |
| 패킷 | S_CurrencyResponse { List<CurrencyInfo> Currencies } |
S_CurrencyResponse { long Gold; long Dia } |
| DTO | CurrencyInfo { byte CurrencyType; long Amount } |
삭제됨 |
프로토콜 미러(Assets/Scripts_Server/Protocol/)는 서버 빌드가 이미 갱신했다.
클라 코드만 옛 모양(res.Currencies · CurrencyInfo)에 맞춰져 있어 깨진다.
서버 쪽에서 클라 코드까지 고쳤다가, 담당 폴더가 아니라 되돌렸다 (CLAUDE.md 협업 규칙 — "각자 자기 담당 폴더만 수정한다").
할 일
- [x]
Assets/Scripts_Server/Network/MikaNetwork.Unity/ServerPacketHandler.cs—Handle_S_CurrencyResponse가res.Currencies를 순회하지 않도록 고친다. 로그는Gold·Dia두 값을 찍으면 된다. 이벤트(CurrencyReceived) 이름은 그대로 써도 된다. - [x]
Assets/Scripts_Client/Managers/PlayerDataModel.cs—Dictionary<byte, long> _currencies와GetCurrency(byte)를 걷어내고Gold·Dia프로퍼티로 바꾼다.GameData.CurrencyType참조도 함께 사라진다. - [x] 문서 갱신 —
Assets/Scripts_Client/패킷 레퍼런스.md(로그인 수신 세트의 패킷 모양),Assets/Scripts_Client/서버 동작 이해.md(총량/델타 표의S_CurrencyResponse행) - [x] (선택)
Dia표시 — 붙이기로 결정했다. 상태바(State Presenter)에Dia Panel을 넣었다. ⏸ 값은 늘 0이지만 자리를 먼저 잡아 두는 쪽을 택했다. 위젯(상단바 지갑)에는 넣지 않았다
완료 조건
- Unity 에디터에서 컴파일 에러가 없다.
- 로그인하면
PlayerDataModel.Gold·Dia에 서버가 보낸 잔액이 들어오고CurrencyChanged가 발행돼 위젯·상태바의 골드 숫자가 갱신된다.
참고
- 서버 쪽 경위·결정 근거:
.claude/Agent/2026-09-02-currency-row-to-column.md Dia는 그릇만 있고 지급·차감 경로가 없다. 화면에 붙여도 항상 0이다.
막고 있는 것 / 선행 일감
- 없음 (서버 변경은 이미 들어왔다)
착수하고 나서 드러난 것 (2026-09-02)
상태바를 아이콘 + 텍스트 짝으로 함께 바꿨다. 다이아를 넣으면 숫자만 셋이 나열돼
무엇이 무엇인지 구분되지 않는다. Nick·Gold·Dia를 각각 Xxx Panel(정렬 상자)로 싸고
그 안에 Xxx Image(아이콘)와 기존 텍스트를 넣었다.
- 바깥 비율
3 : 2 : 2 : 1×5는 그대로다 —FlexibleWidth를 텍스트에서 패널로 옮겼다. - 텍스트를 새로 만들지 않고 옮겼다.
StatePresenter의 참조는 오브젝트 참조라 부모가 바뀌어도 살아남는다 — 재배선이 필요 없었다. - 아이콘은 아트가 없어 색만 있는 자리표시자다(내장
Knob+ 짝이 되는 글자색). 상세는State 규칙.md.
⚠️
GameData.CurrencyType이 쓰이지 않게 됐다.Assets/Scripts_Server/GameData/Enum.cs는 서버에서 복사되는 미러라 손대지 않았다.Dia도 이 enum에 없다 — 정리 여부는 서버 판단이다.
⚠️ 아이콘 폭에
33을 적었다가 걷어냈다 (같은 날 수정). 파생값이라 가운데 높이·비율이 바뀌면 정사각형이 깨진다.Common/ugui-layout/SquareLayoutElement로 교체했고,Layout 규칙.md에 "파생값을 숫자로 베끼지 않는다" 절을 신설했다.