๐
2025-09-09
CommonUI: UMG๋ฅผ ํ ๋ฒ ๋ ๋งคํํ ํ๋ฌ๊ทธ์ธ. ์ธ ๋ถ๋ถ๋ง ์ฐ๊ธฐ
UIPolicy: UI ์ค์ ๋ฐฉ์ ๊ฒฐ์ . UI๋ฅผ ์ง์ง ๊ด๋ฆฌ
โ ๋ค๋ฅธ ๋ ์ด์์ ์ฐ๋ ค๋ฉด ์ด๊ฑฐ ๋ง๋ค์ด์ GameUIManagerSubsystem์ ๋ฑ๋ก
RegisterLayer ๋ก ๊ฒ์ํ๋ ์ด ํ๊ทธ์ ๋ ์ด์์ ๋งคํ์ด๋ค ๋ ์ด์์์ธ์ง - ํ๊ทธ, ํด๋น ๋ ์ด์์ ์์ ์ด๋ค UIExtension(์์ ฏ)์ด ๋ค์ด๊ฐ๋์ง - ํ๊ทธ
๋ ์ด์์ ์์ ์์ ฏ ์ธํ โ Game Feature Action ์ฌ์ฉ (Add Widget)
UObject> : ์์ ฏ ํด๋์คUObject> : ์์ ฏ ์์ ์Layout ๊ด๋ฆฌ
UIExtension ๊ด๋ฆฌ
ํ๋ผ์ด๋จธ๋ฆฌ ๋ ์ด์์์ ์ํ๋ ๋ ์ด์์ ๋ฃ๊ณ ๊ทธ ๋ ์ด์์์ UIExtension์ ์ด๋ค ์์ ฏ์ ์ฅ์ฐฉํ ์ง ํ๊ทธ๋ก ๊ฒฐ์
FLyraHUDLayoutRequest
UCommonActivatableWidget> : ํ๋ผ์ด๋จธ๋ฆฌ ๋ ์ด์์์ ๋ฃ์ ์์ ฏFLyraHUDElementEntry
UUserWidget>: ๋ ์ด์์์ ๋ค์ด๊ฐ ์์ ฏAddToWorld: Game Feature๊ฐ ํ์ฑํ๋๋ฉด ์ด ํจ์๊ฐ ํธ์ถ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ UGameFrameworkComponentManager์ ํธ๋ค๋ฌ๋ฅผ ๋ฑ๋กํฉ๋๋ค. ์ด ํธ๋ค๋ฌ๋ ํน์ ์กํฐ(์ฌ๊ธฐ์๋ ALyraHUD)์์ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ HandleActorExtension ํจ์๋ฅผ ํธ์ถํ๋๋ก ์ค์ ๋ฉ๋๋ค.HandleActorExtension: ์ด ํจ์๋ ALyraHUD์์ UGameFrameworkComponentManager::NAME_GameActorReady ์ด๋ฒคํธ๊ฐ ์์ ๋๋ฉด ํธ์ถ๋ฉ๋๋ค. ์ด ์ด๋ฒคํธ๊ฐ ๋ฐ๋ก *LyraHUD::BeginPlay()์์ ๋ณด๋ธ ์ด๋ฒคํธ์
๋๋ค.AddWidgets: HandleActorExtension ํจ์๋ ์ด๋ฒคํธ ์ด๋ฆ์ด NAME_GameActorReady์ธ ๊ฒฝ์ฐ AddWidgets ํจ์๋ฅผ ํธ์ถํฉ๋๋ค. ์ด ํจ์์์ ์ค์ ๋ก ์์ ฏ์ HUD์ ์ถ๊ฐํ๋ ๋ก์ง์ด ์คํ๋ฉ๋๋ค.์์ฝํ์๋ฉด, ALyraHUD::BeginPlay()๋ "๋ ์ค๋น๋์ด!"๋ผ๋ ์ ํธ๋ฅผ ๋ณด๋ด๊ณ , GameFeatureAction_AddWidgets๋ ๊ทธ ์ ํธ๋ฅผ ๋ฐ์์ "์์์ด, ๊ทธ๋ผ ๋ด๊ฐ ์์ ฏ์ ์ถ๊ฐํด ์ค๊ฒ"๋ผ๊ณ ์๋ตํ๋ ๊ตฌ์กฐ์
๋๋ค. ์ด๋ฌํ ๋ถ๋ฆฌ๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ฐฉ์์ ์์คํ
์ ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
Assetbundle : client, server ํ์ํด์ ํ์ํ ๊ฒ๋ค๋ง ๋ก๋ฉ
TobjectPtr์ ๋ฒ๋ค๋ก ๋ฑ๋กํ์ง ์์๋ ํญ์ ๊ฐ์ ธ์ด. ํด๋ผ์ด์ธํธ๋ ์๋ฒ ์๊ด์์ด ํญ์ ํ์ํ ๊ฒ๋ค์ objectPtr๋ก ์ค์
์์ ฏ์ ํด๋ผ์ด์ธํธ์์๋ง ํ์ํ๊ณ ์๋ฒ๋ ์์ด๋ ๋๋ฏ๋ก TSoftClassPtr๋ก ์ค์ ํจ. ๊ทธ๋ฌ๋ฉด ํด๋ผ์ด์ธํธ๋ง ๊ฐ์ ธ์ค๋๋ก ์ค์ ํด์ผํจ
์๋ธ์์คํ
์์ UIExtensionPointHandle๋ก ๊ด๋ฆฌ
ํ ๋ฒ ์ ์ดํดํ๋ฉด ์ ์ฉํ๊ฒ ์ธ ์ ์์ ๊ฒ ๊ฐ๋ค.