Skip to content

Commit 9b9cee3

Browse files
author
frenil
committed
v0.3.0 릴리스 준비 - 버전 올리고 CHANGELOG 정리, README 구조 설명 갱신
1 parent 21ed2d8 commit 9b9cee3

5 files changed

Lines changed: 506 additions & 241 deletions

File tree

‎Assets/UISystem/CHANGELOG.md‎

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,42 @@
77

88
아직 없음. 다음에 손댈 순서는 [README 의 "다음에 할 것"](../../README.md#다음에-할-것) 을 따른다.
99

10+
## [0.3.0] - 2026-09-13
11+
12+
캔버스 구조를 레이어 단위에서 UI 단위로 옮기고, 대량 목록용 재사용 스크롤을 더한 판.
13+
기존 프리팹과 UIRoot 구성을 바꿔야 하므로 [README 의 이전 안내](../../README.md#설치) 를 따른다.
14+
15+
### 추가
16+
17+
- **재사용 스크롤** `RecyclableScrollView` — 보이는 만큼만 셀을 만들어 돌려 쓴다.
18+
수직·수평 리스트와 열(행) 수가 고정된 그리드, `ScrollItem<T>` · `ScrollDataSource<TData, TItem>` · `IScrollDataSource`,
19+
`ScrollToIndex` · `RefreshItem` · `Reload`, `VisibleRange` · `VisibleRangeChanged` · `CreatedCellCount`.
20+
같은 프레임의 여러 변경은 한 번만 바인딩하고, 드래그 중 위치 이동은 손을 뗀 뒤 적용한다.
21+
늦게 도착한 비동기 결과는 `IsCurrentBinding` 으로 버린다. 사용법은 `Documentation/RecyclableScroll.md`.
22+
- `UIStackState` — 표시·포인터 입력·가림·Dim 소유 UI 계산을 Unity 오브젝트 없이 떼어 냈다.
23+
- `UICanvasController` — UI 루트 Canvas 의 렌더 모드·배율·정렬 번호·표시·입력을 바뀐 값만 적용한다.
24+
- 에디터 메뉴 **UI System ▸ Canvas 설정 동기화** — UI·Dim 프리팹과 열린 씬의 루트 Canvas 를 공통 설정에 맞춘다.
25+
- `UIElement` 인스펙터의 **기본 설정 적용** — 스크롤은 Viewport·Content·마스크·입력 영역·서브 Canvas 를 구성한다.
26+
- EditMode · PlayMode 테스트와 리스트·그리드 스크롤 샘플.
27+
28+
### 변경
29+
30+
- **UI마다 독립 루트 Canvas 를 쓴다.** UIRoot 와 레이어 그룹에는 Canvas 가 없고, 그룹에 Canvas 가 남아 있으면 그 레이어의 UI 를 열지 않는다.
31+
역할 클래스가 `Canvas` · `CanvasScaler` · `CanvasGroup` (Toast 를 뺀 UI 는 `GraphicRaycaster` 까지) 를 요구한다.
32+
- **정렬 번호를 스택 순서로 촘촘히 다시 매긴다.** 열린 UI 하나가 레이어에서 두 칸(Dim 자리, UI 루트)을 쓰고, 닫힌 자리에 구멍이 남지 않는다.
33+
`SortingOrderAllocator` 를 받는 `UIManager` 생성자는 `[Obsolete]` 가 되었고 `UILayerSettings` 를 받는 생성자를 쓴다.
34+
- **`UIDim` 은 독립 루트 Canvas 로 고정되고 정렬 번호만 바뀐다.** 다른 UI 아래로 옮겨 다니지 않는다.
35+
- 가려진 UI 는 루트 Canvas 를 끄고, 모달 아래는 `CanvasGroup.blocksRaycasts` 로 포인터 입력만 막는다. 오브젝트는 켜진 채라 상태가 유지된다.
36+
- 공통 배율은 `UILayerSettings` 에서 관리하고 값을 바꾸면 열린 UI 와 Dim 에 다시 적용한다. `UIScreen` 은 씬의 `CanvasScaler` 를 유지하고 다르면 경고한다.
37+
- 프리팹은 꺼진 대기 영역에서 복제하고, 풀로 반납할 때는 먼저 끈 뒤 옮긴다.
38+
- `UIBootstrap` 과 `UIRootProvider` 가 서로 다른 레이어 설정을 가리키면 시작할 때 경고한다.
39+
40+
### 수정
41+
42+
- 스크롤을 연 팝업에서 Dim 이 팝업보다 위에 그려지던 문제.
43+
- 레이어 캔버스 아래에서 프리팹의 Canvas 설정이 실행 중 중첩 Canvas 로 바뀌어 편집 때와 다르게 보이던 문제.
44+
- 닫기 연출이 실패해도 뷰가 스택에 남던 문제. 이제 스택에서 빠진다.
45+
1046
## [0.2.0] - 2026-09-07
1147

1248
DefenceGame 이식에서 드러난 마찰을 걷어낸 판. 실사용에서만 보이던 것들이라 API 표면이 조금 바뀐다.
@@ -90,6 +126,7 @@ UI 스택 시스템의 기초. 스택 관리, 레이어 분리, 정렬 순서
90126
- `UIToast` 에 자동 소멸이 없다. 호출부가 직접 `Close` 해야 한다.
91127
- `PlayOpenAsync` 도중 취소되면 예외는 나가지만 뷰는 스택에 남는다.
92128

93-
[Unreleased]: https://github.com/Frenil-client/unity-ui-system/compare/v0.2.0...HEAD
129+
[Unreleased]: https://github.com/Frenil-client/unity-ui-system/compare/v0.3.0...HEAD
130+
[0.3.0]: https://github.com/Frenil-client/unity-ui-system/compare/v0.2.0...v0.3.0
94131
[0.2.0]: https://github.com/Frenil-client/unity-ui-system/compare/v0.1.0...v0.2.0
95132
[0.1.0]: https://github.com/Frenil-client/unity-ui-system/releases/tag/v0.1.0

‎Assets/UISystem/package.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "com.frenil.uisystem",
3-
"version": "0.2.0",
3+
"version": "0.3.0",
44
"displayName": "UI Stack System",
5-
"description": "Unity 6 (uGUI) 용 UI 스택 관리 시스템. 레이어 캔버스, 정렬 순서 자동 배정, 씬 소유권 기반 수명 관리를 묶어 게임 코드가 UIManager.Instance.OpenAsync<T>() 한 줄만 알면 되도록 만든 런타임이다.",
5+
"description": "Unity 6 (uGUI) 용 UI 스택 관리 시스템. UI별 루트 Canvas, 정렬 번호 자동 배정, 씬 소유권 기반 수명 관리를 묶어 게임 코드가 UIManager.Instance.OpenAsync<T>() 한 줄만 알면 되도록 만든 런타임이다. 대량 목록용 재사용 스크롤을 함께 제공한다.",
66
"unity": "6000.3",
77
"license": "MIT",
88
"author": {

0 commit comments

Comments
 (0)