DataTable ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ก UI ์ํคํ
์ฒ๋ฅผ ์ ๋ฆฌํ ์ดํ,
๊ธฐ๋ณธ์ ์ธ Single Selection๊ณผ CommandPanel ๋์์ ์์ ์ ์ผ๋ก ๋์ํ์ง๋ง
๋ค์๊ณผ ๊ฐ์ ํ๊ณ๊ฐ ๋จ์ ์์๋ค.
| ๊ตฌ๋ถ | ๋ฌธ์ |
|---|---|
| SelectionPanel | ๋จ์ผ ์ ํ ๊ธฐ์ค์ผ๋ก๋ง ์ค๊ณ๋์ด ๋ค์ค ์ ํ ํํ ๋ถ๊ฐ |
| Multi Selection | ์ ํ๋ ์ ๋ ๋ชฉ๋ก์ ํํํ ๊ตฌ์กฐ ์์ |
| CommandPanel | ๋ค์ค ์ ํ ์ ์ด๋ค ์ปค๋งจ๋๋ฅผ ๋ณด์ฌ์ค์ง ๊ธฐ์ค ๋ถ์ฌ |
| UI ์ํ | None / Single / Multi ์ํ ๊ตฌ๋ถ ์์ |
| ํํ ๋ฐฉ์ | ๋ค์ค ์ ํ ์ ๋จ์ ํ ์คํธ ๋์ด ์์ค |
Selection
โ ViewModel (Single ๊ธฐ์ค)
โ SelectionPanel ์ถ๋ ฅ
์ด ๊ตฌ์กฐ์์๋:
๋ฌธ์ ์ ํต์ฌ์ ๋ค์ ๋ ๊ฐ์ง์๋ค.
๊ธฐ์กด ๊ตฌ์กฐ์์๋ Selection์ด ํญ์ ํ๋์ ์ํฐํฐ ๊ธฐ์ค์ผ๋ก ์ฒ๋ฆฌ๋์๋ค.
SelectionId
โ DisplayName
โ TypeLabel
โ HP
ํ์ง๋ง ์ค์ RTS์์๋:
๋จ์ผ ์ ํ โ ์์ธ ์ ๋ณด
๋ค์ค ์ ํ โ ์์ฝ ์ ๋ณด + ๊ทธ๋ฃน ์ํ
์ฆ, Selection ์์ฒด์ ์ํ ๋ชจ๋ธ์ด ๋ถ์กฑํ ์ํฉ์ด์๋ค.
๋ค์ค ์ ํ์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์:
์ ํ๋ ๋ชจ๋ ์ ๋์ด ๊ณตํต์ผ๋ก ์ํ ๊ฐ๋ฅํ ํ๋๋ง ํ์
ํ์ง๋ง ๊ธฐ์กด ๊ตฌ์กฐ์์๋:
์ฆ, Command ํ์ ๊ธฐ์ค์ด UI๊ฐ ์๋๋ผ ๋ก์ง์ ์์กดํ๋ ๊ตฌ์กฐ์๋ค.
SelectionPanel์ ํญ์ ๋์ผํ ๋ ์ด์์์ ์ฌ์ฉํ๋ค.
Portrait + Name + HP
์ด ๊ตฌ์กฐ์์๋:
ํต์ฌ ๋ฐฉํฅ์ ๋ค์ ์ธ ๊ฐ์ง๋ก ์ ๋ฆฌํ๋ค.
SelectionViewModel์ ์ํ ๊ฐ๋ ์ ์ถ๊ฐํ๋ค.
ESelectionViewMode
- None
- Single
- Multi
์ถ๊ฐ๋ ๋ฐ์ดํฐ:
| ํญ๋ชฉ | ์ญํ |
|---|---|
| ViewMode | Selection ์ํ ๊ตฌ๋ถ |
| TotalSelectedCount | ์ด ์ ํ ์ |
| SummaryItems | ๋ค์ค ์ ํ ์์ฝ ์ ๋ณด |
๊ธฐ์กด
โ SelectionId ๊ธฐ๋ฐ ๋จ์ผ ๊ตฌ์กฐ
๋ณ๊ฒฝ ํ
โ ViewMode ๊ธฐ๋ฐ ์ํ ๋ถ๊ธฐ ๊ตฌ์กฐ
๋ค์ค ์ ํ์ ํํํ๊ธฐ ์ํด Summary ๊ตฌ์กฐ๋ฅผ ์ถ๊ฐํ๋ค.
FSelectionSummaryItemViewModel
- EntityId
- DisplayName
- Count
- Icon
[Icon] Marine x5
[Icon] SCV x2
๋ค์ค ์ ํ ์ Command ํ์ ๊ธฐ์ค์ ๋ณ๊ฒฝํ๋ค.
Provider โ Command ๋ชฉ๋ก ์ง์ ์ ๋ฌ
๋ฌธ์ :
SelectionSummary
โ EntityId ๋ชฉ๋ก ์ถ์ถ
โ ๊ฐ Entity์ Command ๋ชฉ๋ก ์กฐํ
โ ๊ต์งํฉ ๊ณ์ฐ
โ UI ํ์
Marine: Move, Attack, Stop, Patrol
SCV: Move, Attack, Stop, Patrol, BuildMenu
โ ๊ฒฐ๊ณผ
Move, Attack, Stop, Patrol
| ์์ญ | ์ญํ |
|---|---|
| Provider | EntityId ๊ธฐ๋ฐ Command ๋ชฉ๋ก ์ ๊ณต |
| Coordinator | ๊ต์งํฉ ๊ณ์ฐ |
| UI | ๊ฒฐ๊ณผ ์ถ๋ ฅ |
SelectionPanel์ ์ํ๋ณ๋ก ๋ถ๋ฆฌํ๋ค.
StateSwitcher
โโ EmptyState
โโ SingleState
โโ MultiState
| ์ํ | UI ๊ตฌ์ฑ |
|---|---|
| None | ์๋ด ํ ์คํธ |
| Single | Portrait + ์์ธ ์ ๋ณด |
| Multi | Summary ๋ฆฌ์คํธ |
์ด๋ฒ ๋จ๊ณ์์๋ ๊ธฐ์กด ์์น ์ ์ง:
UI๋ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ง ์๋๋ค
SelectionSource / ResourceSource
โ Coordinator
โ ViewModel ์์ฑ
โ HUDRoot
โ SelectionPanel / CommandPanel
SelectionSource
โ SummaryItems + EntityId ๋ชฉ๋ก
โ Coordinator
โ Command ๊ต์งํฉ ๊ณ์ฐ
โ ViewModel ๊ตฌ์ฑ
โ UI ์ถ๋ ฅ
| ํญ๋ชฉ | ๋ณํ |
|---|---|
| Selection ๊ตฌ์กฐ | Single โ Multi ํ์ฅ |
| UI ์ํ | None / Single / Multi ๋ถ๋ฆฌ |
| Command ์ฒ๋ฆฌ | ๊ต์งํฉ ๊ธฐ๋ฐ |
| Summary UI | ํ ์คํธ โ ์นด๋ํ UI |
| ๊ตฌ์กฐ ์์ ์ฑ | ์ ์ง |
| ํ์ฅ์ฑ | ์ค์ RTS ์์คํ ๋์ ๊ฐ๋ฅ |
- ์ด๋ฒ ์์ ์ ๋จ์ ๊ธฐ๋ฅ ์ถ๊ฐ๊ฐ ์๋๋ผ
Selection์ ์ค์ฌ์ผ๋ก UI ์ํ ๋ชจ๋ธ์ ํ์ฅํ๊ณ ,
๋ค์ค ์ ํ๊ณผ Command ์ฒ๋ฆฌ ๊ธฐ์ค์ ๊ตฌ์กฐ์ ์ผ๋ก ์ ์ํ ๋จ๊ณ์๋ค.- UI๋ ์ฌ์ ํ ๋ฐ์ดํฐ๋ฅผ ์๋นํ๋ ์ญํ ์ ์ ์งํ๋ฉด์,
Coordinator๋ฅผ ํตํด ๋ณต์กํ ์ํ๋ฅผ ์กฐํฉํ๋ ๋ฐฉํฅ์ผ๋ก ํ์ฅํ๋ค.